Re: Proposal: dnf should offer to update all of the dependencies of any package installed or updated

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

 



* Gordon Messmer:

> On 2023-01-28 13:03, Zbigniew Jędrzejewski-Szmek wrote:
>>> ...or "(libfoo.so.2()(64bit) with foo-libs >= x.y.z)", where x.y.z is the
>>> version of the package that provides libfoo.so.2 in the build root, which is
>>> an idea that's growing on me.
>> This is indeed a shortcoming in the rpm symbol dependency generation scheme.
>> But there's a problem with the proposed approach: versioning as major.minor.micro
>> is just a convention, and not all upstream follow it.
>
>
> The version doesn't have to be major.minor.micro, though.  The
> dependency generator only needs to get the version of the package that
> provides the .so, and use that version.  As long as changes within a
> so version are always backward compatible, and the so version is
> bumped when breaking changes are made (which are already constraints
> on the existing system), then the proposed solution is reliable.  It's
> sometimes too strict -- it might require 1.4.3 when 1.4.0 is
> compatible -- but it's reliable.

We already do this for glibc in rawhide, for the symbol version under
development.

# Auto-generating dependencies for glibc development snapshots.
#
# A glibc development snapshot (say version 2.33.9000) may define
# symbols in its under-development symbol version (GLIBC_2.34).  RPM
# automatically derives RPM dependencies such as
# libc.so.6(GLIBC_2.34)(64bit) from that.  While the GLIBC_2.34
# version is under development, these dependencies may be inaccurate
# and could be satisfied by glibc RPM package versions that lack the
# symbols because they were created from an earlier development
# snapshot that had some other GLIBC_2.34 symbols.  Therefore, if the
# latest, under-development ELF symbol version is detected, this
# dependency generator adds an explicit RPM dependencies on the glibc
# packaging version against which an RPM package is built.

<https://src.fedoraproject.org/rpms/glibc/blob/rawhide/f/glibc.req.in>

This is an example build:

  util-linux-2.38.1-1.fc37
  <https://koji.fedoraproject.org/koji/buildinfo?buildID=2042005>

(util-linux-core in particular.)

Right now, this isn't used much, but it when it is, it causes issues for
developers who use the rawhide compose in chroots and newer builds leak
into the chroot from the buildroot without a full chroot update.
Manually ELN tagging can cause similar issues, so we no longer embed the
dist tag in the auto-generated versions.

Thanks,
Florian
_______________________________________________
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