unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* ENWC Development
@ 2017-02-16  0:58 Ian Dunn
  2017-02-16  1:21 ` Clément Pit-Claudel
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Ian Dunn @ 2017-02-16  0:58 UTC (permalink / raw)
  To: emacs-devel


Hey everyone,

I'd like to reboot enwc (the Emacs network client), and could use some help from anyone interested.

1. The information on elpa is outdated; I migrated enwc from bazaar to mercurial months ago, so that needs to be updated (Apologies for not mentioning this sooner).  Would it be easier if I had access to the elpa repo to make the changes myself?  I'd like to continue development on the Savannah repo enwc has, but I wouldn't mind syncing it to elpa myself after each release.

2. I'd like to support NetworkManager and Wicd, despite the latter's apparent death, but I've also looked into conn man and netctl.  What does everyone here use?

3. Finally, I'd appreciate help testing enwc.  I run NetworkManager myself, so that's likely to get the most testing, but I'd hate to see the others fall into disrepair.  Even something simple such as running a few commands and telling me it didn't work would be helpful.  If anyone would like to take it a step further and maintain one of the backends, that'd be even better.

--
Ian Dunn



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ENWC Development
  2017-02-16  0:58 Ian Dunn
@ 2017-02-16  1:21 ` Clément Pit-Claudel
  2017-02-16  2:21   ` Ian Dunn
  2017-02-16  1:29 ` Clément Pit-Claudel
  2017-02-16  9:10 ` Live System User
  2 siblings, 1 reply; 10+ messages in thread
From: Clément Pit-Claudel @ 2017-02-16  1:21 UTC (permalink / raw)
  To: Ian Dunn, emacs-devel

On 2017-02-15 19:58, Ian Dunn wrote:
> 3. Finally, I'd appreciate help testing enwc.  I run NetworkManager
> myself, so that's likely to get the most testing, but I'd hate to see
> the others fall into disrepair.  Even something simple such as
> running a few commands and telling me it didn't work would be
> helpful.  If anyone would like to take it a step further and maintain
> one of the backends, that'd be even better.

Hi Ian,

I just installed it from ELPA.  My first instinct was to run M-x elwc, which caused a "enwc-do-scan: Symbol’s function definition is void: nil" message to appear.  Looking at the code, I gathered that I had to run enwc-setup first (why doesn't M-x enwc do that automatically? I saw that in fact this should be done from my .emacs, but I don't want to ENWC in all Emacs sessions).  Running enwc-setup printed "enwc-setup: No usable backend found.", and then a series of "Error running timer ‘enwc-update-mode-line’: (void-function nil)" messages.

I use Network Manager.

Cheers,
Clément.



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ENWC Development
  2017-02-16  0:58 Ian Dunn
  2017-02-16  1:21 ` Clément Pit-Claudel
@ 2017-02-16  1:29 ` Clément Pit-Claudel
  2017-02-16  9:10 ` Live System User
  2 siblings, 0 replies; 10+ messages in thread
From: Clément Pit-Claudel @ 2017-02-16  1:29 UTC (permalink / raw)
  To: Ian Dunn, emacs-devel

On 2017-02-15 19:58, Ian Dunn wrote:
> 3. Finally, I'd appreciate help testing enwc.  I run NetworkManager
> myself, so that's likely to get the most testing, but I'd hate to see
> the others fall into disrepair.  Even something simple such as
> running a few commands and telling me it didn't work would be
> helpful.  If anyone would like to take it a step further and maintain
> one of the backends, that'd be even better.

Hi Ian,

I use Network Manager. I just installed enwc from ELPA.  My first instinct was to run M-x elwc, which caused a "enwc-do-scan: Symbol’s function definition is void: nil" message to appear.  Looking at the code, I gathered that I had to run enwc-setup first (why doesn't M-x enwc do that automatically? I saw that in fact this should be done from my .emacs, but I don't want to ENWC in all Emacs sessions).  Running enwc-setup printed "enwc-setup: No usable backend found.", and then a series of "Error running timer ‘enwc-update-mode-line’: (void-function nil)" messages.

