;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Ricardo Wurmus ;;; Copyright © 2015, 2016 Ludovic Courtès ;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2016 Danny Milosavljevic ;;; Copyright © 2017 Leo Famulari ;;; ;;; 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 . (define-m
aboutsummaryrefslogtreecommitdiff
blob: 2200c837ba6e82e30f5d954271c54a5bf4905885 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
;;;
;;; 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 openbox)
  #:use-module ((guix licenses) #:select (gpl2+))
  #:use-module (guix packages)
  #:use-module (guix download)
  #:use-module (guix build-system gnu)
  #:use-module (gnu packages freedesktop)
  #:use-module (gnu packages gettext)
  #:use-module (gnu packages gnome)
  #:use-module (gnu packages gtk)
  #:use-module (gnu packages image)
  #:use-module (gnu packages pkg-config)
  #:use-module (gnu packages python)
  #:use-module (gnu packages xdisorg)
  #:use-module (gnu packages xml)
  #:use-module (gnu packages xorg))

(define-public openbox
  (package
    (name "openbox")
    (version "3.6.1")
    (source (origin
              (method url-fetch)
              (uri (string-append
                    "http://openbox.org/dist/openbox/" name "-"
                    version ".tar.xz"))
              (sha256
               (base32
                "0vg2y1qddsdxkjv806mzpvmkgzliab8ll4s7zm7ma5jnriamirxb"))))
    (build-system gnu-build-system)
    (native-inputs `(("pkg-config" ,pkg-config)))
    (propagated-inputs `(("python2-pyxdg" ,python2-pyxdg)))
    (inputs `(("imlib2" ,imlib2)
              ("libxml2" ,libxml2)
              ("librsvg" ,librsvg)
              ("libsm" ,libsm)
              ("libxcursor" ,libxcursor)
              ("libxinerama" ,libxinerama)
              ("libxml2" ,libxml2)
              ("libxrandr" ,libxrandr)
              ("libxft" ,libxft)
              ("pango" ,pango)
              ("python-2" ,python-2)))
    (synopsis "Box style window manager")
    (description
     "Openbox is a highly configurable, next generation window manager with
extensive standards support.  The *box visual style is well known for its
minimalistic appearance.  Openbox uses the *box visual style, while providing
a greater number of options for theme developers than previous *box
implementations.")
    (home-page "http://openbox.org/wiki/Main_Page")
    (license gpl2+)))

(define-public obconf
  (package
    (name "obconf")
    (version "2.0.4")
    (source
     (origin
       (method url-fetch)
       (uri (string-append "http://openbox.org/dist/" name
                           "/" name "-" version ".tar.gz"))
       (sha256
        (base32
         "1fanjdmd8727kk74x5404vi8v7s4kpq48l583d12fsi4xvsfb8vi"))))
    (inputs
     `(("gtk+-2" ,gtk+-2)
       ("imlib2" ,imlib2)
       ("libglade" ,libglade)
       ("openbox" ,openbox)
       ("startup-notification" ,startup-notification)
       ("libsm" ,libsm)
       ("librsvg" ,librsvg)
       ("libxft" ,libxft)))
    (native-inputs
     `(("gettext" ,gettext-minimal)
       ("pkg-config" ,pkg-config)))
    (build-system gnu-build-system)
    (arguments
     `(#:configure-flags (list "--enable-nls")))
    (home-page "http://openbox.org/wiki/ObConf:About")
    (synopsis "Openbox configuration tool")
    (description
     "Obconf is a tool for configuring the Openbox window manager.
You can configure its appearance, themes, and much more.")
    (license gpl2+)))

;;; openbox.scm ends here
"instfilter rastertopdf rastertopdf pdf;" "instfilter pstopdf pstopdf pdf")) ;; specify location of lpstat binary (("description=\"`lpstat -l") "description=\"`../systemv/lpstat -l") ;; patch shebangs of embedded scripts (("#!/bin/sh") (string-append "#!" (which "sh"))) ;; also link mime definitions from cups-filters ;; to enable the additional filters for the test suite (("ln -s \\$root/conf/mime\\.types") (string-append "ln -s " filters "/share/cups/mime/cupsfilters.types $BASE/share/mime; " "ln -s $root/conf/mime.types")) (("ln -s \\$root/conf/mime\\.convs") (string-append "ln -s " filters "/share/cups/mime/cupsfilters.convs $BASE/share/mime; " "ln -s $root/conf/mime.convs"))) ;; fix search path for "cat" (substitute* "cups/testfile.c" (("cupsFileFind\\(\"cat\", \"/bin\"") (string-append "cupsFileFind(\"cat\", \"" catpath "\"")) (("cupsFileFind\\(\"cat\", \"/bin:/usr/bin\"") (string-append "cupsFileFind(\"cat\", \"" catpath "\"")))))) (add-after 'install 'install-cups-filters-symlinks (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) (cups-filters (assoc-ref inputs "cups-filters"))) ;; charsets (symlink (string-append cups-filters "/share/cups/charsets") (string-append out "/share/charsets")) ;; mime types, driver file, ppds (for-each (lambda (f) (symlink (string-append cups-filters f) (string-append out f))) '("/share/cups/mime/cupsfilters.types" "/share/cups/mime/cupsfilters.convs" "/share/cups/drv/cupsfilters.drv" "/share/ppd")) ;; filters (for-each (lambda (f) (symlink f (string-append out "/lib/cups/filter" (basename f)))) (find-files (string-append cups-filters "/lib/cups/filter"))) ;; backends (for-each (lambda (f) (symlink (string-append cups-filters f) (string-append out "/lib/cups/backend/" (basename f)))) '("/lib/cups/backend/parallel" "/lib/cups/backend/serial")) ;; banners (let ((banners "/share/cups/banners")) (delete-file-recursively (string-append out banners)) (symlink (string-append cups-filters banners) (string-append out banners))) ;; assorted data (let ((data "/share/cups/data")) (delete-file-recursively (string-append out data)) (symlink (string-append cups-filters data) (string-append out data))))))))) (inputs `(("avahi" ,avahi) ("gnutls" ,gnutls) ("cups-filters" ,cups-filters) ("zlib" ,zlib))))) (define-public hplip (package (name "hplip") (version "3.16.11") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/hplip/hplip/" version "/hplip-" version ".tar.gz")) (sha256 (base32 "094vkyr0rjng72m13dgr824cdl7q20x23qjxzih4w7l9njn0rqpn")))) (build-system gnu-build-system) (home-page "http://hplipopensource.com/") (synopsis "HP Printer Drivers") (description "Hewlett-Packard Printer Drivers and PPDs.") ;; The 'COPYING' file lists directories where each of these 3 licenses ;; applies. (license (list license:gpl2+ license:bsd-3 license:expat)) ;; TODO install apparmor profile files eventually. (arguments `(#:configure-flags `("--disable-network-build" ,(string-append "--prefix=" (assoc-ref %outputs "out")) ,(string-append "--sysconfdir=" (assoc-ref %outputs "out") "/etc") ;; Disable until mime.types merging works (FIXME). "--disable-fax-build" "--enable-hpcups-install" "--enable-new-hpcups" "--enable-cups_ppd_install" "--enable-cups_drv_install" ;; TODO add foomatic drv install eventually. ;; TODO --enable-policykit eventually. ,(string-append "--with-cupsfilterdir=" (assoc-ref %outputs "out") "/lib/cups/filter") ,(string-append "--with-cupsbackenddir=" (assoc-ref %outputs "out") "/lib/cups/backend") ,(string-append "--with-icondir=" (assoc-ref %outputs "out") "/share/applications") ,(string-append "--with-systraydir=" (assoc-ref %outputs "out") "/etc/xdg")) #:imported-modules ((guix build python-build-system) ,@%gnu-build-system-modules) #:modules ((guix build gnu-build-system) (guix build utils) ((guix build python-build-system) #:prefix python:)) #:phases (modify-phases %standard-phases (add-after 'unpack 'fix-hard-coded-file-names (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) ;; FIXME: use merged ppds (I think actually only ;; drvs need to be merged). (cupsdir (assoc-ref inputs "cups-minimal"))) (substitute* "base/g.py" (("'/usr/share;[^']*'") (string-append "'" cupsdir "/share'")) (("'/etc/hp/hplip.conf'") (string-append "'" out "/etc/hp/hplip.conf" "'"))) (substitute* "Makefile.in" (("[[:blank:]]check-plugin\\.py[[:blank:]]") " ") ;; FIXME Use beginning-of-word in regexp. (("[[:blank:]]plugin\\.py[[:blank:]]") " ") (("/usr/include/libusb-1.0") (string-append (assoc-ref inputs "libusb") "/include/libusb-1.0")) (("^\tinstall-dist_hplip_stateDATA") ;; Remove dependencies on ;; 'install-dist_hplip_stateDATA' so we don't bail ;; out while trying to create /var/lib/hplip. "\t") (("hplip_confdir = /etc/hp") ;; This is only used for installing the default config. (string-append "hplip_confdir = " out "/etc/hp")) (("halpredir = /usr/share/hal/fdi/preprobe/10osvendor") ;; Note: We don't use hal. (string-append "halpredir = " out "/share/hal/fdi/preprobe/10osvendor")) (("rulesdir = /etc/udev/rules.d") ;; udev rules will be merged by base service. (string-append "rulesdir = " out "/lib/udev/rules.d")) (("rulessystemdir = /usr/lib/systemd/system") ;; We don't use systemd. (string-append "rulessystemdir = " out "/lib/systemd/system")) (("/etc/sane.d") (string-append out "/etc/sane.d")))))) ;; Wrap bin/* so that the Python libs are found. (add-after 'install 'wrap-binaries (assoc-ref python:%standard-phases 'wrap))))) ;; Python3 support is available starting from hplip@3.15.2. (inputs `(("libjpeg" ,libjpeg) ("cups-minimal" ,cups-minimal) ("libusb" ,libusb) ("sane-backends" ,sane-backends-minimal) ("dbus" ,dbus) ("python-wrapper" ,python-wrapper) ("python" ,python) ;; TODO: Make hp-setup find python-dbus. ("python-dbus" ,python-dbus))) (native-inputs `(("pkg-config" ,pkg-config)))))