Project

General

Profile

Actions

action #66325

closed

Add missing dependencies to os-autoinst spec

Added by AdamWill about 4 years ago. Updated almost 4 years ago.

Status:
Resolved
Priority:
Low
Assignee:
Category:
Regressions/Crashes
Target version:
Start date:
2020-04-30
Due date:
% Done:

0%

Estimated time:

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.

Actions #1

Updated by tinita almost 4 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.

Actions #2

Updated by tinita almost 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.

Actions #3

Updated by tinita almost 4 years ago

  • Status changed from Feedback to Resolved

Set to resolved. Please reopen if necessary :)

Actions #4

Updated by AdamWill almost 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! :)

Actions #5

Updated by tinita almost 4 years ago

No problem :)

Actions

Also available in: Atom PDF