[MacPorts] #71193: Experimental p5.38-mac-systemdirectory does not build for testing on macOS High Sierra, version 10.13.6, because of wrong input/answer?

MacPorts noreply at macports.org
Sat Dec 14 22:41:24 UTC 2024


#71193: Experimental p5.38-mac-systemdirectory does not build for testing on macOS
High Sierra, version 10.13.6, because of wrong input/answer?
----------------------------------------+------------------------
  Reporter:  ballapete                  |      Owner:  (none)
      Type:  defect                     |     Status:  new
  Priority:  Normal                     |  Milestone:
 Component:  ports                      |    Version:  2.10.2
Resolution:                             |   Keywords:  highsierra
      Port:  p5.38-mac-systemdirectory  |
----------------------------------------+------------------------

Comment (by ballapete):

 I solved the problems of building the module with an additional set of
 patches:

 {{{
 --- SystemDirectory.xs~ 2022-02-21 06:33:28.000000000 +0100
 +++ SystemDirectory.xs  2024-12-14 13:47:36.000000000 +0100
 @@ -5,11 +5,11 @@

  #ifdef Move
  #  undef Move
 -#endif Move
 +#endif

  #ifdef I_POLL
  #  undef I_POLL
 -#endif I_POLL
 +#endif

  #import <Foundation/Foundation.h>

 @@ -124,6 +124,11 @@
          case NSPreferencePanesDirectory:
          case NSItemReplacementDirectory:
  #endif
 +#if (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 101300)
 +        case NSAutosavedInformationDirectory:
 +        case NSApplicationScriptsDirectory:
 +        case NSTrashDirectory:
 +#endif
          {
              NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
              NSArray *paths =
 NSSearchPathForDirectoriesInDomains(directory, domainMask, YES);
 }}}

 Presumingly the original patch, patch-macos-10.10+.diff, is OK. My first
 report already contains:

 {{{
 override rw-r--r--  root/wheel for SystemDirectory.m? (y/n [n]) not
 overwritten
 }}}

 This file is created in the `build phase`:

 {{{
   -rw-r--r-- 1 macports macports 25454 21. Feb 2022  META.yml
   -rw-r--r-- 1 macports macports 43928 14. Dez 23:31 MYMETA.json
   -rw-r--r-- 1 macports macports 25416 14. Dez 23:31 MYMETA.yml
   -rw-r--r-- 1 macports macports 39172 14. Dez 23:31 Makefile
   -rw-r--r-- 1 macports macports  2239 21. Feb 2022  Makefile.PL
   -rw-r--r-- 1 macports macports   387 21. Feb 2022  README
   -rw-r--r-- 1 macports macports     0 14. Dez 23:31 SystemDirectory.bs
   -rw-r--r-- 1 macports macports 12550 14. Dez 23:31 SystemDirectory.m
   -rw-r--r-- 1 macports macports 11284 14. Dez 23:31 SystemDirectory.o
   -rw------- 1 macports macports  5666 14. Dez 23:31 SystemDirectory.xs
   drwxr-xr-x 8 macports macports   272 14. Dez 23:31 blib
   -rw------- 1 macports macports  1700 21. Feb 2022  dist.ini
   drwxr-x--- 3 macports macports   102 21. Feb 2022  inc
   drwxr-x--- 3 macports macports   102 21. Feb 2022  lib
   -rw-r--r-- 1 macports macports     0 14. Dez 23:31 pm_to_blib
 }}}

 You can see that the permissions are alright. After the `install -k phase`
 the permissions are *not* OK:

 {{{
   -rw-r--r-- 1 macports macports 25454 21. Feb 2022  META.yml
   -rw-r--r-- 1 macports macports 43928 14. Dez 23:31 MYMETA.json
   -rw-r--r-- 1 macports macports 25416 14. Dez 23:31 MYMETA.yml
   -rw-r--r-- 1 macports macports 39172 14. Dez 23:31 Makefile
   -rw-r--r-- 1 macports macports  2239 21. Feb 2022  Makefile.PL
   -rw-r--r-- 1 macports macports   387 21. Feb 2022  README
   -rw-r--r-- 1 macports macports     0 14. Dez 23:31 SystemDirectory.bs
   -rw-r--r-- 1 root     macports 12550 14. Dez 23:34 SystemDirectory.m
   -rw-r--r-- 1 root     macports 11284 14. Dez 23:34 SystemDirectory.o
   -rw------- 1 macports macports  5666 14. Dez 23:31 SystemDirectory.xs
   drwxr-xr-x 8 macports macports   272 14. Dez 23:31 blib
   -rw------- 1 macports macports  1700 21. Feb 2022  dist.ini
   drwxr-x--- 3 macports macports   102 21. Feb 2022  inc
   drwxr-x--- 3 macports macports   102 21. Feb 2022  lib
   -rw-r--r-- 1 macports macports     0 14. Dez 23:31 pm_to_blib
 }}}

 Clearly a bug in MacPorts. Could be here?

 {{{
 make: Entering directory
 `/opt/local/var/macports/build/_Users_alpha_ports_perll_p5-mac-
 systemdirectory/p5.34-mac-systemdirectory/work/Mac-SystemDirectory-0.14'
 "/opt/local/bin/perl5.34" -MExtUtils::Command::MM -e 'cp_nonempty' --
 SystemDirectory.bs blib/arch/auto/Mac/SystemDirectory/SystemDirectory.bs
 644
 "/opt/local/bin/perl5.34" "/opt/local/lib/perl5/5.34/ExtUtils/xsubpp"
 -typemap '/opt/local/lib/perl5/5.34/ExtUtils/typemap'  SystemDirectory.xs
 > SystemDirectory.xsc
 mv SystemDirectory.xsc SystemDirectory.c
 mv SystemDirectory.c SystemDirectory.m
 /usr/bin/clang -c   -fno-common -DPERL_DARWIN -pipe -Os -fno-strict-
 aliasing -fstack-protector-strong -I/opt/local/include
 -DPERL_USE_SAFE_PUTENV -arch x86_64 -isysroot/ -O3   -DVERSION=\"0.14\"
 -DXS_VERSION=\"0.14\"  "-I/opt/local/lib/perl5/5.34/darwin-thread-multi-
 2level/CORE"  -DHAS_BOOL SystemDirectory.m
 r}}}

 Two moves, and the file is owned by root! Clang then simply copies
 ownership to its output file? Or another MacPorts bug?

 And so the `test phase` cannot succeed…

-- 
Ticket URL: <https://trac.macports.org/ticket/71193#comment:4>
MacPorts <https://www.macports.org/>
Ports system for macOS


More information about the macports-tickets mailing list