You are not logged in.

#1 2014-12-02 14:18:46

geo909
Member
Registered: 2008-09-07
Posts: 309

[SOLVED] After last upgrade, I cannot run wicd as a normal user

After the last upgrade, when I run wicd as a normal user, I get the following:

jorge@flamingo:~$ wicd-curses 
Traceback (most recent call last):
  File "/usr/share/wicd/curses/wicd-curses.py", line 1063, in <module>
    main()
  File "/usr/share/wicd/curses/wicd-curses.py", line 995, in main
    ui.run_wrapper(run)
  File "/usr/lib/python2.7/site-packages/urwid/display_common.py", line 757, in run_wrapper
    return fn()
  File "/usr/share/wicd/curses/wicd-curses.py", line 88, in wrapper
    return func(*args, **kargs)
  File "/usr/share/wicd/curses/wicd-curses.py", line 1003, in run
    app = appGUI()
  File "/usr/share/wicd/curses/wicd-curses.py", line 591, in __init__
    self.update_status()
  File "/usr/share/wicd/curses/wicd-curses.py", line 88, in wrapper
    return func(*args, **kargs)
  File "/usr/share/wicd/curses/wicd-curses.py", line 734, in update_status
    self.set_status):
  File "/usr/share/wicd/curses/wicd-curses.py", line 88, in wrapper
    return func(*args, **kargs)
  File "/usr/share/wicd/curses/wicd-curses.py", line 161, in check_for_wireless
    ('$C', ip))
  File "/usr/share/wicd/curses/wicd-curses.py", line 781, in set_status
    self.update_ui()
  File "/usr/share/wicd/curses/wicd-curses.py", line 88, in wrapper
    return func(*args, **kargs)
  File "/usr/share/wicd/curses/wicd-curses.py", line 930, in update_ui
    input_data = ui.get_input_nonblocking()
AttributeError: 'Screen' object has no attribute 'get_input_nonblocking'

If I run it with sudo, it works.

I remember that used to be the case a long long time ago, and I had found the
solution in the forums, but now I can't for the life of me. And it has to do with
the latest upgrade probably.

Any ideas?

Thanks a lot in advance.

Last edited by geo909 (2014-12-02 23:18:06)

Offline

#2 2014-12-02 21:24:28

andre.laszlo
Member
From: Göteborg, Sweden
Registered: 2010-02-01
Posts: 5

Re: [SOLVED] After last upgrade, I cannot run wicd as a normal user

I have the same problem.

The python package that wicd-curses uses for its interface, urwid, has apparently introduced some changes that are not backwards-compatible in version 1.3.

I fixed it (temporarily) by downgrading python2-urwid to a version < 1.3.0. https://wiki.archlinux.org/index.php/do … l_packages

How are problems like this normally dealt with in Arch? Some ideas:

  • Use a virtualenv and install the old urwid version for wicd only

  • Patch wicd-curses so that it works with the newer urwid

  • Patch urwid so it's backwards-compatible

The only good solution to running several python programs in parallel, that require different versions of the same library, is to use virtualenv afaik - not pacman. The default of always using the latest version of all libraries is bound to eventually break something.

Offline

#3 2014-12-02 21:35:41

jasonwryan
Anarchist
From: .nz
Registered: 2009-05-09
Posts: 30,426
Website

Re: [SOLVED] After last upgrade, I cannot run wicd as a normal user

wiki article on wicd wrote:

Note: Currently Wicd is no longer actively developed due to the lack of manpower. For more information, see this bug report. If you want a stable and actively developed network manager instead, consider Connman or netctl.

https://wiki.archlinux.org/index.php/Wicd


Arch + dwm   •   Mercurial repos  •   Surfraw

Registered Linux User #482438

Offline

#4 2014-12-02 23:17:50

geo909
Member
Registered: 2008-09-07
Posts: 309

Re: [SOLVED] After last upgrade, I cannot run wicd as a normal user

Thanks for the feedback.. This is unfortunate, I had no idea that the project was on hold.
I will start using a different network manager then.

Offline

#5 2014-12-04 22:17:46

gehaxelt
Member
Registered: 2014-12-04
Posts: 1

Re: [SOLVED] After last upgrade, I cannot run wicd as a normal user

Hi,

I wrote a small patch for this issue. Here's a write-up in german, but I'm sure google translator will do the work (http://technik.blogbasis.net/wicd-curse … 04-12-2014).

TL;DR: Apply this patch:

--- /usr/share/wicd/curses/wicd-curses.py	2013-08-20 15:09:54.000000000 -0400
+++ /tmp/wicd.py	2014-12-05 23:32:05.303349880 -0500
@@ -927,9 +927,11 @@
         if not ui._started:
             return False
 
-        input_data = ui.get_input_nonblocking()
+        # input_data = ui.get_input_nonblocking()
+        ui.set_input_timeouts(max_wait=0)
+        input_data = ui.get_input()
         # Resolve any "alarms" in the waiting
-        self.handle_keys(input_data[1])
+        self.handle_keys(input_data) # [1]
 
         # Update the screen
         canvas = self.frame.render( (self.size),True )

by saving the patch to /tmp/wicd.patch and then executing

sudo patch /usr/share/wicd/curses/wicd-curses.py < /tmp/wicd.patch

Note: ESC-key may be broken after the patch (e.g. you have to hit another key after the ESC-key), but it should bring back the wicd-curses interface.

EDIT:
Fixed intendation errors. Thanks to @pbhandari
All the best,
gehaxelt

Last edited by gehaxelt (2014-12-06 20:46:53)

Offline

#6 2014-12-05 09:56:26

hicolour
Member
Registered: 2014-12-05
Posts: 3

Re: [SOLVED] After last upgrade, I cannot run wicd as a normal user

Doesn't work for me

marek at mpr mpr /tmp $ sudo patch /usr/share/wicd/curses/wicd-curses.py < /tmp/wicd.patch
[sudo] password for marek: 
patching file /usr/share/wicd/curses/wicd-curses.py
Hunk #1 FAILED at 927.
1 out of 1 hunk FAILED -- saving rejects to file /usr/share/wicd/curses/wicd-curses.py.rej

Offline

#7 2014-12-05 13:33:12

geo909
Member
Registered: 2008-09-07
Posts: 309

Re: [SOLVED] After last upgrade, I cannot run wicd as a normal user

Thanks a lot. However I'd rather install a new network manager if this is not developed anymore.

Offline

#8 2014-12-06 04:30:13

pbhandari
Member
Registered: 2013-03-05
Posts: 8

Re: [SOLVED] After last upgrade, I cannot run wicd as a normal user

hicolour wrote:

Doesn't work for me

I think the indentation is a bit messed on the patch provided, but if you manually change the lines I can confirm that it works

This patch should work(hopefully)

--- /usr/share/wicd/curses/wicd-curses.py	2013-08-20 15:09:54.000000000 -0400
+++ /tmp/wicd.py	2014-12-05 23:32:05.303349880 -0500
@@ -927,9 +927,11 @@
         if not ui._started:
             return False
 
-        input_data = ui.get_input_nonblocking()
+        # input_data = ui.get_input_nonblocking()
+        ui.set_input_timeouts(max_wait=0)
+        input_data = ui.get_input()
         # Resolve any "alarms" in the waiting
-        self.handle_keys(input_data[1])
+        self.handle_keys(input_data) # [1]
 
         # Update the screen
         canvas = self.frame.render( (self.size),True )

Last edited by pbhandari (2014-12-06 04:45:36)

Offline

#9 2014-12-07 11:27:38

hicolour
Member
Registered: 2014-12-05
Posts: 3

Re: [SOLVED] After last upgrade, I cannot run wicd as a normal user

Thx a lot @pbhandari !

Offline

Board footer

Powered by FluxBB