diff options
Diffstat (limited to 'debian')
| -rw-r--r-- | debian/changelog | 97 | ||||
| -rw-r--r-- | debian/control | 6 | ||||
| -rw-r--r-- | debian/libnm0.symbols | 8 | ||||
| -rw-r--r-- | debian/patches/Force-online-state-with-unmanaged-devices.patch | 258 | ||||
| -rw-r--r-- | debian/patches/Update-dnsmasq-parameters.patch | 76 | ||||
| -rw-r--r-- | debian/patches/series | 3 | ||||
| -rw-r--r-- | debian/patches/systemd-basic-missing_syscall-fix-syscall-numbers-for-x32.patch | 124 |
7 files changed, 400 insertions, 172 deletions
diff --git a/debian/changelog b/debian/changelog index 3e75014e..58dde59f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,100 @@ +network-manager (1.28.0-2ubuntu1) UNRELEASED; urgency=medium + + * Resynchronize on Debian, remaining changes: + - Use systemd-resolved instead of dnsmasq + - debian/control: + + Depend on isc-dhcp-client instead of recommends + + Recommend network-manager-pptp + + Suggest avahi-autoipd for IPv4LL support + - debian/rules, debian/network-manager.postinst: + + Don't restart NetworkManager on upgrade but recommend restarting + the computer + - debian/rules, debian/network-manager.postinst: + + Don't install sysvinit scripts or migrate from sysvinit + - debian/network-manager.postinst: + + Don't add the netdev group. + + drop in an empty override file for NetworkManager to manage all + devices for upgrade from any version, as long as there is no + netplan configuration yet. + - debian/default-wifi-powersave-on.conf, debian/rules: + + Install a config file to enable WiFi powersave + - Enable build tests + - Add autopkgtests + - debian/source_network-manager.py, debian/network-manager.install, + debian/network-manager.links: Add apport hook + - Add network-manager-config-connectivity-ubuntu package + - NetworkManager.conf: disable MAC randomization feature. There is no + easy way for desktop users to disable this feature yet. And there are + reports that it doesn't work well with some systems. + - Update Vcs links to point to Ubuntu branch + - Add patches. See patch descriptions for more details: + + Provide-access-to-some-of-NM-s-interfaces-to-whoopsie.patch + + Update-dnsmasq-parameters.patch + + Disable-general-with-expect.patch + + libnm-Check-self-still-NMManager-or-not.patch + + dns-manager-don-t-merge-split-DNS-search-domains.patch (but disabled) + + Read-system-connections-from-run.patch + - debian/tests/urfkill-integration - don't stop/start network manager + + -- Sebastien Bacher <seb128@ubuntu.com> Mon, 11 Jan 2021 18:10:30 +0100 + +network-manager (1.28.0-2) unstable; urgency=medium + + * Demote libpam-systemd to Recommends. + This allows users to use and experiment with other init systems. Such a + setup is neither tested nor fully supported and users need to be aware + that some functionality might be broken. (Closes: #921012) + * Recommend wireless-regdb instead of crda. + CRDA is no longer needed as of Linux kernel v4.15. (Closes: #973241) + * Bump Standards-Version to 4.5.1 + + -- Michael Biebl <biebl@debian.org> Thu, 31 Dec 2020 21:38:43 +0100 + +network-manager (1.28.0-1) unstable; urgency=medium + + * New upstream version 1.28.0 + * Rebase patches + + -- Michael Biebl <biebl@debian.org> Sun, 06 Dec 2020 22:48:28 +0100 + +network-manager (1.27.91-2) unstable; urgency=medium + + * Revert "dns: change default DNS priority of VPNs to -50" (Closes: #972688) + + -- Michael Biebl <biebl@debian.org> Wed, 25 Nov 2020 14:59:00 +0100 + +network-manager (1.27.91-1) unstable; urgency=medium + + * New upstream version 1.27.91 (1.28 rc2) + * Rebase patches + + -- Michael Biebl <biebl@debian.org> Tue, 20 Oct 2020 22:36:31 +0200 + +network-manager (1.27.90-3) unstable; urgency=medium + + [ Thorsten Glaser ] + * Adjust syscall numbers for x32 vs. amd64, fixes FTBFS on x32 + + -- Michael Biebl <biebl@debian.org> Fri, 09 Oct 2020 16:03:16 +0200 + +network-manager (1.27.90-2) unstable; urgency=medium + + * Cherry-pick a couple of upstream patches. + Hopefully fixes the build and test-suite failures on some of the more + exotic architectures. + + -- Michael Biebl <biebl@debian.org> Thu, 08 Oct 2020 11:34:31 +0200 + +network-manager (1.27.90-1) unstable; urgency=medium + + * New upstream version 1.27.90 (1.28 rc1) + - Fix generated XML syntax in tools/generate-docs-nm-settings-docs-gir.py + (Closes: #971144) + * Rebase patches + * Update symbols file for libnm0 + + -- Michael Biebl <biebl@debian.org> Mon, 05 Oct 2020 23:34:33 +0200 + network-manager (1.26.2-1ubuntu1) groovy; urgency=medium * Update to the current stable version diff --git a/debian/control b/debian/control index 8fcc6d53..60b45daa 100644 --- a/debian/control +++ b/debian/control @@ -40,7 +40,7 @@ Build-Depends: debhelper-compat (= 13), valac (>= 0.17.1.24), dbus <!nocheck>, python3-dbus <!nocheck> -Standards-Version: 4.5.0 +Standards-Version: 4.5.1 Rules-Requires-Root: no XS-Debian-Vcs-Git: https://salsa.debian.org/utopia-team/network-manager.git XS-Debian-Vcs-Browser: https://salsa.debian.org/utopia-team/network-manager @@ -58,14 +58,14 @@ Depends: ${shlibs:Depends}, dbus, udev, adduser, - libpam-systemd, policykit-1 Recommends: ppp, dnsmasq-base, iptables, modemmanager, network-manager-pptp, - crda, + wireless-regdb, + libpam-systemd, Suggests: avahi-autoipd, libteam-utils, isc-dhcp-client, diff --git a/debian/libnm0.symbols b/debian/libnm0.symbols index bec7e850..3073b2c8 100644 --- a/debian/libnm0.symbols +++ b/debian/libnm0.symbols @@ -19,6 +19,8 @@ libnm.so.0 libnm0 #MINVER# libnm_1_22_8@libnm_1_22_8 1.22.8 libnm_1_24_0@libnm_1_24_0 1.23.90 libnm_1_26_0@libnm_1_26_0 1.25.90 + libnm_1_26_4@libnm_1_26_4 1.27.90 + libnm_1_28_0@libnm_1_28_0 1.27.90 libnm_1_2_0@libnm_1_2_0 1.1.90 libnm_1_2_4@libnm_1_2_4 1.2.4 libnm_1_4_0@libnm_1_4_0 1.4.0 @@ -932,6 +934,7 @@ libnm.so.0 libnm0 #MINVER# nm_setting_infiniband_new@libnm_1_0_0 1.0.0 nm_setting_ip4_config_get_dhcp_client_id@libnm_1_0_0 1.0.0 nm_setting_ip4_config_get_dhcp_fqdn@libnm_1_2_0 1.1.90 + nm_setting_ip4_config_get_dhcp_vendor_class_identifier@libnm_1_26_4 1.27.90 nm_setting_ip4_config_get_type@libnm_1_0_0 1.0.0 nm_setting_ip4_config_new@libnm_1_0_0 1.0.0 nm_setting_ip6_config_addr_gen_mode_get_type@libnm_1_2_0 1.1.90 @@ -944,12 +947,14 @@ libnm.so.0 libnm0 #MINVER# nm_setting_ip6_config_new@libnm_1_0_0 1.0.0 nm_setting_ip6_config_privacy_get_type@libnm_1_0_0 1.0.0 nm_setting_ip_config_add_address@libnm_1_0_0 1.0.0 + nm_setting_ip_config_add_dhcp_reject_server@libnm_1_28_0 1.27.90 nm_setting_ip_config_add_dns@libnm_1_0_0 1.0.0 nm_setting_ip_config_add_dns_option@libnm_1_2_0 1.1.90 nm_setting_ip_config_add_dns_search@libnm_1_0_0 1.0.0 nm_setting_ip_config_add_route@libnm_1_0_0 1.0.0 nm_setting_ip_config_add_routing_rule@libnm_1_18_0 1.18.0 nm_setting_ip_config_clear_addresses@libnm_1_0_0 1.0.0 + nm_setting_ip_config_clear_dhcp_reject_servers@libnm_1_28_0 1.27.90 nm_setting_ip_config_clear_dns@libnm_1_0_0 1.0.0 nm_setting_ip_config_clear_dns_options@libnm_1_2_0 1.1.90 nm_setting_ip_config_clear_dns_searches@libnm_1_0_0 1.0.0 @@ -959,6 +964,7 @@ libnm.so.0 libnm0 #MINVER# nm_setting_ip_config_get_dad_timeout@libnm_1_2_0 1.1.91 nm_setting_ip_config_get_dhcp_hostname@libnm_1_0_0 1.0.0 nm_setting_ip_config_get_dhcp_hostname_flags@libnm_1_22_0 1.22.0 + nm_setting_ip_config_get_dhcp_reject_servers@libnm_1_28_0 1.27.90 nm_setting_ip_config_get_dhcp_send_hostname@libnm_1_0_0 1.0.0 nm_setting_ip_config_get_dhcp_timeout@libnm_1_2_0 1.1.91 nm_setting_ip_config_get_dns@libnm_1_0_0 1.0.0 @@ -986,6 +992,7 @@ libnm.so.0 libnm0 #MINVER# nm_setting_ip_config_has_dns_options@libnm_1_2_0 1.1.90 nm_setting_ip_config_remove_address@libnm_1_0_0 1.0.0 nm_setting_ip_config_remove_address_by_value@libnm_1_0_0 1.0.0 + nm_setting_ip_config_remove_dhcp_reject_server@libnm_1_28_0 1.27.90 nm_setting_ip_config_remove_dns@libnm_1_0_0 1.0.0 nm_setting_ip_config_remove_dns_by_value@libnm_1_0_0 1.0.0 nm_setting_ip_config_remove_dns_option@libnm_1_2_0 1.1.90 @@ -1335,6 +1342,7 @@ libnm.so.0 libnm0 #MINVER# nm_setting_wireless_add_seen_bssid@libnm_1_0_0 1.0.0 nm_setting_wireless_ap_security_compatible@libnm_1_0_0 1.0.0 nm_setting_wireless_clear_mac_blacklist_items@libnm_1_0_0 1.0.0 + nm_setting_wireless_get_ap_isolation@libnm_1_28_0 1.27.90 nm_setting_wireless_get_band@libnm_1_0_0 1.0.0 nm_setting_wireless_get_bssid@libnm_1_0_0 1.0.0 nm_setting_wireless_get_channel@libnm_1_0_0 1.0.0 diff --git a/debian/patches/Force-online-state-with-unmanaged-devices.patch b/debian/patches/Force-online-state-with-unmanaged-devices.patch index 8c031b1c..f8bc3398 100644 --- a/debian/patches/Force-online-state-with-unmanaged-devices.patch +++ b/debian/patches/Force-online-state-with-unmanaged-devices.patch @@ -12,7 +12,7 @@ Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=512286 1 file changed, 115 insertions(+) diff --git a/src/nm-manager.c b/src/nm-manager.c -index 778e3b9..d0cc527 100644 +index 46f81c7..3465be4 100644 --- a/src/nm-manager.c +++ b/src/nm-manager.c @@ -52,6 +52,8 @@ @@ -24,165 +24,165 @@ index 778e3b9..d0cc527 100644 /*****************************************************************************/ typedef struct { -@@ -187,6 +189,10 @@ typedef struct { - GFileMonitor *fw_monitor; - guint fw_changed_id; +@@ -186,6 +188,10 @@ typedef struct { + GFileMonitor *fw_monitor; + guint fw_changed_id; -+ /* ifupdown state file monitor */ -+ GFileMonitor *ifstate_monitor; -+ gboolean ifstate_force_online; ++ /* ifupdown state file monitor */ ++ GFileMonitor *ifstate_monitor; ++ gboolean ifstate_force_online; + - guint timestamp_update_id; + guint timestamp_update_id; - guint devices_inited_id; -@@ -1430,6 +1436,27 @@ find_best_device_state (NMManager *manager) - return best_state; + guint devices_inited_id; +@@ -1433,6 +1439,27 @@ find_best_device_state(NMManager *manager) + return best_state; } +static NMState -+find_unmanaged_state (NMManager *self, NMState current_state) ++find_unmanaged_state(NMManager *self, NMState current_state) +{ -+ NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); -+ NMState new_state = current_state; -+ NMDevice *device; -+ -+ c_list_for_each_entry (device, &priv->devices_lst_head, devices_lst) { -+ NMDeviceState state = nm_device_get_state (device); -+ -+ if (state == NM_DEVICE_STATE_UNMANAGED) { -+ const char *iface = nm_device_get_ip_iface (device); -+ if (priv->ifstate_force_online) { -+ new_state = NM_STATE_CONNECTED_GLOBAL; -+ nm_log_dbg (LOGD_CORE, "Unmanaged device found: %s; state CONNECTED forced.", iface); -+ } -+ } -+ } -+ return new_state; ++ NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE(self); ++ NMState new_state = current_state; ++ NMDevice *device; ++ ++ c_list_for_each_entry(device, &priv->devices_lst_head, devices_lst) { ++ NMDeviceState state = nm_device_get_state(device); ++ ++ if (state == NM_DEVICE_STATE_UNMANAGED) { ++ const char *iface = nm_device_get_ip_iface(device); ++ if (priv->ifstate_force_online) { ++ new_state = NM_STATE_CONNECTED_GLOBAL; ++ nm_log_dbg(LOGD_CORE, "Unmanaged device found: %s; state CONNECTED forced.", iface); ++ } ++ } ++ } ++ return new_state; +} + static void - nm_manager_update_metered (NMManager *self) + nm_manager_update_metered(NMManager *self) { -@@ -1476,6 +1503,9 @@ nm_manager_update_state (NMManager *self) - else - new_state = find_best_device_state (self); +@@ -1479,6 +1506,9 @@ nm_manager_update_state(NMManager *self) + else + new_state = find_best_device_state(self); -+ if (new_state != NM_STATE_CONNECTED_GLOBAL) -+ new_state = find_unmanaged_state (self, new_state); -+ - if ( new_state >= NM_STATE_CONNECTED_LOCAL - && priv->connectivity_state == NM_CONNECTIVITY_FULL) { - new_state = NM_STATE_CONNECTED_GLOBAL; -@@ -6566,6 +6596,62 @@ impl_manager_check_connectivity (NMDBusObject *obj, - nm_auth_chain_add_call (chain, NM_AUTH_PERMISSION_NETWORK_CONTROL, TRUE); ++ if (new_state != NM_STATE_CONNECTED_GLOBAL) ++ new_state = find_unmanaged_state(self, new_state); ++ + if (new_state >= NM_STATE_CONNECTED_LOCAL && priv->connectivity_state == NM_CONNECTIVITY_FULL) { + new_state = NM_STATE_CONNECTED_GLOBAL; + } +@@ -6587,6 +6617,62 @@ impl_manager_set_logging(NMDBusObject * obj, + g_dbus_method_invocation_return_value(invocation, NULL); } +static void -+check_ifstate_file (gpointer user_data) ++check_ifstate_file(gpointer user_data) +{ -+ NMManager *self = NM_MANAGER (user_data); -+ NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (self); -+ GIOChannel *channel; -+ gchar *line; -+ gboolean online = FALSE; -+ -+ channel = g_io_channel_new_file (IFUPDOWN_STATE_FILE, "r", NULL); -+ if (!channel) { -+ nm_log_warn (LOGD_CORE, "Error: failed to open %s", IFUPDOWN_STATE_FILE); -+ return; -+ } -+ -+ while (g_io_channel_read_line (channel, &line, NULL, NULL, NULL) -+ != G_IO_STATUS_EOF && !online) { -+ g_strstrip (line); -+ if (strlen (line) > 0 && g_strcmp0 (line, "lo=lo") != 0) { -+ online = TRUE; -+ } -+ g_free (line); -+ } -+ -+ g_io_channel_shutdown (channel, FALSE, NULL); -+ g_io_channel_unref (channel); -+ -+ if (priv->ifstate_force_online != online) { -+ priv->ifstate_force_online = online; -+ nm_manager_update_state (self); -+ } ++ NMManager *self = NM_MANAGER(user_data); ++ NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE(self); ++ GIOChannel *channel; ++ gchar *line; ++ gboolean online = FALSE; ++ ++ channel = g_io_channel_new_file(IFUPDOWN_STATE_FILE, "r", NULL); ++ if (!channel) { ++ nm_log_warn(LOGD_CORE, "Error: failed to open %s", IFUPDOWN_STATE_FILE); ++ return; ++ } ++ ++ while (g_io_channel_read_line(channel, &line, NULL, NULL, NULL) ++ != G_IO_STATUS_EOF && !online) { ++ g_strstrip(line); ++ if (strlen(line) > 0 && g_strcmp0(line, "lo=lo") != 0) { ++ online = TRUE; ++ } ++ g_free(line); ++ } ++ ++ g_io_channel_shutdown(channel, FALSE, NULL); ++ g_io_channel_unref(channel); ++ ++ if (priv->ifstate_force_online != online) { ++ priv->ifstate_force_online = online; ++ nm_manager_update_state(self); ++ } +} + +static void -+ifstate_file_changed (GFileMonitor *monitor, -+ GFile *file, -+ GFile *other_file, -+ GFileMonitorEvent event_type, -+ gpointer user_data) ++ifstate_file_changed(GFileMonitor *monitor, ++ GFile *file, ++ GFile *other_file, ++ GFileMonitorEvent event_type, ++ gpointer user_data) +{ -+ switch (event_type) { -+// case G_FILE_MONITOR_EVENT_CREATED: ++ switch (event_type) { ++// case G_FILE_MONITOR_EVENT_CREATED: +//#if GLIB_CHECK_VERSION(2,23,4) -+// case G_FILE_MONITOR_EVENT_MOVED: ++// case G_FILE_MONITOR_EVENT_MOVED: +//#endif -+// case G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED: -+ case G_FILE_MONITOR_EVENT_CHANGED: -+ case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT: -+ nm_log_dbg (LOGD_CORE, "ifupdown state file %s was changed", IFUPDOWN_STATE_FILE); -+ check_ifstate_file (user_data); -+ break; -+ default: -+ break; -+ } ++// case G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED: ++ case G_FILE_MONITOR_EVENT_CHANGED: ++ case G_FILE_MONITOR_EVENT_CHANGES_DONE_HINT: ++ nm_log_dbg(LOGD_CORE, "ifupdown state file %s was changed", IFUPDOWN_STATE_FILE); ++ check_ifstate_file(user_data); ++ break; ++ default: ++ break; ++ } +} + static void - start_factory (NMDeviceFactory *factory, gpointer user_data) - { -@@ -6749,6 +6835,9 @@ nm_manager_start (NMManager *self, GError **error) - nm_clear_g_source (&priv->devices_inited_id); - priv->devices_inited_id = g_idle_add_full (G_PRIORITY_LOW + 10, devices_inited_cb, self, NULL); + impl_manager_get_logging(NMDBusObject * obj, + const NMDBusInterfaceInfoExtended *interface_info, +@@ -6916,6 +7002,9 @@ nm_manager_start(NMManager *self, GError **error) + nm_clear_g_source(&priv->devices_inited_id); + priv->devices_inited_id = g_idle_add_full(G_PRIORITY_LOW + 10, devices_inited_cb, self, NULL); -+ /* Trigger ifupdown state file check */ -+ check_ifstate_file (self); ++ /* Trigger ifupdown state file check */ ++ check_ifstate_file(self); + - return TRUE; + return TRUE; } -@@ -7603,6 +7692,22 @@ nm_manager_init (NMManager *self) - KERNEL_FIRMWARE_DIR); - } - -+ /* Monitor the ifupdown state file */ -+ file = g_file_new_for_path (IFUPDOWN_STATE_FILE); -+ priv->ifstate_monitor = g_file_monitor_file (file, G_FILE_MONITOR_NONE, NULL, NULL); -+ g_object_unref (file); -+ -+ if (priv->ifstate_monitor) { -+ g_signal_connect (priv->ifstate_monitor, "changed", -+ G_CALLBACK (ifstate_file_changed), -+ self); -+ nm_log_info (LOGD_CORE, "monitoring ifupdown state file '%s'.", -+ IFUPDOWN_STATE_FILE); -+ } else { -+ nm_log_warn (LOGD_CORE, "failed to monitor ifupdown state file '%s'.", -+ IFUPDOWN_STATE_FILE); -+ } -+ - /* Update timestamps in active connections */ - priv->timestamp_update_id = g_timeout_add_seconds (300, (GSourceFunc) periodic_update_active_connection_timestamps, self); +@@ -7795,6 +7884,22 @@ nm_manager_init(NMManager *self) + _LOGW(LOGD_CORE, "failed to monitor kernel firmware directory '%s'.", KERNEL_FIRMWARE_DIR); + } -@@ -7882,6 +7987,16 @@ dispose (GObject *object) - g_clear_object (&priv->fw_monitor); - } ++ /* Monitor the ifupdown state file */ ++ file = g_file_new_for_path(IFUPDOWN_STATE_FILE); ++ priv->ifstate_monitor = g_file_monitor_file(file, G_FILE_MONITOR_NONE, NULL, NULL); ++ g_object_unref(file); ++ ++ if (priv->ifstate_monitor) { ++ g_signal_connect(priv->ifstate_monitor, "changed", ++ G_CALLBACK(ifstate_file_changed), ++ self); ++ nm_log_info(LOGD_CORE, "monitoring ifupdown state file '%s'.", ++ IFUPDOWN_STATE_FILE); ++ } else { ++ nm_log_warn(LOGD_CORE, "failed to monitor ifupdown state file '%s'.", ++ IFUPDOWN_STATE_FILE); ++ } ++ + /* Update timestamps in active connections */ + priv->timestamp_update_id = + g_timeout_add_seconds(300, +@@ -8078,6 +8183,16 @@ dispose(GObject *object) + g_clear_object(&priv->fw_monitor); + } -+ if (priv->ifstate_monitor) { -+ g_signal_handlers_disconnect_by_func (priv->ifstate_monitor, ifstate_file_changed, self); ++ if (priv->ifstate_monitor) { ++ g_signal_handlers_disconnect_by_func(priv->ifstate_monitor, ifstate_file_changed, self); + -+ if (priv->ifstate_force_online) -+ g_source_remove (priv->ifstate_force_online); ++ if (priv->ifstate_force_online) ++ g_source_remove(priv->ifstate_force_online); + -+ g_file_monitor_cancel (priv->ifstate_monitor); -+ g_clear_object (&priv->ifstate_monitor); -+ } ++ g_file_monitor_cancel(priv->ifstate_monitor); ++ g_clear_object(&priv->ifstate_monitor); ++ } + - if (priv->rfkill_mgr) { - g_signal_handlers_disconnect_by_func (priv->rfkill_mgr, rfkill_manager_rfkill_changed_cb, self); - g_clear_object (&priv->rfkill_mgr); + if (priv->rfkill_mgr) { + g_signal_handlers_disconnect_by_func(priv->rfkill_mgr, + rfkill_manager_rfkill_changed_cb, diff --git a/debian/patches/Update-dnsmasq-parameters.patch b/debian/patches/Update-dnsmasq-parameters.patch index c0f97963..e0b89aa6 100644 --- a/debian/patches/Update-dnsmasq-parameters.patch +++ b/debian/patches/Update-dnsmasq-parameters.patch @@ -10,46 +10,46 @@ See also: https://blueprints.launchpad.net/ubuntu/+spec/foundations-p-dns-resolv src/dns/nm-dns-manager.c | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) -Index: network-manager-1.24.0/src/dns/nm-dns-dnsmasq.c +Index: network-manager/src/dns/nm-dns-dnsmasq.c =================================================================== ---- network-manager-1.24.0.orig/src/dns/nm-dns-dnsmasq.c -+++ network-manager-1.24.0/src/dns/nm-dns-dnsmasq.c -@@ -494,8 +494,8 @@ _gl_pid_spawn_next_step (void) - argv[argv_idx++] = "--no-hosts"; /* don't use /etc/hosts to resolve */ - argv[argv_idx++] = "--bind-interfaces"; - argv[argv_idx++] = "--pid-file=" PIDFILE; -- argv[argv_idx++] = "--listen-address=127.0.0.1"; /* Should work for both 4 and 6 */ -- argv[argv_idx++] = "--cache-size=400"; -+ argv[argv_idx++] = "--listen-address=127.0.1.1"; /* Should work for both 4 and 6 */ -+ argv[argv_idx++] = "--cache-size=0"; - argv[argv_idx++] = "--clear-on-reload"; /* clear cache when dns server changes */ - argv[argv_idx++] = "--conf-file=/dev/null"; /* avoid loading /etc/dnsmasq.conf */ - argv[argv_idx++] = "--proxy-dnssec"; /* Allow DNSSEC to pass through */ -Index: network-manager-1.24.0/src/dns/nm-dns-manager.c +--- network-manager.orig/src/dns/nm-dns-dnsmasq.c ++++ network-manager/src/dns/nm-dns-dnsmasq.c +@@ -523,8 +523,8 @@ _gl_pid_spawn_next_step(void) + argv[argv_idx++] = "--no-hosts"; /* don't use /etc/hosts to resolve */ + argv[argv_idx++] = "--bind-interfaces"; + argv[argv_idx++] = "--pid-file=" PIDFILE; +- argv[argv_idx++] = "--listen-address=127.0.0.1"; /* Should work for both 4 and 6 */ +- argv[argv_idx++] = "--cache-size=400"; ++ argv[argv_idx++] = "--listen-address=127.0.1.1"; /* Should work for both 4 and 6 */ ++ argv[argv_idx++] = "--cache-size=0"; + argv[argv_idx++] = "--clear-on-reload"; /* clear cache when dns server changes */ + argv[argv_idx++] = "--conf-file=/dev/null"; /* avoid loading /etc/dnsmasq.conf */ + argv[argv_idx++] = "--proxy-dnssec"; /* Allow DNSSEC to pass through */ +Index: network-manager/src/dns/nm-dns-manager.c =================================================================== ---- network-manager-1.24.0.orig/src/dns/nm-dns-manager.c -+++ network-manager-1.24.0/src/dns/nm-dns-manager.c -@@ -1526,12 +1526,12 @@ plugin_skip: - NM_CAST_STRV_CC (nameservers), - NM_CAST_STRV_CC (options)); +--- network-manager.orig/src/dns/nm-dns-manager.c ++++ network-manager/src/dns/nm-dns-manager.c +@@ -1696,12 +1696,12 @@ plugin_skip:; + NM_CAST_STRV_CC(nameservers), + NM_CAST_STRV_CC(options)); -- /* If caching was successful, we only send 127.0.0.1 to /etc/resolv.conf -+ /* If caching was successful, we only send 127.0.1.1 to /etc/resolv.conf - * to ensure that the glibc resolver doesn't try to round-robin nameservers, - * but only uses the local caching nameserver. - */ - if (caching) { -- const char *lladdr = "127.0.0.1"; -+ const char *lladdr = "127.0.1.1"; +- /* If caching was successful, we only send 127.0.0.1 to /etc/resolv.conf ++ /* If caching was successful, we only send 127.0.1.1 to /etc/resolv.conf + * to ensure that the glibc resolver doesn't try to round-robin nameservers, + * but only uses the local caching nameserver. + */ + if (caching) { +- const char *lladdr = "127.0.0.1"; ++ const char *lladdr = "127.0.1.1"; - if (NM_IS_DNS_SYSTEMD_RESOLVED (priv->plugin)) { - /* systemd-resolved uses a different link-local address */ -@@ -1825,7 +1825,7 @@ nm_dns_manager_stop (NMDnsManager *self) - _LOGT ("stopping..."); + if (NM_IS_DNS_SYSTEMD_RESOLVED(priv->plugin)) { + /* systemd-resolved uses a different link-local address */ +@@ -1982,7 +1982,7 @@ nm_dns_manager_stop(NMDnsManager *self) + _LOGT("stopping..."); - /* If we're quitting, leave a valid resolv.conf in place, not one -- * pointing to 127.0.0.1 if dnsmasq was active. But if we haven't -+ * pointing to 127.0.1.1 if dnsmasq was active. But if we haven't - * done any DNS updates yet, there's no reason to touch resolv.conf - * on shutdown. - */ + /* If we're quitting, leave a valid resolv.conf in place, not one +- * pointing to 127.0.0.1 if dnsmasq was active. But if we haven't ++ * pointing to 127.0.1.1 if dnsmasq was active. But if we haven't + * done any DNS updates yet, there's no reason to touch resolv.conf + * on shutdown. + */ diff --git a/debian/patches/series b/debian/patches/series index c25f5936..0980b69a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,6 +1,5 @@ Force-online-state-with-unmanaged-devices.patch - # Ubuntu patches Provide-access-to-some-of-NM-s-interfaces-to-whoopsie.patch Update-dnsmasq-parameters.patch - +systemd-basic-missing_syscall-fix-syscall-numbers-for-x32.patch diff --git a/debian/patches/systemd-basic-missing_syscall-fix-syscall-numbers-for-x32.patch b/debian/patches/systemd-basic-missing_syscall-fix-syscall-numbers-for-x32.patch new file mode 100644 index 00000000..75b2fd2b --- /dev/null +++ b/debian/patches/systemd-basic-missing_syscall-fix-syscall-numbers-for-x32.patch @@ -0,0 +1,124 @@ +From: mirabilos <tg@debian.org> +Date: Fri, 9 Oct 2020 15:58:48 +0200 +Subject: fixup syscall numbers for x32 vs. amd64 + +--- + shared/systemd/src/basic/missing_syscall.h | 28 +++++++++++++++++----------- + 1 file changed, 17 insertions(+), 11 deletions(-) + +diff --git a/shared/systemd/src/basic/missing_syscall.h b/shared/systemd/src/basic/missing_syscall.h +index d11a77d..82daa68 100644 +--- a/shared/systemd/src/basic/missing_syscall.h ++++ b/shared/systemd/src/basic/missing_syscall.h +@@ -15,6 +15,12 @@ + #include <asm/sgidefs.h> + #endif + ++#if defined(__x86_64__) && defined(__ILP32__) ++#define systemd_SC_arch_bias(x) ((x) | /* __X32_SYSCALL_BIT */ 0x40000000) ++#else ++#define systemd_SC_arch_bias(x) (x) ++#endif ++ + #include "missing_keyctl.h" + #include "missing_stat.h" + +@@ -36,7 +42,7 @@ static inline int missing_pivot_root(const char *new_root, const char *put_old) + /* ======================================================================= */ + + #if defined __x86_64__ +-# define systemd_NR_memfd_create 319 ++# define systemd_NR_memfd_create systemd_SC_arch_bias(319) + #elif defined __arm__ + # define systemd_NR_memfd_create 385 + #elif defined __aarch64__ +@@ -93,7 +99,7 @@ static inline int missing_memfd_create(const char *name, unsigned int flags) { + /* ======================================================================= */ + + #if defined __x86_64__ +-# define systemd_NR_getrandom 318 ++# define systemd_NR_getrandom systemd_SC_arch_bias(318) + #elif defined(__i386__) + # define systemd_NR_getrandom 355 + #elif defined(__arm__) +@@ -169,7 +175,7 @@ static inline pid_t missing_gettid(void) { + /* ======================================================================= */ + + #if defined(__x86_64__) +-# define systemd_NR_name_to_handle_at 303 ++# define systemd_NR_name_to_handle_at systemd_SC_arch_bias(303) + #elif defined(__i386__) + # define systemd_NR_name_to_handle_at 341 + #elif defined(__arm__) +@@ -226,7 +232,7 @@ static inline int missing_name_to_handle_at(int fd, const char *name, struct fil + #elif defined __arm__ + # define systemd_NR_setns 375 + #elif defined(__x86_64__) +-# define systemd_NR_setns 308 ++# define systemd_NR_setns systemd_SC_arch_bias(308) + #elif defined(__i386__) + # define systemd_NR_setns 346 + #elif defined(__powerpc__) +@@ -279,7 +285,7 @@ static inline pid_t raw_getpid(void) { + /* ======================================================================= */ + + #if defined __x86_64__ +-# define systemd_NR_renameat2 316 ++# define systemd_NR_renameat2 systemd_SC_arch_bias(316) + #elif defined __arm__ + # define systemd_NR_renameat2 382 + #elif defined __aarch64__ +@@ -388,7 +394,7 @@ static inline key_serial_t missing_request_key(const char *type, const char *des + /* ======================================================================= */ + + #if defined(__x86_64__) +-# define systemd_NR_copy_file_range 326 ++# define systemd_NR_copy_file_range systemd_SC_arch_bias(326) + #elif defined(__i386__) + # define systemd_NR_copy_file_range 377 + #elif defined __s390__ +@@ -440,7 +446,7 @@ static inline ssize_t missing_copy_file_range(int fd_in, loff_t *off_in, + #if defined __i386__ + # define systemd_NR_bpf 357 + #elif defined __x86_64__ +-# define systemd_NR_bpf 321 ++# define systemd_NR_bpf systemd_SC_arch_bias(321) + #elif defined __aarch64__ + # define systemd_NR_bpf 280 + #elif defined __arm__ +@@ -492,7 +498,7 @@ static inline int missing_bpf(int cmd, union bpf_attr *attr, size_t size) { + # if defined __i386__ + # define systemd_NR_pkey_mprotect 380 + # elif defined __x86_64__ +-# define systemd_NR_pkey_mprotect 329 ++# define systemd_NR_pkey_mprotect systemd_SC_arch_bias(329) + # elif defined __aarch64__ + # define systemd_NR_pkey_mprotect 288 + # elif defined __arm__ +@@ -545,7 +551,7 @@ assert_cc(__NR_pkey_mprotect == systemd_NR_pkey_mprotect); + #elif defined __sparc__ + # define systemd_NR_statx 360 + #elif defined __x86_64__ +-# define systemd_NR_statx 332 ++# define systemd_NR_statx systemd_SC_arch_bias(332) + #else + # warning "statx() syscall number unknown for your architecture" + #endif +@@ -647,7 +653,7 @@ static inline long missing_get_mempolicy(int *mode, unsigned long *nodemask, + #elif defined __ia64__ + # define systemd_NR_pidfd_send_signal (424 + 1024) + #else +-# define systemd_NR_pidfd_send_signal 424 ++# define systemd_NR_pidfd_send_signal systemd_SC_arch_bias(424) + #endif + + /* may be (invalid) negative number due to libseccomp, see PR 13319 */ +@@ -691,7 +697,7 @@ static inline int missing_pidfd_send_signal(int fd, int sig, siginfo_t *info, un + #elif defined __ia64__ + # define systemd_NR_pidfd_open (434 + 1024) + #else +-# define systemd_NR_pidfd_open 434 ++# define systemd_NR_pidfd_open systemd_SC_arch_bias(434) + #endif + + /* may be (invalid) negative number due to libseccomp, see PR 13319 */ |