Commit | Line | Data |
---|---|---|
233e7676 LC |
1 | ;;; GNU Guix --- Functional package management for GNU |
2 | ;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org> | |
b1821214 | 3 | ;;; Copyright © 2013, 2017, 2020, 2021 Ludovic Courtès <ludo@gnu.org> |
33dc54b0 | 4 | ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> |
08d81afa | 5 | ;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2021 Efraim Flashner <efraim@flashner.co.il> |
33dc54b0 RW |
6 | ;;; Copyright © 2015, 2017 Leo Famulari <leo@famulari.name> |
7 | ;;; Copyright © 2015, 2017 Cyril Roelandt <tipecaml@gmail.com> | |
8 | ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com> | |
9 | ;;; Copyright © 2016 Hartmut Goebel <h.goebel@crazy-compilers.com> | |
10 | ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org> | |
463e9835 | 11 | ;;; Copyright © 2016, 2020 Marius Bakke <mbakke@fastmail.com> |
626bc647 | 12 | ;;; Copyright © 2016, 2017, 2018, 2020 Tobias Geerinckx-Rice <me@tobias.gr> |
5d20e1ec | 13 | ;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com> |
3c986a7d | 14 | ;;; Copyright © 2017 Nikita <nikita@n0.is> |
33dc54b0 | 15 | ;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu> |
f8460d26 | 16 | ;;; Copyright © 2018 Alex Vong <alexvong1995@gmail.com> |
3ef29c00 | 17 | ;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com> |
0d5b7ea1 | 18 | ;;; Copyright © 2019 Pierre Langlois <pierre.langlois@gmx.com> |
0ab3a8c2 | 19 | ;;; Copyright © 2020 Lars-Dominik Braun <ldb@leibniz-psychology.org> |
e86ed845 | 20 | ;;; Copyright © 2020 Tanguy Le Carrour <tanguy@bioneland.org> |
efe7a174 | 21 | ;;; Copyright © 2021 Ryan Prior <rprior@protonmail.com> |
f4fc8546 | 22 | ;;; Copyright © 2021 Foo Chuan Wei <chuanwei.foo@hotmail.com> |
ce9363dd | 23 | ;;; Copyright © 2022 Pradana AUMARS <paumars@courrier.dev> |
b147f59f | 24 | ;;; |
233e7676 | 25 | ;;; This file is part of GNU Guix. |
b147f59f | 26 | ;;; |
233e7676 | 27 | ;;; GNU Guix is free software; you can redistribute it and/or modify it |
b147f59f NK |
28 | ;;; under the terms of the GNU General Public License as published by |
29 | ;;; the Free Software Foundation; either version 3 of the License, or (at | |
30 | ;;; your option) any later version. | |
31 | ;;; | |
233e7676 | 32 | ;;; GNU Guix is distributed in the hope that it will be useful, but |
b147f59f NK |
33 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of |
34 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
35 | ;;; GNU General Public License for more details. | |
36 | ;;; | |
37 | ;;; You should have received a copy of the GNU General Public License | |
233e7676 | 38 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. |
b147f59f | 39 | |
1ffa7090 | 40 | (define-module (gnu packages time) |
ac257f12 | 41 | #:use-module (gnu packages check) |
33dc54b0 | 42 | #:use-module (gnu packages compression) |
efe7a174 | 43 | #:use-module (gnu packages golang) |
3ef29c00 | 44 | #:use-module (gnu packages perl) |
44d10b1f | 45 | #:use-module (gnu packages python) |
ed210c1b | 46 | #:use-module (gnu packages python-build) |
efe7a174 RPG |
47 | #:use-module (gnu packages python-xyz) |
48 | #:use-module (gnu packages terminals) | |
49 | #:use-module (gnu packages textutils) | |
50 | #:use-module (gnu packages) | |
51 | #:use-module (guix build-system gnu) | |
52 | #:use-module (guix build-system go) | |
53 | #:use-module (guix build-system python) | |
54 | #:use-module (guix download) | |
55 | #:use-module (guix git-download) | |
56 | #:use-module (guix licenses) | |
57 | #:use-module (guix packages)) | |
b147f59f NK |
58 | |
59 | (define-public time | |
60 | (package | |
61 | (name "time") | |
64f925cb | 62 | (version "1.9") |
b147f59f NK |
63 | (source |
64 | (origin | |
65 | (method url-fetch) | |
66 | (uri (string-append "mirror://gnu/time/time-" | |
67 | version ".tar.gz")) | |
68 | (sha256 | |
69 | (base32 | |
64f925cb | 70 | "07jj7cz6lc13iqrpgn81ivqh8rkm73p4rnivwgrrshk23v4g1b7v")))) |
b147f59f | 71 | (build-system gnu-build-system) |
6fd52309 | 72 | (home-page "https://www.gnu.org/software/time/") |
f50d2669 | 73 | (synopsis "Run a command, then display its resource usage") |
b147f59f | 74 | (description |
a22dc0c4 LC |
75 | "Time is a command that displays information about the resources that a |
76 | program uses. The display output of the program can be customized or saved | |
77 | to a file.") | |
c8b38f8e | 78 | (license gpl3+))) |
5d20e1ec | 79 | |
0d5b7ea1 PL |
80 | (define-public python-pytimeparse |
81 | (package | |
82 | (name "python-pytimeparse") | |
83 | (version "1.1.8") | |
84 | (source | |
85 | (origin | |
86 | (method url-fetch) | |
87 | (uri (pypi-uri "pytimeparse" version)) | |
88 | (sha256 | |
89 | (base32 | |
90 | "02kaambsgpjx3zi42j6l11rwms2p35b9hsk4f3kdf979gd3kcqg8")))) | |
91 | (native-inputs | |
8394619b | 92 | (list python-nose)) |
0d5b7ea1 PL |
93 | (build-system python-build-system) |
94 | (home-page "https://github.com/wroberts/pytimeparse") | |
95 | (synopsis "Time expression parser") | |
96 | (description "This small Python module parses various kinds of time | |
97 | expressions.") | |
98 | (license expat))) | |
99 | ||
5d20e1ec BW |
100 | (define-public python-pytzdata |
101 | (package | |
102 | (name "python-pytzdata") | |
b05edb8c | 103 | (version "2020.1") |
5d20e1ec BW |
104 | (source |
105 | (origin | |
106 | (method url-fetch) | |
107 | (uri (pypi-uri "pytzdata" version)) | |
108 | (sha256 | |
109 | (base32 | |
b05edb8c | 110 | "0h0md0ldhb8ghlwjslkzh3wcj4fxg3n43bj5sghqs2m06nri7yiy")))) |
5d20e1ec | 111 | (build-system python-build-system) |
463e9835 MB |
112 | ;; XXX: The PyPI distribution contains no tests, and the upstream |
113 | ;; repository lacks a setup.py! How to build from git? | |
114 | (arguments '(#:tests? #f)) | |
115 | (propagated-inputs | |
8394619b | 116 | (list python-cleo)) |
5d20e1ec BW |
117 | (home-page "https://github.com/sdispater/pytzdata") |
118 | (synopsis "Timezone database for Python") | |
119 | (description | |
120 | "This library provides a timezone database for Python.") | |
121 | (license expat))) | |
122 | ||
33dc54b0 RW |
123 | (define-public python-pytz |
124 | (package | |
125 | (name "python-pytz") | |
e8337f1e | 126 | ;; This package should be kept in sync with tzdata in (gnu packages base). |
466e12c1 | 127 | (version "2022.1") |
33dc54b0 RW |
128 | (source |
129 | (origin | |
130 | (method url-fetch) | |
4c97f959 | 131 | (uri (pypi-uri "pytz" version)) |
33dc54b0 RW |
132 | (sha256 |
133 | (base32 | |
466e12c1 | 134 | "19ya5sh7if819flgmszz585glailhi7rr8frng03n5m8wqphwxhy")))) |
33dc54b0 | 135 | (build-system python-build-system) |
33dc54b0 RW |
136 | (home-page "http://pythonhosted.org/pytz") |
137 | (synopsis "Python timezone library") | |
138 | (description "This library brings the Olson tz database into Python. It | |
139 | allows accurate and cross platform timezone calculations using Python 2.4 or | |
140 | higher. It also solves the issue of ambiguous times at the end of daylight | |
141 | saving time. Almost all of the Olson timezones are supported.") | |
142 | (license expat))) | |
143 | ||
89c3eaaa BW |
144 | (define-public python-pendulum |
145 | (package | |
146 | (name "python-pendulum") | |
5e7fa528 | 147 | (version "2.1.2") |
89c3eaaa BW |
148 | (source |
149 | (origin | |
150 | (method url-fetch) | |
151 | (uri (pypi-uri "pendulum" version)) | |
152 | (sha256 | |
5e7fa528 | 153 | (base32 "01zjc245w08j0xryrgrq9vng59q1cl5ry0hcpw5rj774pyhhqsmh")))) |
89c3eaaa | 154 | (build-system python-build-system) |
e5023bfd MB |
155 | ;; XXX: The PyPI distribution lacks tests, and the upstream repository |
156 | ;; lacks a setup.py! | |
f4fc8546 FCW |
157 | (arguments |
158 | `(#:phases | |
159 | (modify-phases %standard-phases | |
160 | ;; Add setup.py to fix the build. Otherwise, the build will fail with | |
161 | ;; "no setup.py found". | |
162 | ;; | |
163 | ;; Upstream uses Poetry to build python-pendulum, including parts | |
164 | ;; written in C. Here, we simply add a setup.py file and do not build | |
165 | ;; the parts written in C. This is possible because python-pendulum | |
166 | ;; falls back on pure Python code when the C parts are not available | |
167 | ;; (reference: build.py). | |
168 | (add-after 'unpack 'add-setup.py | |
169 | (lambda _ | |
170 | (call-with-output-file "setup.py" | |
171 | (lambda (port) | |
172 | (format port | |
173 | "from setuptools import find_packages, setup | |
174 | setup(name='pendulum', | |
175 | version='~a', | |
176 | packages=find_packages()) | |
177 | " | |
178 | ,version)))))) | |
179 | ;; XXX: The PyPI distribution lacks tests. | |
180 | #:tests? #f)) | |
89c3eaaa | 181 | (propagated-inputs |
8394619b | 182 | (list python-dateutil python-pytzdata)) |
89c3eaaa BW |
183 | (home-page "https://github.com/sdispater/pendulum") |
184 | (synopsis "Alternate API for Python datetimes") | |
185 | (description "Pendulum is a drop-in replacement for the standard | |
186 | @{datetime} class, providing an alternative API. As it inherits from the | |
187 | standard @code{datetime} all @code{datetime} instances can be replaced by | |
188 | Pendulum instances.") | |
189 | (license expat))) | |
190 | ||
33dc54b0 RW |
191 | (define-public python-dateutil |
192 | (package | |
193 | (name "python-dateutil") | |
33c7e183 | 194 | (version "2.8.2") |
33dc54b0 RW |
195 | (source |
196 | (origin | |
197 | (method url-fetch) | |
198 | (uri (pypi-uri "python-dateutil" version)) | |
199 | (sha256 | |
200 | (base32 | |
33c7e183 | 201 | "11iy7m4bp2lgfkcl0r6xzf34bvk7ppjmsyn2ygfikbi72v6cl8q1")))) |
33dc54b0 | 202 | (build-system python-build-system) |
de92ab21 MB |
203 | (arguments |
204 | `(#:phases (modify-phases %standard-phases | |
205 | (replace 'check | |
206 | (lambda _ | |
207 | ;; Delete tests that depend on "freezegun" to avoid a | |
208 | ;; circular dependency. | |
209 | (delete-file "dateutil/test/test_utils.py") | |
210 | (delete-file "dateutil/test/test_rrule.py") | |
211 | ||
212 | ;; XXX: Fails to get timezone from /etc/localtime. | |
213 | (delete-file "dateutil/test/test_tz.py") | |
214 | ||
215 | (invoke "pytest" "-vv")))))) | |
e30fc546 | 216 | (native-inputs |
8394619b | 217 | (list python-pytest python-pytest-cov python-setuptools-scm)) |
33dc54b0 | 218 | (propagated-inputs |
8394619b | 219 | (list python-six)) |
33dc54b0 RW |
220 | (home-page "https://dateutil.readthedocs.io/en/stable/") |
221 | (synopsis "Extensions to the standard datetime module") | |
222 | (description | |
223 | "The dateutil module provides powerful extensions to the standard | |
224 | datetime module, available in Python 2.3+.") | |
e30fc546 MB |
225 | ;; The license was changed from the three-clause BSD license to a dual |
226 | ;; Apache 2.0/BSD-3 variant at 2017-12-01. Some code is only available as | |
227 | ;; BSD-3 still; but all new code is dual licensed (the user can choose). | |
228 | (license (list bsd-3 asl2.0)))) | |
33dc54b0 | 229 | |
33dc54b0 RW |
230 | (define-public python-parsedatetime |
231 | (package | |
232 | (name "python-parsedatetime") | |
ce9363dd | 233 | (version "2.6") |
33dc54b0 RW |
234 | (source |
235 | (origin | |
236 | (method url-fetch) | |
237 | (uri (pypi-uri "parsedatetime" version)) | |
238 | (sha256 | |
239 | (base32 | |
ce9363dd | 240 | "0mfl0ixshqkwx7z5siaib7ix5j2iahb1jqfpyhqp42wan7xnicsc")))) |
33dc54b0 RW |
241 | (build-system python-build-system) |
242 | (native-inputs | |
8394619b | 243 | (list python-nose python-pyicu python-pytest python-pytest-runner)) |
33dc54b0 | 244 | (propagated-inputs |
8394619b | 245 | (list python-future)) |
33dc54b0 RW |
246 | (home-page "https://github.com/bear/parsedatetime/") |
247 | (synopsis "Parse human-readable date/time text") | |
248 | (description | |
249 | "Parse human-readable date/time text.") | |
250 | (license asl2.0))) | |
251 | ||
0ab3a8c2 LDB |
252 | (define-public python-ciso8601 |
253 | (package | |
254 | (name "python-ciso8601") | |
255 | (version "2.1.3") | |
256 | (source | |
257 | (origin | |
258 | (method git-fetch) | |
259 | ;; The PyPi distribution doesn't include the tests. | |
260 | (uri (git-reference | |
b0e7b699 | 261 | (url "https://github.com/closeio/ciso8601") |
0ab3a8c2 LDB |
262 | (commit (string-append "v" version)))) |
263 | (file-name (git-file-name name version)) | |
264 | (sha256 | |
265 | (base32 | |
266 | "0g1aiyc1ayh0rnibyy416m5mmck38ksgdm3jsy0z3rxgmgb24951")))) | |
267 | (build-system python-build-system) | |
268 | ;; Pytz should only be required for Python 2, but the test suite fails | |
269 | ;; without it. | |
270 | (native-inputs | |
8394619b | 271 | (list python-pytz)) |
0ab3a8c2 LDB |
272 | (home-page "https://github.com/closeio/ciso8601") |
273 | (synopsis | |
274 | "Fast ISO8601 date time parser") | |
275 | (description | |
276 | "The package ciso8601 converts ISO 8601 or RFC 3339 date time strings into | |
277 | Python datetime objects.") | |
278 | (license expat))) | |
279 | ||
33dc54b0 RW |
280 | (define-public python-tzlocal |
281 | (package | |
282 | (name "python-tzlocal") | |
8af48c14 | 283 | (version "2.1") |
33dc54b0 RW |
284 | (source |
285 | (origin | |
286 | (method url-fetch) | |
287 | (uri (pypi-uri "tzlocal" version)) | |
288 | (sha256 | |
289 | (base32 | |
8af48c14 | 290 | "0i1fm4sl04y65qnaqki0w75j34w863gxjj8ag0vwgvaa572rfg34")))) |
33dc54b0 | 291 | (build-system python-build-system) |
d1e75921 EF |
292 | (arguments |
293 | `(#:phases | |
294 | (modify-phases %standard-phases | |
295 | (add-before 'check 'fix-symlink-test | |
296 | ;; see: https://github.com/regebro/tzlocal/issues/53 | |
297 | (lambda _ | |
8af48c14 | 298 | (delete-file "tests/test_data/symlink_localtime/etc/localtime") |
d1e75921 | 299 | (symlink "../usr/share/zoneinfo/Africa/Harare" |
8af48c14 EF |
300 | "tests/test_data/symlink_localtime/etc/localtime") |
301 | ;; And skip the test_fail test, it is known to fail | |
302 | (substitute* "tests/tests.py" | |
303 | (("def test_fail") "def _test_fail")) | |
d1e75921 | 304 | #t))))) |
33dc54b0 | 305 | (propagated-inputs |
8394619b | 306 | (list python-pytz)) |
d1e75921 | 307 | (native-inputs |
8394619b | 308 | (list python-mock)) |
33dc54b0 RW |
309 | (home-page "https://github.com/regebro/tzlocal") |
310 | (synopsis "Local timezone information for Python") | |
311 | (description | |
312 | "Tzlocal returns a tzinfo object with the local timezone information. | |
313 | This module attempts to fix a glaring hole in pytz, that there is no way to | |
314 | get the local timezone information, unless you know the zoneinfo name, and | |
315 | under several distributions that's hard or impossible to figure out.") | |
d1e75921 | 316 | (license expat))) |
33dc54b0 RW |
317 | |
318 | (define-public python-isodate | |
319 | (package | |
320 | (name "python-isodate") | |
e4be1faa | 321 | (version "0.6.0") |
33dc54b0 RW |
322 | (source |
323 | (origin | |
324 | (method url-fetch) | |
325 | (uri (pypi-uri "isodate" version)) | |
326 | (sha256 | |
327 | (base32 | |
e4be1faa | 328 | "1n7jkz68kk5pwni540pr5zdh99bf6ywydk1p5pdrqisrawylldif")))) |
33dc54b0 | 329 | (build-system python-build-system) |
e4be1faa | 330 | (native-inputs |
8394619b | 331 | (list python-six)) |
e4be1faa | 332 | (home-page "https://github.com/gweis/isodate/") |
33dc54b0 RW |
333 | (synopsis "Python date parser and formatter") |
334 | (description | |
335 | "Python-isodate is a python module for parsing and formatting | |
336 | ISO 8601 dates, time and duration.") | |
337 | (license bsd-3))) | |
338 | ||
33dc54b0 RW |
339 | (define-public python-iso8601 |
340 | (package | |
341 | (name "python-iso8601") | |
cc8d4fa5 | 342 | (version "1.0.2") |
33dc54b0 RW |
343 | (source |
344 | (origin | |
345 | (method url-fetch) | |
346 | (uri (pypi-uri "iso8601" version)) | |
347 | (sha256 | |
348 | (base32 | |
cc8d4fa5 | 349 | "1ccl6plks706hxm35cn1wsvxhqh3bfwi5cjgjpdxjib81qi07x97")))) |
33dc54b0 | 350 | (build-system python-build-system) |
5f321292 MB |
351 | (arguments |
352 | '(#:phases (modify-phases %standard-phases | |
353 | (replace 'check | |
354 | (lambda _ | |
355 | (invoke "pytest" "-vv" "iso8601")))))) | |
33dc54b0 | 356 | (native-inputs |
cc8d4fa5 MB |
357 | (list python-pytest python-pytz)) |
358 | (home-page "https://github.com/micktwomey/pyiso8601") | |
33dc54b0 RW |
359 | (synopsis "Module to parse ISO 8601 dates") |
360 | (description | |
361 | "This module parses the most common forms of ISO 8601 date strings (e.g. | |
362 | @code{2007-01-14T20:34:22+00:00}) into @code{datetime} objects.") | |
363 | (license expat))) | |
364 | ||
33dc54b0 RW |
365 | (define-public python-monotonic |
366 | (package | |
367 | (name "python-monotonic") | |
33fdde8d | 368 | (version "1.5") |
33dc54b0 RW |
369 | (source |
370 | (origin | |
371 | (method url-fetch) | |
db3e631d | 372 | (uri (pypi-uri "monotonic" version)) |
33dc54b0 RW |
373 | (sha256 |
374 | (base32 | |
33fdde8d | 375 | "1c6z46yb600klbfhqadyl7vq0jdjdxkm72k43ra3iw3d0xakv593")))) |
33dc54b0 | 376 | (build-system python-build-system) |
33fdde8d | 377 | (arguments '(#:tests? #f)) ; no tests |
33dc54b0 RW |
378 | (home-page "https://github.com/atdt/monotonic") |
379 | (synopsis "Implementation of time.monotonic() for Python 2 & < 3.3") | |
380 | (description | |
381 | "This module provides a @code{monotonic()} function which returns the | |
382 | value (in fractional seconds) of a clock which never goes backwards.") | |
383 | (license asl2.0))) | |
384 | ||
33dc54b0 RW |
385 | (define-public python-pyrfc3339 |
386 | (package | |
387 | (name "python-pyrfc3339") | |
0ce92d74 | 388 | (version "1.1") |
33dc54b0 RW |
389 | (source |
390 | (origin | |
391 | (method url-fetch) | |
392 | (uri (pypi-uri "pyRFC3339" version)) | |
393 | (sha256 | |
394 | (base32 | |
0ce92d74 | 395 | "06jv7ar7lpvvk0dixzwdr3wgm0g1lipxs429s2z7knwwa7hwpf41")))) |
33dc54b0 RW |
396 | (build-system python-build-system) |
397 | (propagated-inputs | |
8394619b | 398 | (list python-pytz)) |
33dc54b0 | 399 | (native-inputs |
8394619b | 400 | (list python-nose)) |
33dc54b0 RW |
401 | (home-page "https://github.com/kurtraschke/pyRFC3339") |
402 | (synopsis "Python timestamp library") | |
403 | (description "Python library for generating and parsing RFC 3339-compliant | |
404 | timestamps.") | |
405 | (license expat))) | |
406 | ||
33dc54b0 RW |
407 | (define-public python-arrow |
408 | (package | |
409 | (name "python-arrow") | |
7ad7b078 | 410 | (version "1.1.1") |
33dc54b0 RW |
411 | (source (origin |
412 | (method url-fetch) | |
413 | (uri (pypi-uri "arrow" version)) | |
414 | (sha256 | |
415 | (base32 | |
7ad7b078 | 416 | "0fl24gv7jc6b9pqxwlcgrf465i8v8h0y7dcm018yrqv0dhpn1ryy")))) |
33dc54b0 | 417 | (build-system python-build-system) |
e86ed845 TLC |
418 | (arguments |
419 | `(#:phases | |
420 | (modify-phases %standard-phases | |
421 | (replace 'check | |
b1821214 LC |
422 | (lambda* (#:key tests? #:allow-other-keys) |
423 | (when tests? | |
424 | (invoke "pytest" "-vv" "tests" | |
425 | ;; python-dateutil doesn't recognize America/Nuuk. | |
426 | ;; Remove when python-dateutil > 2.8.1. | |
427 | "-k" "not test_parse_tz_name_zzz"))))))) | |
33dc54b0 | 428 | (native-inputs |
8394619b LC |
429 | (list ;; For testing |
430 | python-chai | |
431 | python-pytest | |
432 | python-pytest-cov | |
433 | python-pytest-mock | |
434 | python-pytz | |
435 | python-simplejson)) | |
33dc54b0 | 436 | (propagated-inputs |
8394619b | 437 | (list python-dateutil)) |
e86ed845 | 438 | (home-page "https://github.com/arrow-py/arrow") |
33dc54b0 RW |
439 | (synopsis "Dates and times for Python") |
440 | (description | |
441 | "Arrow is a Python library to creating, manipulating, formatting and | |
442 | converting dates, times, and timestamps. It implements and updates the | |
443 | datetime type.") | |
444 | (license asl2.0))) | |
445 | ||
33dc54b0 RW |
446 | (define-public python-aniso8601 |
447 | (package | |
448 | (name "python-aniso8601") | |
f8119cb5 | 449 | (version "9.0.1") |
33dc54b0 RW |
450 | (source |
451 | (origin | |
452 | (method url-fetch) | |
453 | (uri (pypi-uri "aniso8601" version)) | |
454 | (sha256 | |
455 | (base32 | |
f8119cb5 | 456 | "0wxry6riyqajl02mkad8g2q98sx5jr13zndj3fandpzfcxv13qvj")))) |
33dc54b0 | 457 | (build-system python-build-system) |
33dc54b0 RW |
458 | (home-page "https://bitbucket.org/nielsenb/aniso8601") |
459 | (synopsis "Python library for parsing ISO 8601 strings") | |
460 | (description | |
461 | "This package contains a library for parsing ISO 8601 datetime strings.") | |
462 | (license bsd-3))) | |
463 | ||
3ef29c00 KM |
464 | (define-public datefudge |
465 | (package | |
466 | (name "datefudge") | |
d080368c LF |
467 | ;; XXX When updating this package, make sure to do something about the |
468 | ;; archive.org backup URI. | |
69dc3e52 | 469 | (version "1.23") |
3ef29c00 | 470 | (source (origin |
ac83dc82 LC |
471 | ;; Source code is available from |
472 | ;; <https://salsa.debian.org/debian/datefudge.git>. However, | |
473 | ;; for bootstrapping reasons, we do not rely on 'git-fetch' here | |
474 | ;; (since Git -> GnuTLS -> datefudge). | |
475 | (method url-fetch) | |
d080368c LF |
476 | (uri (list |
477 | ;; For some reason this tarball was removed from Debian's | |
478 | ;; servers. Remove this archive.org URL when updating | |
479 | ;; datefudge, or add the new tarball to archive.org and | |
480 | ;; update the URL. | |
481 | (string-append | |
482 | "https://archive.org/download/datefudge_" version | |
483 | ".tar_202112/" "datefudge_" version ".tar.xz") | |
484 | (string-append | |
485 | "mirror://debian/pool/main/d/datefudge/datefudge_" | |
486 | version ".tar.xz"))) | |
3ef29c00 KM |
487 | (sha256 |
488 | (base32 | |
ac83dc82 | 489 | "0ifnlb0mc8qc2kb5042pbz0ns6rwcb7201di8wyrsphl0yhnhxiv")) |
eb07edab | 490 | (patches (search-patches "datefudge-gettimeofday.patch")))) |
3ef29c00 KM |
491 | (build-system gnu-build-system) |
492 | (arguments | |
493 | `(#:test-target "test" | |
494 | #:make-flags (list "CC=gcc" | |
495 | (string-append "prefix=" (assoc-ref %outputs "out"))) | |
496 | #:phases | |
497 | (modify-phases %standard-phases | |
498 | (add-after 'unpack 'patch-makefile | |
499 | (lambda _ | |
500 | (substitute* "Makefile" | |
501 | ((" -o root -g root") "") | |
502 | (("VERSION := \\$\\(shell dpkg-parsechangelog .*") | |
503 | (string-append "VERSION = " ,version))) | |
504 | #t)) | |
505 | (delete 'configure)))) | |
506 | (native-inputs | |
8394619b | 507 | (list perl)) |
3ef29c00 KM |
508 | (home-page "https://salsa.debian.org/debian/datefudge") |
509 | (synopsis "Pretend the system date is different") | |
510 | (description | |
511 | "Utility that fakes the system time by pre-loading a small library that | |
512 | modifies the @code{time}, @code{gettimeofday} and @code{clock_gettime} system | |
513 | calls.") | |
514 | (license gpl2))) | |
efe7a174 | 515 | |
0052c3b0 GT |
516 | (define-public tz |
517 | (package | |
518 | (name "tz") | |
519 | (version "0.6.1") | |
520 | (source | |
521 | (origin | |
522 | (method git-fetch) | |
523 | (uri (git-reference | |
524 | (url "https://github.com/oz/tz") | |
525 | (commit (string-append "v" version)))) | |
526 | (file-name (git-file-name name version)) | |
527 | (sha256 | |
528 | (base32 "1nbl13xd95np89sbx8fn0jqrh1iy17hsy70kq31hmcvyns8dljhg")))) | |
529 | (build-system go-build-system) | |
530 | (arguments | |
531 | `(#:go ,go-1.17 | |
532 | #:import-path "github.com/oz/tz" | |
533 | #:phases | |
534 | (modify-phases %standard-phases | |
535 | (replace 'check | |
536 | (lambda* (#:key import-path tests? #:allow-other-keys) | |
537 | (when tests? | |
538 | (invoke "go" "test" "-cover" import-path))))))) | |
539 | (inputs | |
540 | `(("github.com/charmbracelet/bubbletea" ,go-github-com-charmbracelet-bubbletea) | |
541 | ("github.com/muesli/termenv" ,go-github-com-muesli-termenv))) | |
542 | (home-page "https://github.com/oz/tz") | |
543 | (synopsis "TUI time zone helper") | |
544 | (description | |
545 | "@command{tz} helps you schedule things across time zones. It is an interactive | |
546 | TUI program that displays time across a few time zones of your choosing.") | |
547 | (license gpl3+))) | |
548 | ||
efe7a174 RPG |
549 | (define-public countdown |
550 | (package | |
551 | (name "countdown") | |
552 | (version "1.0.0") | |
553 | (source | |
554 | (origin | |
555 | (method git-fetch) | |
556 | (uri (git-reference | |
557 | (url "https://github.com/antonmedv/countdown") | |
558 | (commit (string-append "v" version)))) | |
559 | (file-name (git-file-name name version)) | |
560 | (sha256 | |
561 | (base32 "0pdaw1krr0bsl4amhwx03v2b02iznvwvqn7af5zp4fkzjaj14cdw")))) | |
562 | (build-system go-build-system) | |
563 | (arguments | |
564 | '(#:import-path "github.com/antonmedv/countdown")) | |
565 | (native-inputs | |
566 | `(("runewidth" ,go-github.com-mattn-go-runewidth) | |
567 | ("termbox" ,go-github.com-nsf-termbox-go))) | |
568 | (home-page "https://github.com/antonmedv/countdown") | |
569 | (synopsis "Counts to zero with a text user interface") | |
570 | (description | |
571 | "Countdown provides a fancy text display while it counts down to zero | |
572 | from a starting point you provide. The user can pause and resume the | |
573 | countdown from the text user interface.") | |
574 | (license expat))) |