It seems that the dbus call for network manager in enwc-setup returns nil for me.

Cheers,
Clément.



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ENWC Development
  2017-02-16  1:21 ` Clément Pit-Claudel
@ 2017-02-16  2:21   ` Ian Dunn
  2017-02-27 19:50     ` Clément Pit-Claudel
  0 siblings, 1 reply; 10+ messages in thread
From: Ian Dunn @ 2017-02-16  2:21 UTC (permalink / raw)
  To: Clément Pit-Claudel; +Cc: emacs-devel

Clément Pit-Claudel <cpitclaudel@gmail.com> writes:

> Looking at the code, I gathered that I had to run enwc-setup first (why
> doesn't M-x enwc do that automatically? I saw that in fact this should be done
> from my .emacs, but I don't want to ENWC in all Emacs sessions).
>

As I mentioned, the ELPA version is out of date at the moment (and apparently non-functional), but this is a great point.

ENWC isn't in a state to be released right now, a fact that I didn't make clear, and I'm sorry for that.  Right now, the only feature I have working on my machine is scanning and displaying access points.

Thank you Clément, both for your help and your quick response.  Would it be too much trouble to try it from the hg repo on Savannah? ( hg clone  http://hg.savannah.nongnu.org/hgweb/enwc/ )  Same question for anyone else interested, and I understand if you choose not to.

Also, if anyone wants to help with the design or development, feel free to shoot me an email.

--
Ian Dunn



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ENWC Development
  2017-02-16  0:58 Ian Dunn
  2017-02-16  1:21 ` Clément Pit-Claudel
  2017-02-16  1:29 ` Clément Pit-Claudel
@ 2017-02-16  9:10 ` Live System User
  2 siblings, 0 replies; 10+ messages in thread
From: Live System User @ 2017-02-16  9:10 UTC (permalink / raw)
  To: Ian Dunn; +Cc: emacs-devel

Ian Dunn <dunni@gnu.org> writes:

> Hey everyone,
>
> I'd like to reboot enwc (the Emacs network client), and could use some help from anyone interested.

[...]

