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]

 



I wanted to sum up my understanding of the thread so far, and changes I intend to work on:

The current implementation generates a version if the library's full name ends with ".so." followed by numbers separated by dots. After discussion, it seems like a more logical approach is to ensure that the soname is a symlink, ensure that the basename of the destination does not match the soname, and to use the suffix of that file if there is a numeric ending after ".so." (whether or not there are dots.)  If the soname isn't a symlink, then an update wouldn't have any way to provide a version that advances. This change will improve handling of sonames that have a dotted-numeric suffix.  I'll update the PR shortly; this should be a fairly small change.

Due to Fedora's FTBFS policy, it may take more than one release to globally enable the _elf_require_fallback_versions macro.  In the release after the _elf_provide_fallback_versions macro is globally enabled, we could review the number of packages that provide libraries which failed to build, and decide whether it was worth globally enabling the require macro and opting out a number of dependent packages or, more likely, putting off enabling the require macro for another release.  I'll update the proposal to reflect the possibility of a longer deployment timeline.  (I'm not clear on the subject of whether or not I should add the proposal to the wiki, given that the change has not yet merged upstream.)

Shared objects might not be built by libtool, and may provide versions, so references to libtool in the PR will be renamed to improve accuracy.

I want to follow up on Fedora's rpminspect tests to ensure that sub-packages are being checked, since I can't find abidiff reports for the package that I used as an example.  I'll also explore the possibility of detecting backward-compatible ABI changes that don't have a change in their full name, which would support this proposal.


There were also some points made that probably bear further discussion, which I think might not have consensus right now:

While some developers are concerned that retaining the full version taken from the fullname will make it difficult to downgrade packages, which might make debugging more difficult, others believe that interface changes might occur with any version change.  This might bear further discussion.  One possible approach would be to add a flag to truncate groups of digits from the Requires generated, and let the distribution set that or not.

There's been a suggestion that versions should be added to dependencies with versioned symbols, which are currently exempt from this change.

There were several suggestions to use the rpm version instead of a version taken from the full name of the library.  The original change suggested to RPM did that; the developers didn't like it. There's concern that the proposal as-is will make it more difficult to provide alternate implementations of a shared library; I think that using rpm versions would make that even more difficult (though using the version of the providing rpm package definitely has some advantages as well).

There was also a suggestion to add a literal string, "soname", to either the version or the requirement in order to better indicate the source of the versioned dependency.
_______________________________________________
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