Bug 1678623 (strip-nondeterminism)

Summary: Review Request: strip-nondeterminism - File non-deterministic information stripper
Product: [Fedora] Fedora Reporter: Dridi Boukelmoune <dridi.boukelmoune>
Component: Package ReviewAssignee: Petr Pisar <ppisar>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: ngompa13, package-review, perl-devel, ppisar, sergio
Target Milestone: ---Flags: ppisar: fedora-review-
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-04-23 12:48:16 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 201449    

Description Dridi Boukelmoune 2019-02-19 09:00:07 UTC
Spec URL: https://dridi.fedorapeople.org/review/strip-nondeterminism.spec
SRPM URL: https://dridi.fedorapeople.org/review/strip-nondeterminism-1.1.1-1.fc29.src.rpm
Description:
File::StripNondeterminism is a Perl module for stripping bits of
nondeterministic information, such as timestamps and file system
order, from files such as gzipped files, ZIP archives, and Jar files.
It can be used as a post-processing step to make a build reproducible,
when the build process itself cannot be made deterministic.  It is used
as part of the Reproducible Builds project.

This package installs the stand-alone strip-nondeterminism command line
utility.

strip-nondeterminism contains the File::StripNondeterminism Perl module, the
strip-nondeterminism command line utility, and the dh_strip_nondeterminism
Debhelper add-on.

Fedora Account System Username: dridi

This is a missing dependency of debhelper that I have been using locally for a month or so to build debs locally.

Scratch build for rawhide: https://koji.fedoraproject.org/koji/taskinfo?taskID=32902173

I'm using it on f29.

Comment 1 Neal Gompa 2019-02-19 11:51:34 UTC
Taking this review.

Comment 2 Sergio Basto 2019-02-20 03:43:10 UTC
It would be nice if we support epel 7 at least, I got this error [1] complete logs [2] 
Thanks

[1]
BUILDSTDERR:     Installed (but unpackaged) file(s) found:
BUILDSTDERR:    /usr/lib64/perl5/vendor_perl/auto/File/StripNondeterminism/.packlist

[2] 
https://copr-be.cloud.fedoraproject.org/results/sergiomb/debs/epel-7-x86_64/00860413-strip-nondeterminism/
https://copr-be.cloud.fedoraproject.org/results/sergiomb/debs/epel-7-x86_64/00860413-strip-nondeterminism/build.log.gz

Comment 3 Petr Pisar 2019-02-20 08:44:37 UTC
(In reply to Sergio Monteiro Basto from comment #2)
> BUILDSTDERR:     Installed (but unpackaged) file(s) found:
> BUILDSTDERR:   
> /usr/lib64/perl5/vendor_perl/auto/File/StripNondeterminism/.packlist
> 
See <https://fedoraproject.org/wiki/Perl/Tips#ExtUtils::MakeMaker>. I.e. if you use NO_PACKLIST=1, you have to buil-require perl(ExtUtils::MakeMaker) >= 6.76.

Comment 4 Dridi Boukelmoune 2019-02-20 11:03:45 UTC
I'm ok with epel7, I would have objected to maintain it for epel6 myself :)

And the packlist question is exactly why I asked for perl-experienced co-maintainers for this package, sbuild and apt. I can dig that kind of problems but it will take me much more time when the midden hits the windmill.

Comment 5 Petr Pisar 2019-02-22 09:46:07 UTC
Neal seems interested in reviewing this package. Thus only few notes from me:

The URL value point to an umbrella project, not the the strip-nondeterminism itself. I'd rather use <https://salsa.debian.org/reproducible-builds/strip-nondeterminism> as the URL value.

The Makefile.PL has some dependencies you missed. Please build-require "perl(strict)" and "perl(warnings)".

The perl-File-StripNondeterminism subpackage delivers Perl modules into a standard Perl look-up path. That means the subpackage must run-require perl(:MODULE_COPMAT...). See <https://docs.fedoraproject.org/en-US/packaging-guidelines/Perl/#_versioned_module_compat_requires> for the specific spec code to use.

The perl-File-StripNondeterminism package must own the File subdirectory. Use "%{perl_vendorlib}/*" instead of "%{perl_vendorlib}/File/*" in the %files sections.

You should execute tests. Add %check section with "make test" and build-require "make" and all the Perl modules used when running the tests (e.g. "perl(Test::More)". Don't forget the tests execute some scripts, e.g. bin/strip-nondeterminism, so you also need build-require their dependencies. We have a "tangerine" tool that can help you to scan the files for the used Perl modules.

Comment 6 Neal Gompa 2019-02-22 09:47:30 UTC
@Petr, I'm happy to hand this off to you, as I only grabbed it because he seemed to be asking for reviewers. An expert is always better. :)

Comment 7 Petr Pisar 2019-02-22 09:54:16 UTC
Ok. Dridi, please update the spec file according to above mentioned advice and notify me here after doing so. I will then resume the full-featured formal review.

Comment 8 Sergio Basto 2019-03-12 04:22:47 UTC
Dridi, you need update strip-nondeterminism.spec according to above mentioned, to continue the review , until Peter approve this package .

Comment 9 Dridi Boukelmoune 2019-03-13 08:25:43 UTC
Hello Sergio and Petr, I have been away for a couple weeks but now that I am back I'm planning to make progress on this review request and a bunch of others (both as reviewer or submitter).

Thank you for the initial review, I will try to be more reactive and update the spec and SPRM soon. Apologies for the non-responsiveness until now.

Comment 10 Sergio Basto 2020-01-22 23:49:57 UTC
Dridi, can I take this review , i.e. do a new review and close this one ? 

Thanks,

Comment 11 Petr Pisar 2020-04-22 14:34:39 UTC
Dridi, if you don't write that you want continue in this review, I will close it as a dead one.

Comment 12 Dridi Boukelmoune 2020-04-23 12:37:47 UTC
Apologies for the long silence, I'm barely keeping my Fedora commitments afloat these days.

Feel free to either take over or close this ticket.