> 3. Finally, I'd appreciate help testing enwc.  I run NetworkManager myself, so that's likely to get the most testing, but I'd hate to see the others fall into disrepair.  Even something simple such as running a few commands and telling me it didn't work would be helpful.  If anyone would like to take it a step further and maintain one of the backends, that'd be even better.

  Oddly enough, I just reported a bug with ENWC yesterday morning
  before your message:

      https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25738

  Thanks.




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ENWC Development
  2017-02-16  2:21   ` Ian Dunn
@ 2017-02-27 19:50     ` Clément Pit-Claudel
  2017-03-01  2:49       ` Ian Dunn
  0 siblings, 1 reply; 10+ messages in thread
From: Clément Pit-Claudel @ 2017-02-27 19:50 UTC (permalink / raw)
  To: Ian Dunn; +Cc: emacs-devel

On 2017-02-15 21:21, Ian Dunn wrote:
> Thank you Clément, both for your help and your quick response.  Would
> it be too much trouble to try it from the hg repo on Savannah? ( hg
> clone  http://hg.savannah.nongnu.org/hgweb/enwc/ )  Same question for
> anyone else interested, and I understand if you choose not to.

Sorry for the delay.  I now get the following backtrace when running enwc-setup:

Debugger entered--Lisp error: (dbus-error "No device found for the requested iface.")
  signal(dbus-error ("No device found for the requested iface."))
  dbus-call-method(:system "org.freedesktop.NetworkManager" "/org/freedesktop/NetworkManager" "org.freedesktop.NetworkManager" "GetDeviceByIpIface" :timeout 25000 :string "eth0")
  apply(dbus-call-method :system "org.freedesktop.NetworkManager" "/org/freedesktop/NetworkManager" "org.freedesktop.NetworkManager" "GetDeviceByIpIface" :timeout 25000 (:string "eth0"))
  enwc-nm-dbus-call-method("GetDeviceByIpIface" nil nil :string "eth0")
  apply(enwc-nm-dbus-call-method "GetDeviceByIpIface" nil nil (:string "eth0"))
  enwc-nm-dbus-default-call-method("GetDeviceByIpIface" :string "eth0")
  enwc-nm-get-device-by-name("eth0")
  (setq enwc-nm-wired-dev (enwc-nm-get-device-by-name enwc-wired-device) enwc-nm-wireless-dev (enwc-nm-get-device-by-name enwc-wireless-device))
  enwc-nm-load()
  funcall(enwc-nm-load)
  enwc--load([cl-struct-enwc-backend nm enwc-nm-can-load-p enwc-nm-load enwc-nm-unload enwc-nm-get-networks enwc-nm-scan enwc-nm-get-wireless-nw-props enwc-nm-connect enwc-nm-disconnect enwc-nm-get-current-nw-id enwc-nm-check-connecting enwc-nm-is-wired])
  (if (not (or force (enwc--can-load-p new-backend))) (warn "Backend %s is not usable." backend) (enwc--load new-backend) (setq enwc--current-backend new-backend))
  (let ((new-backend (map-elt enwc-registered-backend-alist backend))) (if new-backend nil (error "No registered backend %s" backend)) (if (not (or force (enwc--can-load-p new-backend))) (warn "Backend %s is not usable." backend) (enwc--load new-backend) (setq enwc--current-backend new-backend)))
  enwc-load-backend(nm nil)
  enwc-load-default-backend(nil)
  (if enwc--setup-done nil (enwc-load-default-backend enwc-force-backend-loading) (if enwc-display-mode-line (progn (enwc-enable-display-mode-line))) (if (and enwc-auto-scan (> enwc-auto-scan-interval 0) (not enwc-scan-timer)) (progn (setq enwc-scan-timer (run-at-time t enwc-auto-scan-interval 'enwc-scan t)))) (setq enwc--setup-done t))
  enwc-setup()

I get a similar message for M-x enwc: 'dbus-call-method: D-Bus error: "No device found for the requested iface."'.

I used this set-up code:

  (add-to-list 'load-path "~/.emacs.d/lisp/enwc/") ;; local hg clone
  (require 'enwc nil t)
  (setq enwc-default-backend 'nm)

Looking more at the backtrace, I gathered that I needed this:

(setq enwc-wired-device "enp0s25")
(setq enwc-wireless-device "wlp5s0")

With this added scanning worked: I got a list of wireless networks!

Some small requests: Instead of throwing and error, could enwc automatically figure out (possibly by prompting me) what my wired and wireless interfaces are?  Also: sorting the list of networks by clicking a header should ideally not scroll it (currently, sorting by e.g. Essid will sometimes scroll all but two or three networks out of the screen).

Thanks!
Clément.



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ENWC Development
  2017-02-27 19:50     ` Clément Pit-Claudel
@ 2017-03-01  2:49       ` Ian Dunn
  2017-03-01  3:07         ` Clément Pit-Claudel
  2017-03-01  3:36         ` raman
  0 siblings, 2 replies; 10+ messages in thread
From: Ian Dunn @ 2017-03-01  2:49 UTC (permalink / raw)
  To: Clément Pit-Claudel; +Cc: emacs-devel

Clément Pit-Claudel <cpitclaudel@gmail.com> writes:

>
> With this added scanning worked: I got a list of wireless networks!
>

Hurray!

> Some small requests: Instead of throwing and error, could enwc automatically
> figure out (possibly by prompting me) what my wired and wireless interfaces are?
>

I like this idea.  Here's how I imagine it:

1. Set the default values of the interfaces to an empty string or nil
2. If unset during enwc-setup, use ip or ifconfig (or other customizable program) to determine the available interfaces and prompt the user for each one

It's probably possible to automate it more, but I don't see much benefit.  In all likelihood, it'd be easier and more accurate to collect the interfaces and present them to the user for selection.

What do you think?

> Also: sorting the list of networks by clicking a header should ideally not
> scroll it (currently, sorting by e.g. Essid will sometimes scroll all but two or
> three networks out of the screen).
>

Reproduced.  This is an issue with tabulated-list-mode.  I'll see what I can do.

--
Ian Dunn



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ENWC Development
  2017-03-01  2:49       ` Ian Dunn
@ 2017-03-01  3:07         ` Clément Pit-Claudel
  2017-03-01  3:36         ` raman
  1 sibling, 0 replies; 10+ messages in thread
From: Clément Pit-Claudel @ 2017-03-01  3:07 UTC (permalink / raw)
  To: Ian Dunn; +Cc: emacs-devel

On 2017-02-28 21:49, Ian Dunn wrote:
> I like this idea.  Here's how I imagine it:
> 
> 1. Set the default values of the interfaces to an empty string or nil
> 2. If unset during enwc-setup, use ip or ifconfig (or other customizable program) to determine the available interfaces and prompt the user for each one
> 
> It's probably possible to automate it more, but I don't see much benefit.  In all likelihood, it'd be easier and more accurate to collect the interfaces and present them to the user for selection.
> 
> What do you think?

I think it would be great :)

>> Also: sorting the list of networks by clicking a header should ideally not
>> scroll it (currently, sorting by e.g. Essid will sometimes scroll all but two or
>> three networks out of the screen).
>>
> 
> Reproduced.  This is an issue with tabulated-list-mode.  I'll see what I can do.

Thanks!




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ENWC Development
  2017-03-01  2:49       ` Ian Dunn
  2017-03-01  3:07         ` Clément Pit-Claudel
@ 2017-03-01  3:36         ` raman
  1 sibling, 0 replies; 10+ messages in thread
From: raman @ 2017-03-01  3:36 UTC (permalink / raw)
  To: Ian Dunn; +Cc: Clément Pit-Claudel, emacs-devel

For my own use-case --- and for background, I do everything in Emacs ---
I'd really enwc to be able to help me configure a new wifi network
e.g. when I am at a hotel or at  a convention center.  Since I cannot
use nm-applet I end up copying a  template
network-manager/system-connections/ file, set the essid and key in it by
hand,  and then hope -- I've never succeeded in configuring a new
network using nmcli. Enwc sounds like a good solution for this, and when
I played with it in the past it at least got as far as scanning for and
showing available networks.
-- 



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: ENWC Development
@ 2017-03-14  1:06 Ian Dunn
  0 siblings, 0 replies; 10+ messages in thread
From: Ian Dunn @ 2017-03-14  1:06 UTC (permalink / raw)
  To: emacs-devel; +Cc: Clément Pit-Claudel, Live System User, raman


Hey Everyone,

    I recently pushed an update to ENWC that implements network interface selection, using either the 'ip' or 'ifconfig' programs.  This will run in `enwc-setup', which runs as part of the first run of `enwc'.  As of right now, these changes don't persist between Emacs sessions.

    The ultimate goal of ENWC is to allow a user to set up a new network profile from scratch.  This has always been part of my goal with ENWC, but due to the differing ways in which Wicd and NetworkManager handled this, and my short-sighted initial design, I couldn't figure out a solution.

    Thank you to everyone that's helped with testing so far.  My goal for the 2.0 release is to have ENWC using the NetworkManager backend to connect to a wired or wireless network for which a profile already exists.  So far, wireless seems to be working; not so much wired.  I hope to have that up and running within the week, and 2.0 released by the end of the month.

    The 3.0 release will see a new profile interface, and working NetworkManager and Wicd backends.  I don't have an estimate for how long this will take.  As always, I'm open to input and feedback.

--
Ian Dunn



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2017-03-14  1:06 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-14  1:06 ENWC Development Ian Dunn
  -- strict thread matches above, loose matches on Subject: below --
2017-02-16  0:58 Ian Dunn
2017-02-16  1:21 ` Clément Pit-Claudel
2017-02-16  2:21   ` Ian Dunn
2017-02-27 19:50     ` Clément Pit-Claudel
2017-03-01  2:49       ` Ian Dunn
2017-03-01  3:07         ` Clément Pit-Claudel
2017-03-01  3:36         ` raman
2017-02-16  1:29 ` Clément Pit-Claudel
2017-02-16  9:10 ` Live System User

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).