Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perlmods variants for 5.34.1 and 15.0 #1181

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

dhomeier
Copy link
Contributor

@dhomeier dhomeier commented Nov 8, 2024

Adding versions for system perl on 15.x
First commit is a bulk addition to perlmods that already have a 5.30.3 variant requiring no further changes (except a few filename fixes required for case-sensitive FS), second the same for crypto modules.
The third batch is adding new Distribution: 15.0 versions for 5.34.1. I am not sure about the Revision policy for those packages (often remaining unchanged between 12.0 and 13.0, but incremented for 14.0), but since they are switching to a new systemperl, I have generally incremented it by another 100.

Built, validated and tested on 15.1 with Xcode 16.1 (arm64); some test failures for these modules:

  • dynaloader-functions-pm-0.003-801
  • devel-callchecker-pm5341-0.008-1
  • io-all-pm-0.51-1
  • perl-critic-dynamic-pm5341-0.05-1
  • b-hooks-endofscope-pm5341-0.24-1
  • class-accessor-installer-pm5341-1.100.880-3
  • class-accessor-complex-pm5341-1.100.880-2
  • class-accessor-constructor-pm5341-1.111.590-2
  • module-build-xsutil-pm-0.19-1
  • devel-nytprof-pm5341-6.11-1
  • namespace-clean-pm5341-0.27-1
  • template-pm5341-2.27-1
  • moose-pm5341-2.2207-1
  • function-parameters-pm5341-2.001003-1
  • mouse-pm5341-2.5.10-2
  • cgi-compress-gzip-pm5341-1.03-1
  • kwalify-pm-1.22-1
  • module-info-pm-0.35-1 (supposedly fixed in 0.39, but that needs b-utils-pm5XXX, so that causes varianting problems)
  • sort-packed-pm5341-0.08-1
  • email-valid-pm5341-1.203-1 (1.204 commited, which has fix. cf valid.t is failing in version 1.203 Perl-Email-Project/Email-Valid#53)

Some 10 modules failed compilation with Xcode 16 and are not yet updated, plus their dependent packages; to be posted to a separate issue.

Copy link
Member

@nieder nieder left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the ones that failed tests, have you tried updating the version to latest? dynaloader-functions-pm for example has a 2023 release vs our 2017 release that references perl5.33.1 in testing code.

@dhomeier
Copy link
Contributor Author

dhomeier commented Nov 8, 2024

Built dynaloader-functions-pm-0.004-801, but it failed on the same tests. I then noticed that all perl variants were using an include path hardcoded to 5.18; after fixing that I get a lot more output, but still the same no. of failures:

92 warnings generated.
failed to load library t/dyna_low.bundle: dlopen(t/dyna_low.bundle, 0x0002): tried: 't/dyna_low.bundle' (relative path not allowed in hardened program), '/System/Volumes/Preboot/Cryptexes/OSt/dyna_low.bundle' (no such file), '/usr/lib/t/dyna_low.bundle' (no such file, not in dyld cache) at /opt/sw2/src/fink.build/dynaloader-functions-pm-0.004-801/DynaLoader-Functions-0.004/blib/lib/DynaLoader/Functions.pm line 308.
 at t/dyna_low.t line 46.
# Looks like your test exited with 2 just after 1.
t/dyna_low.t .. Dubious, test returned 2 (wstat 512, 0x200)
Failed 5/6 subtests 
t/pod_cvg.t ... ok   
t/pod_syn.t ... ok   

Test Summary Report
-------------------
t/dyna_low.t (Wstat: 512 Tests: 1 Failed: 0)
  Non-zero exit status: 2
  Parse errors: Bad plan.  You planned 6 tests but ran 1.
Files=3, Tests=3,  1 wallclock secs ( 0.02 usr  0.01 sys +  0.35 cusr  0.14 csys =  0.52 CPU)
Result: FAIL
Failed 1/3 test programs. 0/3 subtests failed.

No time to look at all the test failures in detail now, but I can try and dig the output out and post here.

Pushing the update anyway, but obviously only the 15.0 version was built and tested.

@dhomeier
Copy link
Contributor Author

dhomeier commented Nov 8, 2024

Devel-CallChecker also has problems with the include path, despite apparently setting it to the correct path:

ExtUtils::Mkbootstrap::Mkbootstrap('blib/arch/auto/Devel/CallChecker/CallChecker.bs')
env LD_RUN_PATH=/System/Library/Perl/5.34/darwin-thread-multi-2level/CORE cc -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.1.sdk/System/Library/Perl/5.34/darwin-thread-multi-2level/CORE -bundle -undefined dynamic_lookup -o blib/arch/auto/Devel/CallChecker/CallChecker.bundle lib/Devel/CallChecker.o
sudo -u fink-bld [ENV] sh -c /tmp/fink.oJoka
./Build test || exit 2
t/callck.t ..... 1/79 t/callck.xs:2:10: fatal error: 'EXTERN.h' file not found
    2 | #include "EXTERN.h"
      |          ^~~~~~~~~~
1 error generated.
error building t/callck.o from 't/callck.c' at /opt/sw2/lib/perl5/5.34.1/ExtUtils/CBuilder/Base.pm line 187.
# Looks like your test exited with 2 just after 2.
t/callck.t ..... Dubious, test returned 2 (wstat 512, 0x200)
Failed 77/79 subtests 
t/pod_cvg.t .... ok   
t/pod_syn.t .... ok   
t/rv2cvopcv.t .. 1/4 t/rv2cvopcv.xs:2:10: fatal error: 'EXTERN.h' file not found
    2 | #include "EXTERN.h"
      |          ^~~~~~~~~~
1 error generated.
error building t/rv2cvopcv.o from 't/rv2cvopcv.c' at /opt/sw2/lib/perl5/5.34.1/ExtUtils/CBuilder/Base.pm line 187.
# Looks like your test exited with 2 just after 2.
t/rv2cvopcv.t .. Dubious, test returned 2 (wstat 512, 0x200)
Failed 2/4 subtests 
t/threads.t .... t/threads1.xs:2:10: fatal error: 'EXTERN.h' file not found
    2 | #include "EXTERN.h"
      |          ^~~~~~~~~~
1 error generated.
Thread 1 terminated abnormally: error building t/threads1.o from 't/threads1.c' at /opt/sw2/lib/perl5/5.34.1/ExtUtils/CBuilder/Base.pm line 187.
t/threads.t .... Failed 3/3 subtests 

Test Summary Report
-------------------
t/callck.t   (Wstat: 512 Tests: 2 Failed: 0)
  Non-zero exit status: 2
  Parse errors: Bad plan.  You planned 79 tests but ran 2.
t/rv2cvopcv.t (Wstat: 512 Tests: 2 Failed: 0)
  Non-zero exit status: 2
  Parse errors: Bad plan.  You planned 4 tests but ran 2.
t/threads.t  (Wstat: 14 Tests: 0 Failed: 0)
  Non-zero wait status: 14
  Parse errors: Bad plan.  You planned 3 tests but ran 0.
Files=5, Tests=6, 10 wallclock secs ( 0.01 usr  0.01 sys +  0.41 cusr  0.15 csys =  0.58 CPU)
Result: FAIL
Failed 3/5 test programs. 0/6 subtests failed.
### execution of ./Build failed, exit code 2
### execution of /tmp/fink.oJoka failed, exit code 2
phase testing: devel-callchecker-pm5341-0.009-1 failed

(on 15.1 there are no header files under /System/Library/Perl, but EXTERN.h is installed under the SDK include path above).
This looks similar to a number of modules failing to build entirely, with the correct path set in ARCHFLAGS but the compiler apparently only looking under the /System/... includes.

@dmacks
Copy link
Member

dmacks commented Nov 9, 2024

(on 15.1 there are no header files under /System/Library/Perl, but EXTERN.h is installed under the SDK include path above).
This looks similar to a number of modules failing to build entirely, with the correct path set in ARCHFLAGS but the compiler apparently only looking under the /System/... includes.

Those CallChecker test failures all appear to involve compiling .xs during the test. I wonder if the header paths (or our hacks of them) are not propagating properly into the test suite? And whether that is due to an underlying external module that needs fixing?

This one is driven by Module::Builder (Build.PL), which seems more opaque than ExtUtils::MakeMaker (Makefile.PL). Can you check the ones that are failing to see if they are .xs tests and/or if they are Build.PL driven?

This one notes use of fink's ExtUtils::CBuilder, and our package of that is at the latest CPAN version. Does removing extutils-cbuilder-pm5341 change the results?

@nieder
Copy link
Member

nieder commented Nov 10, 2024

declare-constraints-simple-pm needs a versioned Depends on aliased-pm (>= 0.34) to function in newer perls. I just checked in the updated version of aliased-pm.

@nieder
Copy link
Member

nieder commented Nov 11, 2024

Regarding EXTERN.h and finding the header via -I flags, apparently I saw something similar a year ago: #1036. Let's continue that discussion over there so that this stays about pm5341 updates.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants