Otherwise the script tries to install packages from both beta and
non-beta repositories, which causes conflicts:
Problem: conflicting requests
- nothing provides libndp = 1.9-1.el10 needed by libndp-devel-1.9-1.el10.x86_64 from buildroot
Fix the following error:
meson.build:3:0: ERROR: Unknown options: "console_kit, systemd_logind"
Fixes: a287659c5f ('automation: adapt build_from_source to use meson')
As autotools is deprecated, we must build with meson for
NetworkManager-1.47 or greater. As we plan to drop autotools in
NetworkManager-1.50, we must do the change as soon as possible.
The existing find-backports.sh script seems to not work well.
For example, it does not include fixes for patches that are in
the common history of the current branch and upstream. This script is
supposed to work better.
Fetch both from github and gitlab, and also fetch the references for the
merge-requests/pull-requests.
In practice is github just a mirror of gitlab, so seemingly it wouldn't
make sense to fetch from there. However:
- by adding github as a remote, we can preferably fetch from there.
I think that is faster than our gitlab at freedesktop.org. Thank
you, Microsoft!
- pull requests against github are indeed not found in gitlab.
We need to fetch all kinds of remote references, so that the referenced
commits are in the git repository. Also, we need to fetch them under
various name, so that these references are available to CI.
For example, when someone opens a merge-request from their fork on
gitlab/github, the commit is usually not not referenced by regular
branches on gitlab/github. Hence, we couldn't schedule CI for those
commit. Also fetch the special references for these.
Also, don't use `timeout` to fetch the repository.
find-backports.sh only works because we craft commit messages with
necessary information. In particular the "Fixes" and cherry-picked-from
messages. That means, it relies on our git history to maintained in
a suitable manner so that the script can gather the necessary
information.
Likewise, we have a particular scheme how we do releases, how versions
are numbered, how stable branches and release tags are called, etc.
Exploit that, to allow for simpler calling convention for
find-backports.sh script:
$ contrib/rh-utils/find-backports.sh 1.14
will automatically complete to
$ contrib/rh-utils/find-backports.sh 1.14.0 nm-1-14 master
- moves installing libubsan to the previous yum-install.
Since we already pass --skip-broken, we don't need the
"|| true".
- also, sort the packages
- also, combine "set" lines
Fix installing also noarch packages. I think they were omitted wrongly
before, and installing them now might break existing assumptions during
CI (like, which packages are installed and which not).
But since the script anyway didn't ensure which RPMs are installed
prevoiusly, it was very likely that packages like NetworkManager-config-server
was already installed. CI needs to always anticipate that such packages
may be installed and act accordingly. Usually, this just means to
explicitly overwrite the configuration snippets provided by these
packages.
During the test build we enabled "--with-netconfig=yes".
Since commit "5b36585a3d build/autotools: fail configure if
netconfig/resolveconf tool is not found", when specifying
"--with-netconfig=yes" the user is required to have netconfig
installed (so that the path can be detected). Otherwise it fails
with
checking for netconfig... no
configure: error: cannot find netconfig in path. Set the path explicitly via --with-netconfig=PATH.
The correct way is to explicitly specify the path. In that
case, it's OK that the file doesn't actually exist.