Automatic virtual provides for RPM macros?
by Miro Hrončok
Hello,
today at Nest, somebody said "unfortunately, there is no way to tell what
package to install to get a particular RPM macro".
I think that having an RPM provides generator for "rpm-macro(__python3)" or
similar should be a fairly simple exercise.
Would you folks consider that useful?
--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
6 months, 3 weeks
Where are the old package versions?
by Travis Sidelinger
Packagers,
Recently I needed to test to see if the new version of Wine-8.0rc4 broke my
games.
"dnf downgrade wine" should do the trick.
Wait...
# dnf list --showduplicates wine | column -t
Available Packages
wine.i686 7.2-1.fc36 fedora
wine.x86_64 7.2-1.fc36 fedora
wine.i686 8.0-0.rc4.1.fc36 updates
wine.x86_64 8.0-0.rc4.1.fc36 updates
Wine-7.2 is much older. But where did the previous versions (7.22) go?
Why are old versions being removed from the repo?
Is there another repo we can use to access all package versions?
-Travis
8 months
Are there any statistics on what proportion of Fedora packages are using rpmautospec macros?
by Anne Mulhern
Hi!
I can tell that some packages are and some aren't, and that's as far as I can get.
Also, I'm trying to understand how rpmautospec would help me. I grasp that the idea is to avoid manually updating the changelog and release value. But what I don't understand is how that actually improves my workflow other than dispensing w/ some minor editing. Usually, I need to run rust2rpm also, and that will tend to lay down plenty of changes, which I have to evaluate anyway. Or there's some other special handling that the spec file requires on an update.
So, another question might be, who uses rpmautospec to their considerable benefit and how?
Thanks,
- mulhern
8 months, 1 week
Re: Changes in the Fedora Packaging Guidelines
by Miro Hrončok
On 17. 01. 23 15:53, Olivier Fourdan wrote:
> Hi Miro
>
> On Mon, Jan 16, 2023 at 8:18 PM Miro Hrončok <mhroncok(a)redhat.com> wrote:
>>
>> […]
>>
>> -------------------------------------------------------------------------------
>>
>> Packages are told not to conditionalize Sources definitions
>> (e.g. on %fedora or %rhel).
>>
>> https://docs.fedoraproject.org/en-US/packaging-guidelines/SourceURL/#_do_...
>> https://pagure.io/packaging-committee/pull-request/1163
>>
>> -------------------------------------------------------------------------------
>
> The example there on how to do that correctly would not work with
> %autosetup though.
That is exactly why the example does not use %autosetup.
If you'd like to use %autosetup, you could use something like this:
Patch: I-am-always-applied.patch
Patch: So-am-I.patch
Patch: This-patch-is-also-always-applied.patch
# RHEL-only patches
Patch201: This-patch-is-not-applied-on-Fedora.patch
Patch202: This-patch-is-only-for-the-enterprise.patch
%prep
%autosetup -N <--- don't apply patches
%autopatch -M 200 <--- apply patches up until 200
%if 0%{?rhel}
%autopatch -m 201 <--- apply patches >= 201
%endif
Or even:
...
%prep
%autosetup -N
%autopatch %{!?rhel:-M 200}
--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
8 months, 2 weeks
Should macro packages co-own /usr/lib/rpm/macros.d, require rpm or do nothing?
by Miro Hrončok
Hello packagers,
I'd like some guidance wrt RPM packages installing macro files to
%{rpmmacrodir} (/usr/lib/rpm/macros.d).
Technically this directory is owned by rpm. So following the guidelines at
https://docs.fedoraproject.org/en-US/packaging-guidelines/#_file_and_dire...
such packages should either explicitly require rpm or co-won the directory.
However, our ...-macros packages don't usually do either. Should they? Or is
the "this is RPM, it's always going to be there" argument stronger than the
rules? Is RPM actually always guaranteed to be there?
We currently have:
$ repoquery --repo=rawhide -q -f '/usr/lib/rpm/macros.d/*' | pkgname
GConf2
Lmod
MUMPS-srpm-macros
adobe-mappings-cmap-devel
adobe-mappings-pdf-devel
ansible-packaging
ansible-srpm-macros
blender-rpm-macros
blis-srpm-macros
build-constraints-rpm-macros
build2-rpm-macros
clang-devel
cmake-rpm-macros
color-filesystem
copr-frontend-devel
cups-devel
drupal7
drupal7-rpmbuild
efi-srpm-macros
emacs-common
environment-modules
erlang-rpm-macros
fdupes
fedora-gnat-project-common
fedora-release-common
fedora-rpm-macros
ffcall-devel
firewalld-filesystem
folly-rpm-macros
folly-srpm-macros
fonts-rpm-macros
fonts-srpm-macros
fpc-srpm-macros
g2clib-devel
gap-rpm-macros
generic-release-common
ggz-base-libs-devel
ghc-rpm-macros
ghc-rpm-macros-extra
ghc-srpm-macros
gimp-devel
gnat-srpm-macros
gnustep-make
go-rpm-macros
go-srpm-macros
grantlee-qt5-devel
grass-devel
hdf5-devel
httpd-devel
javapackages-bootstrap
javapackages-common
javapackages-filesystem
javapackages-tools
kde-apps-rpm-macros
kde-filesystem
kdevelop-devel
kernel-rpm-macros
kernel-srpm-macros
keyrings-filesystem
kf5-kinit-devel
kf5-rpm-macros
kmodtool
ldc
libint-devel
libint2-devel
liblxqt-devel
libvmaf-devel
lpf
lua-rpm-macros
lua-srpm-macros
meson
mingw-filesystem-base
mingw32-filesystem
mingw32-python3
mingw32-python3-build
mingw64-filesystem
mingw64-python3
mingw64-python3-build
mpich-devel
multilib-rpm-config
musl-devel
nginx-mod-devel
nim-srpm-macros
ninja-build
nodejs-packaging
ocaml-srpm-macros
octave-devel
openblas-srpm-macros
openmpi-devel
osc
package-notes-srpm-macros
pam
perl-Future-AsyncAwait-ExtensionBuilder
perl-Object-Pad-ExtensionBuilder
perl-XS-Parse-Keyword-Builder
perl-XS-Parse-Sublike-Builder
perl-macros
perl-srpm-macros
pesign
php-devel
php-pear
pkgconf
polkit-qt-devel
postgresql-server-devel
postgresql-test-rpm-macros
postgresql-upgrade-devel
pyproject-rpm-macros
pypy-devel
pypy3.9-devel
python-pyqt6-rpm-macros
python-qt5-rpm-macros
python-rpm-macros
python-srpm-macros
python2.7
python3-rpm-macros
qt-devel
qt5-qtbase-common
qt5-qtwebengine-devel
qt5-rpm-macros
qt5-srpm-macros
qt6-qtbase-common
qt6-rpm-macros
qt6-srpm-macros
redhat-rpm-config
redis-devel
rpmautospec-rpm-macros
ruby-devel
rubygems-devel
rust-packaging
rust-srpm-macros
sblim-cmpi-devel
scl-utils-build
scl-utils-build-helpers
selinux-policy
shogun-data
sip
sugar-toolkit-gtk3
systemd-rpm-macros
systemtap-sdt-devel
texlive-base
typelib-srpm-macros
ucrt64-filesystem
urw-base35-fonts-devel
vagrant
vdr-devel
vim-filesystem
web-assets-devel
yast2-devtools
zig-rpm-macros
Out of those, only 2 co-own the directory:
javapackages-bootstrap
python2.7
And only a handful requires RPM.
I could think of two categories of packages installing macros to that directory:
1) packages that primarily exist to ship the macros
2) packages that ship macros in addition to their primary function
I think packages from (1) should require rpm (even transitively) and packages
from (2) should co-own the directory. Does that make sense?
--
Miro Hrončok
--
Phone: +420777974800
IRC: mhroncok
8 months, 2 weeks
Python packaging guidelines example spec file
by Brad Bell
How does one run rpmbuild -ba on the the Pello example in the python packaging guidelines ?
The Pello.spec file appears under the heading Example spec file at:
https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_exampl...
In Pello.spec, the following lines appear:
Version: 1.0.3
URL: https://github.com/fedora-python/Pello
Source: %{url}/archive/v%{version}/Pello-%{version}.tar.gz
This indicates that the web address for the upstream source is
https://github.com/fedora-python/Pello/archive/v1.0.3/Pello-1.0.3.tar.gz
I placed Pello.spec in my SPECS directory, Pello-1.0.3.tar.gz in my SOURCES directory,
and executed the command
rmpbuild -ba SPECS/Pello.spec
from the rpmbuild directory and got the following result:
... snip ...
Requirement satisfied: setuptools>=42
(installed: setuptools 59.6.0)
Handling wheel from build-system.requires
Requirement not satisfied: wheel
Exiting dependency generation pass: build backend
+ RPM_EC=0
++ jobs -p
+ exit 0
error: Failed build dependencies:
python3dist(wheel) is needed by python-pello-1.0.3-1.fc36.noarch
...
Because the guidelines say pyhon3-devel needs to be list in BuildRequires,
I checked that it is installed on my system:
rpmbuild>sudo dnf install python3-devel
...
Last metadata expiration check: 3:55:50 ago on Sat 07 Jan 2023 12:05:27 AM MST.
Package python3-devel-3.10.9-1.fc36.x86_64 is already installed.
Dependencies resolved.
Nothing to do.
Complete!
8 months, 3 weeks