DevHeads.net

Postings by Igor Gnatenko

Building multiple version of a package from same dist-git repo

Hello,

is it possible to build packages like foo0.6 from dist-git repo with name
foo and not foo0.6?

Since in Rust ecosystem from time to time we need to build multiple
versions of a same package, it is much easier if it would be one repo with
branches 0.6, 0.7 instead of multiple separate git repos.

If not, what are the limitations?

-Wl,--as-needed is added in rawhide

It's in redhat-rpm-config-118-1.fc30.

If it causes any problems for you - let me know. In the meantime, you can
use `%undefine _ld_as_needed` to disable it.

Thanks for attention!

Update libgit2 to 0.27

Hello everyone,

0.27.x is released long time ago, but I never got time for updating it. It
obviously involves SONAME change.

The good thing about this release is that it breaks only things in runtime
and only one function changed signature (for building) which nobody uses
anyway.

I'm going to update library as soon as I get time (possibly on this weekend
if no all dependent packages build fine).

Rust SIG

Hello,

it seems to be a week of SIG announcements, so why shouldn't I share that
we also have Rust SIG <https://fedoraproject.org/wiki/SIGs/Rust>.

At this point we have over 400 crates packaged, few applications like
ripgrep, tokei, stratisd and more.

IRC: #fedora-rust
ML: <a href="mailto: ... at lists dot fedoraproject.org"> ... at lists dot fedoraproject.org</a>

Feel free to stop by and don't hesitate to ping me ;)

P.S. I'm going to Flock this year, so let me know if you would like to meet
and work on.

RFC: Pass --auto-features=enabled in meson

Hello,

meson 0.47.0 has new option type - feature
<https://mesonbuild.com/Release-notes-for-0-47-0.html#new-type-of-build-option-for-features>
(tri-state option - enabled/disabled/auto). It is quite common that in
autofoo and less in cmake worlds people rely on auto-detection of
dependencies and enabling features based on those.

I believe that for distribution we should make sure that all default
features are enabled and if not, packager should explicitly disable
feature.

rust-bytes license change (MIT or ASL 2.0 → MIT)

Upstream released 0.4.9 which does this correction
<https://github.com/carllerche/bytes/commit/a6b9844296a1dbde74035a6327b9349520e338d4>
.

Should not affect anyone. Thanks for attention.

gcc/gcc-c++ removal from buildroot and more

Hello everyone,

today we finally dropped gcc and gcc-c++ from the buildroot
<https://fedoraproject.org/wiki/Changes/Remove_GCC_from_BuildRoot>. This
made 12 packages go away along with 134MB installed size. This means that
you need to add gcc/gcc-c++ in the BuildRequires (guidelines stated this
for few years but not many were following them).

Also Mark fixed bug today which was pulling in systemd in the buildroot
which was pulling gnutls/libgcrypt/nettle and stuff like that.

Removal of GCC from the buildroot

As per Changes/Remove GCC from BuildRoot
<https://fedoraproject.org/wiki/Changes/Remove_GCC_from_BuildRoot>, I'm
going to automatically add BuildRequires: gcc and/or BuildRequires: gcc-c++
to packages which fail to build with common messages (like gcc: command not
found, also autotools/cmake/meson are supported).

I'm going to do this tomorrow.

After which, I'm going to ask rel-eng to finally remove it from buildroot.
This will happen before mass rebuild. Stay tuned.

License change for rust-tokio-*

Hash: SHA256

Upstream decided to relicense tokio crates from "MIT or ASL 2.0" to
"MIT". I'm updating some of these now.

Just FYI.

rust-brev changes license from WTFPL or MIT or ASL 2.0 to CC0

Nothing special, just simplification of licensing story. Enjoy ;)

Update will happen only in rawhide (0.1.12 → 0.1.14).

Missing BuildRequires: gcc/gcc-c++

Hash: SHA256

