summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2013-07-15 18:31:54 +0000
committerPacho Ramos <pacho@gentoo.org>2013-07-15 18:31:54 +0000
commit70391537d984b177583daa1b734e3353f8644e95 (patch)
tree4a327d4a21d28ed721f7880de4d94dcf1d170d81
parentamd64/x86 stable wrt bug #449604 (diff)
downloadhistorical-70391537d984b177583daa1b734e3353f8644e95.tar.gz
historical-70391537d984b177583daa1b734e3353f8644e95.tar.bz2
historical-70391537d984b177583daa1b734e3353f8644e95.zip
Revision bump dropping runtime detect of logind as we won't be able to support logind without systemd being running, and this keeps us more close to upstream (preventing us from hitting any hypothetical problems that could arise from it until accepted by upstream). Also force dhcpcd < 6 until upstream confirms updating configure check is enough to properly work with newer versions.
Package-Manager: portage-2.1.12.13/cvs/Linux x86_64 Manifest-Sign-Key: 0xA188FBD4
-rw-r--r--net-misc/networkmanager/ChangeLog13
-rw-r--r--net-misc/networkmanager/Manifest11
-rw-r--r--net-misc/networkmanager/files/0001-core-runtime-detect-logind-and-ConsoleKit-3.patch1004
-rw-r--r--net-misc/networkmanager/networkmanager-0.9.8.2-r2.ebuild (renamed from net-misc/networkmanager/networkmanager-0.9.8.2-r1.ebuild)20
4 files changed, 24 insertions, 1024 deletions
diff --git a/net-misc/networkmanager/ChangeLog b/net-misc/networkmanager/ChangeLog
index 805124797a6d..12a31a119e19 100644
--- a/net-misc/networkmanager/ChangeLog
+++ b/net-misc/networkmanager/ChangeLog
@@ -1,6 +1,17 @@
# ChangeLog for net-misc/networkmanager
# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/ChangeLog,v 1.175 2013/07/14 19:31:29 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/ChangeLog,v 1.176 2013/07/15 18:31:46 pacho Exp $
+
+*networkmanager-0.9.8.2-r2 (15 Jul 2013)
+
+ 15 Jul 2013; Pacho Ramos <pacho@gentoo.org> +networkmanager-0.9.8.2-r2.ebuild,
+ -files/0001-core-runtime-detect-logind-and-ConsoleKit-3.patch,
+ -networkmanager-0.9.8.2-r1.ebuild:
+ Revision bump dropping runtime detect of logind as we won't be able to support
+ logind without systemd being running, and this keeps us more close to upstream
+ (preventing us from hitting any hypothetical problems that could arise from it
+ until accepted by upstream). Also force dhcpcd < 6 until upstream confirms
+ updating configure check is enough to properly work with newer versions.
14 Jul 2013; Pacho Ramos <pacho@gentoo.org> networkmanager-0.9.8.2-r1.ebuild:
Add missing eautoreconf call
diff --git a/net-misc/networkmanager/Manifest b/net-misc/networkmanager/Manifest
index 1f9bb4331e89..48719e5e0950 100644
--- a/net-misc/networkmanager/Manifest
+++ b/net-misc/networkmanager/Manifest
@@ -1,7 +1,6 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
-AUX 0001-core-runtime-detect-logind-and-ConsoleKit-3.patch 26690 SHA256 5c70357198c283be48f4c24d6d961d12ea75dea327d42ee3587406d225393710 SHA512 f4f4e2d1c2769fa9f4aca81e320edf6ec1696a0eecba816f42815473df36d874ce0341d23d9e71bb77156abc14c79c97e915556918e152f3d6efd84f5048c078 WHIRLPOOL b9b03afc79f70982aa8f68df4d219a297733bc8f126bf2a2c6d9153040a66c8f0ccaf16cb509c6482d3b0ebbdbe60f71dfb10a8b751823d46287a0e102ba3bec
AUX 01-org.freedesktop.NetworkManager.settings.modify.system.pkla 187 SHA256 909356b25e2d887a31c0f9f2a23a466957f27b163bbd5172fa852988a1db1860 SHA512 b0f24294cf9a0c09ffa323c4d79a6758b128ae60d35eebc7db3a6de35a2117a5aeb58ede132be8170876ab069a2afc81cca3c75ee0e9f6e3a37fe5c9e45bbce4 WHIRLPOOL 54cb4687452bbba2ba78ed7fc237ef72f7b8e07fb30d239a1b7d5845c73eada0442ec1f18a9e3730169f30a621f0f45b4f715fa29d2e31084eefa8877925531d
AUX 01-org.freedesktop.NetworkManager.settings.modify.system.rules 265 SHA256 702e1e702ec633608fd75dfd44f66437896421c9d2d7fe9966df8e4ef1d93a6c SHA512 22dfa5b071891ba16b9a8b90a1964d56e370cb640d78191934ae802e568f92c299b9d4d965f7081fb36a8c09378bfb0b33193b2332cbdc28c6799b152128c214 WHIRLPOOL b89a4069cc973cf55001a5f0028c75a90ce4ea070c4424b5a22f3e9b8e61ee34ff7b06891eb1c6f8fa24735b3e5d98e61f0bfefca7dd12eeb615b83e72225c8b
AUX 10-openrc-status-r2 899 SHA256 4391d3c53f7904bfd287e767c791c5c1b605d5bff7f5aaa00b8d7655101f2732 SHA512 5b5f783d2c68da4f47db919aea60963986638c313645e8f0ba3c89b3b339257b28eaaf65571536254e266e1da510cde7a157a8fdba1feb0d79b4d0c8ee3c51af WHIRLPOOL b941201368ee8c419fbbd0b33752deb70d9b9e140c76d74f50836734d22eeae70790cc3c7ac3b07cd40f95c3635fd99db92e161a21d74af1889dc0c48bb049ac
@@ -27,14 +26,14 @@ DIST NetworkManager-0.9.6.4.tar.xz 1968564 SHA256 511b411e055d187bc8f26c519fdb3e
DIST NetworkManager-0.9.8.2.tar.xz 1967452 SHA256 5c0b2f71b2f61e0dfbe95cebad83001758db252d5cdf5b6f7ceebac9c6bd7ead SHA512 a731b85d267bcbd837960b0b1bec2c8ec0458180a751bce353e763e9fca033dfc8101a1267101dadcc8984138a4b693a198a09c15acd7faab3930f98c8246775 WHIRLPOOL 788c3f07f66aca9099349a1a8325cf4ba5c23665d019c508baf4bf037f77316379a1c47c1eb67d4ab6ef845ff6a783e2453d6ff50cde6b830d36f2d5cd648e3c
EBUILD networkmanager-0.9.6.4-r1.ebuild 7546 SHA256 a998f7bad28581572ed7375ecdc33615d71a4b70c153d32f3142feee745016e3 SHA512 26636400345268f7534aeee029b29af5c53cc68f2b9d721c62f9cf206a2b5396641ded815fca1d2c375fedecb16c07bdf81b33fdc03bc8a46f40c50c3a7dea0a WHIRLPOOL 8c1549c48141feadf1cf1f7950b177fda1e044f23708af6e35502746f86fc5e1e2e26295ea9da6fb2f572b5cd8e3af2e4b3dde5481070bb9243669de277538a7
EBUILD networkmanager-0.9.6.4.ebuild 7518 SHA256 e1786b0b52196e98b6c7aff8dd641193f196ecf5ed8fbcf088ff4baa4ec9d56f SHA512 7b74e41be564767a591eadf50445b6a278cb9fe571f512a6075bc72268198b841ffb3e818276aaf3c738b2198b5ff9de037f6d60b7e32d6c91e380bd016386d5 WHIRLPOOL 2702292d1530bb4e7b6177cd3a54d7640842eac179f05e174fa8bbf590a81ac25af7ec769f7ddd5e71e0446df0c9c370deeb3d5edb2ac3cab8ddd98b5a6bde80
-EBUILD networkmanager-0.9.8.2-r1.ebuild 7501 SHA256 a71bbeb05e9a751af4c3707ade2302abbf9b2e7ef33ae6aa269b383418efed1b SHA512 dab06d0be09db7ef4ee9f698155b4f1dd09a6908b59023fdabe37aeae725849b6a32bd95f6e0820561d1e4906d72c017570e5e349b3b15670a7a440f88a6c36b WHIRLPOOL 2c80c66782c3aeb253a83679204e5f209b498dacce35266d58853ae89a2a0219e2b1b8a77435324fc85b0f1b0be79318e61244269edec918303a14684376a7d7
+EBUILD networkmanager-0.9.8.2-r2.ebuild 7312 SHA256 ac4bb8a1efc0f95d85087e1d035c3e58ebbfaee868e77024fd712a4763f073ce SHA512 2ad0bc1d08f6c513d71f396e36341756102a288f04eb6f55bbd5e40a7ae35a7580d8405be85cee295d6aa0e574ac47d33d6ed15b5366579cabfb6c34517328fd WHIRLPOOL f62e0e1b90c1dd3094512924a8520957fc93187bcc55f4cc09e78d1615a3006de5eba19a6fe1c77adf5f72bc4083c5f34d070400b158272ef8fac984d711a03d
EBUILD networkmanager-0.9.8.2.ebuild 7503 SHA256 3338fe5460c0920f363483de0c5f89bc32420a270e4bc9e6a5fe393037a23c1b SHA512 50ef0324ac5f336b73ae1674a6441b2f470de8d4a4a6ea5e0bd8922f5d15605e888acaf615cb4ecefbeb1cb132c4cc6fea0b4c8a591eb642cbc4dc554531d9c5 WHIRLPOOL d0ca01bb3f815f5a8be00fb48f98c1377e1f6abf4fffbceb0f0e2a79647f06c13aef54e14418a6f567ddd569627b6e50e923ee7456989b4801190225cf2a8dba
-MISC ChangeLog 43502 SHA256 2fb3b0d9a2e5c2f02a087fc6f54b53857840ee2590b393b05217ff70856a5b11 SHA512 f20db9df3013df7164f63c707b4e56c43ff3e0c838386eaeb8e3678803b11d5261a08c1432d46c7edfd31462709fa1e5f1661aaa2eb15d087ff7a59fdd368ef0 WHIRLPOOL 3ef47bea2fb4cd4e9b193b34240852123f8b7e840e1447ef6dd1aaa0d7f5259d7426e001065e553982b0c95cc9a47d823e9af1ee7d89356be69ea16f5b08da17
+MISC ChangeLog 44123 SHA256 42c698e29a6f3d847d15e175fb609cf2a3a551d758ac3bef28b1fd30357e5358 SHA512 221094bdcf305018343f32c4007c76fdffb7712b39de3d8f26a5ea859ddde7954d4ea76b97ee1518128cea1d62ce6dda422663696ec2ab7214cfe5506e256ace WHIRLPOOL a3c6189ca9a50da475f4fc37dec5a0ba85aa6e3f3cf9fe5eeb87a36e5e065b8229b0035685f8b95a6d384e8a3c7aa633681f810f1a02fc9b6f6184cf2dfaf9ec
MISC metadata.xml 1310 SHA256 7bc71d09fd619c5f65f1e9b5618d49f9f8ee38fe5b437cab2a3a870b8272fdbd SHA512 5637c1aed72ac8bcecd6fa806f4f8c35aa8ed353b5a4ae649cc415a1bad31b62ed657ed0a8c43cfdcbeebdac827ede6fa86c88a7ed49fa38464f00bcb4e72574 WHIRLPOOL 13bc9e31905900f2c23399268e5f670b6b75cf21ad6c1a7ccde29668fc441362f9b8b03ff2eba2de320c395f79dbd5dffa03d0ebcf62bf95a4f1a525c446dc42
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.20 (GNU/Linux)
-iEYEAREIAAYFAlHi/JMACgkQCaWpQKGI+9T//wCfV3jBZXdHGwfL55cLHPJlB/xg
-3aIAn1tJu2sum3Hf3HEInVLuEk6pyzeP
-=ViIz
+iEYEAREIAAYFAlHkQBcACgkQCaWpQKGI+9RIEwCfTBNB3j3e3ezxmg/cNLQtshpJ
+5skAnjgCasCzv495RyXl2Y9op1dWivPB
+=GjgF
-----END PGP SIGNATURE-----
diff --git a/net-misc/networkmanager/files/0001-core-runtime-detect-logind-and-ConsoleKit-3.patch b/net-misc/networkmanager/files/0001-core-runtime-detect-logind-and-ConsoleKit-3.patch
deleted file mode 100644
index 94a020721f89..000000000000
--- a/net-misc/networkmanager/files/0001-core-runtime-detect-logind-and-ConsoleKit-3.patch
+++ /dev/null
@@ -1,1004 +0,0 @@
-From b8b49850cace3e0fca84d34f7eb5b1eb3f3c7bc8 Mon Sep 17 00:00:00 2001
-From: Fabio Erculiani <lxnay@sabayon.org>
-Date: Mon, 15 Apr 2013 23:25:59 +0100
-Subject: [PATCH] core: runtime detect logind and ConsoleKit
-
-If --with-session-tracking=systemd, but logind is not currently running, the code
-now falls back to ConsoleKit.
----
- configure.ac | 2 +
- src/Makefile.am | 10 +-
- src/nm-session-monitor-systemd.c | 268 ----------------
- src/nm-session-monitor.c | 641 +++++++++++++++++++++++++++++++++++++++
- src/nm-session-monitor.h | 6 +
- 5 files changed, 652 insertions(+), 275 deletions(-)
- delete mode 100644 src/nm-session-monitor-systemd.c
- create mode 100644 src/nm-session-monitor.c
-
-diff --git a/configure.ac b/configure.ac
-index 5e4a2eb..a99a453 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -285,10 +285,12 @@ AS_IF([! (echo "$with_session_tracking" | grep -q -E "^(systemd|consolekit|no)$"
- # add conditionals and subtitutions
- AM_CONDITIONAL(SESSION_TRACKING_CK, test "$with_session_tracking" = "consolekit")
- AM_CONDITIONAL(SESSION_TRACKING_SYSTEMD, test "$with_session_tracking" = "systemd")
-+AM_CONDITIONAL(SESSION_TRACKING_NULL, test "$with_session_tracking" = "no")
- if test "$with_session_tracking" = "systemd"; then
- PKG_CHECK_MODULES(SYSTEMD_LOGIN, [libsystemd-login])
- AC_SUBST(SYSTEMD_LOGIN_CFLAGS)
- AC_SUBST(SYSTEMD_LOGIN_LIBS)
-+ AC_DEFINE([SESSION_TRACKING_SYSTEMD], 1, [Define to 1 if libsystemd-login is available])
- fi
- if test "$with_session_tracking" = "consolekit"; then
- AC_SUBST(CKDB_PATH, /var/run/ConsoleKit/database)
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 9d306a7..6ec3c80 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -204,14 +204,10 @@ if WITH_CONCHECK
- NetworkManager_SOURCES += nm-connectivity.c nm-connectivity.h
- endif
-
--if SESSION_TRACKING_SYSTEMD
--NetworkManager_SOURCES += nm-session-monitor-systemd.c
--else
--if SESSION_TRACKING_CK
--NetworkManager_SOURCES += nm-session-monitor-ck.c
--else
-+if SESSION_TRACKING_NULL
- NetworkManager_SOURCES += nm-session-monitor-null.c
--endif
-+else
-+NetworkManager_SOURCES += nm-session-monitor.c
- endif
-
- if SUSPEND_RESUME_SYSTEMD
-diff --git a/src/nm-session-monitor-systemd.c b/src/nm-session-monitor-systemd.c
-deleted file mode 100644
-index f9fb075..0000000
---- a/src/nm-session-monitor-systemd.c
-+++ /dev/null
-@@ -1,268 +0,0 @@
--/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
--/*
-- * Copyright (C) 2011 Red Hat, Inc.
-- *
-- * This library is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU Lesser General Public
-- * License as published by the Free Software Foundation; either
-- * version 2 of the License, or (at your option) any later version.
-- *
-- * This library is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- * Lesser General Public License for more details.
-- *
-- * You should have received a copy of the GNU Lesser General
-- * Public License along with this library; if not, write to the
-- * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-- * Boston, MA 02110-1301, USA.
-- *
-- * Author: Matthias Clasen
-- */
--
--#include "config.h"
--#include <errno.h>
--#include <pwd.h>
--#include <grp.h>
--#include <string.h>
--#include <glib/gstdio.h>
--#include <systemd/sd-login.h>
--#include <stdlib.h>
--
--#include "nm-session-utils.h"
--#include "nm-session-monitor.h"
--#include "nm-logging.h"
--
--/********************************************************************/
--
--typedef struct {
-- GSource source;
-- GPollFD pollfd;
-- sd_login_monitor *monitor;
--} SdSource;
--
--static gboolean
--sd_source_prepare (GSource *source, gint *timeout)
--{
-- *timeout = -1;
-- return FALSE;
--}
--
--static gboolean
--sd_source_check (GSource *source)
--{
-- SdSource *sd_source = (SdSource *) source;
--
-- return sd_source->pollfd.revents != 0;
--}
--
--static gboolean
--sd_source_dispatch (GSource *source,
-- GSourceFunc callback,
-- gpointer user_data)
--
--{
-- SdSource *sd_source = (SdSource *)source;
-- gboolean ret;
--
-- g_warn_if_fail (callback != NULL);
-- ret = (*callback) (user_data);
-- sd_login_monitor_flush (sd_source->monitor);
-- return ret;
--}
--
--static void
--sd_source_finalize (GSource *source)
--{
-- SdSource *sd_source = (SdSource*) source;
--
-- sd_login_monitor_unref (sd_source->monitor);
--}
--
--static GSourceFuncs sd_source_funcs = {
-- sd_source_prepare,
-- sd_source_check,
-- sd_source_dispatch,
-- sd_source_finalize
--};
--
--static GSource *
--sd_source_new (void)
--{
-- GSource *source;
-- SdSource *sd_source;
-- int ret;
--
-- source = g_source_new (&sd_source_funcs, sizeof (SdSource));
-- sd_source = (SdSource *)source;
--
-- ret = sd_login_monitor_new (NULL, &sd_source->monitor);
-- if (ret < 0)
-- g_printerr ("Error getting login monitor: %d", ret);
-- else {
-- sd_source->pollfd.fd = sd_login_monitor_get_fd (sd_source->monitor);
-- sd_source->pollfd.events = G_IO_IN;
-- g_source_add_poll (source, &sd_source->pollfd);
-- }
--
-- return source;
--}
--
--struct _NMSessionMonitor {
-- GObject parent_instance;
--
-- GSource *sd_source;
--};
--
--struct _NMSessionMonitorClass {
-- GObjectClass parent_class;
--
-- void (*changed) (NMSessionMonitor *monitor);
--};
--
--
--enum {
-- CHANGED_SIGNAL,
-- LAST_SIGNAL,
--};
--static guint signals[LAST_SIGNAL] = {0};
--
--G_DEFINE_TYPE (NMSessionMonitor, nm_session_monitor, G_TYPE_OBJECT);
--
--/* ---------------------------------------------------------------------------------------------------- */
--
--static gboolean
--sessions_changed (gpointer user_data)
--{
-- NMSessionMonitor *monitor = NM_SESSION_MONITOR (user_data);
--
-- g_signal_emit (monitor, signals[CHANGED_SIGNAL], 0);
-- return TRUE;
--}
--
--
--static void
--nm_session_monitor_init (NMSessionMonitor *monitor)
--{
-- monitor->sd_source = sd_source_new ();
-- g_source_set_callback (monitor->sd_source, sessions_changed, monitor, NULL);
-- g_source_attach (monitor->sd_source, NULL);
--}
--
--static void
--nm_session_monitor_finalize (GObject *object)
--{
-- NMSessionMonitor *monitor = NM_SESSION_MONITOR (object);
--
-- if (monitor->sd_source != NULL) {
-- g_source_destroy (monitor->sd_source);
-- g_source_unref (monitor->sd_source);
-- }
--
-- if (G_OBJECT_CLASS (nm_session_monitor_parent_class)->finalize != NULL)
-- G_OBJECT_CLASS (nm_session_monitor_parent_class)->finalize (object);
--}
--
--static void
--nm_session_monitor_class_init (NMSessionMonitorClass *klass)
--{
-- GObjectClass *gobject_class;
--
-- gobject_class = G_OBJECT_CLASS (klass);
-- gobject_class->finalize = nm_session_monitor_finalize;
--
-- /**
-- * NMSessionMonitor::changed:
-- * @monitor: A #NMSessionMonitor
-- *
-- * Emitted when something changes.
-- */
-- signals[CHANGED_SIGNAL] = g_signal_new ("changed",
-- NM_TYPE_SESSION_MONITOR,
-- G_SIGNAL_RUN_LAST,
-- G_STRUCT_OFFSET (NMSessionMonitorClass, changed),
-- NULL, /* accumulator */
-- NULL, /* accumulator data */
-- g_cclosure_marshal_VOID__VOID,
-- G_TYPE_NONE,
-- 0);
--}
--
--NMSessionMonitor *
--nm_session_monitor_get (void)
--{
-- static NMSessionMonitor *singleton = NULL;
--
-- if (singleton)
-- return g_object_ref (singleton);
--
-- singleton = NM_SESSION_MONITOR (g_object_new (NM_TYPE_SESSION_MONITOR, NULL));
-- g_assert (singleton);
-- return singleton;
--}
--
--gboolean
--nm_session_monitor_user_has_session (NMSessionMonitor *monitor,
-- const char *username,
-- uid_t *out_uid,
-- GError **error)
--{
-- uid_t uid;
--
-- if (!nm_session_user_to_uid (username, &uid, error))
-- return FALSE;
--
-- if (out_uid)
-- *out_uid = uid;
--
-- return nm_session_monitor_uid_has_session (monitor, uid, NULL, error);
--}
--
--gboolean
--nm_session_monitor_user_active (NMSessionMonitor *monitor,
-- const char *username,
-- GError **error)
--{
-- uid_t uid;
--
-- if (!nm_session_user_to_uid (username, &uid, error))
-- return FALSE;
--
-- return nm_session_monitor_uid_active (monitor, uid, error);
--}
--
--gboolean
--nm_session_monitor_uid_has_session (NMSessionMonitor *monitor,
-- uid_t uid,
-- const char **out_user,
-- GError **error)
--{
-- int ret;
--
-- if (!nm_session_uid_to_user (uid, out_user, error))
-- return FALSE;
--
-- ret = sd_uid_get_sessions (uid, FALSE, NULL) > 0;
-- if (ret < 0) {
-- nm_log_warn (LOGD_CORE, "Failed to get systemd sessions for uid %d: %d",
-- uid, ret);
-- return FALSE;
-- }
-- return ret > 0 ? TRUE : FALSE;
--}
--
--gboolean
--nm_session_monitor_uid_active (NMSessionMonitor *monitor,
-- uid_t uid,
-- GError **error)
--{
-- int ret;
--
-- ret = sd_uid_get_sessions (uid, TRUE, NULL) > 0;
-- if (ret < 0) {
-- nm_log_warn (LOGD_CORE, "Failed to get active systemd sessions for uid %d: %d",
-- uid, ret);
-- return FALSE;
-- }
-- return ret > 0 ? TRUE : FALSE;
--}
-diff --git a/src/nm-session-monitor.c b/src/nm-session-monitor.c
-new file mode 100644
-index 0000000..26e66ce
---- /dev/null
-+++ b/src/nm-session-monitor.c
-@@ -0,0 +1,641 @@
-+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
-+/*
-+ * Copyright (C) 2011 Red Hat, Inc.
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2 of the License, or (at your option) any later version.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General
-+ * Public License along with this library; if not, write to the
-+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ * Boston, MA 02110-1301, USA.
-+ *
-+ * Author: Matthias Clasen
-+ */
-+
-+#include "config.h"
-+#include <errno.h>
-+#include <pwd.h>
-+#include <grp.h>
-+#include <string.h>
-+#include <sys/stat.h>
-+#include <glib/gstdio.h>
-+#include <gio/gio.h>
-+#ifdef SESSION_TRACKING_SYSTEMD
-+#include <systemd/sd-login.h>
-+#endif
-+#include <stdlib.h>
-+
-+#include "nm-session-utils.h"
-+#include "nm-session-monitor.h"
-+#include "nm-logging.h"
-+
-+#define CKDB_PATH "/var/run/ConsoleKit/database"
-+
-+/********************************************************************/
-+
-+#ifdef SESSION_TRACKING_SYSTEMD
-+typedef struct {
-+ GSource source;
-+ GPollFD pollfd;
-+ sd_login_monitor *monitor;
-+} SdSource;
-+
-+static gboolean
-+sd_source_prepare (GSource *source, gint *timeout)
-+{
-+ *timeout = -1;
-+ return FALSE;
-+}
-+
-+static gboolean
-+sd_source_check (GSource *source)
-+{
-+ SdSource *sd_source = (SdSource *) source;
-+
-+ return sd_source->pollfd.revents != 0;
-+}
-+
-+static gboolean
-+sd_source_dispatch (GSource *source,
-+ GSourceFunc callback,
-+ gpointer user_data)
-+
-+{
-+ SdSource *sd_source = (SdSource *)source;
-+ gboolean ret;
-+
-+ g_warn_if_fail (callback != NULL);
-+ ret = (*callback) (user_data);
-+ sd_login_monitor_flush (sd_source->monitor);
-+ return ret;
-+}
-+
-+static void
-+sd_source_finalize (GSource *source)
-+{
-+ SdSource *sd_source = (SdSource*) source;
-+
-+ sd_login_monitor_unref (sd_source->monitor);
-+}
-+
-+static GSourceFuncs sd_source_funcs = {
-+ sd_source_prepare,
-+ sd_source_check,
-+ sd_source_dispatch,
-+ sd_source_finalize
-+};
-+
-+static GSource *
-+sd_source_new (void)
-+{
-+ GSource *source;
-+ SdSource *sd_source;
-+ int ret;
-+
-+ source = g_source_new (&sd_source_funcs, sizeof (SdSource));
-+ sd_source = (SdSource *)source;
-+
-+ ret = sd_login_monitor_new (NULL, &sd_source->monitor);
-+ if (ret < 0)
-+ g_printerr ("Error getting login monitor: %d", ret);
-+ else {
-+ sd_source->pollfd.fd = sd_login_monitor_get_fd (sd_source->monitor);
-+ sd_source->pollfd.events = G_IO_IN;
-+ g_source_add_poll (source, &sd_source->pollfd);
-+ }
-+
-+ return source;
-+}
-+#endif /* SESSION_TRACKING_SYSTEMD */
-+
-+struct _NMSessionMonitor {
-+ GObject parent_instance;
-+
-+ GKeyFile *database;
-+ GFileMonitor *database_monitor;
-+ time_t database_mtime;
-+ GHashTable *sessions_by_uid;
-+ GHashTable *sessions_by_user;
-+
-+ GSource *sd_source;
-+};
-+
-+struct _NMSessionMonitorClass {
-+ GObjectClass parent_class;
-+
-+ void (*changed) (NMSessionMonitor *monitor);
-+};
-+
-+
-+enum {
-+ CHANGED_SIGNAL,
-+ LAST_SIGNAL,
-+};
-+static guint signals[LAST_SIGNAL] = {0};
-+
-+G_DEFINE_TYPE (NMSessionMonitor, nm_session_monitor, G_TYPE_OBJECT);
-+
-+/* ---------------------------------------------------------------------------------------------------- */
-+
-+typedef struct {
-+ char *user;
-+ uid_t uid;
-+ gboolean local;
-+ gboolean active;
-+} Session;
-+
-+static void
-+session_free (Session *s)
-+{
-+ g_free (s->user);
-+ memset (s, 0, sizeof (Session));
-+ g_free (s);
-+}
-+
-+static gboolean
-+check_key (GKeyFile *keyfile, const char *group, const char *key, GError **error)
-+{
-+ if (g_key_file_has_key (keyfile, group, key, error))
-+ return TRUE;
-+
-+ if (!error) {
-+ g_set_error (error,
-+ NM_SESSION_MONITOR_ERROR,
-+ NM_SESSION_MONITOR_ERROR_MALFORMED_DATABASE,
-+ "ConsoleKit database " CKDB_PATH " group '%s' had no '%s' key",
-+ group, key);
-+ }
-+ return FALSE;
-+}
-+
-+static Session *
-+session_new (GKeyFile *keyfile, const char *group, GError **error)
-+{
-+ GError *local = NULL;
-+ Session *s;
-+ const char *uname = NULL;
-+
-+ s = g_new0 (Session, 1);
-+ g_assert (s);
-+
-+ s->uid = G_MAXUINT; /* paranoia */
-+ if (!check_key (keyfile, group, "uid", &local))
-+ goto error;
-+ s->uid = (uid_t) g_key_file_get_integer (keyfile, group, "uid", &local);
-+ if (local)
-+ goto error;
-+
-+ if (!check_key (keyfile, group, "is_active", &local))
-+ goto error;
-+ s->active = g_key_file_get_boolean (keyfile, group, "is_active", &local);
-+ if (local)
-+ goto error;
-+
-+ if (!check_key (keyfile, group, "is_local", &local))
-+ goto error;
-+ s->local = g_key_file_get_boolean (keyfile, group, "is_local", &local);
-+ if (local)
-+ goto error;
-+
-+ if (!nm_session_uid_to_user (s->uid, &uname, error))
-+ return FALSE;
-+ s->user = g_strdup (uname);
-+
-+ return s;
-+
-+error:
-+ session_free (s);
-+ g_propagate_error (error, local);
-+ return NULL;
-+}
-+
-+static void
-+session_merge (Session *src, Session *dest)
-+{
-+ g_return_if_fail (src != NULL);
-+ g_return_if_fail (dest != NULL);
-+
-+ g_warn_if_fail (g_strcmp0 (src->user, dest->user) == 0);
-+ g_warn_if_fail (src->uid == dest->uid);
-+
-+ dest->local = (dest->local || src->local);
-+ dest->active = (dest->active || src->active);
-+}
-+
-+static void
-+free_database (NMSessionMonitor *self)
-+{
-+ if (self->database != NULL) {
-+ g_key_file_free (self->database);
-+ self->database = NULL;
-+ }
-+
-+ g_hash_table_remove_all (self->sessions_by_uid);
-+ g_hash_table_remove_all (self->sessions_by_user);
-+}
-+
-+static gboolean
-+reload_database (NMSessionMonitor *self, GError **error)
-+{
-+ struct stat statbuf;
-+ char **groups = NULL;
-+ gsize len = 0, i;
-+ Session *s;
-+
-+ free_database (self);
-+
-+ errno = 0;
-+ if (stat (CKDB_PATH, &statbuf) != 0) {
-+ g_set_error (error,
-+ NM_SESSION_MONITOR_ERROR,
-+ errno == ENOENT ? NM_SESSION_MONITOR_ERROR_NO_DATABASE : NM_SESSION_MONITOR_ERROR_IO_ERROR,
-+ "Error statting file " CKDB_PATH ": %s",
-+ strerror (errno));
-+ goto error;
-+ }
-+ self->database_mtime = statbuf.st_mtime;
-+
-+ self->database = g_key_file_new ();
-+ if (!g_key_file_load_from_file (self->database, CKDB_PATH, G_KEY_FILE_NONE, error))
-+ goto error;
-+
-+ groups = g_key_file_get_groups (self->database, &len);
-+ if (!groups) {
-+ g_set_error_literal (error,
-+ NM_SESSION_MONITOR_ERROR,
-+ NM_SESSION_MONITOR_ERROR_IO_ERROR,
-+ "Could not load groups from " CKDB_PATH "");
-+ goto error;
-+ }
-+
-+ for (i = 0; i < len; i++) {
-+ Session *found;
-+
-+ if (!g_str_has_prefix (groups[i], "Session "))
-+ continue;
-+
-+ s = session_new (self->database, groups[i], error);
-+ if (!s)
-+ goto error;
-+
-+ found = g_hash_table_lookup (self->sessions_by_user, (gpointer) s->user);
-+ if (found) {
-+ session_merge (s, found);
-+ session_free (s);
-+ } else {
-+ /* Entirely new user */
-+ g_hash_table_insert (self->sessions_by_user, (gpointer) s->user, s);
-+ g_hash_table_insert (self->sessions_by_uid, GUINT_TO_POINTER (s->uid), s);
-+ }
-+ }
-+
-+ g_strfreev (groups);
-+ return TRUE;
-+
-+error:
-+ if (groups)
-+ g_strfreev (groups);
-+ free_database (self);
-+ return FALSE;
-+}
-+
-+static gboolean
-+ensure_database (NMSessionMonitor *self, GError **error)
-+{
-+ gboolean ret = FALSE;
-+
-+ if (self->database != NULL) {
-+ struct stat statbuf;
-+
-+ errno = 0;
-+ if (stat (CKDB_PATH, &statbuf) != 0) {
-+ g_set_error (error,
-+ NM_SESSION_MONITOR_ERROR,
-+ errno == ENOENT ? NM_SESSION_MONITOR_ERROR_NO_DATABASE : NM_SESSION_MONITOR_ERROR_IO_ERROR,
-+ "Error statting file " CKDB_PATH " to check timestamp: %s",
-+ strerror (errno));
-+ goto out;
-+ }
-+
-+ if (statbuf.st_mtime == self->database_mtime) {
-+ ret = TRUE;
-+ goto out;
-+ }
-+ }
-+
-+ ret = reload_database (self, error);
-+
-+out:
-+ return ret;
-+}
-+
-+static void
-+on_file_monitor_changed (GFileMonitor * file_monitor,
-+ GFile * file,
-+ GFile * other_file,
-+ GFileMonitorEvent event_type,
-+ gpointer user_data)
-+{
-+ NMSessionMonitor *self = NM_SESSION_MONITOR (user_data);
-+
-+ /* throw away cache */
-+ free_database (self);
-+
-+ g_signal_emit (self, signals[CHANGED_SIGNAL], 0);
-+}
-+
-+#ifdef SESSION_TRACKING_SYSTEMD
-+static gboolean
-+sessions_changed (gpointer user_data)
-+{
-+ NMSessionMonitor *monitor = NM_SESSION_MONITOR (user_data);
-+
-+ g_signal_emit (monitor, signals[CHANGED_SIGNAL], 0);
-+ return TRUE;
-+}
-+#endif /* SESSION_TRACKING_SYSTEMD */
-+
-+
-+static void
-+nm_session_monitor_init (NMSessionMonitor *monitor)
-+{
-+ GError *error;
-+ GFile *file;
-+
-+ monitor->sd_source = NULL;
-+ monitor->database = NULL;
-+ monitor->database_monitor = NULL;
-+ monitor->sessions_by_uid = NULL;
-+ monitor->sessions_by_user = NULL;
-+
-+#ifdef SESSION_TRACKING_SYSTEMD
-+ if (LOGIND_RUNNING())
-+ {
-+ monitor->sd_source = sd_source_new ();
-+ g_source_set_callback (monitor->sd_source, sessions_changed, monitor, NULL);
-+ g_source_attach (monitor->sd_source, NULL);
-+ return;
-+ }
-+ /* fall through */
-+#endif /* SESSION_TRACKING_SYSTEMD */
-+
-+ error = NULL;
-+
-+ /* Sessions-by-user is responsible for destroying the Session objects */
-+ monitor->sessions_by_user = g_hash_table_new_full (g_str_hash, g_str_equal,
-+ NULL, (GDestroyNotify) session_free);
-+ monitor->sessions_by_uid = g_hash_table_new (g_direct_hash, g_direct_equal);
-+
-+
-+ error = NULL;
-+ if (!ensure_database (monitor, &error)) {
-+ /* Ignore the first error if the CK database isn't found yet */
-+ if (g_error_matches (error,
-+ NM_SESSION_MONITOR_ERROR,
-+ NM_SESSION_MONITOR_ERROR_NO_DATABASE) == FALSE) {
-+ nm_log_err (LOGD_CORE, "Error loading " CKDB_PATH ": %s", error->message);
-+ }
-+ g_error_free (error);
-+ }
-+
-+ error = NULL;
-+ file = g_file_new_for_path (CKDB_PATH);
-+ monitor->database_monitor = g_file_monitor_file (file, G_FILE_MONITOR_NONE, NULL, &error);
-+ g_object_unref (file);
-+ if (monitor->database_monitor == NULL) {
-+ nm_log_err (LOGD_CORE, "Error monitoring " CKDB_PATH ": %s", error->message);
-+ g_error_free (error);
-+ } else {
-+ g_signal_connect (monitor->database_monitor,
-+ "changed",
-+ G_CALLBACK (on_file_monitor_changed),
-+ monitor);
-+ }
-+}
-+
-+static void
-+nm_session_monitor_finalize (GObject *object)
-+{
-+ NMSessionMonitor *monitor = NM_SESSION_MONITOR (object);
-+
-+ if (monitor->sd_source != NULL) {
-+ g_source_destroy (monitor->sd_source);
-+ g_source_unref (monitor->sd_source);
-+ }
-+
-+ if (monitor->database_monitor != NULL)
-+ g_object_unref (monitor->database_monitor);
-+
-+ free_database (monitor);
-+
-+ if (G_OBJECT_CLASS (nm_session_monitor_parent_class)->finalize != NULL)
-+ G_OBJECT_CLASS (nm_session_monitor_parent_class)->finalize (object);
-+}
-+
-+static void
-+nm_session_monitor_class_init (NMSessionMonitorClass *klass)
-+{
-+ GObjectClass *gobject_class;
-+
-+ gobject_class = G_OBJECT_CLASS (klass);
-+ gobject_class->finalize = nm_session_monitor_finalize;
-+
-+ /**
-+ * NMSessionMonitor::changed:
-+ * @monitor: A #NMSessionMonitor
-+ *
-+ * Emitted when something changes.
-+ */
-+ signals[CHANGED_SIGNAL] = g_signal_new (NM_SESSION_MONITOR_CHANGED,
-+ NM_TYPE_SESSION_MONITOR,
-+ G_SIGNAL_RUN_LAST,
-+ G_STRUCT_OFFSET (NMSessionMonitorClass, changed),
-+ NULL, /* accumulator */
-+ NULL, /* accumulator data */
-+ g_cclosure_marshal_VOID__VOID,
-+ G_TYPE_NONE,
-+ 0);
-+}
-+
-+NMSessionMonitor *
-+nm_session_monitor_get (void)
-+{
-+ static NMSessionMonitor *singleton = NULL;
-+
-+ if (singleton)
-+ return g_object_ref (singleton);
-+
-+ singleton = NM_SESSION_MONITOR (g_object_new (NM_TYPE_SESSION_MONITOR, NULL));
-+ g_assert (singleton);
-+ return singleton;
-+}
-+
-+gboolean
-+nm_session_monitor_user_has_session (NMSessionMonitor *monitor,
-+ const char *username,
-+ uid_t *out_uid,
-+ GError **error)
-+{
-+#ifdef SESSION_TRACKING_SYSTEMD
-+ if (LOGIND_RUNNING())
-+ {
-+ uid_t uid;
-+
-+ if (!nm_session_user_to_uid (username, &uid, error))
-+ return FALSE;
-+
-+ if (out_uid)
-+ *out_uid = uid;
-+
-+ return nm_session_monitor_uid_has_session (monitor, uid, NULL, error);
-+ }
-+ /* fall through */
-+#endif /* SESSION_TRACKING_SYSTEMD */
-+
-+ Session *s;
-+
-+ if (!ensure_database (monitor, error))
-+ return FALSE;
-+
-+ s = g_hash_table_lookup (monitor->sessions_by_user, (gpointer) username);
-+ if (!s) {
-+ g_set_error (error,
-+ NM_SESSION_MONITOR_ERROR,
-+ NM_SESSION_MONITOR_ERROR_UNKNOWN_USER,
-+ "No session found for user '%s'",
-+ username);
-+ return FALSE;
-+ }
-+
-+ if (out_uid)
-+ *out_uid = s->uid;
-+ return TRUE;
-+}
-+
-+gboolean
-+nm_session_monitor_user_active (NMSessionMonitor *monitor,
-+ const char *username,
-+ GError **error)
-+{
-+#ifdef SESSION_TRACKING_SYSTEMD
-+ if (LOGIND_RUNNING())
-+ {
-+ uid_t uid;
-+
-+ if (!nm_session_user_to_uid (username, &uid, error))
-+ return FALSE;
-+
-+ return nm_session_monitor_uid_active (monitor, uid, error);
-+ }
-+ /* fall through */
-+#endif
-+
-+ Session *s;
-+
-+ if (!ensure_database (monitor, error))
-+ return FALSE;
-+
-+ s = g_hash_table_lookup (monitor->sessions_by_user, (gpointer) username);
-+ if (!s) {
-+ g_set_error (error,
-+ NM_SESSION_MONITOR_ERROR,
-+ NM_SESSION_MONITOR_ERROR_UNKNOWN_USER,
-+ "No session found for user '%s'",
-+ username);
-+ return FALSE;
-+ }
-+
-+ return s->active;
-+}
-+
-+gboolean
-+nm_session_monitor_uid_has_session (NMSessionMonitor *monitor,
-+ uid_t uid,
-+ const char **out_user,
-+ GError **error)
-+{
-+#ifdef SESSION_TRACKING_SYSTEMD
-+ if (LOGIND_RUNNING())
-+ {
-+ int ret;
-+
-+ if (!nm_session_uid_to_user (uid, out_user, error))
-+ return FALSE;
-+
-+ ret = sd_uid_get_sessions (uid, FALSE, NULL) > 0;
-+ if (ret < 0) {
-+ nm_log_warn (LOGD_CORE, "Failed to get systemd sessions for uid %d: %d",
-+ uid, ret);
-+ return FALSE;
-+ }
-+ return ret > 0 ? TRUE : FALSE;
-+ }
-+ /* fall through */
-+#endif
-+
-+ Session *s;
-+
-+ if (!ensure_database (monitor, error))
-+ return FALSE;
-+
-+ s = g_hash_table_lookup (monitor->sessions_by_uid, GUINT_TO_POINTER (uid));
-+ if (!s) {
-+ g_set_error (error,
-+ NM_SESSION_MONITOR_ERROR,
-+ NM_SESSION_MONITOR_ERROR_UNKNOWN_USER,
-+ "No session found for uid %d",
-+ uid);
-+ return FALSE;
-+ }
-+
-+ if (out_user)
-+ *out_user = s->user;
-+ return TRUE;
-+}
-+
-+gboolean
-+nm_session_monitor_uid_active (NMSessionMonitor *monitor,
-+ uid_t uid,
-+ GError **error)
-+{
-+#ifdef SESSION_TRACKING_SYSTEMD
-+ if (LOGIND_RUNNING())
-+ {
-+ int ret;
-+
-+ ret = sd_uid_get_sessions (uid, TRUE, NULL) > 0;
-+ if (ret < 0) {
-+ nm_log_warn (LOGD_CORE, "Failed to get active systemd sessions for uid %d: %d",
-+ uid, ret);
-+ return FALSE;
-+ }
-+ return ret > 0 ? TRUE : FALSE;
-+ }
-+ /* fall through */
-+#endif
-+
-+ Session *s;
-+
-+ if (!ensure_database (monitor, error))
-+ return FALSE;
-+
-+ s = g_hash_table_lookup (monitor->sessions_by_uid, GUINT_TO_POINTER (uid));
-+ if (!s) {
-+ g_set_error (error,
-+ NM_SESSION_MONITOR_ERROR,
-+ NM_SESSION_MONITOR_ERROR_UNKNOWN_USER,
-+ "No session found for uid '%d'",
-+ uid);
-+ return FALSE;
-+ }
-+
-+ return s->active;
-+}
-diff --git a/src/nm-session-monitor.h b/src/nm-session-monitor.h
-index 77ea9a0..ac3dec5 100644
---- a/src/nm-session-monitor.h
-+++ b/src/nm-session-monitor.h
-@@ -21,6 +21,7 @@
- #ifndef NM_SESSION_MONITOR_H
- #define NM_SESSION_MONITOR_H
-
-+#include <unistd.h>
- #include <glib-object.h>
-
- G_BEGIN_DECLS
-@@ -34,6 +35,11 @@ G_BEGIN_DECLS
-
- #define NM_SESSION_MONITOR_CHANGED "changed"
-
-+/* check if logind is running
-+ * thanks to: https://bugzilla.gnome.org/show_bug.cgi?id=696266
-+ */
-+#define LOGIND_RUNNING() (access("/run/systemd/seats/", F_OK) >= 0)
-+
- typedef struct _NMSessionMonitor NMSessionMonitor;
- typedef struct _NMSessionMonitorClass NMSessionMonitorClass;
-
---
-1.8.2.1
-
diff --git a/net-misc/networkmanager/networkmanager-0.9.8.2-r1.ebuild b/net-misc/networkmanager/networkmanager-0.9.8.2-r2.ebuild
index 6b621d73015e..18f57699dbeb 100644
--- a/net-misc/networkmanager/networkmanager-0.9.8.2-r1.ebuild
+++ b/net-misc/networkmanager/networkmanager-0.9.8.2-r2.ebuild
@@ -1,13 +1,13 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/networkmanager-0.9.8.2-r1.ebuild,v 1.2 2013/07/14 19:31:29 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/networkmanager/networkmanager-0.9.8.2-r2.ebuild,v 1.1 2013/07/15 18:31:46 pacho Exp $
EAPI="5"
GNOME_ORG_MODULE="NetworkManager"
VALA_MIN_API_VERSION="0.18"
VALA_USE_DEPEND="vapigen"
-inherit autotools eutils gnome.org linux-info systemd user readme.gentoo toolchain-funcs vala virtualx udev
+inherit gnome.org linux-info systemd user readme.gentoo toolchain-funcs vala virtualx udev
DESCRIPTION="Universal network configuration daemon for laptops, desktops, servers and virtualization hosts"
HOMEPAGE="http://projects.gnome.org/NetworkManager/"
@@ -49,7 +49,9 @@ COMMON_DEPEND="
modemmanager? ( >=net-misc/modemmanager-0.7.991 )
nss? ( >=dev-libs/nss-3.11:= )
dhclient? ( =net-misc/dhcp-4*[client] )
- dhcpcd? ( >=net-misc/dhcpcd-4.0.0_rc3 )
+ dhcpcd? (
+ >=net-misc/dhcpcd-4.0.0_rc3
+ <net-misc/dhcpcd-6 )
introspection? ( >=dev-libs/gobject-introspection-0.10.3 )
ppp? ( >=net-dialup/ppp-2.4.5[ipv6] )
resolvconf? ( net-dns/openresolv )
@@ -109,10 +111,6 @@ src_prepare() {
# Bug #402085, https://bugzilla.gnome.org/show_bug.cgi?id=387832
epatch "${FILESDIR}/${PN}-0.9.7.995-pre-sleep.patch"
- # Runtime detect systemd || consolekit
- # https://bugzilla.gnome.org/show_bug.cgi?id=686997
- epatch "${FILESDIR}/0001-core-runtime-detect-logind-and-ConsoleKit-3.patch"
-
# Use python2.7 shebangs for test scripts
sed -e 's@\(^#!.*python\)@\12.7@' \
-i */tests/*.py || die
@@ -121,15 +119,10 @@ src_prepare() {
sed -i 's|^completiondir =.*|completiondir = $(datadir)/bash-completion|' \
cli/completion/Makefile.in || die "sed completiondir failed"
- epatch_user
- eautoreconf
-
- use vala && vala_src_prepare
-
# Force use of /run, avoid eautoreconf
sed -e 's:$localstatedir/run/:/run/:' -i configure || die
- default
+ use vala && vala_src_prepare
}
src_configure() {
@@ -161,6 +154,7 @@ src_configure() {
}
src_test() {
+ # bug #????
cp libnm-util/tests/certs/test_ca_cert.pem src/settings/plugins/ifnet/tests/ || die
Xemake check
}