Commit graph

490 commits

Author SHA1 Message Date
Thomas Haller
3c548dd081
release: improve hint about documentation in "release.sh"
A "minor" release can still be the latest release. It depends
on which minor release you do. The script isn't smart enough
to understand the difference, so make the hint a bit clearer.
2023-03-09 09:50:03 +01:00
Thomas Haller
b88700bd4b
release: fix honoring $ORIGIN environment variable 2023-03-09 09:05:21 +01:00
Thomas Haller
004464cfbd
contrib: update "configure-for-system.sh" and start build
"configure-for-system.sh" is supposed to be in sync with
NetworkManager.spec. Update for the recent changes.

Also add a make/ninja call at the end. Almost always we want to build
after the configure.
2023-02-14 09:15:39 +01:00
Thomas Haller
786ebecee9
contrib/rpm: minor cleanup of "NetworkManager.spec"
Reorder ppp arguments so that they make more sense and are consistent
with the autotools code.
2023-02-14 09:03:31 +01:00
Thomas Haller
a798b4f3f6
contrib/release: fix version in import-docs hint message 2023-02-13 10:24:08 +01:00
Thomas Haller
06dc84a563
contrib/rpm: fix "--enable-ppp" flag to build without ppp
[thaller@redhat.com: I introduced this bug when taking the original patch].

Fixes: 820f6f3a4a ('contrib/rpm: sync obsoletes_{initscripts_updown,ifcfg_rh} version')
2023-02-10 10:09:27 +01:00
Thomas Haller
820f6f3a4a
contrib/rpm: sync obsoletes_{initscripts_updown,ifcfg_rh} version
Initially, when we obsoleted {initscripts_updown,ifcfg_rh}, the package
versions that we build from this upstream spec file differed from what
we put into Fedora/RHEL.

By now, this is long gone, and for upstream package builds we don't care
to accurately track the version, when using upstream/copr builds. Just
sync the version to what they are in Fedora/RHEL.
2023-02-10 10:05:03 +01:00
Stewart Smith
2598ec3a1f
contrib/rpm: fix building without ppp
We need to explicitly say we don't want PPP as the default is
that we do want to build with PPP.

https://src.fedoraproject.org/rpms/NetworkManager/pull-request/13
2023-02-10 09:53:15 +01:00
Yaakov Selkowitz
42cd422f18
contrib/rpm: fix flatpak build
https://src.fedoraproject.org/rpms/NetworkManager/pull-request/13
2023-02-10 09:51:01 +01:00
Thomas Haller
f6805debee
contrib: avoid using "sudo" in REQUIRED_PACKAGES scripts
It's often not installed, and usually we are already root. Avoid
using sudo.
2023-02-08 09:51:25 +01:00
Thomas Haller
362a96ff52
contrib: setup "systemd" in makerepo.sh script 2023-02-01 11:05:13 +01:00
Thomas Haller
00affc7b6f
contrib/release.sh: add hint about publishing documentation on website 2023-01-30 09:32:01 +01:00
Thomas Haller
36ad5cbb3b
contrib/rpm: fix condition in "NetworkManager.spec" (3)
Fixes: 096b9955d6 ('contrib/fedora: make "lto" in the spec file configurable')
Fixes: 7a62845424 ('contrib/rpm: fix condition in "NetworkManager.spec"')
2023-01-24 12:29:04 +01:00
Thomas Haller
13dfdaf3a0
contrib/rpm: fix condition in "NetworkManager.spec" (2)
Fixes: 096b9955d6 ('contrib/fedora: make "lto" in the spec file configurable')
Fixes: 7a62845424 ('contrib/rpm: fix condition in "NetworkManager.spec"')
2023-01-24 11:46:44 +01:00
Thomas Haller
7a62845424
contrib/rpm: fix condition in "NetworkManager.spec"
Fixes: 096b9955d6 ('contrib/fedora: make "lto" in the spec file configurable')
2023-01-24 11:31:54 +01:00
Thomas Haller
096b9955d6
contrib/fedora: make "lto" in the spec file configurable
When we build a copr image, we run the "nm-copr-build.sh" script.
That script, should honor "LTO=0|1|" to explicitly enable/disable
LTO. Since the copr script only builds a SRPM, which then gets build
we need that the default LTO flag in the SRPM is templated.

