action #66325
closedAdd missing dependencies to os-autoinst spec
0%
Description
In Fedora's os-autoinst spec file, we add several dependencies that we feel should be there, but are missing in the upstream spec. Rather than sending a pull request right away with all of them, I figured I'd file a ticket so we can poke through them and decide which it makes sense to upstream.
I recently moved them to special macros to make it easier to compare downstream and upstream. Here's the current set, with comments:
%define build_requires_additional perl(ExtUtils::MakeMaker) perl(ExtUtils::Embed)
ExtUtils::MakeMaker is explicitly imported in ppmclibs/Makefile.PL, and listed in cpanfile
, but not in the packaged RPM spec. ExtUtils::Embed is used in configure.ac to determine PERL_CFLAGS
, and the RPM spec does run autoreconf -i
in %prep, so it seems like this must be required.
%define requires_additional perl(base) perl(Carp) perl(Cwd) perl(English) perl(Errno) perl(Fcntl) perl(File::Temp) perl(integer) perl(Mojo::JSON) perl(Mojo::Log) perl(POSIX) perl(Scalar::Util) perl(Socket) perl(strict) perl(Time::HiRes) perl(warnings)
these are mostly things one of our perl team added to the spec recently. I figure a lot of them are stuff that currently comes baked into perl itself or the core libs, but having an explicit dependency isn't a bad thing in case something gets broken out into a separate package or whatever. Note there may be a "perl(base)" vs. "perl-base" thing here (we don't have a 'perl-base' package).
%define test_requires_additional perl(FindBin) perl(Test::Mojo) perl(Test::More) /usr/bin/qemu-system-i386
qemu-system-i386 we have because we can run the fullstack and qemu-options tests in the Fedora buildsystem, whereas SUSE can't. Perhaps this would be a candidate for conditionalizing? We could have a %qemu_requires
or something which is defined differently on SUSE and Fedora, but the main %test_requires
definition could be the same, for ease of comparison.
FindBin is explicitly imported by several tests. Test::Mojo is imported by t/07-commands.t. Test::More is explicitly imported by lots of tests.
Updated by tinita almost 5 years ago
We recently refactored the dependencies in openQA, and I would like to do the same for os-autoinst, so the spec file will likely get a more complete list of dependencies soon.
A quite complete list of dependencies can be generated with Perl::PrereqScanner::NotQuiteLite. It supports cpanfile and JSON output.
cpanm -n -l local Perl::PrereqScanner::NotQuiteLite
local/bin/scan-perl-prereqs-nqlite --cpanfile --scan-also ppmclibs >cpanfile.new
vimdiff cpanfile cpanfile.new
It adds a lot to test dependencies, where I think it's enough to specify them in the main dependencies.
But it can be helpful to identify which modules we should add.
Updated by tinita over 4 years ago
- Status changed from New to Feedback
- Assignee set to tinita
- Target version set to Current Sprint
I created https://github.com/os-autoinst/os-autoinst/pull/1420
This should add all the dependencies you mentioned.
Updated by tinita over 4 years ago
- Status changed from Feedback to Resolved
Set to resolved. Please reopen if necessary :)
Updated by AdamWill over 4 years ago
Whoops, sorry! I did see your previous comment and checked the changes over and they look great, thanks - I just forgot to write a comment here after I did it! :)