From mdomonko at redhat.com Wed Feb 7 15:05:14 2024 From: mdomonko at redhat.com (Michal Domonkos) Date: Wed, 7 Feb 2024 16:05:14 +0100 Subject: RPM 4.19.1.1 released! Message-ID: This is a bug fix only release addressing a number of regressions, memory leaks and build system issues, namely: * Packaging: Don't warn about missing user/group on [...] [Regression] (#2814) * Packaging: Make user/group lookup caching thread-safe [Regression] (#2843) * Lua interface: Fix regression in Lua scriptlet [...] [Regression] (#2818) * Build: CMakeLists.txt: restore readline support [...] [Regression] (#2852) * Build: Fix unconditional uses of Linux-specific [...] [Regression] (#2812) * Build: Add missing include for check_symbol_exists (#2831) * Build: Don't use _nl_msg_cat_cntr if it's not available (#2856) For download information, visit: https://rpm.org/wiki/Releases/4.19.1.1 From tim at tim-landscheidt.de Tue Feb 20 13:50:55 2024 From: tim at tim-landscheidt.de (Tim Landscheidt) Date: Tue, 20 Feb 2024 13:50:55 +0000 Subject: Macro for a binary package's documentation directory name? Message-ID: <87edd7kzwg.fsf@vagabond.tim-landscheidt.de> Hi, on Fedora 38, the binary package python3-collada ships a broken symlink (CHANGELOG.rst): | $ rpm -qlv python3-collada | grep /usr/share/doc/python3-collada | drwxr-xr-x 2 root root 0 Jan 20 2023 /usr/share/doc/python3-collada | -rw-r--r-- 1 root root 428 Nov 12 2021 /usr/share/doc/python3-collada/AUTHORS.md | lrwxrwxrwx 1 root root 18 Nov 12 2021 /usr/share/doc/python3-collada/CHANGELOG.rst -> docs/changelog.rst | -rw-r--r-- 1 root root 1095 Nov 12 2021 /usr/share/doc/python3-collada/README.markdown | $ So I wanted to fix this by: | diff --git a/python-collada.spec b/python-collada.spec | index 1f6a6bf..6178381 100644 | --- a/python-collada.spec | +++ b/python-collada.spec | @@ -58,6 +58,7 @@ as well as in-place editing. | %install | %py3_install | +install -p -m 0644 -t '%{buildroot}%{_pkgdocdir}' -D CHANGELOG.rst | %check | @@ -66,7 +67,8 @@ as well as in-place editing. | %files -n python%{python3_pkgversion}-collada | %license COPYING | -%doc AUTHORS.md CHANGELOG.rst README.markdown | +%doc AUTHORS.md README.markdown | +%doc %{_pkgdocdir}/CHANGELOG.rst | %{python3_sitelib}/* But this installs CHANGELOG.rst in /usr/share/doc/python-collada (not python3-collada): | $ rpm -qlpv noarch/python3-collada-0.7.2-5.fc38.noarch.rpm | grep /doc | -rw-r--r-- 1 root root 8133 Nov 12 2021 /usr/share/doc/python-collada/CHANGELOG.rst | drwxr-xr-x 2 root root 0 Jan 20 2023 /usr/share/doc/python3-collada | -rw-r--r-- 1 root root 428 Nov 12 2021 /usr/share/doc/python3-collada/AUTHORS.md | -rw-r--r-- 1 root root 1095 Nov 12 2021 /usr/share/doc/python3-collada/README.markdown | $ as %_pkgdocdir is defined by appending the source package's name, not the binary's name: | $ grep -R pkgdocdir /usr/lib/rpm | /usr/lib/rpm/redhat/macros:%_pkgdocdir %{_docdir}/%{name} | $ But obviously, rpm(build) must know the binary package's di- rectory name as it installs %doc files given by only by their base filename there (AUTHORS.md and README.markdown in this example). So how/with which macro can I access a binary package's do- cumentation directory name in a spec file? TIA, Tim From mhroncok at redhat.com Wed Feb 21 09:54:16 2024 From: mhroncok at redhat.com (=?UTF-8?Q?Miro_Hron=C4=8Dok?=) Date: Wed, 21 Feb 2024 10:54:16 +0100 Subject: Guiding co-dependent RPM packages to swap nicely Message-ID: Hello. Assume I have two "stacks" of RPM packages available: postgresql16 provides postgresql-any version 16 conflicts with other postgresql-any postgresql16-plugin provides postgresql-any-plugin requires postgresql16 conflicts with other postgresql-any-plugin postgresql20 provides postgresql-any version 20 conflicts with other postgresql-any postgresql20-plugin provides postgresql-any-plugin requires postgresql20 conflicts with other postgresql-any-plugin On my system, I have postgresql16 and postgresql16-plugin installed and I want to "upgrade" to postgresql20*. Using my distribution package manager, I would want to run something like: dnf swap postgresql16 postgresql20 However that will fail, as the package manager does not know I want to also swap postgresql16-plugin with postgresql20-plugin. Is there something I can do as a package maintainer to "guide" the co-dependent swap case? I was thinking something like: postgresql20-plugin: Obsoletes: (postgresql-any-plugin if postgresql-any != 20) However that is not possible in RPM, "No rich dependencies allowed for this type: Obsoletes". Is there anything else? Thanks, -- Miro Hron?ok -- Phone: +420777974800 IRC: mhroncok