guix/gnu/packages/wicd.scm

196 lines
8.8 KiB
Scheme
Raw Normal View History

;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Pierre-Antoine Rault <par@rigelk.eu>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages wicd)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system python)
#:use-module (guix licenses)
#:use-module (guix utils)
#:use-module (gnu packages)
#:use-module (gnu packages glib)
#:use-module (gnu packages gtk)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gettext)
#:use-module (gnu packages linux)
#:use-module (gnu packages admin)
#:use-module (gnu packages python))
(define-public wicd
(package
(name "wicd")
(version "1.7.4")
(source
(origin
(method url-fetch)
(uri (string-append "https://launchpad.net/wicd/"
(version-major+minor version) "/" version
"/+download/wicd-" version ".tar.gz"))
(sha256
(base32 "0qpbwwsrqdp40mm3a8djpn2d055rxxspdhwijwsdnws700a9d637"))
gnu: packages: Use 'search-patches' everywhere. * gnu/packages/abiword.scm: Use 'search-patches' for 'patches' field. * gnu/packages/acl.scm: Likewise. * gnu/packages/admin.scm: Likewise. * gnu/packages/algebra.scm: Likewise. * gnu/packages/animation.scm: Likewise. * gnu/packages/apr.scm: Likewise. * gnu/packages/audacity.scm: Likewise. * gnu/packages/audio.scm: Likewise. * gnu/packages/autotools.scm: Likewise. * gnu/packages/avahi.scm: Likewise. * gnu/packages/backup.scm: Likewise. * gnu/packages/base.scm: Likewise. * gnu/packages/bash.scm: Likewise. * gnu/packages/bioinformatics.scm: Likewise. * gnu/packages/cdrom.scm: Likewise. * gnu/packages/ci.scm: Likewise. * gnu/packages/cmake.scm: Likewise. * gnu/packages/cpio.scm: Likewise. * gnu/packages/cross-base.scm: Likewise. * gnu/packages/dico.scm: Likewise. * gnu/packages/doxygen.scm: Likewise. * gnu/packages/ebook.scm: Likewise. * gnu/packages/elf.scm: Likewise. * gnu/packages/emacs.scm: Likewise. * gnu/packages/engineering.scm: Likewise. * gnu/packages/firmware.scm: Likewise. * gnu/packages/flashing-tools.scm: Likewise. * gnu/packages/fltk.scm: Likewise. * gnu/packages/ftp.scm: Likewise. * gnu/packages/games.scm: Likewise. * gnu/packages/gawk.scm: Likewise. * gnu/packages/gcc.scm: Likewise. * gnu/packages/gd.scm: Likewise. * gnu/packages/ghostscript.scm: Likewise. * gnu/packages/glib.scm: Likewise. * gnu/packages/gnome.scm: Likewise. * gnu/packages/gnucash.scm: Likewise. * gnu/packages/gnunet.scm: Likewise. * gnu/packages/gnupg.scm: Likewise. * gnu/packages/gnuzilla.scm: Likewise. * gnu/packages/graphics.scm: Likewise. * gnu/packages/grub.scm: Likewise. * gnu/packages/gtk.scm: Likewise. * gnu/packages/guile.scm: Likewise. * gnu/packages/icu4c.scm: Likewise. * gnu/packages/idutils.scm: Likewise. * gnu/packages/image.scm: Likewise. * gnu/packages/imagemagick.scm: Likewise. * gnu/packages/irc.scm: Likewise. * gnu/packages/ldc.scm: Likewise. * gnu/packages/libcanberra.scm: Likewise. * gnu/packages/libevent.scm: Likewise. * gnu/packages/libreoffice.scm: Likewise. * gnu/packages/libunwind.scm: Likewise. * gnu/packages/libusb.scm: Likewise. * gnu/packages/linux.scm: Likewise. * gnu/packages/lirc.scm: Likewise. * gnu/packages/llvm.scm: Likewise. * gnu/packages/lsh.scm: Likewise. * gnu/packages/lua.scm: Likewise. * gnu/packages/lxqt.scm: Likewise. * gnu/packages/mail.scm: Likewise. * gnu/packages/maths.scm: Likewise. * gnu/packages/mcrypt.scm: Likewise. * gnu/packages/messaging.scm: Likewise. * gnu/packages/mit-krb5.scm: Likewise. * gnu/packages/mp3.scm: Likewise. * gnu/packages/multiprecision.scm: Likewise. * gnu/packages/music.scm: Likewise. * gnu/packages/ninja.scm: Likewise. * gnu/packages/nvi.scm: Likewise. * gnu/packages/ocaml.scm: Likewise. * gnu/packages/orpheus.scm: Likewise. * gnu/packages/ots.scm: Likewise. * gnu/packages/parallel.scm: Likewise. * gnu/packages/patchutils.scm: Likewise. * gnu/packages/pcre.scm: Likewise. * gnu/packages/pdf.scm: Likewise. * gnu/packages/perl.scm: Likewise. * gnu/packages/plotutils.scm: Likewise. * gnu/packages/polkit.scm: Likewise. * gnu/packages/pulseaudio.scm: Likewise. * gnu/packages/python.scm: Likewise. * gnu/packages/qemu.scm: Likewise. * gnu/packages/qt.scm: Likewise. * gnu/packages/ratpoison.scm: Likewise. * gnu/packages/rdf.scm: Likewise. * gnu/packages/readline.scm: Likewise. * gnu/packages/rush.scm: Likewise. * gnu/packages/scheme.scm: Likewise. * gnu/packages/screen.scm: Likewise. * gnu/packages/sdl.scm: Likewise. * gnu/packages/slim.scm: Likewise. * gnu/packages/ssh.scm: Likewise. * gnu/packages/tcl.scm: Likewise. * gnu/packages/tcsh.scm: Likewise. * gnu/packages/texinfo.scm: Likewise. * gnu/packages/tls.scm: Likewise. * gnu/packages/tor.scm: Likewise. * gnu/packages/tv.scm: Likewise. * gnu/packages/valgrind.scm: Likewise. * gnu/packages/version-control.scm: Likewise. * gnu/packages/video.scm: Likewise. * gnu/packages/vpn.scm: Likewise. * gnu/packages/vtk.scm: Likewise. * gnu/packages/w3m.scm: Likewise. * gnu/packages/web.scm: Likewise. * gnu/packages/wicd.scm: Likewise. * gnu/packages/wm.scm: Likewise. * gnu/packages/xdisorg.scm: Likewise. * gnu/packages/xfce.scm: Likewise. * gnu/packages/xiph.scm: Likewise. * gnu/packages/xml.scm: Likewise. * gnu/packages/xorg.scm: Likewise. * gnu/packages/zip.scm: Likewise.
2016-04-08 08:18:13 -04:00
(patches (search-patches
"wicd-bitrate-none-fix.patch"
"wicd-get-selected-profile-fix.patch"
"wicd-urwid-1.3.patch"
"wicd-wpa2-ttls.patch"))))
(build-system python-build-system)
gnu: Add and use gettext-minimal. * gnu/packages/gettext.scm (gnu-gettext): Rename to... (gettext-minimal): ... this. Adjust synopsis and description. (gnu-gettext): Inherit from it. (po4a): Use 'gettext-minimal' instead of 'gnu-gettext'. * gnu/packages/acl.scm: Likewise. * gnu/packages/admin.scm: Likewise. * gnu/packages/apl.scm: Likewise. * gnu/packages/attr.scm: Likewise. * gnu/packages/audio.scm: Likewise. * gnu/packages/base.scm: Likewise. * gnu/packages/cdrom.scm: Likewise. * gnu/packages/commencement.scm: Likewise. * gnu/packages/crypto.scm: Likewise. * gnu/packages/databases.scm: Likewise. * gnu/packages/disk.scm: Likewise. * gnu/packages/documentation.scm: Likewise. * gnu/packages/education.scm: Likewise. * gnu/packages/engineering.scm: Likewise. * gnu/packages/enlightenment.scm: Likewise. * gnu/packages/fcitx.scm: Likewise. * gnu/packages/fontutils.scm: Likewise. * gnu/packages/freedesktop.scm: Likewise. * gnu/packages/games.scm: Likewise. * gnu/packages/gkrellm.scm: Likewise. * gnu/packages/glib.scm: Likewise. * gnu/packages/gnome.scm: Likewise. * gnu/packages/grub.scm: Likewise. * gnu/packages/gtk.scm: Likewise. * gnu/packages/guile.scm: Likewise. * gnu/packages/ibus.scm: Likewise. * gnu/packages/irc.scm: Likewise. * gnu/packages/iso-codes.scm: Likewise. * gnu/packages/kde-frameworks.scm: Likewise. * gnu/packages/kodi.scm: Likewise. * gnu/packages/linux.scm: Likewise. * gnu/packages/man.scm: Likewise. * gnu/packages/maths.scm: Likewise. * gnu/packages/mono.scm: Likewise. * gnu/packages/mp3.scm: Likewise. * gnu/packages/music.scm: Likewise. * gnu/packages/nano.scm: Likewise. * gnu/packages/networking.scm: Likewise. * gnu/packages/package-management.scm: Likewise. * gnu/packages/pdf.scm: Likewise. * gnu/packages/sawfish.scm: Likewise. * gnu/packages/statistics.scm: Likewise. * gnu/packages/terminals.scm: Likewise. * gnu/packages/version-control.scm: Likewise. * gnu/packages/vpn.scm: Likewise. * gnu/packages/w3m.scm: Likewise. * gnu/packages/webkit.scm: Likewise. * gnu/packages/wicd.scm: Likewise. * gnu/packages/wine.scm: Likewise. * gnu/packages/xdisorg.scm: Likewise. * gnu/packages/xorg.scm: Likewise.
2016-09-25 03:33:02 -04:00
(native-inputs `(("gettext" ,gettext-minimal)))
(inputs `(("dbus-glib" ,dbus-glib)
("python2-dbus" ,python2-dbus)
("python2-pygtk" ,python2-pygtk)
("python2-urwid" ,python2-urwid)
("python2-babel" ,python2-babel)
("wireless-tools" ,wireless-tools)
("wpa-supplicant" ,wpa-supplicant)
("net-tools" ,net-tools)
("isc-dhcp" ,isc-dhcp)
("iproute" ,iproute)
("hicolor-icon-theme" ,hicolor-icon-theme)))
(arguments
`(#:python ,python-2
#:tests? #f ; test suite requires networking
;; wicd directly extends distutils command classes,
;; we can't easily make setup.py use setuptools.
#:use-setuptools? #f
#:phases
(alist-cons-before
'build 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(python (assoc-ref inputs "python")))
(define (which* cmd)
(cond ((string=? cmd "ping")
"/run/setuid-programs/ping")
((which cmd)
=> identity)
(else
(format (current-error-port)
"WARNING: Unable to find absolute path for ~s~%"
cmd)
#f)))
(substitute* "setup.py"
;; The handling of unrecognized distros in setup.py is
;; broken. Work around the problem.
(("\\('init=', " all)
(string-append "#" all))
;; Inhibit attempts to install in /var or /etc.
(("\\(wpath\\.(log|etc|networks|.*scripts), " all)
(string-append "#" all)))
;; Patch references to subprograms with absolute pathnames.
(substitute* "wicd/wnettools.py"
(("(misc\\.Run\\(\\[?[\"'])([^\"' ]*)" all pre cmd)
(string-append pre (which* cmd)))
(("(self\\._find_program_path|misc\\.find_path)\\([\"']([^\"']*)[\"']\\)"
all dummy cmd)
(let ((pathname (which* cmd)))
(if pathname
(string-append "'" pathname "'")
"None")))
(("([\"'])(ifconfig|route|wpa_cli|wpa_supplicant|iwconfig|iwpriv|iwlist|ping)"
all open-quote cmd)
(string-append open-quote (which* cmd))))
;; setup.py cannot cope without LANG
(setenv "LANG" "C")
(let ((params
(list
(string-append "--python=" python "/bin/python")
"--no-install-init"
"--no-install-docs"
"--no-install-acpi"
"--no-install-pmutils"
"--no-install-kde"
"--no-install-gnome-shell-extensions"
"--distro=guixsd"
"--wicdgroup=netdev"
"--loggroup=root"
"--logperms=0640"
;; XXX setup.py configure asks us to pass --init=,
;; but if we do it says "no such option 'init'".
;; (string-append "--init=" out "/etc/init.d")
(string-append "--initfile=" out "/etc/init.d/wicd")
(string-append "--lib=" out "/lib/wicd")
(string-append "--share=" out "/share/wicd")
"--etc=/etc/wicd"
"--scripts=/etc/wicd/scripts"
"--pmutils=/etc/pm-utils/sleep.d"
(string-append "--encryption="
out "/etc/encryption/templates")
(string-append "--bin=" out "/bin")
(string-append "--sbin=" out "/sbin")
(string-append "--daemon=" out "/share/wicd/daemon")
(string-append "--backends=" out "/share/wicd/backends")
(string-append "--curses=" out "/share/wicd/curses")
(string-append "--gtk=" out "/share/wicd/gtk")
(string-append "--cli=" out "/share/wicd/cli")
(string-append "--gnome-shell-extensions="
out "/share/gnome-shell-extensions")
(string-append "--icons=" out "/share/icons/hicolor")
(string-append "--pixmaps=" out "/share/pixmaps")
(string-append "--images=" out "/share/icons")
(string-append "--dbus=" out "/etc/dbus-1/system.d")
(string-append "--dbus-service="
out "/share/dbus-1/system-services")
(string-append "--systemd=" out "/lib/systemd/system")
(string-append "--logrotate=" out "/etc/logrotate.d")
(string-append "--desktop=" out "/share/applications")
(string-append "--translations=" out "/share/locale")
(string-append "--autostart=" out "/etc/xdg/autostart")
(string-append "--docdir=" out "/share/doc/wicd")
(string-append "--mandir=" out "/share/man")
(string-append "--kdedir=" out "/share/autostart"))))
(format #t
"running ~s with command ~s and parameters ~s~%"
"python setup.py" "configure" params)
(zero? (apply system* "python" "setup.py" "configure" params)))))
(alist-cons-after
'install 'post-install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
;; wicd's installer tries to put dhclient.conf.template.default
;; in /etc/wicd/other, which is not available in the build
;; environment, so here we install it manually in the output
;; directory.
(let ((dest-dir (string-append out "/etc/wicd"))
(name "dhclient.conf.template.default"))
(install-file (string-append "other/" name) dest-dir))
;; Copy index.theme from hicolor-icon-theme. This is needed to
;; allow wicd-gtk to find its icons.
(let ((hicolor (assoc-ref inputs "hicolor-icon-theme"))
(name "/share/icons/hicolor/index.theme"))
(install-file (string-append hicolor name)
(string-append out "/share/icons/hicolor")))
#t))
%standard-phases))))
(synopsis "Network connection manager")
(description "Wicd is a network manager that aims to simplify wired and
wireless networking.")
(home-page "https://launchpad.net/wicd")
(license gpl2+)))