Re: NetworkManager doesn't "Connect automatically"

2016-12-23 Thread Chris Marusich
Hi Thomas,

Thomas Haller  writes:

> Hi,
>
> There are very little dependencies of NetworkManager to systemd. Note
> that the src/systemd directory contains a self-contained copy of
> systemd sources. That is, you don't need an systemd dependency for
> those.
>
> Regarding session management, you'd only have to patch
> https://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/src/nm-session-monitor.c?id=fa15543179aa8ca8e082267121e7df4a131bf642
> That seems doable.

That makes sense.  I've tried applying a patch like the one attached to
this email.  Even though NetworkManager builds, and the output in the
build log suggests that it's using systemd (really, elogind) for session
tracking, it still doesn't automatically connect.  There are messages
from NetworkManager in my syslog messages (see attached file
"excerpts-from-logs.txt"), but there appears to be no information about
why NetworkManager is not automatically connecting.

Does the patch and build output look reasonable to you?  Perhaps I
missed something obvious.  What's a good way to debug this?  What code
path is supposed to be executed when NetworkManager automatically
connects?  How can I verify if that code path is being executed?  Even a
simple tip to get me going in the right direction would be very helpful.

Thank you,

-- 
Chris
From eb143fdaf8cd7bcd5edcd26ae36a48170ac48a9e Mon Sep 17 00:00:00 2001
From: Chris Marusich 
Date: Fri, 23 Dec 2016 00:33:29 -0800
Subject: [PATCH] Attempt to patch NetworkManager to use elogind

When building this in Guix, we pass options like the following to the
./configure script:

--prefix=/gnu/store/vyhr2m9wriv6fgc05x4wjhc6520wlyq3-network-manager-1.4.2
--enable-fast-install
--docdir=/gnu/store/daf9ka1wdcafv86sd0aji1pxgw5kv770-network-manager-1.4.2-doc/share/doc/network-manager
--build=x86_64-unknown-linux-gnu
--with-systemd-logind=yes
--with-consolekit=no
--with-crypto=gnutls
--disable-config-plugin-ibft
--sysconfdir=/etc
--localstatedir=/var
--with-udev-dir=/gnu/store/vyhr2m9wriv6fgc05x4wjhc6520wlyq3-network-manager-1.4.2/lib/udev
--with-dbus-sys-dir=/gnu/store/vyhr2m9wriv6fgc05x4wjhc6520wlyq3-network-manager-1.4.2/etc/dbus-1/system.d
--with-html-dir=/gnu/store/daf9ka1wdcafv86sd0aji1pxgw5kv770-network-manager-1.4.2-doc/share/gtk-doc/html
--with-dhclient=/gnu/store/q55gg423fc04rbx2qchvp2rwamw696na-isc-dhcp-4.3.5/sbin/dhclient
---
 NetworkManager-1.4.2/configure| 72 +--
 NetworkManager-1.4.2/src/nm-session-monitor.c |  2 +-
 2 files changed, 37 insertions(+), 37 deletions(-)

diff --git a/NetworkManager-1.4.2/configure b/NetworkManager-1.4.2/configure
index 013461f..b9b6cf8 100755
--- a/NetworkManager-1.4.2/configure
+++ b/NetworkManager-1.4.2/configure
@@ -22903,12 +22903,12 @@ if test -n "$SYSTEMD_LOGIN_CFLAGS"; then
 pkg_cv_SYSTEMD_LOGIN_CFLAGS="$SYSTEMD_LOGIN_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
 if test -n "$PKG_CONFIG" && \
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-login\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libsystemd-login") 2>&5
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libelogind\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libelogind") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_SYSTEMD_LOGIN_CFLAGS=`$PKG_CONFIG --cflags "libsystemd-login" 2>/dev/null`
+  pkg_cv_SYSTEMD_LOGIN_CFLAGS=`$PKG_CONFIG --cflags "libelogind" 2>/dev/null`
 		  test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -22920,12 +22920,12 @@ if test -n "$SYSTEMD_LOGIN_LIBS"; then
 pkg_cv_SYSTEMD_LOGIN_LIBS="$SYSTEMD_LOGIN_LIBS"
  elif test -n "$PKG_CONFIG"; then
 if test -n "$PKG_CONFIG" && \
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-login\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libsystemd-login") 2>&5
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libelogind\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libelogind") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_SYSTEMD_LOGIN_LIBS=`$PKG_CONFIG --libs "libsystemd-login" 2>/dev/null`
+  pkg_cv_SYSTEMD_LOGIN_LIBS=`$PKG_CONFIG --libs "libelogind" 2>/dev/null`
 		  test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
@@ -22946,9 +22946,9 @@ else
 _pkg_short_errors_supported=no
 fi
 if test $_pkg_short_errors_supported = yes; then
-	SYSTEMD_LOGIN_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd-login" 2>&1`
+	SYSTEMD_LOGIN_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libelogind" 2>&1`
 else
-	

Re: NetworkManager doesn't "Connect automatically"

2016-12-19 Thread Thomas Haller
On Sat, 2016-12-17 at 01:51 -0800, Chris Marusich wrote:
> Thomas Haller  writes:
> 
> > On Wed, 2016-12-14 at 01:38 -0800, Chris Marusich wrote:
> > > Hi Thomas,
> > > 
> > > Thank you for the quick response!
> > > 
> > > Thomas Haller  writes:
> > > 
> > > > Did you build NetworkManager yourself? Is session-tracking
> > > > properly
> > > > enabled to use systemd-logind or consolekit.
> > > 
> > > Yes, I'm building it from source [1].  It looks like we might
> > > need to
> > > adjust the way we build it to enable session-tracking, like
> > > you've
> > > suggested.  Am I correct in understanding that I should only need
> > > to
> > > pass the option "--with-systemd-logind=yes" to the configure
> > > script
> > > to
> > > enable session tracking via systemd-logind?  Is anything else
> > > required?
> > 
> > Hi,
> > 
> > No, that should be enough.
> > 
> > Possibly it was already enabled before, detected automatically?
> > 
> > Thomas
> 
> OK.  Thank you for confirming my understanding.
> 
> In GuixSD, we actually use elogind [1] instead of systemd for session
> tracking.  This requires us to patch the NetworkManager source to use
> elogind instead of systemd libraries.  For example, we do this sort
> of
> patching successfully when packaging polkit [2].
> 
> I tried the same thing with NetworkManager [3], but it didn't quite
> work
> out.  There are a lot of references to systemd in NetworkManager, and
> I
> think I'm just not familiar enough with NetworkManager, systemd, or
> elogind to know for sure what needs to be patched to trick
> NetworkManager into using elogind instead of systemd for session
> management.  For now, we've committed the package definition as-is,
> but
> until somebody figures out exactly how to patch it to work with
> elogind,
> users must use the previously mentioned work-around (make the
> connection
> available to all users) if they want to enable automatic connection.

Hi,

There are very little dependencies of NetworkManager to systemd. Note
that the src/systemd directory contains a self-contained copy of
systemd sources. That is, you don't need an systemd dependency for
those.

Regarding session management, you'd only have to patch
https://cgit.freedesktop.org/NetworkManager/NetworkManager/tree/src/nm-session-monitor.c?id=fa15543179aa8ca8e082267121e7df4a131bf642
That seems doable.


Thomas

signature.asc
Description: This is a digitally signed message part


Re: NetworkManager doesn't "Connect automatically"

2016-12-17 Thread Chris Marusich
Thomas Haller  writes:

> On Wed, 2016-12-14 at 01:38 -0800, Chris Marusich wrote:
>> Hi Thomas,
>> 
>> Thank you for the quick response!
>> 
>> Thomas Haller  writes:
>> 
>> > Did you build NetworkManager yourself? Is session-tracking properly
>> > enabled to use systemd-logind or consolekit.
>> 
>> Yes, I'm building it from source [1].  It looks like we might need to
>> adjust the way we build it to enable session-tracking, like you've
>> suggested.  Am I correct in understanding that I should only need to
>> pass the option "--with-systemd-logind=yes" to the configure script
>> to
>> enable session tracking via systemd-logind?  Is anything else
>> required?
>
> Hi,
>
> No, that should be enough.
>
> Possibly it was already enabled before, detected automatically?
>
> Thomas

OK.  Thank you for confirming my understanding.

In GuixSD, we actually use elogind [1] instead of systemd for session
tracking.  This requires us to patch the NetworkManager source to use
elogind instead of systemd libraries.  For example, we do this sort of
patching successfully when packaging polkit [2].

I tried the same thing with NetworkManager [3], but it didn't quite work
out.  There are a lot of references to systemd in NetworkManager, and I
think I'm just not familiar enough with NetworkManager, systemd, or
elogind to know for sure what needs to be patched to trick
NetworkManager into using elogind instead of systemd for session
management.  For now, we've committed the package definition as-is, but
until somebody figures out exactly how to patch it to work with elogind,
users must use the previously mentioned work-around (make the connection
available to all users) if they want to enable automatic connection.

Thank you again for your help.  Hopefully soon we'll figure out how to
get NetworkManager working with elogind in GuixSD!

[1] https://github.com/wingo/elogind
[2] 
http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/polkit.scm?id=51b1d5398793bf717a9d2cb6478efc7a173754fa#n53
[3] 
http://git.savannah.gnu.org/cgit/guix.git/commit/gnu/packages/gnome.scm?id=fd070f35d3db24ecdfe68a18332339827bb7a259

-- 
Chris


signature.asc
Description: PGP signature


Re: NetworkManager doesn't "Connect automatically"

2016-12-17 Thread Chris Marusich
l...@gnu.org (Ludovic Courtès) writes:

> Following Andy’s advice I committed both with slightly-tweaked commit
> logs.  That’ll give lurkers out there an incentive to give it a try.
> ;-)
>
> Thank you Chris!
>
> Ludo’.

Thank you!  When I find some time, I'll look into modifying the polkit
rules for network manager so that the work-around (make the network
connection available to all users) works without requiring root to have
a password.  In the meantime, at least one can temporarily give root a
password, make the change, and then remove root's password.

Hopefully someone with more NetworkManager experience can help figure
out exactly what to patch to get the elogind support working right.

-- 
Chris


signature.asc
Description: PGP signature


Re: NetworkManager doesn't "Connect automatically"

2016-12-15 Thread Ludovic Courtès
Chris Marusich  skribis:

> I tried following polkit's example.  These patches enable me to build
> network-manager with elogind, but when I reconfigure my system using the
> new network-manager package, NetworkManager still fails to automatically
> connect (like before, there are no error messages that I can find).
>
> I suspect I didn't replace the right "systemd" references, but it's hard
> to say.  A second pair of eyes on this would be very helpful!

[...]

> From 775e0f0c18fb2bcfc297c92184c54e81fb2db79d Mon Sep 17 00:00:00 2001
> From: Chris Marusich 
> Date: Wed, 14 Dec 2016 00:44:54 -0800
> Subject: [PATCH 1/2] gnome: Enable session tracking in network-manager.
>
> * gnu/packages/gnome.scm (network-manager): Add configuration options
>   "--with-systemd-logind=yes" (so we can use elogind to track login sessions)
>   and "--with-consolekit=no" (so we don't use consolekit to track sessions,
>   since it isn't packaged yet).  Add elogind as an input, and add a snippet to
>   replace some references to systemd with elogind.

[...]

> From d6de68789959bd657c5697c717201d5bcdaf2fcf Mon Sep 17 00:00:00 2001
> From: Chris Marusich 
> Date: Wed, 14 Dec 2016 00:01:26 -0800
> Subject: [PATCH 2/2] gnome: Enable NetworkManager in gnome-settings-daemon.
>
> * gnu/packages/gnome.scm (gnome-settings-daemon): remove the configure option
>   "--disable-network-manager".  Add network-manager as an input.

Following Andy’s advice I committed both with slightly-tweaked commit
logs.  That’ll give lurkers out there an incentive to give it a try.
;-)

Thank you Chris!

Ludo’.



Re: NetworkManager doesn't "Connect automatically"

2016-12-15 Thread Andy Wingo
On Thu 15 Dec 2016 11:24, Chris Marusich  writes:

> I tried following polkit's example.  These patches enable me to build
> network-manager with elogind, but when I reconfigure my system using the
> new network-manager package, NetworkManager still fails to automatically
> connect (like before, there are no error messages that I can find).
>
> I suspect I didn't replace the right "systemd" references, but it's hard
> to say.  A second pair of eyes on this would be very helpful!

Patches LGTM but I don't have the bandwidth right now to test :)  I
suggest just pushing them and then people with NM can more easily debug
things.

Andy



Re: NetworkManager doesn't "Connect automatically"

2016-12-15 Thread Chris Marusich
Chris Marusich  writes:

> Chris Marusich  writes:
>
>> Andy Wingo  writes:
>>
>>> On Wed 14 Dec 2016 10:13, Chris Marusich  writes:
>>>
 Did I make a mistake, or does NetworkManager just not recognize elogind?
 I'll look into this more, but unless I made a mistake, I suspect that
 either elogind or network-manager might require some tweaks to convince
 network-manager that elogind is equivalent to systemd in this case.
>>>
>>> See README where it mentions differences to logind:
>>>
>>>   https://github.com/elogind/elogind
>>>
>>> In particular see the changes in gnu/packages/polkit.scm to get
>>> PolicyKit to recognize elogind.
>>>
>>> ANdy
>>
>> Awesome, thank you for the tip!  At first blush it looks like the word
>> "systemd" is mentioned in surprisingly many files inside the
>> NetworkManager source.  I'll try following the example of polkit and see
>> how it goes!
>
> Upon closer inspection, it looks almost as if NetworkManager has
> extracted code from systemd for its own internal use.  I'll continue to
> look into this, but I don't expect to be able to make progress on my own
> very soon, so if someone else wants to dive in and help figure out what
> substitutions to make in the NetworkManager code, it would be welcome.

I tried following polkit's example.  These patches enable me to build
network-manager with elogind, but when I reconfigure my system using the
new network-manager package, NetworkManager still fails to automatically
connect (like before, there are no error messages that I can find).

I suspect I didn't replace the right "systemd" references, but it's hard
to say.  A second pair of eyes on this would be very helpful!

-- 
Chris
From 775e0f0c18fb2bcfc297c92184c54e81fb2db79d Mon Sep 17 00:00:00 2001
From: Chris Marusich 
Date: Wed, 14 Dec 2016 00:44:54 -0800
Subject: [PATCH 1/2] gnome: Enable session tracking in network-manager.

* gnu/packages/gnome.scm (network-manager): Add configuration options
  "--with-systemd-logind=yes" (so we can use elogind to track login sessions)
  and "--with-consolekit=no" (so we don't use consolekit to track sessions,
  since it isn't packaged yet).  Add elogind as an input, and add a snippet to
  replace some references to systemd with elogind.
---
 gnu/packages/gnome.scm | 21 ++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 1762381cf..846317f1d 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4399,7 +4399,19 @@ users.")
   "NetworkManager-" version ".tar.xz"))
   (sha256
(base32
-"016jc21mwjxvnfiblp5lji55sr8aq6w8a08fsjmqvnpnvm3y6r58"
+"016jc21mwjxvnfiblp5lji55sr8aq6w8a08fsjmqvnpnvm3y6r58"))
+  (snippet
+  '(begin
+ (use-modules (guix build utils))
+ (substitute* "configure"
+   ;; Replace libsystemd-login with libelogind.
+   (("libsystemd-login") "libelogind"))
+ (substitute* "src/devices/wwan/nm-modem-manager.c"
+   (("systemd") "elogind"))
+ (substitute* "src/nm-session-monitor.c"
+   (("systemd") "elogind"))
+ (substitute* "./src/nm-logging.c"
+   (("systemd") "elogind"))
 (build-system gnu-build-system)
 (outputs '("out"
"doc")) ; 8 MiB of gtk-doc HTML
@@ -4409,7 +4421,9 @@ users.")
  (doc  (assoc-ref %outputs "doc"))
  (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
   "/sbin/dhclient")))
- (list "--with-crypto=gnutls"
+ (list "--with-systemd-logind=yes" ; In Guix, this is provided via elogind.
+   "--with-consolekit=no" ; We haven't packaged consolekit yet.
+   "--with-crypto=gnutls"
"--disable-config-plugin-ibft"
"--sysconfdir=/etc"
"--localstatedir=/var"
@@ -4474,7 +4488,8 @@ users.")
("polkit" ,polkit)
("ppp" ,ppp)
("readline" ,readline)
-   ("util-linux" ,util-linux)))
+   ("util-linux" ,util-linux)
+   ("elogind" ,elogind)))
 (synopsis "Network connection manager")
 (home-page "http://www.gnome.org/projects/NetworkManager/;)
 (description
-- 
2.11.0

From d6de68789959bd657c5697c717201d5bcdaf2fcf Mon Sep 17 00:00:00 2001
From: Chris Marusich 
Date: Wed, 14 Dec 2016 00:01:26 -0800
Subject: [PATCH 2/2] gnome: Enable NetworkManager in gnome-settings-daemon.

* gnu/packages/gnome.scm (gnome-settings-daemon): remove the configure option
  "--disable-network-manager".  Add network-manager as an input.
---
 gnu/packages/gnome.scm | 7 +++
 1 file changed, 3 insertions(+), 4 

Re: NetworkManager doesn't "Connect automatically"

2016-12-14 Thread Chris Marusich
Chris Marusich  writes:

> Andy Wingo  writes:
>
>> On Wed 14 Dec 2016 10:13, Chris Marusich  writes:
>>
>>> Did I make a mistake, or does NetworkManager just not recognize elogind?
>>> I'll look into this more, but unless I made a mistake, I suspect that
>>> either elogind or network-manager might require some tweaks to convince
>>> network-manager that elogind is equivalent to systemd in this case.
>>
>> See README where it mentions differences to logind:
>>
>>   https://github.com/elogind/elogind
>>
>> In particular see the changes in gnu/packages/polkit.scm to get
>> PolicyKit to recognize elogind.
>>
>> ANdy
>
> Awesome, thank you for the tip!  At first blush it looks like the word
> "systemd" is mentioned in surprisingly many files inside the
> NetworkManager source.  I'll try following the example of polkit and see
> how it goes!

Upon closer inspection, it looks almost as if NetworkManager has
extracted code from systemd for its own internal use.  I'll continue to
look into this, but I don't expect to be able to make progress on my own
very soon, so if someone else wants to dive in and help figure out what
substitutions to make in the NetworkManager code, it would be welcome.

-- 
Chris


signature.asc
Description: PGP signature


Re: NetworkManager doesn't "Connect automatically"

2016-12-14 Thread Thomas Haller
On Wed, 2016-12-14 at 01:38 -0800, Chris Marusich wrote:
> Hi Thomas,
> 
> Thank you for the quick response!
> 
> Thomas Haller  writes:
> 
> > Did you build NetworkManager yourself? Is session-tracking properly
> > enabled to use systemd-logind or consolekit.
> 
> Yes, I'm building it from source [1].  It looks like we might need to
> adjust the way we build it to enable session-tracking, like you've
> suggested.  Am I correct in understanding that I should only need to
> pass the option "--with-systemd-logind=yes" to the configure script
> to
> enable session tracking via systemd-logind?  Is anything else
> required?

Hi,

No, that should be enough.

Possibly it was already enabled before, detected automatically?

Thomas

signature.asc
Description: This is a digitally signed message part


Re: NetworkManager doesn't "Connect automatically"

2016-12-14 Thread Chris Marusich
Andy Wingo  writes:

> On Wed 14 Dec 2016 10:13, Chris Marusich  writes:
>
>> Did I make a mistake, or does NetworkManager just not recognize elogind?
>> I'll look into this more, but unless I made a mistake, I suspect that
>> either elogind or network-manager might require some tweaks to convince
>> network-manager that elogind is equivalent to systemd in this case.
>
> See README where it mentions differences to logind:
>
>   https://github.com/elogind/elogind
>
> In particular see the changes in gnu/packages/polkit.scm to get
> PolicyKit to recognize elogind.
>
> ANdy

Awesome, thank you for the tip!  At first blush it looks like the word
"systemd" is mentioned in surprisingly many files inside the
NetworkManager source.  I'll try following the example of polkit and see
how it goes!

-- 
Chris


signature.asc
Description: PGP signature


Re: NetworkManager doesn't "Connect automatically"

2016-12-14 Thread Chris Marusich
Hi Thomas,

Thank you for the quick response!

Thomas Haller  writes:

> Did you build NetworkManager yourself? Is session-tracking properly
> enabled to use systemd-logind or consolekit.

Yes, I'm building it from source [1].  It looks like we might need to
adjust the way we build it to enable session-tracking, like you've
suggested.  Am I correct in understanding that I should only need to
pass the option "--with-systemd-logind=yes" to the configure script to
enable session tracking via systemd-logind?  Is anything else required?

> Starting NetworkManager with --debug is usually not that useful. The
> most interesting thing it does is to turn on debug-logging, which you
> can do  otherwise [1].

Understood.  Thank you for the tip!

[1] The NetworkManager package definition [2] as of today is here:
http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/gnome.scm?id=72c0b687800a617b891565f5a85bb06c1e1ba015#n4391

[2] If you're curious, you can learn more here:
https://www.gnu.org/software/guix/manual/html_node/Defining-Packages.html#Defining-Packages

-- 
Chris


signature.asc
Description: PGP signature


Re: NetworkManager doesn't "Connect automatically"

2016-12-14 Thread Andy Wingo
On Wed 14 Dec 2016 10:13, Chris Marusich  writes:

> Did I make a mistake, or does NetworkManager just not recognize elogind?
> I'll look into this more, but unless I made a mistake, I suspect that
> either elogind or network-manager might require some tweaks to convince
> network-manager that elogind is equivalent to systemd in this case.

See README where it mentions differences to logind:

  https://github.com/elogind/elogind

In particular see the changes in gnu/packages/polkit.scm to get
PolicyKit to recognize elogind.

ANdy



Re: NetworkManager doesn't "Connect automatically"

2016-12-14 Thread Chris Marusich
Hi Ludo,

l...@gnu.org (Ludovic Courtès) writes:

> Hello network managers!  :-)

Hopefully soon we will MANAGE to get it working! ;-)

> ren...@openmailbox.org skribis:
>
>> Accordig to what Thomas comments, I have two ideas:
>>
>> * I wil try to compile 'network-manager' with
>> '--with-session-tracking=consolekit'.
>
> On GuixSD we use “elogind”, which is like “systemd-logind”.
>
> However, the build log says:
>
> Platform:
>   session tracking: consolekit
>   suspend/resume: consolekit
>
> … which is definitely wrong.
>
> We need to tell it to use elogind, but adding it as an input is not
> enough.  Ideas?

By running "./configure --help", I found these promising options:

--8<---cut here---start->8---
  --with-systemd-logind=yes|no
  Support systemd session tracking
  --with-consolekit=yes|no
  Support consolekit session tracking
--8<---cut here---end--->8---

I tried the attached patch, but when I built network-manager, I got:

--8<---cut here---start->8---
checking for SYSTEMD_200... no
checking for LIBSYSTEMD... no
checking for SYSTEMD_JOURNAL... no
checking for SYSTEMD_JOURNAL... no
checking for SYSTEMD_LOGIN... no
checking for SYSTEMD_LOGIN... no
configure: error: You must have libsystemd installed to build with 
systemd-logind support.
phase `configure' failed after 5.3 seconds
builder for 
`/gnu/store/2zv14p720wfw594g86sf8wsd6fmkh8s7-network-manager-1.4.2.drv' failed 
with exit code 1
@ build-failed 
/gnu/store/2zv14p720wfw594g86sf8wsd6fmkh8s7-network-manager-1.4.2.drv - 1 
builder for 
`/gnu/store/2zv14p720wfw594g86sf8wsd6fmkh8s7-network-manager-1.4.2.drv' failed 
with exit code 1
guix build: error: build failed: build of 
`/gnu/store/2zv14p720wfw594g86sf8wsd6fmkh8s7-network-manager-1.4.2.drv' failed
--8<---cut here---end--->8---

Did I make a mistake, or does NetworkManager just not recognize elogind?
I'll look into this more, but unless I made a mistake, I suspect that
either elogind or network-manager might require some tweaks to convince
network-manager that elogind is equivalent to systemd in this case.

-- 
Chris
From 2c3973f566a889e291555a208813f45a371134b7 Mon Sep 17 00:00:00 2001
From: Chris Marusich 
Date: Wed, 14 Dec 2016 00:44:54 -0800
Subject: [PATCH] gnome: Enable session tracking in network-manager.

* gnu/packages/gnome.scm (network-manager): Add configuration options
  "--with-systemd-logind=yes" (so we can use elogind to track login sessions)
  and "--with-consolekit=no" (so we don't use consolekit to track sessions,
  since it isn't packaged yet).  Add elogind as an input.
---
 gnu/packages/gnome.scm | 7 +--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 1762381cf..c2b4f0ce4 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4409,7 +4409,9 @@ users.")
  (doc  (assoc-ref %outputs "doc"))
  (dhclient (string-append (assoc-ref %build-inputs "isc-dhcp")
   "/sbin/dhclient")))
- (list "--with-crypto=gnutls"
+ (list "--with-systemd-logind=yes" ; In Guix, this is provided via elogind.
+   "--with-consolekit=no" ; We haven't packaged consolekit yet.
+   "--with-crypto=gnutls"
"--disable-config-plugin-ibft"
"--sysconfdir=/etc"
"--localstatedir=/var"
@@ -4474,7 +4476,8 @@ users.")
("polkit" ,polkit)
("ppp" ,ppp)
("readline" ,readline)
-   ("util-linux" ,util-linux)))
+   ("util-linux" ,util-linux)
+   ("elogind" ,elogind)))
 (synopsis "Network connection manager")
 (home-page "http://www.gnome.org/projects/NetworkManager/;)
 (description
-- 
2.11.0



signature.asc
Description: PGP signature


Re: NetworkManager doesn't "Connect automatically"

2016-12-13 Thread Ludovic Courtès
Hello network managers!  :-)

ren...@openmailbox.org skribis:

> Accordig to what Thomas comments, I have two ideas:
>
> * I wil try to compile 'network-manager' with
> '--with-session-tracking=consolekit'.

On GuixSD we use “elogind”, which is like “systemd-logind”.

However, the build log says:

--8<---cut here---start->8---
Platform:
  session tracking: consolekit
  suspend/resume: consolekit
--8<---cut here---end--->8---

… which is definitely wrong.

We need to tell it to use elogind, but adding it as an input is not
enough.  Ideas?

> * I remember that we do not have the file 'NetworkManager.conf' under
> '/etc/NetworkManager' directory.

Do you think it matters?

Thanks for looking into it!

Ludo’.



Re: NetworkManager doesn't "Connect automatically"

2016-12-13 Thread rennes

Hello,

On 2016-12-13 08:37, Thomas Haller wrote:

This restricts the connection to a certain user, determined by the
connection.permissions property (see `nmcli connection show $NAME`
and `man nm-settings`).

This makes the connection only available, when a session for that user
exists. Is that user logged-in?

Did you build NetworkManager yourself? Is session-tracking properly
enabled to use systemd-logind or consolekit.

Starting NetworkManager with --debug is usually not that useful. The
most interesting thing it does is to turn on debug-logging, which you
can do  otherwise [1].
[1]
https://cgit.freedesktop.org/NetworkManager/NetworkManager/plain/contrib/fedora/rpm/NetworkManager.conf?id=c90ec2d8c8a12b44c908bf7f80b23059c29f68fa


Accordig to what Thomas comments, I have two ideas:

* I wil try to compile 'network-manager' with 
'--with-session-tracking=consolekit'.
* I remember that we do not have the file 'NetworkManager.conf' under 
'/etc/NetworkManager' directory.


I will perform the tests in the afternoon.

Thanks



Re: NetworkManager doesn't "Connect automatically"

2016-12-13 Thread Thomas Haller
On Mon, 2016-12-12 at 22:51 -0800, Chris Marusich wrote:


Hi,


> * If I check the "Make available to other users" check-box, then
>   NetworkManager DOES automatically connect to my wireless network.
>   However, my understanding is that this is only a workaround, and
> that
>   in fact NetworkManager should automatically connect when "Connect
>   automatically" is checked and "Make available to other users" is
> not
>   checked.  Please correct me if I'm mistaken.

This restricts the connection to a certain user, determined by the
connection.permissions property (see `nmcli connection show $NAME`
and `man nm-settings`).

This makes the connection only available, when a session for that user
exists. Is that user logged-in?

Did you build NetworkManager yourself? Is session-tracking properly
enabled to use systemd-logind or consolekit.



Starting NetworkManager with --debug is usually not that useful. The
most interesting thing it does is to turn on debug-logging, which you
can do  otherwise [1].



best,
Thomas


[1] 
https://cgit.freedesktop.org/NetworkManager/NetworkManager/plain/contrib/fedora/rpm/NetworkManager.conf?id=c90ec2d8c8a12b44c908bf7f80b23059c29f68fa

signature.asc
Description: This is a digitally signed message part


NetworkManager doesn't "Connect automatically"

2016-12-12 Thread Chris Marusich
Hi,

I'm trying to get NetworkManager working in GuixSD [1].  I've got it
working well enough so that I can manually connect to my wireless
network, which is great!  However, I've noticed that even when I've
checked the "Connect automatically" check-box [2], NetworkManager
doesn't automatically connect to my wireless network.  I expected it to
automatically connect.

I'd be very grateful if you could please help me figure out why
NetworkManager isn't automatically connecting.  This is the last issue
stopping the Guix project from using NetworkManager as the default
network management application in GuixSD.  I'm not subscribed to the
networkmanager-l...@gnome.org email list, so please include me
explicitly when replying so that I'm sure to get your message.

I've done some investigation, but I can't figure out how to
NetworkManager automatically connect to my wireless network.  Here's
what I know:

* Even when I restart my computer, NetworkManager doesn't automatically
  connect.  This is true even though NetworkManager is running, and even
  though the "Connect automatically" check-box remains checked.

* The only suspicious message emitted by NetworkManager appears to be
  this one, which seems unrelated:

Dec 12 21:22:05 localhost NetworkManager[348]: 
[1481606525.8773] error poking ModemManager:
GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name
org.freedesktop.ModemManager1 was not provided by any .service files

* I tried running NetworkManager with the "--debug" option, and I saw a
  lot of messages, but nothing jumped out at me (I'm not a
  NetworkManager developer though, so I'm not sure what constitutes
  normal or abnormal output).

* The "auto connect" setting for my wireless network is definitely being
  saved correctly.  I know this because I've observed messages from
  NetworkManager saying that it successfully saved the settings. In
  addition, when I invoke 'nmcli -f all c show', my wireless network is
  listed with a "yes" in the "AUTOCONNECT" column.

* If I check the "Make available to other users" check-box, then
  NetworkManager DOES automatically connect to my wireless network.
  However, my understanding is that this is only a workaround, and that
  in fact NetworkManager should automatically connect when "Connect
  automatically" is checked and "Make available to other users" is not
  checked.  Please correct me if I'm mistaken.

I've peeked at the NetworkManager code, but I don't have a lot of
experience with GNOME programs, so I was a little lost.  Hopefully with
your guidance, I can figure out what the problem is and fix it.

Here's information about my system; please let me know if you need more:

* NetworkManager version: 1.4.2.

* Linux version: Linux-Libre 4.8.12.

* GNOME version: The GNOME Control Center reports "3.0" (under "Details"
  in the System section), and the gnome-shell I'm using is GNOME Shell
  3.20.4.

* Network controller: Qualcomm Atheros AR9285 Wireless Network Adapter
  (PCI-Express) (rev 01)

* Driver: ath9k, srcversion 9A67368256E430AA90B3557.

[1] https://www.gnu.org/software/guix/

[2] See attached screenshot.  This checkbox is in the "Identity" section
of my network's settings, as viewed via the "Networking" application in
the GNOME Control Center).

-- 
Chris


signature.asc
Description: PGP signature