It's that time of year again... as our RPM change proposals passed with
flying colors in yesterdays meeting, I'll hope to land RPM 4.16 alpha in
rawhide later today or tomorrow by latest.
There aren't any big incompatibility bumps here, but to pave way for the
fancy new expression stuff, some dusty corners needed, well, dusting.
One of the discoveries was that rpm has accidentally long allowed
unquoted text to be used as a string in expressions. That is no longer
supported, you need to quote any strings in expressions.
Based on rpm-specs-latest.tar.xz from this morning, there are thirtysome
packages relying on this behavior, which will need fixing to be
buildable with 4.16. You'll get an error message pointing to the right
error: bare words are no longer supported, please use "...": python3 ==
error: airnef.spec:83: bad %if condition: python3 == python3
This is caused by the following line in that spec:
%if %python == python3
Just add double quotes to both sides and it'll work. This is backwards
compatible so you're not breaking anything by doing so, like mentioned
above this only ever worked by accident to begin with.
Other than that, there are a couple of things that might be of
particular interest to Fedora packagers: new expression features  (in
spec %if and macros) including but not limited to ternary operator (eg
%[1==0?"yes":"no"]) and parametric macro generators  for lightning
fast dependency generation. Oh, and dependency generators can now
optionally use MIME type instead of "file" magic string for file
Last but certainly not least, please do test the database stuff! We will
not be changing the default until several weeks from now (for
stabilization and coordination with infrastructure/rel-eng efforts), but
you can and should test locally:
# echo '%_db_backend sqlite' > /etc/rpm/macros.db
# rpmdb --rebuilddb
After that you'll be using sqlite rpmdb, and you shouldn't really notice
anything at all. Except that it's typically a little faster, and should
survive abuse in ways that BDB never did.
And as usual, please report anything odd.
has some examples, more to follow
- Panu -