Fixes: 0566e9dc63 ('contrib: support disabling "LTO" in "nm-copr-build.sh"')
2023-01-24 10:36:34 +01:00
Thomas Haller
128c000f0c
contrib/fedora: install "python36-gobject" when building with meson on centos7
With the meson build configuration, there is obviously python3 installed
and in the path. The build script will pick that up as preferred python.

However, we will also need working pygobject to build the documentation.
But we only have that for python2 installed. Fix that, by installing
"python36-gobject".
2023-01-23 21:39:00 +01:00
Thomas Haller
ea16997c4a
contrib/fedora: disable "qt" build of examples for spec file
Otherwise, we require a C++ compiler, but our build requirements
don't install g++. So build will fail.
2023-01-23 18:24:56 +01:00
Thomas Haller
a9cb294b73
contrib/fedora: explicitly set "pppd" path in configure script
We have "BuildRequires: ppp-devel". While in Fedora 37 that has a
dependency on "ppp" package, that is not the case on Centos7. I didn't
test others, but the point is it's not always there.

"/usr/sbin/pppd" is provided by "ppp" package, and we might not have it
installed via the build requirements. But we only need it to detect the
path, which is not necessary on RHEL/Fedora. Just set the path
explicitly with the respective configure option.
2023-01-23 18:24:56 +01:00
Lubomir Rintel
ff472d8e59 rpm: don't BR dhcp-client
We don't need the builder to install dhcp-client to build with support for
it. Requiring it to be installed it not great because it has runtime
implications -- it installs a dispatcher script.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1503
2023-01-17 13:56:57 +01:00
Thomas Haller
8686eb5927
contrib: fix syntax error in "configure-for-system.sh" 2022-09-08 15:29:10 +02:00
Thomas Haller
f2bd67b386
contrib/rpm: add "configure-for-system.sh" script to configure build
This will use the same option as when we do an RPM build.
The purpose is that you could type `make install` with such
a build, and it would replace the files that you'd get by installing
the NetworkManager RPMs.

Of course, you would not want to do that on your work station, but it
will be useful in a container, where we don't mind messing up the
installation.
2022-08-08 11:54:27 +02:00
Thomas Haller
4e4135842e
contrib/rpm: cleanup spec file to unify version comparisons
- always check fedora||rhel and not rhel||fedora.
- consistently use >= instead of >.
2022-08-08 11:54:27 +02:00
Thomas Haller
1e6e15cd80
contrib/rpm: prefer --with-$OPTION=yes|no over --with/--without and --enable/--disable
autotools accepts both --with-$OPTION/--without-$OPTION and
--with-$OPTION=yes|no. Consistently use the latter.

The advantage is that whether it's enabled becomes an argument, so in a
script you could do

  "--with-$OPTION=$VALUE"

Same for enable/disable option.
2022-08-08 11:54:27 +02:00
Lubomir Rintel
3ce3451040 Revert "contrib/rpm: enable -Werror on --with debug instead of --with test"
This reverts commit cac11c736d.
It went in accidentally.
2022-08-02 18:03:45 +02:00
Lubomir Rintel
cac11c736d contrib/rpm: enable -Werror on --with debug instead of --with test
The test bcond is used to make test suite failure terminate the %check
phase. That should generally be done for distro builds.

What the distro builds shouldn't do is terminate the build on compiler
warnings, because they're fairly likely to appear on toolchain updates
without indicating actual bugs.

However, currently that's precisely what do we do now.

Let's use -Werror on debug builds instead. They are intentionally made
more prone to fail (e.g. trip more runtime assertions) because failures
can be more rapidly addressed and don't affect distro builds.
2022-08-02 15:06:13 +02:00
Lubomir Rintel
8d12cc8152 contrib/rpm: untangle setting of bcond_{test,debug} defaults
Resolve the defaults in build.sh instead of RPM macros. This looks less
terrible maintaining the same defaults as well as options to override it
upstream.

Moving it to the block that downstreams (Fedora, Red Hat) keep
customized makes it possible for them to also maintain customized
defaults here.

In particular, the downstreams should be able to enable bcond_test
at least for their production release (otherwise there's little point in
actually running tests at package build time).

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1286
2022-07-10 20:49:05 +02:00
Thomas Haller
b12281089c
gitlab-ci: fix unit tests on centos7 for python-pexpect dependency
Fixes: 9570224e86 ('tests/client: add a pexpect-based test runner')
2022-07-06 18:36:52 +02:00
Lubomir Rintel
47d14bced8
contrib/rpm: BR pexpect
Unit tests need this to run.

Fixes: 9570224e86 ('tests/client: add a pexpect-based test runner')

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1285
2022-07-04 17:35:59 +02:00
Lubomir Rintel
12fe0ae312 contrib/packages: install pexpect
We'd like to use this for client unit testing.
2022-06-30 10:20:44 +02:00
Martin Blanchard
19a6affd3a build: stop relying on intltool for i18n
Recent gettext version can extract and merge back strings from and to
various file formats, no need for intltool anymore.

https://wiki.gnome.org/Initiatives/GnomeGoals/GettextMigration

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/issues/133

https://github.com/NetworkManager/NetworkManager/pull/303
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/96

Clarification about the use of AM_GNU_GETTEXT_REQUIRE_VERSION:

In configure.ac, specify the minimum gettext version we require, rather
than the exact one. This fixes a situation where the autoconf macros
used for gettext will be the latest available on the system (for
example, 0.20); but the copied-in Makefile.in.in will be for the exact
version specified in configure.ac (in this case, 0.19).

In that situation, the gettext build rules will error out at `make` time
with the message:
   *** error: gettext infrastructure mismatch: using a Makefile.in.in
   from gettext version 0.19 but the autoconf macros are from gettext
   version 0.20

Avoid that by specifying a minimum version dependency rather than an
exact one. This should not cause problems as we haven’t committed any
generated or external gettext files into git, so each developer will end
up regenerating the build system for their system’s version of gettext,
as expected.

See the subsection of
https://www.gnu.org/software/gettext/manual/html_node/Version-Control-Issues.html
for more information.

Note that autoreconf currently doesn’t recognise
AM_GNU_GETTEXT_REQUIRE_VERSION, so we must continue also using
AM_GNU_GETTEXT_VERSION. autopoint will ignore the latter if the former
is present. See
https://lists.gnu.org/archive/html/autoconf-patches/2015-10/msg00000.html.

[lkundrak@v3.sk: Fixed the meson build, adjusted autogen.sh:
droped "|| exit 1", dropped call to aclocal,
dropped --copy from gtkdocize.]
2022-06-27 13:40:09 +02:00
Ana Cabral
41b5831331 rpm: make the ifcfg informational message available from RHEL 9 2022-05-30 10:11:00 +02:00
Ana Cabral
96d7362613 rpm: include a warning message for network configuration on /etc/sysconfig/network-scripts directory
NetworkManager now does not support network configuration through
ifcfg files by default anymore, it is provided in a separated
package:
https://fedoramagazine.org/converting-networkmanager-from-ifcfg-to-keyfiles/

This commits include a file in rpm packages located in ifcfg scripts
directory, /etc/sysconfig/network-scripts/, to inform the user of
the new location of network configuration files.

https://bugzilla.redhat.com/show_bug.cgi?id=2074020
2022-05-27 14:04:20 +00:00
Ana Cabral
0415d904cb rpm: move ifcfg scripts directory to the NetworkManager package
NetworkManager does not support by default legacy ifcfg configuration
files anymore, this support is now provided in a separate package
(https://fedoramagazine.org/converting-networkmanager-from-ifcfg-to-keyfiles/).

ifcfg directory (/etc/sysconfig/network-scripts/) should always be present,
regardless of NetworkManager support for network scripts. This change makes the
directory always present, not only when the recently splitted ifcfg subpackage
is installed, and also make it persistent after the package removal.

Fixes: 50a6627fd7 ('rpm: split ifcfg-rh settings plugin into a separate package')
2022-05-27 14:04:20 +00:00
Thomas Haller
4d53df2911
contrib/makerepo.sh: fix name for local cache of git repository
The $URL might already contain a ".git" suffix. Then $FULLNAME would
end up having two ".git" extensions. Fix that.
2022-04-15 11:24:19 +02:00
Thomas Haller
135bc5dd1f
contrib/makerepo.sh: don't use unauthenticated github URL
It doesn't work anymore:

  $ git clone git://github.com/thom311/libnl.git
  Cloning into 'libnl'...
  fatal: remote error:
    The unauthenticated git protocol on port 9418 is no longer supported.
  Please see https://github.blog/2021-09-01-improving-git-protocol-security-github/ for more information.
2022-04-15 11:11:17 +02:00
Thomas Haller
6bada7fb9e
contrib/rpm: reorder variable in spec file and set rpm_version
On recent Fedora and RHEL we no longer have differing "rpm_version"
and "real_version". So usually "rpm_version" is just the same as
"real_version".

Update the template spec file to reflect that. For the "build_clean.sh"
script, we anyway always set them both to "__VERSION__".
2022-04-14 12:47:07 +02:00
Thomas Haller
7003b5eb70
contrib: don't abort on first error during ftpadmin install
With "rc1" mode, we install more than one tarballs (the one for 1.37.90
and 1.39.0). If we reach this point, we already pushed the git tags.
There is no way back.

Ignore errors at first and try to release all tarballs. Only signal the error
at the end.
2022-04-06 19:17:58 +02:00
Thomas Haller
a4da2eb5e5
contrib: improve detection of fedpkg repository in "makerepo.sh" 2022-04-06 09:46:14 +02:00
Thomas Haller
1c76c11b42
doc: rename "README" to "README.md"
By having a ".md" extension, gitlab renders a nice page instead of
showing as plain text.

Currently our README is pretty bad. Partly, because it doesn't get
shown nicely.

Rename. The file effectively was already markdown. The old file is
gone.

For this we also need to change the automake flavor to "foreign"
(See [1]).

[1] https://autotools.info/automake/options.html#automake.options.flavors
2022-03-21 17:19:47 +01:00
Thomas Haller
85ceffceb9
contrib/rpm: don't package TODO file
Our TODO file is not well maintained. Don't package it.
2022-03-21 17:19:47 +01:00
Beniamino Galvani
b580741ef4 rpm: fix autotools build options for default plugins
Fixes: bb832641eb ('rpm: remove build-time default for plugins on newer distros')
2022-03-09 10:14:04 +01:00
Beniamino Galvani
50a6627fd7 rpm: split ifcfg-rh settings plugin into a separate package
Split the ifcfg-rh settings plugin into a separate package, so that it
will not be in new installations.

https://bugzilla.redhat.com/show_bug.cgi?id=2045875
2022-03-06 09:12:07 +01:00
Beniamino Galvani
bb832641eb rpm: remove build-time default for plugins on newer distros
On newer distros, remove the build-time default for settings
plugins. All plugins found in the plugin directory will be used.
2022-03-06 09:12:06 +01:00
Thomas Haller
df94cb2116
man: add NetworkManager-wait-online.service.8 manual
NetworkManager-wait-online is a constant source of confusion,
as it seems to delay the boot (when it's often just the messenger
or either a network problem, a NetworkManager misconfiguration
or a misconfiguration of other systemd services).

Try to clear that up with a manual page.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1130
2022-03-02 16:09:16 +01:00
Lubomir Rintel
1cb4910841 rpm: drop %systemd_dir
There's a standard %_unitdir macro for this purpose, shipped with
systemd-rpm-macros.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1098
2022-02-22 16:38:54 +01:00
Lubomir Rintel
a7011be3d8 rpm: drop %sysctldir
It's not used anywhere.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1098
2022-02-22 16:38:54 +01:00
Thomas Haller
c87fbc9f6d
contrib/rpm: fix meson build to drop removed "json_validation" option
Recent meson versions treat unknown options as error and break now the
build. Good from them. This was an oversight.

Fixes: bbb1f5df2f ('libnm: always build libnm with JSON validation')
2022-02-21 19:49:29 +01:00
Thomas Haller
16a45d07ed
priv-helper: fix D-Bus patch to not contain forbidden character '-'
"-" is not allowed as D-Bus path and interface name, and discouraged as
bus name. This cause nm-priv-helper to crash, because GDBus asserts the
the object path is valid.

Replace the '-' with '_'. This way, it's consistent with
"nm_dispatcher".

Fixes: d68ab6b8f0 ('nm-sudo: rename to nm-priv-helper')
2022-02-09 18:47:14 +01:00
Thomas Haller
c6223c5a41
contrib/rpm: fix spec file for CentOS7/RHEL7 for "Suggests:"
Seems "Suggests:" is not supported.
2022-01-25 16:12:24 +01:00