This is the second iteration of my mass-scratch-rebuild without
gcc/gcc-c++ in the buildroot[0]. Everything what was written in
original mail still applies.

Since people might have fixed their packages after I started rebuild, I
decided to include information about commits I have used to build
packages.

Packages which are not installable (obsoleted by other pacakges)

Hash: SHA256

I ran some check on latest compose and found that quite a few packages
in repo can't be installed due to being obsoleted. What do we do about
those packages?

No more gnupg2 in buildroot

Hash: SHA256

Hey,

today I've split⁰ librpmsign from rpm-build-libs into its own subpackage rpm-
sign-libs.

This resulted into 8 packages disappearing from buildroot¹².

This should not be a problem, but still useful to know.

⁰ <a href="https://src.fedoraproject.org/rpms/rpm/c/99d6687a36647cb307b789d19921a34154e9" title="https://src.fedoraproject.org/rpms/rpm/c/99d6687a36647cb307b789d19921a34154e9">https://src.fedoraproject.org/rpms/rpm/c/99d6687a36647cb307b789d19921a34...</a>
c671
¹ gnupg2, gnutls, ima-evm-utils, libassuan, libksba, libusbx, nettle, npth
² 171 → 163 packages

Missing BuildRequires: gcc/gcc-c++

Hash: SHA256

Over this weekend I've performed scratch-mass-rebuild without having gcc and
gcc-c++ in buildroot of all Fedora packages, many of which failed due to random
reasons and I grepped all logs for some common errors found by analyzing
hundreds of build logs.

Guidelines: <a href="https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B#BuildRequire" title="https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B#BuildRequire">https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B#BuildRequire</a>
s_and_Requies

The grep output is located here:
<a href="https://ignatenkobrain.fedorapeople.org/gcc-removal.txt" title="https://ignatenkobrain.fedorapeople.org/gcc-removal.txt">https://ignatenkobrain.fedorapeople.org/gcc-removal.txt</a>

Some packages might be missed due to short koji outage, broken dependencies and
so on, but majority of real failures is below.

If you fixed packa

RFC: BugURL in packages

Hash: SHA256

Hello,

it's been just 9 years since BugURL has been added to RPM, but it has not been
used.

I think it would be helpful for users to have it defined in RPMs, so when they
do `dnf info`, `rpm -qi` they would just click on it and it would select right
component, right version and such for it.

Do you think same way? If so, which URL should we put there?

Granularity in disable mangling shebangs

Hash: SHA256

Since redhat-rpm-config-97-1.fc28 you can use 2 new variables:

* `__brp_mangle_shebangs_exclude_from` to exclude specific paths from mangling.
* `__brp_mangle_shebangs_exclude` to exclude specific shebangs from mangling.

Those are using same syntax as Requires/Provides filtering (REGEX_EXTENDED), so
you can use AutoProvidesAndRequiresFiltering guidelines[0] as reference for
syntax.

Replacing %post/%postun -p /sbin/ldconfig

Hash: SHA256

As guidelines changed[0] and now require maintainers who package libraries in
default library path (/usr/lib, /usr/lib64) to use %ldconfig_scriptlets in case
they want spec file to be compatible with all Fedora/EPEL versions or drop them
entirely if they maintain one-spec-per-branch.

After branching (should be on 2018-02-20) completes + week (2018-02-26,
probably later), I'm going to replace your scriptlets to follow guidelines in
master branch (aka F29) with safest option available -- %ldconfig_scriptlets.
The whole purpose of this is to make installation of packages FASTER and

Removal of BuildRoot

Hash: SHA256

