On Mon, Mar 11, 2024 at 12:29:49PM +0100, Petr Pisar wrote:
> V Fri, Mar 08, 2024 at 04:54:04PM +0000, Zbigniew Jędrzejewski-Szmek
> napsal(a):
> > On Fri, Mar 08, 2024 at 09:07:30AM +0100, Petr Pisar wrote:
> > > (2) Both perl-Alien-pkgconf NEVRAs reports a differing
> > > /usr/lib64/perl5/vendor_perl/auto/share/dist/Alien-pkgconf/status.json
> > > content. That content looks likes this:
> > >
> > >
> > > {"libs":"-lpkgconf","version":"2.1.0","install_type":"system","cflags":"-I/usr/include/pkgconf","dll":"/lib64/libpkgconf.so.4.0.0"}
> > >
> > > That means you had to perform rebuilds of the same NEVRA with different
> > > libpkgconf-devel packages in the build roots. That looks like a bug in
> > > your
> > > mini rebuild scheduler.
> >
> > Diffoscope says:
> >
> > ├── ./usr/lib64/perl5/vendor_perl/auto/share/dist/Alien-pkgconf/status.json
> > │ ├── Pretty-printed
> > │ │┄ Ordering differences only
> > │ │ @@ -1,7 +1,7 @@
> > │ │ {
> > │ │ "libs": "-lpkgconf",
> > │ │ + "dll": "/lib64/libpkgconf.so.4.0.0",
> > │ │ "version": "2.1.0",
> > │ │ - "install_type": "system",
> > │ │ "cflags": "-I/usr/include/pkgconf",
> > │ │ - "dll": "/lib64/libpkgconf.so.4.0.0"
> > │ │ + "install_type": "system"
> > │ │ }
> >
> > It would be great to sort the dictionary to avoid this randomness.
> >
> You are right. I completely forgot the ordering. I fixed it in
> perl-Alien-pkgconf-0.19-10.fc41.
Ah, cool, thanks! I can confirm that with
perl-Alien-pkgconf-0.19-10.fc41, rpmdiff reports no differences.
> > > (4) dnf5-5.1.13-1.fc41.src reports changes in Requires (e.g. "removed
> > > REQUIRES createrepo_c"). That again looks like you built the same NEVRA in
> > > different build roots (for some reason "%bcond_without tests" flipped).
> >
> > Yes, the build root is different. I install the package set that was
> > used for the main package build and just call mock with that and it
> > does both srpm and the binary rpms there. But koji does the srpm build
> > in a separate buildroot that is smaller.
> >
> Using SRPMs from a different archicture won't work as you find out. You need
> to unpack the SRPM and do "dnf builddep THE_UNPACKED_SPEC_FILE". But then you
> will have a different build root content comparing to the Koji build.
>
> So I guess an architecture of the builder needs to be handled as a piece of
> the reproducibility environment (i.e. reproducing a noarch package built on
> s390x on s390x, not on x86_64), or you can assume that noarch builds should
> not differ among builder archictures and then ignore the build root content
> and only focus on the resulting binary package.
Yes, but that'd be a bummer. If we were strict about this, the number
of packages that can be rebuilt would go down by a large percentage.
So I think we need to take some hybrid approach, where we try to redo
the srpm build on a different architecture.
Zbyszek
P.S. I pasted this in the Matrix channel already, but here is a summary
of the rebuild:
#################### SUMMARY ####################
total builds: 1810
reproducible: 989 (55%)
only src metadata: 76 (4%)
irreproducible: 745 (41%)
by rpm:
total rpms: 12259
src, non-src: 1810 (15%), 10449 (85%)
reproducible: 8879 (72%)
only src metadata: 279 (2%)
irreproducible: 3101 (25%)
rpms with irreproducibility:
src_metadata: 288
static_library: 529
jar_library: 718
mingw_binary: 92
debuginfo_metadata: 205
debuginfo_hash: 775
javadoc_html: 338
doc_pdf: 7
rpm_metadata: 24
payload_paths: 32
payload_mods: 1286
unknown: 13
If we ignore the bogus metadata on srpms, we're 59% reproducible by
package, and 75% reproducible counting individual rpms. The next order
of business is to handle those static libraries and jars, which should
make a sizeable dent in the remaining list. I started working on some
tooling for this on the weekend.
Zbyszek
--
_______________________________________________
devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct:
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives:
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam, report it:
https://pagure.io/fedora-infrastructure/new_issue