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