From be9dc9dfeebd855cbc1cdde4c1e67d1ff59b4a5d Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Fri, 12 Dec 2008 04:28:18 +0000 Subject: [PATCH 01/17] Add support for checking pkg-config to see where pm-utils sleep hook should go (supported in pm-utils >=1.2.3). Add support for checking kde-config to get kde's prefix, and set the kde autostart directory accordingly. --- setup.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/setup.py b/setup.py index 521e7dd..0a33fc1 100755 --- a/setup.py +++ b/setup.py @@ -20,6 +20,7 @@ from distutils.extension import Extension import os import shutil import sys +import subprocess # Be sure to keep this updated! # VERSIONNUMBER @@ -160,6 +161,22 @@ class configure(Command): 'If you have specified --init and --initfile, configure will continue. ' + \ 'Please report this warning, along with the name of your ' + \ 'distribution, to the wicd developers.' + + # Decide whether to override the pm-utils file locations + try: + pmtemp = subprocess.Popen("pkg-config" + " --variable=pm_sleephooks pm-utils", shell=True, stdout=subprocess.PIPE +); + except: + len(pmtemp.stdout) == 0; + self.pmutils = pmtemp.stdout.readline().strip(); + + # Decide whether to override the kde autostart path + try: + kdetemp = subprocess.Popen("kde-config" + " --prefix", shell=True, stdout=subprocess.PIPE); + except: + len(kdetemp.stdout) == 0; + self.kdedir = kdetemp.stdout.readline().strip(); + self.python = '/usr/bin/python' self.pidfile = '/var/run/wicd/wicd.pid' self.initfilename = os.path.basename(self.initfile) From 4ff379688df5526e3006fe2bc6977fb64e402e32 Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Fri, 12 Dec 2008 05:45:13 +0000 Subject: [PATCH 02/17] Fix icons (copied from wicd-1.5.6 source tarball) --- icons/128px/wicd-client.png | Bin 0 -> 6282 bytes icons/16px/wicd-client.png | Bin 0 -> 608 bytes icons/192px/wicd-client.png | Bin 0 -> 10339 bytes icons/22px/wicd-client.png | Bin 0 -> 877 bytes icons/24px/wicd-client.png | Bin 0 -> 922 bytes icons/32px/wicd-client.png | Bin 0 -> 1240 bytes icons/36px/wicd-client.png | Bin 0 -> 1379 bytes icons/48px/wicd-client.png | Bin 0 -> 1899 bytes icons/64px/wicd-client.png | Bin 0 -> 2663 bytes icons/72px/wicd-client.png | Bin 0 -> 2890 bytes icons/96px/wicd-client.png | Bin 0 -> 4419 bytes icons/scalable/wicd-client.svg | 178 +++++++++++++++++++++++++++++++++ 12 files changed, 178 insertions(+) diff --git a/icons/128px/wicd-client.png b/icons/128px/wicd-client.png index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..a54662336affc164be33488be048c1f9f64d0141 100644 GIT binary patch literal 6282 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 T-Rl1y1ppN#O~rBr%dr0eoHXC| literal 0 HcmV?d00001 diff --git a/icons/16px/wicd-client.png b/icons/16px/wicd-client.png index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5d946ff82feee37d24356537a036e36736c9b0a9 100644 GIT binary patch literal 608 zcmV-m0-ybfP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iOM% z6fqorG)R#E00H1hL_t(I%eB)_OO#O*$MMfRGmefA^E7Y^Ke&$&O& zIh+%r;i_r?j7_%jKIHjL{}Jwr|IF>s`G z#Dn?}9sW+6d-b8-(osZ-MGkt^6dFiPET`I)yokoUPg@;GUP2t4N{xBl6pBZ>1N)PQ z?TqvI$1u2DdDgz-7$%X(+LXP;8CR;#gGb+oZI9EH><%=?TVyaXKMgt(J#Ks%!ft%T zEZSY2d#Jsr2Rxsjk`CDsZ;6SDfl#>Akx0VV%wo2g#n}={e9NQ-kwi9jiD)Dic(*ty zKx<(=m|Pfgylf9fFpUow)>qzPDm?^t71k+;@IF0BS@eY2=1_lX98|?B4WtG|BTaaN z8G%NpQ-f+_n?Yass87wIP0^E3>|DiL_v=Hn<#oPvSzzg$qt)HIj0+VrNM>u%=34cf zqh(_#$_vg3tW0Zf=@Zwtd{z+oZDtyDmfRF|2es=6)CkI7SpcXH) uwve^lyw&4lh!mxI4v)yFb2pf5Lmo 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 DflsXn literal 0 HcmV?d00001 diff --git a/icons/24px/wicd-client.png b/icons/24px/wicd-client.png index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..42f8a7bf3aa0d17c428a446d913c1754edc5c4c2 100644 GIT binary patch literal 922 zcmV;L17-Y)P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01ejw01ejxLMWSf00007bV*G`2iOM% z6fhu2Km}I-00SCHL_t(Y$F-D8XcSo#hQE4rD%E+|=~icqraNee-4S~gTH+W6(OI}q z@T~|UzVNLP4Je8Wk$~VvoP`_3L1!@_j4s3(#0Qd%E|f?#pahApgcd`Lbdt8Zj*F^P z+NL{g6n`kVb^iaJ|K4-Yy&CzE05$X~EQBVh{A!nb1=jiokm zqaBD*aMi0S`?(ttN|kd=6eY?TZiR*Ql>@+Ux%4kAF6$*76&97f1In2=Oq%_#_#73M zlqZ4dV^q0%k?uO-L9GDCawb*)@jMCV0+l(j!`zPuJ$1q)_3zPOHQNH8k(h8eB)}|B zKF?gr>dH=_CXYciD=VI`z`r6ZHiLaZL1Mz5Dhr4>2Xrg!1b_GUcv6jeZia`58=DIj zC0eq9|H8u<${a7&WIjh?!u^NPPd;OeiE zvW1;hV;$Ey;^at}U?>TlYF`+?3YI{h_1+W4jVAi69^ez;1MUI8y6jrFY{Mio-82|Y z-n@_Ydr~&|RS5fPRD9@Jn-*`RD<(G9=wD7}mAR&1i-nH)Rq4db;Zy0&B(VWqfhk(Z z6TP##2xv8Kq9LF)E5%V@5Kswd5&AM+V?Cz^@vDwWua#6u*&RF`aSzRidcwa3E-|~r z&s6;nH}WRS;4J_FZ6PsZ5|;-qc}#;5MFC!Qv>t$Kg8(<2a9zm*hN41yt>lzKA#SWeWjnCkt*!v; zP}oA;SPv*!`UBjK2qRG;W<1X3nmH26ATgoY|Ej=>mt`5O$-AR@W;b?BI5F7<7JW@? zv~ppZvkRYcdcp>pa*{g{;c~U$Q;z4qnJT;38%)s}vVpA=Fxbe!V1}09Fd7Gny^0aa z)YJHsM?jnV*cCD;2Tr0ZkEu}405kak6gz_gMfu72=>|#>z73e~jzhrcv-}K5y5ony wq3>P5^{l!V`u-m;fnLO52>4h;lNyiw0x`n!2TUS3E&u=k07*qoM6N<$g0K3PbN~PV literal 0 HcmV?d00001 diff --git a/icons/32px/wicd-client.png b/icons/32px/wicd-client.png index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..fb05a6d3191ea53b135a05ae93360cbec143c39b 100644 GIT binary patch literal 1240 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 VcZw|#R#N}~002ovPDHLkV1nFH;^6=Q literal 0 HcmV?d00001 diff --git a/icons/72px/wicd-client.png b/icons/72px/wicd-client.png index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..d3c45e9828feaf22abfcbb6831b1ad06718a7774 100644 GIT binary patch literal 2890 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 JPDHLkV1gqFE6M-> literal 0 HcmV?d00001 diff --git a/icons/scalable/wicd-client.svg b/icons/scalable/wicd-client.svg index e69de29..2f46f58 100644 --- a/icons/scalable/wicd-client.svg +++ b/icons/scalable/wicd-client.svg @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + From 7c3f9ca5c17abc45bdc9d909197ff2abbb352082 Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Sat, 13 Dec 2008 22:06:00 +0000 Subject: [PATCH 03/17] Fixed (I think) the pkg-config and kde-config tests. This needs more testing though before I'm sure. Big thanks to "nanotube" for the suggestions and code for this. --- setup.py | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/setup.py b/setup.py index 0a33fc1..081109a 100755 --- a/setup.py +++ b/setup.py @@ -162,20 +162,33 @@ class configure(Command): 'Please report this warning, along with the name of your ' + \ 'distribution, to the wicd developers.' - # Decide whether to override the pm-utils file locations + # Try to get the pm-utils sleep hooks directory from pkg-config and + # the kde prefix from kde-config + # Don't run these in a shell because it's not needed and because shell + # swallows the OSError we would get if {pkg,kde}-config do not exist + # If we don't get anything from *-config, or it didn't run properly, + # or the path is not a proper absolute path, raise an error try: - pmtemp = subprocess.Popen("pkg-config" + " --variable=pm_sleephooks pm-utils", shell=True, stdout=subprocess.PIPE -); - except: - len(pmtemp.stdout) == 0; - self.pmutils = pmtemp.stdout.readline().strip(); + pmtemp = subprocess.Popen(["pkg-config","--variable=pm_sleephooks","pm-utils"], stdout=subprocess.PIPE) + returncode = pmtemp.wait() # let it finish, and get the exit code + pmutils_candidate = pmtemp.stdout.readline().strip() # read stdout + if len(pmutils_candidate) == 0 or returncode != 0 or not os.path.isabs(pmutils_candidate): + raise ValueError + else: + self.pmutils = pmutils_candidate + except (OSError, ValueError): + pass # use our default - # Decide whether to override the kde autostart path try: - kdetemp = subprocess.Popen("kde-config" + " --prefix", shell=True, stdout=subprocess.PIPE); - except: - len(kdetemp.stdout) == 0; - self.kdedir = kdetemp.stdout.readline().strip(); + kdetemp = subprocess.Popen(["kde-config","--prefix"], stdout=subprocess.PIPE) + returncode = kdetemp.wait() # let it finish, and get the exit code + kdedir_candidate = kdetemp.stdout.readline().strip() # read stdout + if len(kdedir_candidate) == 0 or returncode != 0 or not os.path.isabs(kdedir_candidate): + raise ValueError + else: + self.kdedir = kdedir_candidate + except (OSError, ValueError): + pass # use our default self.python = '/usr/bin/python' self.pidfile = '/var/run/wicd/wicd.pid' From 19691e2b7ce209518e65def056f939bf94ccee5e Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Sun, 14 Dec 2008 07:58:58 +0000 Subject: [PATCH 04/17] Remove extraneous comments from setup.py and clean up a few of them. This is definitely trivial crap... --- setup.py | 33 ++++++++++----------------------- 1 file changed, 10 insertions(+), 23 deletions(-) diff --git a/setup.py b/setup.py index 7db91ef..3d13216 100755 --- a/setup.py +++ b/setup.py @@ -29,21 +29,9 @@ VERSION_NUM = '1.6.0' class configure(Command): description = "configure the paths that Wicd will be installed to" - # lib = '/usr/share/wicd/' - # etc = '/etc/wicd/' - # images = '/usr/share/pixmaps/wicd/' - # encryption = etc + 'encryption/templates/' - # bin = current - # networks = '/var/lib/wicd/configurations/' - # log = '/var/log/wicd/' - # - # python = '/usr/bin/python' - user_options = [ - # these first bunch are DIRECTORIES. - # they need to end a slash ("/") - # which will automatically be tacked on - # in the finalize_options method + # The first bunch is DIRECTORIES - they need to end with a slash ("/"), + # which will automatically be tacked on in the finalize_options method ('lib=', None, 'set the lib directory'), ('share=', None, 'set the share directory'), ('etc=', None, 'set the etc directory'), @@ -60,7 +48,6 @@ class configure(Command): ('dbus=', None, 'set the directory the dbus config file is stored in'), ('desktop=', None, 'set the directory the .desktop file is stored in'), ('icons=', None, "set the base directory for the .desktop file's icons"), - # ('pixmaps=', None, 'directory for images'), ('translations=', None, 'set the directory translations are stored in'), ('autostart=', None, 'set the directory that will be autostarted on desktop login'), ('init=', None, 'set the directory for the init file'), @@ -68,17 +55,16 @@ class configure(Command): ('mandir=', None, 'set the directory for the man pages'), ('kdedir=', None, 'set the kde autostart directory'), - # anything after here is a FILE. - # in other words, a slash ("/") will not automatically - # be added to the end of the path. - # do NOT remove the python= entry as it signals the beginning - # of the file section. + # Anything after this is a FILE; in other words, a slash ("/") will + # not automatically be added to the end of the path. + # Do NOT remove the python= entry, as it signals the beginning of + # the file section. ('python=', None, 'set the path to the Python executable'), ('pidfile=', None, 'set the pid file'), ('initfile=', None, 'set the init file to use'), ('initfilename=', None, "set the name of the init file (don't use)"), - # switches + # Configure switches ('no-install-init', None, "do not install the init file"), ('no-install-man', None, 'do not install the man file'), ('no-install-kde', None, 'do not install the kde autostart file'), @@ -118,8 +104,7 @@ class configure(Command): self.no_install_pmutils = False self.no_install_docs = False - # figure out what the default init file - # location should be on several different distros + # Determine the default init file location on several different distros self.distro_detect_failed = False @@ -190,10 +175,12 @@ class configure(Command): except (OSError, ValueError): pass # use our default + self.python = '/usr/bin/python' self.pidfile = '/var/run/wicd/wicd.pid' self.initfilename = os.path.basename(self.initfile) + def finalize_options(self): if self.distro_detect_failed == True: if not self.no_install_init: From cb9a78968a8eb495a46dfeba7d06a6d8a6b6a22e Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Tue, 23 Dec 2008 01:17:30 -0600 Subject: [PATCH 05/17] Fix (I think) dbus errors, or at least this is one way to fix them. If this is the *right* way, then it still needs work to support it in setup.py --- other/wicd.conf | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/other/wicd.conf b/other/wicd.conf index 4004de1..11d3098 100755 --- a/other/wicd.conf +++ b/other/wicd.conf @@ -2,6 +2,7 @@ + @@ -13,6 +14,7 @@ + @@ -22,8 +24,19 @@ + + + + + + + + + + + From c9b25937b39607545d3f1087cf850dc651057cdd Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Tue, 23 Dec 2008 01:20:48 -0600 Subject: [PATCH 06/17] Removed execute perms from other/wicd.conf --- other/wicd.conf | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 other/wicd.conf diff --git a/other/wicd.conf b/other/wicd.conf old mode 100755 new mode 100644 From 48160df95ba62717981600967cfd28b3c9db33cc Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Tue, 23 Dec 2008 01:47:53 -0600 Subject: [PATCH 07/17] Add support for configurable Unix group to be used - basically, users must be a member of this group in order to use Wicd. Note that this does not apply on systems configured to use ConsoleKit/PAM/et al. This defaults to use the "users" group so that it will work "out of the box" for most people, but distributions are encouraged to edit it as needed with the "--wicdgroup=whatever" configure argument. --- other/wicd.conf => in/other=wicd.conf.in | 3 +-- in/wicd=wpath.py.in | 1 + setup.py | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) rename other/wicd.conf => in/other=wicd.conf.in (94%) diff --git a/other/wicd.conf b/in/other=wicd.conf.in similarity index 94% rename from other/wicd.conf rename to in/other=wicd.conf.in index 11d3098..ac2fa88 100644 --- a/other/wicd.conf +++ b/in/other=wicd.conf.in @@ -32,8 +32,7 @@ - - + diff --git a/in/wicd=wpath.py.in b/in/wicd=wpath.py.in index 838a5c7..836868c 100755 --- a/in/wicd=wpath.py.in +++ b/in/wicd=wpath.py.in @@ -52,6 +52,7 @@ pidfile = '%PIDFILE%' initfile = '%INITFILE%' # stores only the file name, i.e. wicd initfilename = '%INITFILENAME%' +wicd_group = '%WICDGROUP%' # BOOLEANS no_install_pmutils = %NO_INSTALL_PMUTILS% diff --git a/setup.py b/setup.py index 3d13216..a65eac6 100755 --- a/setup.py +++ b/setup.py @@ -63,6 +63,7 @@ class configure(Command): ('pidfile=', None, 'set the pid file'), ('initfile=', None, 'set the init file to use'), ('initfilename=', None, "set the name of the init file (don't use)"), + ('wicdgroup=', None, "set the name of the group used for wicd"), # Configure switches ('no-install-init', None, "do not install the init file"), @@ -179,6 +180,7 @@ class configure(Command): self.python = '/usr/bin/python' self.pidfile = '/var/run/wicd/wicd.pid' self.initfilename = os.path.basename(self.initfile) + self.wicdgroup = 'users' def finalize_options(self): From 284218026587579b2240be7e13905e37ff8b28f9 Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Tue, 23 Dec 2008 01:50:16 -0600 Subject: [PATCH 08/17] Add "CHANGES" file to the list of documentation installed. --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index a65eac6..09f0778 100755 --- a/setup.py +++ b/setup.py @@ -333,7 +333,7 @@ try: piddir += '/' data.append (( piddir, [] )) if not wpath.no_install_docs: - data.append(( wpath.docdir, [ 'INSTALL', 'LICENSE', 'AUTHORS', 'README' ])) + data.append(( wpath.docdir, [ 'INSTALL', 'LICENSE', 'AUTHORS', 'README', 'CHANGES' ])) if not wpath.no_install_kde: data.append(( wpath.kdedir, [ 'other/wicd-tray.desktop' ])) if not wpath.no_install_init: From ad6ddbfbae134f8e379d99b88f84ec58ca08c123 Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Sat, 27 Dec 2008 00:37:03 -0600 Subject: [PATCH 09/17] Fixup pm-utils hook to return proper exit codes and fix logging. --- in/other=55wicd.in | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/in/other=55wicd.in b/in/other=55wicd.in index 94ca3f1..7e71456 100755 --- a/in/other=55wicd.in +++ b/in/other=55wicd.in @@ -7,15 +7,13 @@ wicd_suspend() { # Put wifi interface down - %LIB%suspend.py 2>/dev/null - return $NA + %LIB%suspend.py 2>/dev/null || return $NA } wicd_resume() { # Bring wifi interface back up - %LIB%autoconnect.py 2>/dev/null - return $NA + %LIB%autoconnect.py 2>/dev/null || return $NA } case "$1" in From 744324eb2e2a81221c0b34b1cded6763ad02d27a Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Sat, 27 Dec 2008 19:21:45 -0600 Subject: [PATCH 10/17] Merge in the changes to trunk's pm-utils sleep hook. --- in/other=55wicd.in | 46 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/in/other=55wicd.in b/in/other=55wicd.in index 7e71456..7a6a120 100755 --- a/in/other=55wicd.in +++ b/in/other=55wicd.in @@ -2,18 +2,29 @@ # pm-utils hook to handle suspend/resume properly for wicd -. "${PM_FUNCTIONS}" || . "${FUNCTIONS}" +if [ -r "${PM_FUNCTIONS}" ]; then + . "${PM_FUNCTIONS}" +elif [ -r "${FUNCTIONS}" ]; then + . "${FUNCTIONS}" +else + # pm-utils version is too old, or something else is wrong + exit $NA +fi + +RETVAL=0 # Set this to 0 initially wicd_suspend() { # Put wifi interface down - %LIB%suspend.py 2>/dev/null || return $NA + %LIB%suspend.py 1>/dev/null 2>/dev/null + RETVAL=$? } wicd_resume() { # Bring wifi interface back up - %LIB%autoconnect.py 2>/dev/null || return $NA + %LIB%autoconnect.py 1>/dev/null 2>/dev/null + RETVAL=$? } case "$1" in @@ -27,3 +38,32 @@ case "$1" in ;; esac +# We can't return a nonzero exit code (aside from $NA, $DX, and $NX) to +# to pm-utils or the entire sleep operation will be inhibited, so... +# No matter what we do, the log prefix and message will conflict a bit. +case "$RETVAL" in + 0) + exit $RETVAL + ;; + 1) + # Probably the daemon isn't running if this happens + echo "Unable to connect to wicd daemon - is it running?" + exit $DX + ;; + 2) + # This will occur if the daemon encounters an error + echo "Wicd daemon was unable to suspend the network." + exit $DX + ;; + 3) + # Will only be returned by autoconnect.py + # This should never happen, but just in case... + echo "Wicd daemon failed to autoconnect on resume." + exit $DX + ;; + *) + echo "Unknown exit code." + exit $NA + ;; +esac + From da5fc2dfdffbb8fe035d17634ad1ece17e2f3c80 Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Sun, 28 Dec 2008 00:19:25 -0600 Subject: [PATCH 11/17] Merged autoconnect.py and suspend.py changes from trunk (fixes for the pm-utils sleep hook usage). --- wicd/autoconnect.py | 43 +++++++++++++++++++++++++++++-------------- wicd/suspend.py | 18 ++++++++++++------ 2 files changed, 41 insertions(+), 20 deletions(-) diff --git a/wicd/autoconnect.py b/wicd/autoconnect.py index 472a2d1..787aae5 100755 --- a/wicd/autoconnect.py +++ b/wicd/autoconnect.py @@ -1,8 +1,8 @@ #!/usr/bin/python # -# Copyright (C) 2007 Adam Blackburn -# Copyright (C) 2007 Dan O'Reilly +# Copyright (C) 2007 - 2008 Adam Blackburn +# Copyright (C) 2007 - 2008 Dan O'Reilly # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License Version 2 as @@ -21,22 +21,37 @@ import dbus import time import gobject import sys -from dbus.mainloop.glib import DBusGMainLoop -DBusGMainLoop(set_as_default=True) -bus = dbus.SystemBus() -proxy_obj = bus.get_object('org.wicd.daemon', '/org/wicd/daemon') -daemon = dbus.Interface(proxy_obj, 'org.wicd.daemon') -loop = gobject.MainLoop() +if getattr(dbus, 'version', (0, 0, 0)) < (0, 80, 0): + import dbus.glib +else: + from dbus.mainloop.glib import DBusGMainLoop + DBusGMainLoop(set_as_default=True) +try: + bus = dbus.SystemBus() + proxy_obj = bus.get_object('org.wicd.daemon', '/org/wicd/daemon') + daemon = dbus.Interface(proxy_obj, 'org.wicd.daemon') +except Exception, e: + print>>sys.stderr, "Exception caught: %s" % str(e) + print>>sys.stderr, 'Could not connect to daemon.' + sys.exit(1) def handler(*args): loop.quit() -print daemon.Hello() -time.sleep(3) -daemon.SetSuspend(False) -if not daemon.CheckIfConnecting(): - daemon.SetForcedDisconnect(False) - daemon.AutoConnect(True, reply_handler=handler, error_handler=handler) +def error_handler(*args): + print>>sys.stderr, 'Async error autoconnecting.' + sys.exit(3) +if __name__ == '__main__': + try: + time.sleep(3) + daemon.SetSuspend(False) + if not daemon.CheckIfConnecting(): + daemon.SetForcedDisconnect(False) + daemon.AutoConnect(True, reply_handler=handler, error_handler=handler) + except Exception, e: + print>>sys.stderr, "Exception caught: %s" % str(e) + print>>sys.stderr, 'Error autoconnecting.' + sys.exit(2) diff --git a/wicd/suspend.py b/wicd/suspend.py index c43e2a3..7a860fb 100755 --- a/wicd/suspend.py +++ b/wicd/suspend.py @@ -2,14 +2,14 @@ """ Suspends the wicd daemon. -Sets a flag in the daemon that will stop it from monitoring network status. +Sets a flag in the daemon that will stop it from monitoring networkg status. Used for when a laptop enters hibernation/suspension. """ # -# Copyright (C) 2007 Adam Blackburn -# Copyright (C) 2007 Dan O'Reilly +# Copyright (C) 2007 - 2008 Adam Blackburn +# Copyright (C) 2007 - 2008 Dan O'Reilly # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License Version 2 as @@ -26,13 +26,17 @@ Used for when a laptop enters hibernation/suspension. import dbus import dbus.service +import sys try: bus = dbus.SystemBus() proxy_obj = bus.get_object('org.wicd.daemon', '/org/wicd/daemon') daemon = dbus.Interface(proxy_obj, 'org.wicd.daemon') except Exception, e: - print "Exception caught: %s" % str(e) + print>>sys.stderr, "Exception caught: %s" % str(e) + print>>sys.stderr, 'Could not connect to daemon.' + sys.exit(1) + if __name__ == '__main__': @@ -41,5 +45,7 @@ if __name__ == '__main__': daemon.SetForcedDisconnect(False) daemon.SetSuspend(True) except Exception, e: - print "Exception caught: %s" % str(e) - + print>>sys.stderr, "Exception caught: %s" % str(e) + print>>sys.stderr, 'Error setting suspend.' + sys.exit(2) + From b3d695d0ba46aa7b056988c6a397078c15f271f3 Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Sun, 28 Dec 2008 19:22:15 -0600 Subject: [PATCH 12/17] Fix permissions on peap-tkip template. --- encryption/templates/peap-tkip | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 encryption/templates/peap-tkip diff --git a/encryption/templates/peap-tkip b/encryption/templates/peap-tkip old mode 100755 new mode 100644 From 62ce9b9852dcf53b7a7bf86323d1f5fa8be75149 Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Wed, 31 Dec 2008 23:53:30 -0600 Subject: [PATCH 13/17] If kde-config fails, then assume kde is not installed, and don't install the autostart file for kde. --- setup.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 4717f3b..65ee989 100755 --- a/setup.py +++ b/setup.py @@ -187,7 +187,12 @@ class configure(Command): else: self.kdedir = kdedir_candidate + '/share/autostart' except (OSError, ValueError): - pass # use our default + # If kde-config isn't present or returns an error, then we can + # assume that kde isn't installed on the user's system + self.no_install_kde = True + # If it turns out that the assumption above is wrong, then we'll + # do this instead: + #pass # use our default self.python = '/usr/bin/python' From 066237718f49851b9e1c21293ba009afe11645da Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Thu, 1 Jan 2009 02:02:26 -0600 Subject: [PATCH 14/17] Fixed up setup.py and wpath.py to install the curses client. Added a wicd-curses wrapper script to /usr/bin Made curses *.py files executable All of this passes the build test, but not the "WFM" test. :) --- curses/curses_misc.py | 0 curses/prefs_curses.py | 0 curses/wicd-curses.py | 0 in/scripts=wicd-curses.in | 2 ++ in/wicd=wpath.py.in | 1 + setup.py | 9 ++++++++- 6 files changed, 11 insertions(+), 1 deletion(-) mode change 100644 => 100755 curses/curses_misc.py mode change 100644 => 100755 curses/prefs_curses.py mode change 100644 => 100755 curses/wicd-curses.py create mode 100755 in/scripts=wicd-curses.in diff --git a/curses/curses_misc.py b/curses/curses_misc.py old mode 100644 new mode 100755 diff --git a/curses/prefs_curses.py b/curses/prefs_curses.py old mode 100644 new mode 100755 diff --git a/curses/wicd-curses.py b/curses/wicd-curses.py old mode 100644 new mode 100755 diff --git a/in/scripts=wicd-curses.in b/in/scripts=wicd-curses.in new file mode 100755 index 0000000..9b56c42 --- /dev/null +++ b/in/scripts=wicd-curses.in @@ -0,0 +1,2 @@ +#!/bin/bash +exec python -O %LIB%wicd-curses.py $@ diff --git a/in/wicd=wpath.py.in b/in/wicd=wpath.py.in index 2cf55ec..33282e7 100755 --- a/in/wicd=wpath.py.in +++ b/in/wicd=wpath.py.in @@ -64,6 +64,7 @@ no_install_man = %NO_INSTALL_MAN% no_install_kde = %NO_INSTALL_KDE% no_install_acpi = %NO_INSTALL_ACPI% no_install_docs = %NO_INSTALL_DOCS% +no_install_ncurses = %NO_INSTALL_NCURSES% def chdir(file): """Change directory to the location of the specified file. diff --git a/setup.py b/setup.py index 65ee989..a1e2efb 100755 --- a/setup.py +++ b/setup.py @@ -84,7 +84,8 @@ class configure(Command): ('no-install-kde', None, 'do not install the kde autostart file'), ('no-install-acpi', None, 'do not install the suspend.d and resume.d acpi scripts'), ('no-install-pmutils', None, 'do not install the pm-utils hooks'), - ('no-install-docs', None, 'do not install the auxiliary documentation') + ('no-install-docs', None, 'do not install the auxiliary documentation'), + ('no-install-ncurses', None, 'do not install the ncurses client') ] @@ -117,6 +118,7 @@ class configure(Command): self.no_install_acpi = False self.no_install_pmutils = False self.no_install_docs = False + self.no_install_ncurses = False # Determine the default init file location on several different distros @@ -392,6 +394,11 @@ try: (wpath.backends, ['wicd/backends/be-external.py', 'wicd/backends/be-ioctl.py']), (wpath.autostart, ['other/wicd-tray.desktop', ]), ] + if not wpath.no_install_ncurses: + data.append(( wpath.lib, ['curses/curses_misc.py'])) + data.append(( wpath.lib, ['curses/prefs_curses.py'])) + data.append(( wpath.lib, ['curses/wicd-curses.py'])) + data.append(( wpath.bin, ['scripts/wicd-curses'])) piddir = os.path.dirname(wpath.pidfile) if not piddir.endswith('/'): piddir += '/' From 7cadae7131a53b651943a23a7e7f4eadb3ed648b Mon Sep 17 00:00:00 2001 From: Dan O'Reilly Date: Fri, 2 Jan 2009 19:52:28 -0500 Subject: [PATCH 15/17] Move logic that saves settings for network entries out of gui.py and into netentry.py. --- wicd/gui.py | 84 +++------------------------------------------- wicd/netentry.py | 81 +++++++++++++++++++++++++++++++++++++++++++- wicd/networking.py | 7 +--- 3 files changed, 85 insertions(+), 87 deletions(-) diff --git a/wicd/gui.py b/wicd/gui.py index 93fbb93..58aefc6 100644 --- a/wicd/gui.py +++ b/wicd/gui.py @@ -579,8 +579,8 @@ class appGui(object): """ if fresh: - # Even if it is None, it can still be passed. - wireless.SetHiddenNetworkESSID(noneToString(hidden)) + if hidden: + wireless.SetHiddenNetworkESSID(noneToString(hidden)) self.refresh_clicked() return print "refreshing..." @@ -665,90 +665,14 @@ class appGui(object): # Now save the settings. if nettype == "wireless": - if not self.save_wireless_settings(networkid, entry, networkentry): + if not networkentry.save_wireless_settings(networkid): return False elif nettype == "wired": - if not self.save_wired_settings(entry): + if not networkentry.save_wired_settings(): return False return True - - def _save_gen_settings(self, entry): - """ Save settings common to wired and wireless settings dialogs. """ - if entry.chkbox_static_ip.get_active(): - entry.set_net_prop("ip", noneToString(entry.txt_ip.get_text())) - entry.set_net_prop("netmask", noneToString(entry.txt_netmask.get_text())) - entry.set_net_prop("gateway", noneToString(entry.txt_gateway.get_text())) - else: - entry.set_net_prop("ip", '') - entry.set_net_prop("netmask", '') - entry.set_net_prop("gateway", '') - - if entry.chkbox_static_dns.get_active() and \ - not entry.chkbox_global_dns.get_active(): - entry.set_net_prop('use_static_dns', True) - entry.set_net_prop('use_global_dns', False) - entry.set_net_prop('dns_domain', noneToString(entry.txt_domain.get_text())) - entry.set_net_prop("search_domain", noneToString(entry.txt_search_dom.get_text())) - entry.set_net_prop("dns1", noneToString(entry.txt_dns_1.get_text())) - entry.set_net_prop("dns2", noneToString(entry.txt_dns_2.get_text())) - entry.set_net_prop("dns3", noneToString(entry.txt_dns_3.get_text())) - elif entry.chkbox_static_dns.get_active() and \ - entry.chkbox_global_dns.get_active(): - entry.set_net_prop('use_static_dns', True) - entry.set_net_prop('use_global_dns', True) - else: - entry.set_net_prop('use_static_dns', False) - entry.set_net_prop('use_global_dns', False) - entry.set_net_prop('dns_domain', '') - entry.set_net_prop("search_domain", '') - entry.set_net_prop("dns1", '') - entry.set_net_prop("dns2", '') - entry.set_net_prop("dns3", '') - - def save_wired_settings(self, entry): - """ Save wired network settings. """ - self._save_gen_settings(entry) - wired.SaveWiredNetworkProfile(entry.prof_name) - return True - - def save_wireless_settings(self, networkid, entry, netent): - """ Save wireless network settings. """ - # Check encryption info - if entry.chkbox_encryption.get_active(): - print "setting encryption info..." - encryption_info = entry.encryption_info - encrypt_methods = misc.LoadEncryptionMethods() - entry.set_net_prop("enctype", - encrypt_methods[entry.combo_encryption.get_active()][1]) - for x in encryption_info: - if encryption_info[x].get_text() == "": - error(self.window, language['encrypt_info_missing']) - return False - entry.set_net_prop(x, noneToString(encryption_info[x]. - get_text())) - elif not entry.chkbox_encryption.get_active() and \ - wireless.GetWirelessProperty(networkid, "encryption"): - error(self.window, language['enable_encryption']) - return False - else: - print 'encryption is ' + str(wireless.GetWirelessProperty(networkid, - "encryption")) - print "no encryption specified..." - entry.set_net_prop("enctype", "None") - self._save_gen_settings(entry) - entry.set_net_prop("automatic", - noneToString(netent.chkbox_autoconnect.get_active())) - - if entry.chkbox_global_settings.get_active(): - entry.set_net_prop('use_settings_globally', True) - else: - entry.set_net_prop('use_settings_globally', False) - wireless.RemoveGlobalEssidEntry(networkid) - - wireless.SaveWirelessNetworkProfile(networkid) - return True def edit_advanced(self, widget, event, ttype, networkid, networkentry): """ Display the advanced settings dialog. diff --git a/wicd/netentry.py b/wicd/netentry.py index 40a5fd3..fca87fb 100644 --- a/wicd/netentry.py +++ b/wicd/netentry.py @@ -237,6 +237,39 @@ class AdvancedSettingsDialog(gtk.Dialog): super(AdvancedSettingsDialog, self).destroy() self.destroy() del self + + def save_settings(self): + """ Save settings common to wired and wireless settings dialogs. """ + if self.chkbox_static_ip.get_active(): + self.set_net_prop("ip", noneToString(self.txt_ip.get_text())) + self.set_net_prop("netmask", noneToString(self.txt_netmask.get_text())) + self.set_net_prop("gateway", noneToString(self.txt_gateway.get_text())) + else: + self.set_net_prop("ip", '') + self.set_net_prop("netmask", '') + self.set_net_prop("gateway", '') + + if self.chkbox_static_dns.get_active() and \ + not self.chkbox_global_dns.get_active(): + self.set_net_prop('use_static_dns', True) + self.set_net_prop('use_global_dns', False) + self.set_net_prop('dns_domain', noneToString(self.txt_domain.get_text())) + self.set_net_prop("search_domain", noneToString(self.txt_search_dom.get_text())) + self.set_net_prop("dns1", noneToString(self.txt_dns_1.get_text())) + self.set_net_prop("dns2", noneToString(self.txt_dns_2.get_text())) + self.set_net_prop("dns3", noneToString(self.txt_dns_3.get_text())) + elif self.chkbox_static_dns.get_active() and \ + self.chkbox_global_dns.get_active(): + self.set_net_prop('use_static_dns', True) + self.set_net_prop('use_global_dns', True) + else: + self.set_net_prop('use_static_dns', False) + self.set_net_prop('use_global_dns', False) + self.set_net_prop('dns_domain', '') + self.set_net_prop("search_domain", '') + self.set_net_prop("dns1", '') + self.set_net_prop("dns2", '') + self.set_net_prop("dns3", '') class WiredSettingsDialog(AdvancedSettingsDialog): @@ -263,6 +296,11 @@ class WiredSettingsDialog(AdvancedSettingsDialog): self.txt_search_dom.set_text(self.format_entry("search_domain")) self.chkbox_global_dns.set_active(bool(wired.GetWiredProperty("use_global_dns"))) self.reset_static_checkboxes() + + def save_settings(self): + AdvancedSettingsDialog.save_settings(self) + wired.SaveWiredNetworkProfile(self.prof_name) + return True def format_entry(self, label): """ Helper method to fetch and format wired properties. """ @@ -353,7 +391,6 @@ class WirelessSettingsDialog(AdvancedSettingsDialog): self.chkbox_global_settings.set_active(bool(wireless.GetWirelessProperty(networkID, 'use_settings_globally'))) - activeID = -1 # Set the menu to this item when we are done user_enctype = wireless.GetWirelessProperty(networkID, "enctype") for x, enc_type in enumerate(self.encrypt_types): @@ -368,6 +405,40 @@ class WirelessSettingsDialog(AdvancedSettingsDialog): else: self.combo_encryption.set_active(0) self.change_encrypt_method() + + def save_settings(self, networkid): + # Check encryption info + if self.chkbox_encryption.get_active(): + print "setting encryption info..." + encryption_info = self.encryption_info + encrypt_methods = misc.LoadEncryptionMethods() + self.set_net_prop("enctype", + encrypt_methods[self.combo_encryption.get_active()][1]) + for x in encryption_info: + if encryption_info[x].get_text() == "": + error(self, language['encrypt_info_missing']) + return False + self.set_net_prop(x, noneToString(encryption_info[x]. + get_text())) + elif not self.chkbox_encryption.get_active() and \ + wireless.GetWirelessProperty(networkid, "encryption"): + error(self, language['enable_encryption']) + return False + else: + print 'encryption is ' + str(wireless.GetWirelessProperty(networkid, + "encryption")) + print "no encryption specified..." + self.set_net_prop("enctype", "None") + AdvancedSettingsDialog.save_settings(self) + + if self.chkbox_global_settings.get_active(): + self.set_net_prop('use_settings_globally', True) + else: + self.set_net_prop('use_settings_globally', False) + wireless.RemoveGlobalEssidEntry(networkid) + + wireless.SaveWirelessNetworkProfile(networkid) + return True def format_entry(self, networkid, label): """ Helper method for fetching/formatting wireless properties. """ @@ -575,6 +646,10 @@ class WiredNetworkEntry(NetworkEntry): self.destroy() del self + def save_wired_settings(self): + """ Save wired network settings. """ + return self.advanced_dialog.save_settings() + def edit_scripts(self, widget=None, event=None): """ Launch the script editting dialog. """ profile = self.combo_profile_names.get_active_text() @@ -756,6 +831,10 @@ class WirelessNetworkEntry(NetworkEntry): """ Escapes special characters so they're displayed correctly. """ return val.replace("&", "&").replace("<", "<").\ replace(">",">").replace("'", "'").replace('"', """) + + def save_wireless_settings(self, networkid): + """ Save wireless network settings. """ + return self.advanced_dialog.save_settings(networkid) def destroy_called(self, *args): """ Clean up everything. """ diff --git a/wicd/networking.py b/wicd/networking.py index 160e3a3..543f524 100644 --- a/wicd/networking.py +++ b/wicd/networking.py @@ -411,12 +411,7 @@ class ConnectThread(threading.Thread): BACKEND.StopDHCP() def connect_aborted(self, reason): - """ Sets the thread status to aborted in a thread-safe way. - - Sets the status to aborted, and also delays returning for - a few seconds to make sure the message is readable - - """ + """ Sets the thread status to aborted. """ if self.abort_reason: reason = self.abort_reason self.connecting_message = reason From 93ef894c4585dd68f99dbd3e8449e67cedac8086 Mon Sep 17 00:00:00 2001 From: Robby Workman Date: Fri, 2 Jan 2009 20:25:16 -0600 Subject: [PATCH 16/17] Removed "in keys" from line 415 per NaCl's suggestion. --- curses/prefs_curses.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/curses/prefs_curses.py b/curses/prefs_curses.py index 3dd275a..da8c39d 100755 --- a/curses/prefs_curses.py +++ b/curses/prefs_curses.py @@ -412,7 +412,7 @@ class PrefsDialog(urwid.WidgetWrap): overlay.keypress(dim, k) if self.CANCEL_PRESSED: return False - if self.OK_PRESSED in keys: + if self.OK_PRESSED: return True From bff4f961e7211c03aadd9f7c946baeb6cb3f08f2 Mon Sep 17 00:00:00 2001 From: Adam Blackburn Date: Sat, 3 Jan 2009 10:35:28 +0800 Subject: [PATCH 17/17] Changed 25% signal icon to red and 50% signal icon to orange --- images/signal-25.png | Bin 1593 -> 1545 bytes images/signal-50.png | Bin 1694 -> 1667 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/images/signal-25.png b/images/signal-25.png index d6ef732a1932448f5f56006492e877e19c434126..c4e12d4584ab75a3a5925222eb5ce593362c9c50 100644 GIT binary patch delta 1507 zcmV<91swXh42cYoBpd;AQb$4nuFf3k00006VoOIv0RI600RN!9r<0K}7=H(JNliru z*#QFr4KPN-`<4Iz1&K*SK~z}7?O07~B-a%^_f_?m)M~Xf8jY;M#*j~gaRM4ApwUNGhnP>GiI2v6-DalmZqgrSJiv>-jhXF2Sw2s zqA@};dGM&!tE&6n`MBo^Nq=1D@$tu>+#3!DFO#g@{gmX1sUIcPiK>objQ>0>X1fm` ze$~x!%}2M}WxwAS0E=k=Y5>OoMgSfG_~KwR>IHm<#PZMsjq)AbANtNL>xd0AyguA zA|g`}IRr2!xv#30-vBCNvA{BrsfX4v#0DJ}D0e~+?qkFw8E9RZI-@Wtt>%aIk z%fqP|3wJ*@vtu)xYO+bvI4NhpNo z08RlU0Am23zyIC`!+%SO#s8)G^2#J6Gm<@b4cr}Qbb%tV#AZ8EXxi6>;iZQ;QsRR^3LPO zlYetYfMt?_WD7vg-9fVD?tORPG_w~~^_4q!Zl{|d&8IxO*q1)L&a$n_RFiG+gbFTqe0n zGP=8&8B$7Fzu&)d0g#56Ims5uuDdV0`>Lwes#<56lov>IAlW8~1>W6#&CH%Nv+t#p zezLl{^2aMJ=DaFh0JEL(_;7G;4MPY9pagKzz;i@$4}ZWzk`GA!eRucIOE)FYEb#Bm zw1(WN;Xo-Oo$q8gYyR@F4LC$2Q=s6az30bzW1D&eP307x-#h3`Ob&GpLFxACRx#J=BlSmsc_X3ud1n) zFZzq=GVVHgMSl|Dui&-aAtx1M+@xl?~l6QayW}2gtGCTBN3U1$OyoG zjM4LzM-SFo^Xn#qyE0huHT9$>8o?lEWtc z{>aQ;Q`PbI_SQ#dPV{UzTinY0S2!Dw4|};yj(-rsTqogfNS;8ADB}!ORWOyuD2gYV zb)I~iji!i15t#v)ipXIIVdU-y0KTqcJiHXSbb1Ie6C@81&ls%*ak5H4jDdBXF_mrh z!s-R4*;?F`xVw`KX4WyYL5y)@I2`VOL!&thAv`%J>GuKbOvZk3s>N?FcqGC6#@6(Eqz77!!ZHGi{SmSx#f`nfjdp^J<7Y-X!wb|@GQ$WZq~PAR<*=J1{Ca#f|GDBRtRq^Y{m-PFv?jH(J%m6PM5{V&Xrr~jXxng{>@002ov JPDHLkV1g}h=#l^c delta 1555 zcmV+u2JHEX47m)DBn<>}LP=Bz2nYy#2xN$nKp1}+bVXQnQ*UN;cVTj60C#tHE@^IS zb7Ns}WiD@WXPfRk8UO$Vwn;=mR9J=WSW9bU#})og-Pe1Y#0!h%o~(6Kp07GoFW~R_oCZb@#nh=lingZp}zD zCQN_J$TH->r8c+f)K~SL@0?R63D?;^{p6Fo?M~-sk_wWil7{Yn>?s|ll)7bEel;GA zo_zW6VLku0H~YV=Uaza!Y8imV=Ku--0{~qBj{tnp-QRD7Z*QC5yj}a7fmsf~Bn1E& zfU2a1q_(6DN#m5#c(vKguRRz^O-Uvxm$ZLEG9%d_xlZy;cmGjJ>6fier?~cDY!)9f zGXjVqgsGVg&8%-`M*w<~_EL;~?ZE(;n3(`1Gn)eF12_Qi48WHF9su~_ZnxXGGB6+9 zzPo2eC<0@~a-fn-l zw<^`@8h|lo(s~3S05}B@0rUWT{^6ZFYs)zJzcepvnn`RXsX;PGs*!Aye8b&;=$325G73kjLhuV%z9?FNAiig_m^4!s?|(pMl&lhi<9Fl z%k}|00q_vO{ngdgdxzcbSBuEC5Imt$r=dYhMKe&Cn`p&!W{xO7bN^(N?vAd5`O5+scs4UBIF`bT1N26i? zq`k1NSo}?#|9+ABN`DdS1m${jh&F$^qHX478g!2;n zB3=Fi;Ms?F?zArh1OOlrvp5rGG<5(8KsisMr&*Q_%d%WPX-YBxxuhC^rliQ31(LNG zV{>g|+vn%Nt zfQOPENc#8R9zR~WQZSdW1^+q!d>-6!9s?6It1YwecR`vjHfJ?SEAv>}Bw4t7Y_?k2 zWdtCb$4QuvYb19`{xqd@9AiA*y?OJWSfVUB=VvA^7n`$%zZ>rUgOq>LFPiOkk^lML zpAPeSUQnD;K2A)ht~82_!;(e6@X5((8XZrbP9Oj7H^2YG!ikx=nN33oL(F1k!Tm=I z?sxb0>X!imywsePA%w|1_Z*wqp_z37?3HE7{AugKx>W!{E+|nR9V}d_NQmR4I4)6) zB>VL15APiJ7y3VmWm$i@@Z(vbDJhVwOIn+^zdv^OU!|0KJG;9dOen`CiqTY)!5E{HELBgwfm2?9cQY%^Yz&}pW=A1}F3EiW zk7H3BEwg@pl8!)g6Br0)lvfhZ zZg$q!_b&K*vCtfc5KeGj((ePfchu`G)tu!geh5c`K%;1c2Zx8Gm?g!$L{Td=btf;1 zh0R|>&y+?|j#*(?1yIYfEL&z%%UXUMdx&0upajCGS0mAbwOzWf}{*{ib<-wd*c-}JFCqwYr3>(pWVIV?mIEYw>CC6A3Wa| z)?TRR0?8`L4#_u3{>0q}DW(1!ySqic?Yp2Q5d=k04wrjdQVNMNiz+LTMXgSmrIe6Tvf*G*{Vz|{rb;2J4&nd+002ovPDHLk FV1o1j=@I|{ diff --git a/images/signal-50.png b/images/signal-50.png index 586213b97be1544e556a1eddd60120d645a91241..198733aa2a3744f0702d06cb0bfb389da2333232 100644 GIT binary patch delta 1630 zcmV-k2BG<$4TBAkBpd;AQb$4nuFf3k00006VoOIv0RI600RN!9r<0K}7=H(JNliru z*#QFrAOuHURm=bY1_Mb%K~z}7?O02XT}K(Lulw9PcjnH^jvo_)AV7F5cu63!Lm*|v zhTnmNkPttC4ZCb2WyPKa2>t+)7m+}M2n0&NGML03O+4dy-8<*m-Cq?8--*W9A;PhS zF`}iG&gPucUw2h~Rc(@Rk$=bUfA{7eHa6G4C}|+sNILPtqf*L2DP=FE^j=f9+jswQ zZ&KlckI7`B)zwu4a5^2p0ALPa55T(sZavt2upIC|G%ozfm{|qDBn1Ewz*y3^N%u=B{yY@ZnVA3-GwT7&06YM&1K=)zI{y>Z* zDORDOt0p;j_qn^zO5#EG;h<~#y_4g5cV}nk==(qX-mfpR08G|5)~=35qfG$qLRt?2 z1ON?y3}7F?Uw`qlUw>^r%@6)B%^yLTOj4AzOfpDXBDqd-%iTZg?qAP2?_b-x_FDjN zT2s-F@~vG)d z)&bo7h@!y-&wsRlsRJkg(xQnrF~*aW($h6fc?ZG(F+hx#eM~yZY#2&3=h$S+8ZT`> zVR2!>)g?(&NgI+9Nq2YToa5^1>iG$PbqzF*hC;L8k=cpBky4>qrcw_XVa&@5ingcedYHImcpZ$OTj|bj8GC<~f)T(Q+4=y9#|X3T5R< z4&xO6Tufh(J1;oUnc3306~m@R90}+Niw;ZKL=PxKK<*+^Q;E%(X&RrAOF0|PmL#n# zxORo);D7FUx;BkZCjjigmS*zEC_`q1modZ@Rn-PK%_yVH%QxP82E{xnoJ~k>l6=wK zUoNG5b!~lhsQz~I=LeHVdgc^m50yFkh>YPAtbYI2$mZ2p$j&ieW1~l6i7}a zZ7$;P=iU7qrIh`x8(Y6QV>Hi(v(sCd$HLj+gQMjN^L=1MfuzYDh1o188-_OIwg%gI z9DioV)~p}DzpADNSO5_c&E%$%EieV-J}UQBTTm$s;e(8(nI$u80nE(oFodv2au>k8 zoYLV_k&E3v)MZ0vK=g=IMv4^r1ospychS|1;ggNW8%_uSL@8RRMifoeatN?EML#-P zd12$<7|k|>a17uPqY2=xgZ;zJr&EgKJ%2D}Ak)BNAcHXnc#0^gG9Q+ZT1WMvH#sJY z4>x_ujKvJ0I@j=5X}$}V77zsyCI?GKU;=UvPOQn>xQa8%gobxB}(B1$5`o7O~U6Z6saxe6S!*+L9$&TXL cPUiLapL+7z;}Wx!vj6}907*qoM6N<$f_60)!2kdN delta 1657 zcmV-<28Q{A4W12}LP=Bz2nYy#2xN$nKp1}+bVXQnQ*UN;cVTj60C#tHE@^IS zb7Ns}WiD@WXPfRk8UO$W8%ab#R9J=WSWS;yM-@G{-s_&}@yztt*q%5B6bTG05FmlX z4hbnM7A*M@>;h}VPw*}~_St2@4hbm|NFYT~BqF0k0n3T)*dF(M^>n|Fs(a62(bM+$ zLyCVqMiV1(rBc03Rozo{@44qblZ02!l-?@Q`Q&Ltg1#D2K%y8BMf`Cc=d z-TD01t=0OgcJ|9`b#+zi8yf~-IRZcrU_vYOCdi~0Sk+d$!B-MYC)<{+)Mno#uf5Q}by}3yQ5IjYuX*DYhhnH2!@l+qy&{Pg3GJ{q3pW!5H_?*4xw4H5+w zf|+3F@VQ$)D#+6g?f%@R6aA~&1n^Q|AQ6i^6Bc0_031L*E~4|Qs*ZBbrz@HrJESlO zN(3u{Ln`QSbCrtVFsU8^gFDaqri4YVu1Gp3X)Gy|jEF!frCQ(EI6DI9)gm#OKqFL9 zL4t#j)8TYwxEu*KdIHF?`jvk)l!RrxlRO_0S0dtDrIa6TjK}Yt8JMgN5G05MJ>WUu zZLu=X>Smp_)5ebWhp{#}xy}Hklmb8t;0Ox^up{XU0JkLFl=RQP+`hebW?)*jFcSzF z6-INNX5$H$Y+*@~pK<6OH)vX6+ezOhlAk^ovDWP&P+Ca|J7B(!F##sjUE zbya06UB36SNCZ5uIa?*UMe<5SeB0fBw7$97*MGY4$K86h?kRRuG)|v~d{$VFGW)|m z+Jm{z_S?JN?ce_L_kVu?fKClaLLdn`5yj=%QM#hO?bWrdn%O*>XV~mT?WyK0rwbNSLT`KZ13U2 zQGFB#P&y_`Fo-A)&yL(=^s`Rww88A4^5MbKsg4b30fG={fv}KUK}kiq%IfM~U7giG zK>#O(rkQ0kYXBUY*(W0 z{`6u&1VkBwitJYUg4}0yZEMZ^kbC=Q3TFAS44I@<3DtkFUW7|ZNP`OX%DB34;Vd0H zjXeUhyk$PV6D<_BkTP5wTrLdE>&x zi#H$pg{>2ME|DCP9Fu&Vh6cHUA@}Zm*XmEE`p#4YC*LwPtH;mu`OsNb&-<0Hp8&$yY{sgpAku=YMUH~Bh*$~t4R^m( zO8KUxRF;eSt}C;nBa#eB!H5WQF-OSV;qG=coeuv4;;9vm8a~yt00000NkvXXu0mjf D1VSYp