;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016 Kei Yamashita <kei@openmailbox.org>
+;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (guix packages)
#:use-module (guix build-system gnu)
#:use-module (guix licenses)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages base)
#:use-module (gnu packages xorg)
+ #:use-module (gnu packages libffcall)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gtk)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages glib)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages image)
- #:use-module (gnu packages pkg-config))
+ #:use-module (gnu packages pkg-config)
+ #:use-module (gnu packages xml)
+ #:use-module (ice-9 match))
+
+(define-public gnustep-make
+ (package
+ (name "gnustep-make")
+ (version "2.7.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "ftp://ftp.gnustep.org/pub/gnustep/core/"
+ name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1khiygfkz0zhh9b5nybn40g0xnnjxchk24n49hff1bwanszir84h"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f)) ; no check target
+ (native-inputs
+ `(("which" ,which)))
+ (home-page "http://gnustep.org")
+ (synopsis "GNUstep make package")
+ (description "The makefile package is a simple, powerful and extensible way
+to write makefiles for a GNUstep-based project. It allows the user to write a
+project without having to deal with the complex issues associated with
+configuration, building, installation, and packaging. It also allows the user
+to easily create cross-compiled binaries.")
+ (license gpl3+)))
(define-public windowmaker
(package
(name "windowmaker")
- (version "0.95.6")
+ (version "0.95.9")
+ (synopsis "NeXTSTEP-like window manager")
(source (origin
(method url-fetch)
(uri (string-append
- "http://windowmaker.org/pub/source/release/WindowMaker-"
- version ".tar.gz"))
+ "https://github.com/window-maker/wmaker/releases/download/"
+ "wmaker-" version "/WindowMaker-" version ".tar.gz"))
(sha256
(base32
- "1i3dw1yagsa3rs9x2na2ynqlgmbahayws0kz4vl00fla6550nns3"))))
+ "055pqvlkhipyjn7m6bb3fs4zz9rd1ynzl0mmwbhp05ihc3zmh8zj"))))
(build-system gnu-build-system)
(arguments
- '(#:phases (alist-cons-before
- 'configure 'pre-configure
- (lambda* (#:key outputs #:allow-other-keys)
- ;; 'wmaker' wants to invoke 'wmaker.inst' the first time,
- ;; and the 'wmsetbg', so make sure it uses the right ones.
- ;; We can't use a wrapper here because that would pollute
- ;; $PATH in the whole session.
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin")))
- (substitute* "src/main.c"
- (("\"wmaker\\.inst")
- (string-append "\"" bin "/wmaker.inst")))
- (substitute* '("src/defaults.c" "WPrefs.app/Menu.c")
- (("\"wmsetbg")
- (string-append "\"" bin "/wmsetbg")))))
- (alist-cons-after
- 'install 'wrap
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin")))
- ;; In turn, 'wmaker.inst' wants to invoke 'wmmenugen'
- ;; etc., so make sure everything is in $PATH.
- (wrap-program (string-append bin "/wmaker.inst")
- `("PATH" ":" prefix (,bin)))))
- %standard-phases))))
+ `(#:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (ice-9 match))
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'pre-configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; 'wmaker' wants to invoke 'wmaker.inst' the first time,
+ ;; and the 'wmsetbg', so make sure it uses the right ones.
+ ;; We can't use a wrapper here because that would pollute
+ ;; $PATH in the whole session.
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (substitute* "src/main.c"
+ (("\"wmaker\\.inst")
+ (string-append "\"" bin "/wmaker.inst")))
+ (substitute* '("src/defaults.c" "WPrefs.app/Menu.c")
+ (("\"wmsetbg")
+ (string-append "\"" bin "/wmsetbg")))
+ ;; Add enough cells to the command character array to
+ ;; allow passing our large path to the wmsetbg binary.
+ ;; The path to wmsetbg in Guix requires 67 extra characters.
+ (substitute* "src/defaults.c"
+ (("len = strlen\\(text\\) \\+ 40;")
+ (string-append "len = strlen(text) + 107;")))
+ #t)))
+ (add-after 'install 'install-xsession
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (xsessions (string-append out "/share/xsessions")))
+ (mkdir-p xsessions)
+ (call-with-output-file
+ (string-append xsessions "/windowmaker.desktop")
+ (lambda (port)
+ (format port "~
+ [Desktop Entry]~@
+ Name=Window Maker~@
+ Comment=~a~@
+ Exec=~a/bin/wmaker~@
+ Type=Application~%"
+ (string-map (match-lambda
+ (#\newline #\space)
+ (chr chr))
+ ,synopsis) out))))
+ #t))
+ (add-after 'install-xsession 'wrap
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ ;; In turn, 'wmaker.inst' wants to invoke 'wmmenugen'
+ ;; etc., so make sure everything is in $PATH.
+ (wrap-program (string-append bin "/wmaker.inst")
+ `("PATH" ":" prefix (,bin)))
+ #t))))))
(inputs
`(("libxmu" ,libxmu)
("libxft" ,libxft)
("libx11" ,libx11)
+ ("libxinerama" ,libxinerama)
("fontconfig" ,fontconfig)
- ("libjpeg" ,libjpeg)))
+ ("libjpeg" ,libjpeg-turbo)
+ ("giflib" ,giflib)
+ ("libpng" ,libpng)
+ ("libtiff" ,libtiff)))
(native-inputs
`(("pkg-config" ,pkg-config)))
- (home-page "http://windowmaker.org/")
- (synopsis "NeXTSTEP-like window manager")
+ (home-page "https://windowmaker.org/")
(description
"Window Maker is an X11 window manager originally designed to provide
integration support for the GNUstep Desktop Environment. In every way
(define-public wmbattery
(package
(name "wmbattery")
- (version "2.50")
+ (version "2.54")
(source (origin
(method url-fetch)
(uri (string-append
version ".orig.tar.gz"))
(sha256
(base32
- "0hi6bivv3xd2k68w08krndfl68wdx7nmc2wjzsmcd4q3qgwgyk44"))))
+ "1r4n58mwkm69y1pjs7l64hg8r1lpndrzyrfl2rdgd4zi6v0jhyyw"))))
(build-system gnu-build-system)
- (arguments
- `(#:tests? #f ; no "check" target
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'autoconf
- (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
+ (arguments '(#:tests? #f)) ; no "check" target
(inputs
`(("glib" ,glib)
("libx11" ,libx11)
("libxpm" ,libxpm)
("upower" ,upower)))
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("pkg-config" ,pkg-config)))
- (home-page "http://windowmaker.org/dockapps/?name=wmbattery")
+ `(("pkg-config" ,pkg-config)))
+ (home-page "https://www.dockapps.net/wmbattery")
(synopsis "Display laptop battery info")
(description
"Wmbattery displays the status of your laptop's battery in a small icon.
(define-public wmnd
(package
(name "wmnd")
- (version "0.4.17")
+ (version "0.4.18")
(source (origin
(method url-fetch)
(uri (string-append
name "-" version ".tar.gz"))
(sha256
(base32
- "1amkbiwgr31gwkcp7wrjsr7aj1kns8bpmjpv70n86wb8v9mpm828"))))
+ "01s37d8cfpncza1mlw13ar4rcwbrc1vgaj3ifhglmlcnzvvayg0n"))))
(build-system gnu-build-system)
(inputs
`(("libx11" ,libx11)
(define-public wmcpuload
(package
(name "wmcpuload")
- (version "1.0.1")
+ (version "1.1.1")
(source (origin
(method url-fetch)
(uri (string-append
name "_" version ".orig.tar.gz"))
(sha256
(base32
- "0irlns4cvxy2mnicx75bya166hdxq7h8bphds3ligijcl9fzgs6n"))))
+ "1334y0axnxydwv05d172f405iljrfakg4kcyg9kmn46v6ywv424g"))))
(build-system gnu-build-system)
(inputs
`(("libx11" ,libx11)
("libxpm" ,libxpm)))
(native-inputs
`(("pkg-config" ,pkg-config)))
- (home-page "http://windowmaker.org/dockapps/?name=wmcpuload")
+ (home-page "https://www.dockapps.net/wmcpuload")
(synopsis "Monitor CPU usage")
(description
"Wmcpuload displays the current CPU usage, expressed as a percentile and a
(base32
"1lx276ba8r2yydhmwj1g586jdqg695ad89ng36fr3mb067gvb2rz"))))
(build-system gnu-build-system)
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'autoconf
- (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
- ;; wmclock requires autoreconf to generate its configure script.
(inputs
`(("libx11" ,libx11)
("libxext" ,libxext)
("libxpm" ,libxpm)))
+ ;; wmclock requires autoreconf to generate its configure script.
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("pkg-config" ,pkg-config)))
- (home-page "http://windowmaker.org/dockapps/?name=wmclock")
+ (home-page "https://www.dockapps.net/wmclock")
(synopsis "Display the date and time")
(description
"wmclock is an applet for Window Maker which displays the date and time in
name "/" name "-" version ".tar.gz"))
(sha256
(base32
- "101grahd80n97y2dczb629clmcgiavdpbbwy78kk5wgs362m12z3"))))
+ "101grahd80n97y2dczb629clmcgiavdpbbwy78kk5wgs362m12z3"))
+ (patches
+ (search-patches "wmfire-update-for-new-gdk-versions.patch"))))
(build-system gnu-build-system)
(inputs
`(("gtk+" ,gtk+-2)
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://www.improbability.net/")
- (synopsis "Display flames to represent CPU usage, memory usage, etc.")
+ (synopsis "Display flames to represent resource usage")
(description
"wmfire is an applet for Window Maker that can monitor the average cpu
load, or individual cpu load on SMP computers. Additionally it can monitor the