Just a small heads up, BuildRoot tag is not needed since RHEL6 (which is oldest
supported one nowadays, it's been year or so after EL5 retirement). And we
don't support EL5 anymore, so...

I wanted to send this heads up before I actually did that, but I hit "enter"
button too early.

Anyway, this is straitghtforward change, so no one should notice anything
(apart from one commit with, hopefully, useful description in their
repositories)

-Werror (or any alternatives in different languages)

Hash: SHA256

Hello,

- From time to time I see upstreams using -Werror (or, #[deny(warnings)] in Rust)
which is definitely causing problems when gcc or any other compiler adds new
warnings. Unfortunately, some upstreams reject removing -Werror and use it just
for specific warnings.

I'm thinking about passing --cap-lints warnings to rustc to prevent erroring on
this (and just show warning). Should we do same for C/C++? Or should I
reconsider decision in Rust land?

Escaping macros in %changelog

Hash: SHA256

Hello everyone,

It seems that a lot of people have %file, %check, %build, %whatsoever in their
changelog section.

Is there any reason I should not go and automatically escape them?

%check → %%check
%build → %%build
%whatsoever → %%whatsoever

There might be valid use-cases, but I'm not sure if they really are:
%{_localstatedir}/ft/ → %%{_localstatedir}/ft/

Thoughts?

Packaging DSO symlinks

Hash: SHA256

Hello,

You might have seen that we are trying to eliminate /sbin/ldconfig from
scriptlets which would speedup installation / upgrade of packages
**significantly**.

One of cases Florian brought that in case of libcrypt/libcrypt-nss, libraries
didn't have symlinks, so if it would not call ldconfig in its scriptlet, then
any packages which depend on libcrypt.so would fail to execute.

In 99% (this number came just out of my head, not a real investigation) of
packages, we always package those symlinks.

So I'm going to push change to glibc which during build process executes
ldconf

Removal of systemd-units

Hash: SHA256

It's been 6 years since systemd-units package was merged to systemd, but
package maintainers still use it. EL7 has same guidelines as Fedora, so it is
safe to make it compliant with Guidelines even there. This is very safe change.

It's just 198 packages and we are just going to fix them for you in following
days.

Plan to remove libxml2-static

Hash: SHA256

Hello,

is anybody against of removal of libxml2-static package? It is not used by any
Fedora package.

Unannounced SONAME bump in tinyxml2

Hash: SHA256

<a href="https://src.fedoraproject.org/rpms/tinyxml2/c/3600750a8f1b0eaa6cab346496fd75a07" title="https://src.fedoraproject.org/rpms/tinyxml2/c/3600750a8f1b0eaa6cab346496fd75a07">https://src.fedoraproject.org/rpms/tinyxml2/c/3600750a8f1b0eaa6cab346496...</a>
ea749cb

Manging shebangs in Rawhide

Hash: SHA256

Hello,

I'm planning to merge PR[0] somewhere later this week.

rust-pest changes license from MPLv2.0 to MIT or ASL 2.0

Hash: SHA256

Thanks for attention.

EPEL support in "master" branch (aka speeding up Fedora development)

Hash: SHA256

Hello,

I know that many of you like to have just one branch which builds everywhere
(starting from el6), but this really slows down development of Fedora for many
years.

RFC: Dropping %{?_isa} hack

Hash: SHA256

Hello,

Does anybody know why we are still using %{?_isa} thing?

DNF/libsolv forcefully install 64bit package for any 32bit package in
transaction. So it is not possible to get 32bit package without 64bit
counterpart.

So then what's the reason of using %{?_isa}? Just some old cruft from yum era?
Can we drop it? Thoughts?

Please stop re-adding gtk-update-icon-cache scriptlets (for Fedora)

Hash: SHA256

Hello,

I'm working on removing all this cruft from all our packages (and creating
conditionals for all packages which have epel branch).

Unfortunately some maintainers adding them back with conditionals like:
%if 0%{?fedora} < 28 || 0%{?rhel} < 8

1. Those scriptlets are not needed since ~ F24 era
2.

Updates which are never pushed to stable

Hash: SHA256

Hello,

I noticed that for multiple release we have updates which stuck in bodhi for
many months until distro goes EOL.

I wonder if we should just auto-unpush updates which are in testing in 1(?)
month? Thoughts?