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

Data::OptList cannot be installed against perl built with NO_TAINT_SUPPORT #3

Closed
jkeenan opened this issue Apr 29, 2023 · 2 comments
Closed

Comments

@jkeenan
Copy link

jkeenan commented Apr 29, 2023

Last week I built a perl with this configuration:

$ uname -mrs
Linux 5.19.0-41-generic x86_64

$ ./bin/perl -Ilib -v | head -2 | tail -1
This is perl 5, version 37, subversion 12 (v5.37.12 (v5.37.11-5-gcf4572e56a)) built for x86_64-linux

$ ./bin/perl -Ilib -V:config_args
config_args='-des -Dusedevel -Accflags=-DNO_TAINT_SUPPORT -Dprefix=/home/jkeenan/testing/blead -Uversiononly -Dman1dir=none -Dman3dir=none';

I installed cpanm against that perl, then tried to install Task::CPAN::Reporter against that perl. The installation failed. The first module to FAIL in that attempt appears to have been Data::OptList.

$ ./bin/cpanm Test::Reporter::Transport::Metabase
--> Working on Test::Reporter::Transport::Metabase
Fetching http://www.cpan.org/authors/id/D/DA/DAGOLDEN/Test-Reporter-Transport-Metabase-1.999010.tar.gz ... OK
Configuring Test-Reporter-Transport-Metabase-1.999010 ... OK
==> Found dependencies: Metabase::User::Profile, Metabase::User::Secret, Metabase::Client::Simple, CPAN::Testers::Report
--> Working on Metabase::User::Profile
Fetching http://www.cpan.org/authors/id/D/DA/DAGOLDEN/Metabase-Fact-0.025.tar.gz ... OK
Configuring Metabase-Fact-0.025 ... OK
==> Found dependencies: Data::GUID
--> Working on Data::GUID
Fetching http://www.cpan.org/authors/id/R/RJ/RJBS/Data-GUID-0.051.tar.gz ... OK
Configuring Data-GUID-0.051 ... OK
==> Found dependencies: Sub::Exporter
--> Working on Sub::Exporter
Fetching http://www.cpan.org/authors/id/R/RJ/RJBS/Sub-Exporter-0.989.tar.gz ... OK
Configuring Sub-Exporter-0.989 ... OK
==> Found dependencies: Data::OptList
--> Working on Data::OptList
Fetching http://www.cpan.org/authors/id/R/RJ/RJBS/Data-OptList-0.113.tar.gz ... OK
Configuring Data-OptList-0.113 ... OK
Building and testing Data-OptList-0.113 ... FAIL
! Installing Data::OptList failed. See /home/jkeenan/.cpanm/work/1682727875.48095/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Module 'Data::OptList' is not installed
! Bailing out the installation for Sub-Exporter-0.989.
! Installing the dependencies failed: Module 'Sub::Exporter' is not installed
! Bailing out the installation for Data-GUID-0.051.
! Installing the dependencies failed: Module 'Data::GUID' is not installed
! Bailing out the installation for Metabase-Fact-0.025.
--> Working on Metabase::Client::Simple
Fetching http://www.cpan.org/authors/id/D/DA/DAGOLDEN/Metabase-Client-Simple-0.012.tar.gz ... OK
Configuring Metabase-Client-Simple-0.012 ... OK
==> Found dependencies: Metabase::User::Secret, Metabase::User::Profile, URI
--> Working on URI
Fetching http://www.cpan.org/authors/id/O/OA/OALDERS/URI-5.17.tar.gz ... OK
Configuring URI-5.17 ... OK
Building and testing URI-5.17 ... FAIL
! Installing URI failed. See /home/jkeenan/.cpanm/work/1682727875.48095/build.log for details. Retry with --force to force install it.
! Installing the dependencies failed: Module 'URI' is not installed, Module 'Metabase::User::Profile' is not installed, Module 'Metabase::User::Secret' is not installed
! Bailing out the installation for Metabase-Client-Simple-0.012.
--> Working on CPAN::Testers::Report
Fetching http://www.cpan.org/authors/id/D/DA/DAGOLDEN/CPAN-Testers-Report-1.999003.tar.gz ... OK
Configuring CPAN-Testers-Report-1.999003 ... OK
==> Found dependencies: Metabase::Fact::Hash, Metabase::Fact::String, Metabase::Report
! Installing the dependencies failed: Module 'Metabase::Fact::Hash' is not installed, Module 'Metabase::Fact::String' is not installed, Module 'Metabase::Report' is not installed
! Bailing out the installation for CPAN-Testers-Report-1.999003.
! Installing the dependencies failed: Module 'CPAN::Testers::Report' is not installed, Module 'Metabase::Client::Simple' is not installed, Module 'Metabase::User::Secret' is not installed, Module 'Metabase::User::Profile' is not installed
! Bailing out the installation for Test-Reporter-Transport-Metabase-1.999010.
...
==> Found dependencies: Data::OptList
Searching Data::OptList (0.100) on cpanmetadb ...
--> Working on Data::OptList
Fetching http://www.cpan.org/authors/id/R/RJ/RJBS/Data-OptList-0.113.tar.gz
-> OK
Unpacking Data-OptList-0.113.tar.gz
Entering Data-OptList-0.113
Checking configure dependencies from META.json
Checking if you have ExtUtils::MakeMaker 6.78 ... Yes (7.70)
Configuring Data-OptList-0.113
Running Makefile.PL
...
t/00-report-prereqs.t .. ok
t/hash.t ............... ok
This perl was compiled without taint support. Cowardly refusing to run with -t or -T flags.
t/mkopt.t .............. 
Dubious, test returned 29 (wstat 7424, 0x1d00)
No subtests run 

Test Summary Report
-------------------
t/mkopt.t            (Wstat: 7424 (exited 29) Tests: 0 Failed: 0)
  Non-zero exit status: 29
  Parse errors: No plan found in TAP output
Files=3, Tests=14,  0 wallclock secs ( 0.01 usr  0.00 sys +  0.08 cusr  0.01 csys =  0.10 CPU)
Result: FAIL
Failed 1/3 test programs. 0/14 subtests failed.
make: *** [Makefile:859: test_dynamic] Error 29
-> FAIL Installing Data::OptList failed. See /home/jkeenan/.cpanm/work/1682727875.48095/build.log for details. Retry with --force to force install it.
...

This in turn led to failures in other Task::CPAN::Reporter prerequisites, including:

-> FAIL Bailing out the installation for Sub-Exporter-0.989.
-> FAIL Installing the dependencies failed: Module 'Sub::Exporter' is not installed
-> FAIL Bailing out the installation for Data-GUID-0.051.
-> FAIL Installing the dependencies failed: Module 'Data::GUID' is not installed
-> FAIL Bailing out the installation for Metabase-Fact-0.025.

I note that there may be other NO_TAINT_SUPPORT-related failures in other, distinct prerequisites for Task::CPAN::Reporter, so simply fixing this distro may not suffice re doing CPANtesters reporting against this type of build.

I believe @DrHyde has been looking into this kind of problem, but I don't know if we've established any S.O.P. as to how to write tests against this kind of perl.

@DrHyde
Copy link

DrHyde commented Apr 29, 2023

With NO_TAINT_SUPPORT Perl dies loudly as soon as it sees -t. You may have more luck with SILENT_ NO_TAINT_SUPPORT. Also see the PR I've raised against IPC::System::Simple, you may be able to adapt how I fixed its tests.

@rjbs
Copy link
Owner

rjbs commented May 6, 2023

I've removed "-T" from the test shebangs.

@rjbs rjbs closed this as completed May 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants