From ed9d0b162aab6b7b4b40e5ee936a8ca33251aaa4 Mon Sep 17 00:00:00 2001 From: Tomas Hozza Date: Feb 19 2018 11:54:15 +0000 Subject: use NetworkManager-libnm instead of NetworkManager-glib Signed-off-by: Tomas Hozza --- diff --git a/0001-dnssec-trigger-script-port-to-libnm.patch b/0001-dnssec-trigger-script-port-to-libnm.patch new file mode 100644 index 0000000..5891c2b --- /dev/null +++ b/0001-dnssec-trigger-script-port-to-libnm.patch @@ -0,0 +1,108 @@ +From ef18b39abdb5e8bf870ada3c108ab7f083405d2c Mon Sep 17 00:00:00 2001 +From: Lubomir Rintel +Date: Thu, 15 Feb 2018 17:57:52 +0100 +Subject: [PATCH] dnssec-trigger-script: port to libnm + +The libnm-glib is depreacted for a long time already and is eventually +going away. +--- + dnssec-trigger-script.in | 51 ++++++++++++++---------------------------------- + 1 file changed, 15 insertions(+), 36 deletions(-) + +diff --git a/dnssec-trigger-script.in b/dnssec-trigger-script.in +index 5f70580..14d9278 100644 +--- a/dnssec-trigger-script.in ++++ b/dnssec-trigger-script.in +@@ -13,14 +13,13 @@ import glob + import subprocess + import logging + import logging.handlers +-import socket + import struct + import signal + + import gi +-gi.require_version('NMClient', '1.0') ++gi.require_version('NM', '1.0') + +-from gi.repository import NMClient ++from gi.repository import NM + + # Python compatibility stuff + if not hasattr(os, "O_CLOEXEC"): +@@ -132,7 +131,7 @@ class ConnectionList: + + def __init__(self, client, only_default=False, only_vpn=False, skip_wifi=False): + # Cache the active connection list in the class +- if not client.get_manager_running(): ++ if not client.get_nm_running(): + raise UserError("NetworkManager is not running.") + if self.nm_connections is None: + self.__class__.nm_connections = client.get_active_connections() +@@ -208,40 +207,20 @@ class Connection: + self.uuid = connection.get_uuid() + + self.zones = [] +- try: +- self.zones += connection.get_ip4_config().get_domains() +- except AttributeError: +- pass +- try: +- self.zones += connection.get_ip6_config().get_domains() +- except AttributeError: +- pass +- + self.servers = [] +- try: +- self.servers += [self.ip4_to_str(server) for server in connection.get_ip4_config().get_nameservers()] +- except AttributeError: +- pass +- try: +- self.servers += [self.ip6_to_str(connection.get_ip6_config().get_nameserver(i)) +- for i in range(connection.get_ip6_config().get_num_nameservers())] +- except AttributeError: +- pass +- +- def __repr__(self): +- return "".format(**vars(self)) + +- @staticmethod +- def ip4_to_str(ip4): +- """Converts IPv4 address from integer to string.""" +- +- return socket.inet_ntop(socket.AF_INET, struct.pack("=I", ip4)) ++ ip4_config = connection.get_ip4_config() ++ if ip4_config is not None: ++ self.zones += ip4_config.get_domains() ++ self.servers += ip4_config.get_nameservers() + +- @staticmethod +- def ip6_to_str(ip6): +- """Converts IPv6 address from integer to string.""" ++ ip6_config = connection.get_ip6_config() ++ if ip6_config is not None: ++ self.zones += ip6_config.get_domains() ++ self.servers += ip6_config.get_nameservers() + +- return socket.inet_ntop(socket.AF_INET6, ip6) ++ def __repr__(self): ++ return "".format(**vars(self)) + + @property + def ignore(self): +@@ -466,10 +445,10 @@ class Application: + except AttributeError: + self.usage() + +- self.client = NMClient.Client().new() ++ self.client = NM.Client().new() + + def nm_handles_resolv_conf(self): +- if not self.client.get_manager_running(): ++ if not self.client.get_nm_running(): + log.debug("NetworkManager is not running") + return False + try: +-- +2.13.6 + diff --git a/dnssec-trigger.spec b/dnssec-trigger.spec index 931ec5c..9927656 100644 --- a/dnssec-trigger.spec +++ b/dnssec-trigger.spec @@ -5,7 +5,7 @@ Summary: Tool for dynamic reconfiguration of validating resolver Unbound Name: dnssec-trigger Version: 0.15 -Release: 2%{?svn_snapshot:.%{svn_snapshot}svn}%{?dist} +Release: 3%{?svn_snapshot:.%{svn_snapshot}svn}%{?dist} License: BSD Url: http://www.nlnetlabs.nl/downloads/dnssec-trigger/ @@ -20,6 +20,7 @@ Source2: dnssec-trigger-default.conf Source3: dnssec-trigger-workstation.conf # Patches +Patch1: 0001-dnssec-trigger-script-port-to-libnm.patch # to obsolete the version in which the panel was in main package Obsoletes: %{name} < 0.12-22 @@ -35,12 +36,12 @@ Requires: NetworkManager >= 0.9.9.95-1 Requires: NetworkManager >= 0.9.9.0-40 %endif %endif -Requires: ldns >= 1.6.10, NetworkManager-glib, unbound +Requires: ldns >= 1.6.10, NetworkManager-libnm, unbound # needed by /usr/sbin/dnssec-trigger-control-setup # otherwise it ends with error: /usr/sbin/dnssec-trigger-control-setup: line 180: openssl: command not found Requires: openssl BuildRequires: openssl-devel, ldns-devel, python3-devel -BuildRequires: NetworkManager-devel +BuildRequires: NetworkManager-libnm-devel BuildRequires: systemd Requires(post): systemd @@ -76,6 +77,8 @@ some user input is needed, the panel creates a dialog window. %prep %setup -q %{?svn_snapshot:-n %{name}-%{version}_%{svn_snapshot}} +%patch1 -p1 -b .libnm_port + # don't use DNSSEC for forward zones for now sed -i "s/validate_connection_provided_zones=yes/validate_connection_provided_zones=no/" dnssec.conf @@ -180,6 +183,9 @@ fi %changelog +* Mon Feb 19 2018 Tomas Hozza - 0.15-3 +- use NetworkManager-libnm instead of NetworkManager-glib + * Wed Feb 07 2018 Fedora Release Engineering - 0.15-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild