gnu: wmbattery: Update to 2.51.
[jackhill/guix/guix.git] / gnu / packages / gnustep.scm
CommitLineData
d7a9ed37
LC
1;;; GNU Guix --- Functional package management for GNU
2;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
3c8ba11a 3;;; Copyright © 2016, 2017 Kei Kebreau <kkebreau@posteo.net>
93710d86 4;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
d7a9ed37
LC
5;;;
6;;; This file is part of GNU Guix.
7;;;
8;;; GNU Guix is free software; you can redistribute it and/or modify it
9;;; under the terms of the GNU General Public License as published by
10;;; the Free Software Foundation; either version 3 of the License, or (at
11;;; your option) any later version.
12;;;
13;;; GNU Guix is distributed in the hope that it will be useful, but
14;;; WITHOUT ANY WARRANTY; without even the implied warranty of
15;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16;;; GNU General Public License for more details.
17;;;
18;;; You should have received a copy of the GNU General Public License
19;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20
21(define-module (gnu packages gnustep)
22 #:use-module (guix download)
23 #:use-module (guix packages)
24 #:use-module (guix build-system gnu)
25 #:use-module (guix licenses)
0611abff 26 #:use-module (gnu packages)
4d8fd825 27 #:use-module (gnu packages base)
d7a9ed37 28 #:use-module (gnu packages xorg)
4d8fd825 29 #:use-module (gnu packages libffcall)
f9ab1da0 30 #:use-module (gnu packages gnome)
9c6b7ef5 31 #:use-module (gnu packages gtk)
f9ab1da0
KY
32 #:use-module (gnu packages texinfo)
33 #:use-module (gnu packages autotools)
34 #:use-module (gnu packages glib)
d7a9ed37 35 #:use-module (gnu packages fontutils)
e55354b8 36 #:use-module (gnu packages image)
4d8fd825 37 #:use-module (gnu packages pkg-config)
537fe456
KK
38 #:use-module (gnu packages xml)
39 #:use-module (ice-9 match))
4d8fd825
KK
40
41(define-public gnustep-make
42 (package
43 (name "gnustep-make")
44 (version "2.7.0")
45 (source (origin
46 (method url-fetch)
47 (uri (string-append "ftp://ftp.gnustep.org/pub/gnustep/core/"
48 name "-" version ".tar.gz"))
49 (sha256
50 (base32
51 "1khiygfkz0zhh9b5nybn40g0xnnjxchk24n49hff1bwanszir84h"))))
52 (build-system gnu-build-system)
53 (arguments
54 '(#:tests? #f)) ; no check target
55 (native-inputs
56 `(("which" ,which)))
57 (home-page "http://gnustep.org")
58 (synopsis "GNUstep make package")
59 (description "The makefile package is a simple, powerful and extensible way
60to write makefiles for a GNUstep-based project. It allows the user to write a
61project without having to deal with the complex issues associated with
62configuration, building, installation, and packaging. It also allows the user
63to easily create cross-compiled binaries.")
64 (license gpl3+)))
d7a9ed37
LC
65
66(define-public windowmaker
67 (package
68 (name "windowmaker")
8cac5bca 69 (version "0.95.8")
537fe456 70 (synopsis "NeXTSTEP-like window manager")
d7a9ed37
LC
71 (source (origin
72 (method url-fetch)
73 (uri (string-append
74 "http://windowmaker.org/pub/source/release/WindowMaker-"
75 version ".tar.gz"))
76 (sha256
77 (base32
8cac5bca 78 "12p8kljqgx5hnic0zvs5mxwp7kg21sb6qjagb2qw8ydvf5amrgwx"))))
d7a9ed37
LC
79 (build-system gnu-build-system)
80 (arguments
537fe456
KK
81 `(#:modules ((guix build gnu-build-system)
82 (guix build utils)
83 (ice-9 match))
84 #:phases
962cbb24
LF
85 (modify-phases %standard-phases
86 (add-before 'configure 'pre-configure
87 (lambda* (#:key outputs #:allow-other-keys)
88 ;; 'wmaker' wants to invoke 'wmaker.inst' the first time,
89 ;; and the 'wmsetbg', so make sure it uses the right ones.
90 ;; We can't use a wrapper here because that would pollute
91 ;; $PATH in the whole session.
92 (let* ((out (assoc-ref outputs "out"))
93 (bin (string-append out "/bin")))
94 (substitute* "src/main.c"
95 (("\"wmaker\\.inst")
96 (string-append "\"" bin "/wmaker.inst")))
97 (substitute* '("src/defaults.c" "WPrefs.app/Menu.c")
98 (("\"wmsetbg")
99 (string-append "\"" bin "/wmsetbg")))
100 ;; Add enough cells to the command character array to
101 ;; allow passing our large path to the wmsetbg binary.
102 ;; The path to wmsetbg in Guix requires 67 extra characters.
103 (substitute* "src/defaults.c"
104 (("len = strlen\\(text\\) \\+ 40;")
105 (string-append "len = strlen(text) + 107;"))))))
537fe456
KK
106 (add-after 'install 'install-xsession
107 (lambda* (#:key outputs #:allow-other-keys)
108 (let* ((out (assoc-ref outputs "out"))
109 (xsessions (string-append out "/share/xsessions")))
110 (mkdir-p xsessions)
111 (call-with-output-file
112 (string-append xsessions "/windowmaker.desktop")
113 (lambda (port)
114 (format port "~
115 [Desktop Entry]~@
116 Name=Window Maker~@
117 Comment=~a~@
118 Exec=~a/bin/wmaker~@
119 Type=Application~%"
120 (string-map (match-lambda
121 (#\newline #\space)
122 (chr chr))
123 ,synopsis) %output))))
124 #t))
125 (add-after 'install-xsession 'wrap
962cbb24
LF
126 (lambda* (#:key outputs #:allow-other-keys)
127 (let* ((out (assoc-ref outputs "out"))
128 (bin (string-append out "/bin")))
129 ;; In turn, 'wmaker.inst' wants to invoke 'wmmenugen'
130 ;; etc., so make sure everything is in $PATH.
131 (wrap-program (string-append bin "/wmaker.inst")
537fe456 132 `("PATH" ":" prefix (,bin)))))))))
d7a9ed37
LC
133 (inputs
134 `(("libxmu" ,libxmu)
135 ("libxft" ,libxft)
136 ("libx11" ,libx11)
84958de1 137 ("libxinerama" ,libxinerama)
d7a9ed37 138 ("fontconfig" ,fontconfig)
233fbb61
KK
139 ("libjpeg" ,libjpeg)
140 ("giflib" ,giflib)
141 ("libpng" ,libpng)
142 ("libtiff" ,libtiff)))
d7a9ed37
LC
143 (native-inputs
144 `(("pkg-config" ,pkg-config)))
145 (home-page "http://windowmaker.org/")
d7a9ed37
LC
146 (description
147 "Window Maker is an X11 window manager originally designed to provide
148integration support for the GNUstep Desktop Environment. In every way
149possible, it reproduces the elegant look and feel of the NeXTSTEP user
150interface. It is fast, feature rich, easy to configure, and easy to use.")
151
152 ;; Artwork is distributed under the WTFPL.
153 (license gpl2+)))
f9ab1da0
KY
154
155(define-public wmbattery
156 (package
157 (name "wmbattery")
93710d86 158 (version "2.51")
f9ab1da0
KY
159 (source (origin
160 (method url-fetch)
161 (uri (string-append
162 "mirror://debian/pool/main/w/wmbattery/wmbattery_"
163 version ".orig.tar.gz"))
164 (sha256
165 (base32
93710d86 166 "084a3irxbmgms4bqaga80mlx9wgvlkx6d2w0ns939yrpfzg87laj"))))
f9ab1da0
KY
167 (build-system gnu-build-system)
168 (arguments
169 `(#:tests? #f ; no "check" target
170 #:phases
171 (modify-phases %standard-phases
172 (add-after 'unpack 'autoconf
173 (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
174 (inputs
175 `(("glib" ,glib)
176 ("libx11" ,libx11)
177 ("libxext" ,libxext)
178 ("libxpm" ,libxpm)
179 ("upower" ,upower)))
180 (native-inputs
181 `(("autoconf" ,autoconf)
182 ("automake" ,automake)
183 ("pkg-config" ,pkg-config)))
184 (home-page "http://windowmaker.org/dockapps/?name=wmbattery")
185 (synopsis "Display laptop battery info")
186 (description
187 "Wmbattery displays the status of your laptop's battery in a small icon.
188This includes if it is plugged in, if the battery is charging, how many minutes
189of battery life remain, battery life remaining (with both a percentage and a
190graph), and battery status (high - green, low - yellow, or critical - red).")
191 (license gpl2)))
192
7407f7fe
KY
193(define-public wmnd
194 (package
195 (name "wmnd")
196 (version "0.4.17")
197 (source (origin
198 (method url-fetch)
199 (uri (string-append
200 "http://www.thregr.org/~wavexx/software/wmnd/releases/"
201 name "-" version ".tar.gz"))
202 (sha256
203 (base32
204 "1amkbiwgr31gwkcp7wrjsr7aj1kns8bpmjpv70n86wb8v9mpm828"))))
205 (build-system gnu-build-system)
206 (inputs
207 `(("libx11" ,libx11)
208 ("libxext" ,libxext)
209 ("libxpm" ,libxpm)))
210 (native-inputs
211 `(("pkg-config" ,pkg-config)))
212 (home-page "http://www.thregr.org/~wavexx/software/wmnd/")
213 (synopsis "Network interface monitor")
214 (description
215 "WMND is a dockapp for monitoring network interfaces under WindowMaker and
216other compatible window managers.")
217 (license gpl2+)))
bd688698
KY
218
219(define-public wmcpuload
220 (package
221 (name "wmcpuload")
222 (version "1.0.1")
223 (source (origin
224 (method url-fetch)
225 (uri (string-append
226 "mirror://debian/pool/main/w/wmcpuload/"
227 name "_" version ".orig.tar.gz"))
228 (sha256
229 (base32
230 "0irlns4cvxy2mnicx75bya166hdxq7h8bphds3ligijcl9fzgs6n"))))
231 (build-system gnu-build-system)
232 (inputs
233 `(("libx11" ,libx11)
234 ("libxext" ,libxext)
235 ("libxpm" ,libxpm)))
236 (native-inputs
237 `(("pkg-config" ,pkg-config)))
238 (home-page "http://windowmaker.org/dockapps/?name=wmcpuload")
239 (synopsis "Monitor CPU usage")
240 (description
241 "Wmcpuload displays the current CPU usage, expressed as a percentile and a
242chart, and has an LCD look-alike user interface. The back-light may be turned
243on and off by clicking the mouse button over the application. If the CPU usage
244hits a certain threshold, an alarm-mode will alert you by turning back-light
245on.")
246 (license gpl2+)))
2331e5e8
KY
247
248(define-public wmclock
249 (package
250 (name "wmclock")
251 (version "1.0.16")
252 (source (origin
253 (method url-fetch)
254 (uri (string-append
255 "mirror://debian/pool/main/w/wmclock/"
256 name "_" version ".orig.tar.gz"))
257 (sha256
258 (base32
259 "1lx276ba8r2yydhmwj1g586jdqg695ad89ng36fr3mb067gvb2rz"))))
260 (build-system gnu-build-system)
261 (arguments
262 `(#:phases
263 (modify-phases %standard-phases
264 (add-after 'unpack 'autoconf
265 (lambda _ (zero? (system* "autoreconf" "-vfi")))))))
266 ;; wmclock requires autoreconf to generate its configure script.
267 (inputs
268 `(("libx11" ,libx11)
269 ("libxext" ,libxext)
270 ("libxpm" ,libxpm)))
271 (native-inputs
272 `(("autoconf" ,autoconf)
273 ("automake" ,automake)
274 ("pkg-config" ,pkg-config)))
275 (home-page "http://windowmaker.org/dockapps/?name=wmclock")
276 (synopsis "Display the date and time")
277 (description
278 "wmclock is an applet for Window Maker which displays the date and time in
279a dockable tile. It features multiple language support, 24h or 12h time
280display, and can run a user-specified program on mouse click.")
281 (license gpl2+)))
9c6b7ef5
KY
282
283(define-public wmfire
284 (package
285 (name "wmfire")
286 (version "1.2.4")
287 (source (origin
288 (method url-fetch)
289 (uri (string-append "http://www.improbability.net/"
290 name "/" name "-" version ".tar.gz"))
291 (sha256
292 (base32
0611abff
KK
293 "101grahd80n97y2dczb629clmcgiavdpbbwy78kk5wgs362m12z3"))
294 (patches
295 (search-patches "wmfire-update-for-new-gdk-versions.patch"))))
9c6b7ef5
KY
296 (build-system gnu-build-system)
297 (inputs
298 `(("gtk+" ,gtk+-2)
299 ("libgtop" ,libgtop)))
300 (native-inputs
301 `(("pkg-config" ,pkg-config)))
302 (home-page "http://www.improbability.net/")
66e07664 303 (synopsis "Display flames to represent resource usage")
9c6b7ef5
KY
304 (description
305 "wmfire is an applet for Window Maker that can monitor the average cpu
306load, or individual cpu load on SMP computers. Additionally it can monitor the
307memory, network load, a file or just be set to show a pretty flame. On
308entering the dock a burning spot replaces the cursor, and after two seconds
309symbols to represent the current monitor are \"burnt\" onscreen. The flame
310colour can also be changed.")
311 (license gpl2+)))