Re: Feedback wanted for a proposed improvement to RPM's ELF dependency generator

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On  2023-02-18 04:40, Björn Persson wrote:
The Detailed Description describes the problem thoroughly, but fails to
describe the solution.

Thanks. I'll make sure that it does before formally proposing it, assuming that we proceed to that point.

Unanswered questions include:

· What exactly will be added to the dependencies?
· How will the dependencies be generated?
· Will packages require the version of a library that was present when
   they were built, even if they don't use any new interfaces?
· Will they require that exact version, or that version or newer?
· Will this make it even harder to achieve the ideal of reproducible
   builds?

For shared libraries without versioned symbols, the provides will change from:

  Provides: libnghttp2.so.14()(64bit)

to:

  Provides: libnghttp2.so.14()(64bit) >= 14.24.1

... while requirements on that package will change from:

  Requires: libc.so.6(GLIBC_2.3.4)(64bit)
  Requires: libnghttp2.so.14()(64bit)

to:

  Requires: libc.so.6(GLIBC_2.3.4)(64bit)
  Requires: libnghttp2.so.14()(64bit) >= 14.24.1

Note that dependencies that do have versioned symbols are not affected by this change.

Dependencies are generated using dlmopen() to locate a required library named in an ELF header, and then resolving the symlink to a full path. If the full path ends in ".so.x.y.z", where "x.y.z" is a series of numbers separated by dots, then the numbers and dots suffix is treated as a version number for that library.

Packages will require a version of their ELF dependencies equal to or greater than the version present in their build environment.

This is not expected to make it more difficult to achieve reproducible builds, because reproducible builds require that the build environment have the same contents in order to have the same output. If anything, this provides a strong hint as to what the build root looked like in cases where the information is present.
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
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/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux