NetworkManager: update to 1.30.2

This commit is contained in:
cinerea0 2021-03-24 20:30:11 -04:00 committed by Érico Nogueira Rolim
parent 93e42c7c1f
commit 09da7ccf64
10 changed files with 68 additions and 306 deletions

View file

@ -1,52 +1,31 @@
Reason: Fix crossbuilding GIR
Upstream: No, not upstreamable since this is very specific to the Void setup
diff --git clients/common/meson.build clients/common/meson.build
index afa257b..50b53e7 100644
--- clients/common/meson.build
+++ clients/common/meson.build
@@ -35,7 +35,7 @@ if enable_introspection
settings_docs,
input: nm_property_docs,
output: settings_docs,
- command: [xsltproc, '--output', '@OUTPUT@', join_paths(meson.current_source_dir(), 'settings-docs.xsl'), '@INPUT@'],
+ command: [xsltproc, '--output', '@OUTPUT@', join_paths(meson.current_source_dir(), 'settings-docs.xsl'), join_paths(meson.current_source_dir(), '..', '..', '@INPUT@')],
)
Index: b/libnm/meson.build
===================================================================
--- a/libnm/meson.build
+++ b/libnm/meson.build
@@ -274,13 +274,23 @@ if enable_introspection
'LD_LIBRARY_PATH=' + ld_library_path,
]
test(
diff --git libnm/meson.build libnm/meson.build
index 51ca46d..f14d861 100644
--- libnm/meson.build
+++ libnm/meson.build
@@ -236,7 +236,13 @@ if enable_introspection
)
endif
- generate_setting_docs = join_paths(meson.current_source_dir(), 'generate-setting-docs.py')
+ if meson.is_cross_build()
+ qemu = '/usr/bin/qemu-@XBPS_TARGET_QEMU_MACHINE@-static'
+ qemu_python3_cmd = qemu + ' -L @XBPS_CROSS_BASE@ @XBPS_CROSS_BASE@/usr/bin/python3'
+ generate_setting_docs = ['sh', '-c', qemu_python3_cmd, join_paths(meson.current_source_dir(), 'generate-setting-docs.py')]
+ qemu_python3_cmd = [
+ '/usr/bin/qemu-@XBPS_TARGET_QEMU_MACHINE@-static',
+ '-L', '@XBPS_CROSS_BASE@',
+ '@XBPS_CROSS_BASE@/usr/bin/python3'
+ ]
+ else
+ generate_setting_docs = [python.path(), join_paths(meson.current_source_dir(), 'generate-setting-docs.py')]
+ qemu_python3_cmd = python.path()
+ endif
gi_typelib_path = run_command('printenv', 'GI_TYPELIB_PATH').stdout()
if gi_typelib_path != ''
@@ -261,7 +267,7 @@ if enable_introspection
name,
+
nm_settings_docs_xml_gir = custom_target(
'nm-settings-docs-gir.xml',
input: libnm_gir[0],
output: name,
- command: [generate_setting_docs_env, python.path(), generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT@', '--output', '@OUTPUT@'],
+ command: [generate_setting_docs_env, generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT@', '--output', '@OUTPUT@'],
depends: libnm_gir,
)
@@ -270,7 +276,7 @@ if enable_introspection
name,
input: [libnm_gir[0], nm_settings_docs_overrides],
output: name,
- command: [generate_setting_docs_env, python.path(), generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT0@', '--overrides', '@INPUT1@', '--output', '@OUTPUT@'],
+ command: [generate_setting_docs_env, generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT0@', '--overrides', '@INPUT1@', '--output', '@OUTPUT@'],
depends: libnm_gir,
)
endif
output: 'nm-settings-docs-gir.xml',
command: [
generate_setting_docs_env,
- python.path(),
+ qemu_python3_cmd,
join_paths(meson.source_root(), 'tools', 'generate-docs-nm-settings-docs-gir.py'),
'--lib-path', meson.current_build_dir(),
'--gir', '@INPUT@',

View file

@ -1,15 +0,0 @@
diff --git src/systemd/src/libsystemd-network/sd-dhcp6-client.c src/systemd/src/libsystemd-network/sd-dhcp6-client.c
index f67a45bd2..ec11fa605 100644
--- src/systemd/src/libsystemd-network/sd-dhcp6-client.c
+++ src/systemd/src/libsystemd-network/sd-dhcp6-client.c
@@ -8,8 +8,10 @@
#include <errno.h>
#include <string.h>
#include <sys/ioctl.h>
+#ifdef __GLIBC__
#include <linux/if_arp.h>
#include <linux/if_infiniband.h>
+#endif
#include "sd-dhcp6-client.h"

View file

@ -1,16 +0,0 @@
diff --git shared/systemd/src/basic/sort-util.h shared/systemd/src/basic/sort-util.h
index e029f8646..168735087 100644
--- shared/systemd/src/basic/sort-util.h
+++ shared/systemd/src/basic/sort-util.h
@@ -60,7 +60,11 @@ static inline void qsort_r_safe(void *base, size_t nmemb, size_t size, __compar_
return;
assert(base);
+#ifdef __GLIBC__
qsort_r(base, nmemb, size, compar, userdata);
+#else
+ g_qsort_with_data(base, nmemb, size, compar, userdata);
+#endif
}
#define typesafe_qsort_r(p, n, func, userdata) \

View file

@ -1,29 +0,0 @@
Usual fix for musl libc
--- shared/systemd/src/basic/stdio-util.h.orig
+++ shared/systemd/src/basic/stdio-util.h
@@ -19,7 +19,9 @@
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
+#if defined(__GLIBC__)
#include <printf.h>
+#endif
#include <stdarg.h>
#include <stdio.h>
#include <sys/types.h>
--- shared/systemd/src/basic/sort-util.h 2019-06-09 17:02:48.895695896 +0200
+++ shared/systemd/src/basic/sort-util.h 2019-06-09 17:03:27.564199937 +0200
@@ -5,6 +5,12 @@
#include "macro.h"
+#if !defined(__GLIBC__)
+typedef int (*__compar_fn_t) (const void*, const void*);
+typedef __compar_fn_t comparison_fn_t;
+typedef int (*__compar_d_fn_t) (const void *, const void *, void *);
+#endif
+
void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size,
__compar_d_fn_t compar, void *arg);

View file

@ -1,54 +0,0 @@
--- src/devices/nm-device.c.orig 2019-12-17 08:59:49.000000000 +0100
+++ src/devices/nm-device.c 2020-01-06 17:29:08.678242168 +0100
@@ -17,7 +17,11 @@
#include <arpa/inet.h>
#include <fcntl.h>
#include <linux/if_addr.h>
+#if defined(__GLIBC__)
#include <linux/if_arp.h>
+#else
+#include <linux/if.h>
+#endif
#include <linux/rtnetlink.h>
#include <linux/pkt_sched.h>
--- src/nm-manager.c.orig 2020-01-06 17:29:08.682242177 +0100
+++ src/nm-manager.c 2020-01-06 17:30:50.378482034 +0100
@@ -15,6 +15,7 @@
#include <sys/stat.h>
#include <sys/sendfile.h>
#include <limits.h>
+#include <asm/types.h>
#include "nm-glib-aux/nm-c-list.h"
--- src/platform/nm-linux-platform.c.orig 2019-12-17 08:59:49.000000000 +0100
+++ src/platform/nm-linux-platform.c 2020-01-06 17:29:08.686242186 +0100
@@ -6,6 +6,7 @@
#include "nm-default.h"
#include "nm-linux-platform.h"
+#include "wpan/nm-wpan-utils.h"
#include <arpa/inet.h>
#include <dlfcn.h>
@@ -14,7 +15,11 @@
#include <libudev.h>
#include <linux/fib_rules.h>
#include <linux/ip.h>
+#if defined(__GLIBC__)
#include <linux/if_arp.h>
+#else
+#include <linux/if.h>
+#endif
#include <linux/if_bridge.h>
#include <linux/if_link.h>
#include <linux/if_tun.h>
@@ -44,7 +49,6 @@
#include "nm-platform-private.h"
#include "wifi/nm-wifi-utils.h"
#include "wifi/nm-wifi-utils-wext.h"
-#include "wpan/nm-wpan-utils.h"
#include "nm-glib-aux/nm-io-utils.h"
#include "nm-udev-aux/nm-udev-utils.h"

View file

@ -1,42 +0,0 @@
--- libnm-core/nm-utils.h.orig
+++ libnm-core/nm-utils.h
@@ -30,7 +30,11 @@
#include <netinet/in.h>
/* For ETH_ALEN and INFINIBAND_ALEN */
+#if defined(__GLIBC__)
#include <linux/if_ether.h>
+#else
+#define ETH_ALEN 6 /* Octets in one ethernet addr */
+#endif
#include <linux/if_infiniband.h>
#include "nm-core-enum-types.h"
--- src/platform/wifi/nm-wifi-utils.h.orig
+++ src/platform/wifi/nm-wifi-utils.h
@@ -22,7 +22,11 @@
#ifndef __WIFI_UTILS_H__
#define __WIFI_UTILS_H__
+#if defined(__GLIBC__)
#include <net/ethernet.h>
+#else /* musl libc */
+#define ETH_ALEN 6 /* Octets in one ethernet addr */
+#endif
#include "nm-dbus-interface.h"
--- shared/systemd/src/basic/socket-util.h 2019-03-16 15:41:33.287235649 +0100
+++ shared/systemd/src/basic/socket-util.h 2019-03-16 15:42:24.273912106 +0100
@@ -12,6 +12,11 @@
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/un.h>
+#if !defined(__GLIBC__)
+/* SIOCGSTAMPNS from linux/asm-generic.h
+ * for src/systemd/src/libsystemd-network/sd-lldp.c */
+#include <linux/sockios.h>
+#endif
#include "macro.h"
#include "missing_socket.h"

View file

@ -1,40 +0,0 @@
--- shared/systemd/src/basic/process-util.c
+++ shared/systemd/src/basic/process-util.c
@@ -21,6 +21,9 @@
#include <sys/wait.h>
#include <syslog.h>
#include <unistd.h>
+#ifndef __GLIBC__
+#include <pthread.h>
+#endif
#if 0 /* NM_IGNORED */
#if HAVE_VALGRIND_VALGRIND_H
#include <valgrind/valgrind.h>
@@ -1168,11 +1171,13 @@ void reset_cached_pid(void) {
cached_pid = CACHED_PID_UNSET;
}
+#ifdef __GLIBC__
/* We use glibc __register_atfork() + __dso_handle directly here, as they are not included in the glibc
* headers. __register_atfork() is mostly equivalent to pthread_atfork(), but doesn't require us to link against
* libpthread, as it is part of glibc anyway. */
extern int __register_atfork(void (*prepare) (void), void (*parent) (void), void (*child) (void), void *dso_handle);
extern void* __dso_handle _weak_;
+#endif
pid_t getpid_cached(void) {
static bool installed = false;
@@ -1201,7 +1206,12 @@ pid_t getpid_cached(void) {
* only half-documented (glibc doesn't document it but LSB does — though only superficially)
* we'll check for errors only in the most generic fashion possible. */
- if (__register_atfork(NULL, NULL, reset_cached_pid, __dso_handle) != 0) {
+ #ifdef __GLIBC__
+ if (__register_atfork(NULL, NULL, reset_cached_pid, __dso_handle) != 0) {
+ #else
+ if (pthread_atfork(NULL, NULL, reset_cached_pid) != 0) {
+ #endif
+
/* OOM? Let's try again later */
cached_pid = CACHED_PID_UNSET;
return new_pid;

View file

@ -1,40 +0,0 @@
--- shared/n-dhcp4/src/n-dhcp4-c-probe.c.orig 2020-01-06 15:35:10.128600647 +0100
+++ shared/n-dhcp4/src/n-dhcp4-c-probe.c 2020-01-06 15:39:41.446240531 +0100
@@ -362,7 +362,12 @@ static void n_dhcp4_client_probe_config_
seed16v[1] = (u64 >> 16) ^ (u64 >> 0);
seed16v[2] = (u64 >> 32) ^ (u64 >> 16);
+#ifdef __GLIBC__
r = seed48_r(seed16v, &config->entropy);
+#else
+ r = 0;
+ seed48(seed16v);
+#endif
c_assert(!r);
}
@@ -379,7 +384,12 @@ uint32_t n_dhcp4_client_probe_config_get
long int result;
int r;
+#ifdef __GLIBC__
r = mrand48_r(&config->entropy, &result);
+#else
+ r = 0;
+ result = mrand48();
+#endif
c_assert(!r);
return result;
--- shared/n-dhcp4/src/n-dhcp4-private.h.orig 2020-01-06 15:41:31.941501136 +0100
+++ shared/n-dhcp4/src/n-dhcp4-private.h 2020-01-06 15:41:55.341556325 +0100
@@ -267,7 +267,9 @@ struct NDhcp4ClientProbeConfig {
bool inform_only;
bool init_reboot;
struct in_addr requested_ip;
+#ifdef __GLIBC__
struct drand48_data entropy; /* entropy pool */
+#endif
uint64_t ms_start_delay; /* max ms to wait before starting probe */
NDhcp4ClientProbeOption *options[UINT8_MAX + 1];
int8_t request_parameters[UINT8_MAX + 1];

View file

@ -0,0 +1,30 @@
Reason: We only want to build man pages, not development docs
Upstream: An issue has been filed - https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/689
Index: b/meson.build
===================================================================
--- a/meson.build
+++ b/meson.build
@@ -943,10 +943,8 @@ if enable_qt
endif
if enable_docs
- assert(enable_introspection, '-Ddocs=true requires -Dintrospection=true')
assert(meson.version().version_compare('>= 0.46.0'), '-Ddocs requires meson >= 0.46')
subdir('man')
- subdir('docs')
endif
configure_file(
Index: b/clients/common/meson.build
===================================================================
--- a/clients/common/meson.build
+++ b/clients/common/meson.build
@@ -28,7 +28,7 @@ libnmc_base_dep = declare_dependency(
link_with: libnmc_base,
)
-if enable_docs
+if enable_docs and enable_introspection
settings_docs_source = custom_target(
'settings-docs.h',
input: nm_settings_docs_xml_gir,

View file

@ -1,41 +1,39 @@
# Template file for 'NetworkManager'
# when updating to 1.24 or newer, drop the compat
# patch in gnome-control-center and rebuild it
pkgname=NetworkManager
version=1.22.10
revision=3
version=1.30.2
revision=1
build_style=meson
build_helper="gir qemu"
configure_args="-Dpolkit_agent=true -Dsystemd_journal=false
-Dlibaudit=no -Dovs=false -Dlibnm_glib=true -Dselinux=false
-Dmodify_system=true -Dpolkit_agent=true -Dsystemdsystemunitdir=no
-Dlibaudit=no -Dovs=false -Dselinux=false
-Dmodify_system=true -Dsystemdsystemunitdir=no
-Dpppd=/usr/bin/pppd -Dqt=false
-Dsession_tracking_consolekit=false
-Dpppd_plugin_dir=/usr/lib/pppd/2.4.9 -Dresolvconf=/usr/bin/resolvconf
-Ddhclient=/usr/bin/dhclient -Dkernel_firmware_dir=/usr/lib/firmware
-Ddnsmasq=/usr/bin/dnsmasq -Ddbus_conf_dir=/etc/dbus-1/system.d
-Ddhcpcd=/usr/bin/dhcpcd -Diptables=/usr/bin/iptables
-Diwd=true
-Dudev_dir=/usr/lib/udev -Dintrospection=$(vopt_if gir true false)
-Dvapi=$(vopt_if vala true false)
-Diwd=true -Dudev_dir=/usr/lib/udev -Ddocs=true
$(vopt_bool gir introspection) $(vopt_bool gir vapi)
-Dsession_tracking=$(vopt_if elogind elogind no)
-Dsuspend_resume=$(vopt_if elogind elogind upower)
-Dconfig_dhcp_default=internal"
hostmakedepends="gettext-devel glib-devel libxslt-devel pkg-config
intltool dbus-glib-devel jansson-devel $(vopt_if vala vala)
$(vopt_if gir 'python3-gobject')"
intltool dbus-glib-devel jansson-devel docbook-xsl gtk-doc
$(vopt_if gir 'vala python3-gobject')"
makedepends="libuuid-devel nss-devel dbus-glib-devel libgudev-devel
libnl3-devel polkit-devel ppp-devel iptables-devel libcurl-devel
ModemManager-devel readline-devel libndp-devel newt-devel jansson-devel
libpsl-devel eudev-libudev-devel mobile-broadband-provider-info
$(vopt_if gir libgirepository-devel) $(vopt_if elogind elogind-devel)"
$(vopt_if gir 'libgirepository-devel python3-gobject')
$(vopt_if elogind elogind-devel)"
depends="dbus iproute2 openresolv wpa_supplicant mobile-broadband-provider-info"
short_desc="Network Management daemon"
maintainer="Enno Boland <gottox@voidlinux.org>"
license="GPL-2.0-or-later"
homepage="https://wiki.gnome.org/Projects/NetworkManager"
distfiles="${GNOME_SITE}/${pkgname}/${version%.*}/${pkgname}-${version}.tar.xz"
checksum=2b29ccc1531ba7ebba95a97f40c22b963838e8b6833745efe8e6fb71fd8fca77
checksum=0c8e80e77877860e4a4e6ab4a0f7cdc1186e356b65b042a751897188b88944d2
# TODO: Some tests require network namespaces to run.
make_check=extended
lib32disabled=yes
@ -47,18 +45,11 @@ make_dirs="
/etc/NetworkManager/VPN 0755 root root
/var/lib/NetworkManager 0755 root root
"
case "$XBPS_TARGET_MACHINE" in
*-musl)
CFLAGS+=" -DRTLD_DEEPBIND=0"
# Fail to build on musl
configure_args+=" -Dtests=no"
;;
esac
patch_args=-Np1
# Package build options
build_options="gir vala elogind"
build_options_default="gir vala elogind"
build_options="gir elogind"
build_options_default="gir elogind"
pre_configure() {
if [ "$CROSS_BUILD" ]; then
@ -95,8 +86,6 @@ NetworkManager-devel_package() {
vmove "usr/lib/*.so"
if [ "$build_option_gir" ]; then
vmove usr/share/gir-1.0
fi
if [ "$build_option_vala" ]; then
vmove usr/share/vala
fi
}