Merge branch 'master' into staging

master
Ricardo Wurmus 2019-01-25 15:20:25 +01:00
commit 02d38bd3a2
No known key found for this signature in database
GPG Key ID: 197A5888235FACAC
74 changed files with 1545 additions and 882 deletions

View File

@ -2106,8 +2106,8 @@ manual}).
@cindex UEFI, installation @cindex UEFI, installation
@cindex ESP, EFI system partition @cindex ESP, EFI system partition
If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System Partition} If you instead wish to use EFI-based GRUB, a FAT32 @dfn{EFI System Partition}
(ESP) is required. This partition should be mounted at @file{/boot/efi} and (ESP) is required. This partition can be mounted at @file{/boot/efi} for
must have the @code{esp} flag set. E.g., for @command{parted}: instance and must have the @code{esp} flag set. E.g., for @command{parted}:
@example @example
parted /dev/sda set 1 esp on parted /dev/sda set 1 esp on
@ -2169,9 +2169,9 @@ mount LABEL=my-root /mnt
@end example @end example
Also mount any other file systems you would like to use on the target Also mount any other file systems you would like to use on the target
system relative to this path. If you have @file{/boot} on a separate system relative to this path. If you have opted for @file{/boot/efi} as an
partition for example, mount it at @file{/mnt/boot} now so it is found EFI mount point for example, mount it at @file{/mnt/boot/efi} now so it is
by @code{guix system init} afterwards. found by @code{guix system init} afterwards.
Finally, if you plan to use one or more swap partitions (@pxref{Memory Finally, if you plan to use one or more swap partitions (@pxref{Memory
Concepts, swap space,, libc, The GNU C Library Reference Manual}), make Concepts, swap space,, libc, The GNU C Library Reference Manual}), make
@ -2253,8 +2253,9 @@ you want to install GRUB on. It should mention @code{grub-bootloader} if
you are installing GRUB in the legacy way, or @code{grub-efi-bootloader} you are installing GRUB in the legacy way, or @code{grub-efi-bootloader}
for newer UEFI systems. For legacy systems, the @code{target} field for newer UEFI systems. For legacy systems, the @code{target} field
names a device, like @code{/dev/sda}; for UEFI systems it names a path names a device, like @code{/dev/sda}; for UEFI systems it names a path
to a mounted EFI partition, like @code{/boot/efi}, and do make sure the to a mounted EFI partition, like @code{/boot/efi}; do make sure the path is
path is actually mounted. currently mounted and a @code{file-sytem} entry is specified in your
configuration.
@item @item
Be sure that your file system labels match the value of their respective Be sure that your file system labels match the value of their respective
@ -9708,7 +9709,9 @@ key is authorized. It also reports the size of the compressed archives
(``nars'') provided by the server, the size the corresponding store (``nars'') provided by the server, the size the corresponding store
items occupy in the store (assuming deduplication is turned off), and items occupy in the store (assuming deduplication is turned off), and
the server's throughput. The second part gives continuous integration the server's throughput. The second part gives continuous integration
(CI) statistics, if the server supports it. (CI) statistics, if the server supports it. In addition, using the
@option{--coverage} option, @command{guix weather} can list ``important''
package substitutes missing on the server (see below).
To achieve that, @command{guix weather} queries over HTTP(S) meta-data To achieve that, @command{guix weather} queries over HTTP(S) meta-data
(@dfn{narinfos}) for all the relevant store items. Like @command{guix (@dfn{narinfos}) for all the relevant store items. Like @command{guix
@ -9736,6 +9739,37 @@ Instead of querying substitutes for all the packages, only ask for those
specified in @var{file}. @var{file} must contain a @dfn{manifest}, as specified in @var{file}. @var{file} must contain a @dfn{manifest}, as
with the @code{-m} option of @command{guix package} (@pxref{Invoking with the @code{-m} option of @command{guix package} (@pxref{Invoking
guix package}). guix package}).
@item --coverage[=@var{count}]
@itemx -c [@var{count}]
Report on substitute coverage for packages: list packages with at least
@var{count} dependents (zero by default) for which substitutes are
unavailable. Dependent packages themselves are not listed: if @var{b} depends
on @var{a} and @var{a} has no substitutes, only @var{a} is listed, even though
@var{b} usually lacks substitutes as well. The result looks like this:
@example
$ guix weather --substitute-urls=https://ci.guix.info -c 10
computing 8,983 package derivations for x86_64-linux...
looking for 9,343 store items on https://ci.guix.info...
updating substitutes from 'https://ci.guix.info'... 100.0%
https://ci.guix.info
64.7% substitutes available (6,047 out of 9,343)
@dots{}
2502 packages are missing from 'https://ci.guix.info' for 'x86_64-linux', among which:
58 kcoreaddons@@5.49.0 /gnu/store/@dots{}-kcoreaddons-5.49.0
46 qgpgme@@1.11.1 /gnu/store/@dots{}-qgpgme-1.11.1
37 perl-http-cookiejar@@0.008 /gnu/store/@dots{}-perl-http-cookiejar-0.008
@dots{}
@end example
What this example shows is that @code{kcoreaddons} and presumably the 58
packages that depend on it have no substitutes at @code{ci.guix.info};
likewise for @code{qgpgme} and the 46 packages that depend on it.
If you are a Guix developer, or if you are taking care of this build farm,
you'll probably want to have a closer look at these packages: they may simply
fail to build.
@end table @end table
@node Invoking guix processes @node Invoking guix processes
@ -10887,9 +10921,9 @@ system, you will want to append services to @var{%base-services}, like
this: this:
@example @example
(cons* (service avahi-service-type) (append (list (service avahi-service-type)
(service openssh-service-type) (service openssh-service-type))
%base-services) %base-services)
@end example @end example
@end defvr @end defvr
@ -11519,11 +11553,12 @@ well as in the @var{groups} field of the @var{operating-system} record.
;; @dots{} ;; @dots{}
(services (services
(modify-services %desktop-services (modify-services %desktop-services
(udev-service-type config => (udev-service-type
(udev-configuration (inherit config) config =>
(rules (cons* android-udev-rules (udev-configuration (inherit config)
(udev-configuration-rules config)))))))) (rules (cons android-udev-rules
(udev-configuration-rules config))))))))
@end example @end example
@defvr {Scheme Variable} urandom-seed-service-type @defvr {Scheme Variable} urandom-seed-service-type

View File

@ -371,6 +371,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/pure.scm \ %D%/packages/pure.scm \
%D%/packages/pv.scm \ %D%/packages/pv.scm \
%D%/packages/python.scm \ %D%/packages/python.scm \
%D%/packages/python-check.scm \
%D%/packages/python-compression.scm \ %D%/packages/python-compression.scm \
%D%/packages/python-crypto.scm \ %D%/packages/python-crypto.scm \
%D%/packages/python-web.scm \ %D%/packages/python-web.scm \
@ -829,8 +830,7 @@ dist_patch_DATA = \
%D%/packages/patches/gmp-faulty-test.patch \ %D%/packages/patches/gmp-faulty-test.patch \
%D%/packages/patches/gnome-todo-libical-compat.patch \ %D%/packages/patches/gnome-todo-libical-compat.patch \
%D%/packages/patches/gnome-tweak-tool-search-paths.patch \ %D%/packages/patches/gnome-tweak-tool-search-paths.patch \
%D%/packages/patches/gnucash-price-quotes-perl.patch \ %D%/packages/patches/gnucash-fix-test-transaction-failure.patch \
%D%/packages/patches/gnucash-disable-failing-tests.patch \
%D%/packages/patches/gnutls-skip-trust-store-test.patch \ %D%/packages/patches/gnutls-skip-trust-store-test.patch \
%D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \ %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
%D%/packages/patches/gobject-introspection-cc.patch \ %D%/packages/patches/gobject-introspection-cc.patch \

View File

@ -23,6 +23,7 @@
;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> ;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr>
;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz> ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Brett Gilio <brettg@posteo.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -1602,14 +1603,14 @@ of supported upstream metrics systems simultaneously.")
(define-public ansible (define-public ansible
(package (package
(name "ansible") (name "ansible")
(version "2.7.5") (version "2.7.6")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "ansible" version)) (uri (pypi-uri "ansible" version))
(sha256 (sha256
(base32 (base32
"1fsif2jmkrrgiawsd8r6sxrqvh01fvrmdhas0p540a6i9fby3yda")))) "0f7b2ghm34ql8yv90wr0ngd6w7wyvnlcxpc3snkj86kcjsnmx1bd"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-bcrypt" ,python-bcrypt) `(("python-bcrypt" ,python-bcrypt)

View File

@ -3,7 +3,7 @@
;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
@ -138,43 +138,46 @@ solve the shortest vector problem.")
(define-public pari-gp (define-public pari-gp
(package (package
(name "pari-gp") (name "pari-gp")
(version "2.11.1") (version "2.11.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
"https://pari.math.u-bordeaux.fr/pub/pari/unix/pari-" "https://pari.math.u-bordeaux.fr/pub/pari/unix/pari-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1jfax92jpydjd02fwl30r6b8kfzqqd6sm4yx94gidyz9lqjb7a94")))) "1jfax92jpydjd02fwl30r6b8kfzqqd6sm4yx94gidyz9lqjb7a94"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("texlive" ,texlive-tiny))) (native-inputs
(inputs `(("gmp" ,gmp) `(("texlive" ,(texlive-union
("libx11" ,libx11) (list texlive-fonts-amsfonts
("perl" ,perl) texlive-latex-amsfonts)))))
("readline" ,readline))) (inputs `(("gmp" ,gmp)
(arguments ("libx11" ,libx11)
'(#:make-flags '("all") ("perl" ,perl)
#:test-target "dobench" ("readline" ,readline)))
#:phases (modify-phases %standard-phases (arguments
(replace 'configure '(#:make-flags '("all")
(lambda* (#:key outputs #:allow-other-keys) #:test-target "dobench"
(let ((out (assoc-ref outputs "out"))) #:phases
(zero? (modify-phases %standard-phases
(system* "./Configure" (replace 'configure
(string-append "--prefix=" out))))))))) (lambda* (#:key outputs #:allow-other-keys)
(synopsis "PARI/GP, a computer algebra system for number theory") (invoke "./Configure"
(description (string-append "--prefix="
"PARI/GP is a widely used computer algebra system designed for fast (assoc-ref outputs "out"))))))))
(synopsis "PARI/GP, a computer algebra system for number theory")
(description
"PARI/GP is a widely used computer algebra system designed for fast
computations in number theory (factorisations, algebraic number theory, computations in number theory (factorisations, algebraic number theory,
elliptic curves...), but it also contains a large number of other useful elliptic curves...), but it also contains a large number of other useful
functions to compute with mathematical entities such as matrices, functions to compute with mathematical entities such as matrices,
polynomials, power series, algebraic numbers, etc., and a lot of polynomials, power series, algebraic numbers, etc., and a lot of
transcendental functions. transcendental functions.
PARI is also available as a C library to allow for faster computations.") PARI is also available as a C library to allow for faster computations.")
(license license:gpl2+) (license license:gpl2+)
(home-page "https://pari.math.u-bordeaux.fr/"))) (home-page "https://pari.math.u-bordeaux.fr/")))
(define-public gp2c (define-public gp2c
(package (package
@ -354,11 +357,11 @@ or text interfaces) or as a C++ library.")
(mpfr (assoc-ref inputs "mpfr"))) (mpfr (assoc-ref inputs "mpfr")))
;; do not pass "--enable-fast-install", which makes the ;; do not pass "--enable-fast-install", which makes the
;; homebrew configure process fail ;; homebrew configure process fail
(zero? (system* (invoke "./configure"
"./configure"
(string-append "--prefix=" out) (string-append "--prefix=" out)
(string-append "--with-gmp=" gmp) (string-append "--with-gmp=" gmp)
(string-append "--with-mpfr=" mpfr))))))))) (string-append "--with-mpfr=" mpfr))
#t))))))
(synopsis "Fast library for number theory") (synopsis "Fast library for number theory")
(description (description
"FLINT is a C library for number theory. It supports arithmetic "FLINT is a C library for number theory. It supports arithmetic

View File

@ -759,7 +759,7 @@ def _FindRepo():
(delete 'build) ; nothing to build (delete 'build) ; nothing to build
(replace 'check (replace 'check
(lambda _ (lambda _
(zero? (system* "python" "-m" "nose")))) (invoke "python" "-m" "nose")))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))

View File

@ -47,7 +47,7 @@
(replace 'check (replace 'check
(lambda _ (lambda _
(with-directory-excursion "test" (with-directory-excursion "test"
(zero? (system* "./anthy" "--all")))))))) (invoke "./anthy" "--all")))))))
(home-page "http://anthy.osdn.jp/") (home-page "http://anthy.osdn.jp/")
(synopsis "Japanese input method") (synopsis "Japanese input method")
(description "Anthy is a Japanese input method for converting (description "Anthy is a Japanese input method for converting

View File

@ -112,8 +112,10 @@
;; install sample .conf files to %output/etc rather than /etc/clamav ;; install sample .conf files to %output/etc rather than /etc/clamav
#:make-flags (list (string-append "sysconfdir=" %output "/etc")) #:make-flags (list (string-append "sysconfdir=" %output "/etc"))
#:phases (modify-phases %standard-phases #:phases (modify-phases %standard-phases
;; Regenerate configure script. Without this we don't get
;; the correct value for LLVM linker variables.
(add-after 'unpack 'reconf (add-after 'unpack 'reconf
(lambda _ (zero? (system* "autoreconf" "-vfi")))) (lambda _ (invoke "autoreconf" "-vfi")))
(add-before 'configure 'patch-llvm-config (add-before 'configure 'patch-llvm-config
(lambda _ (lambda _
(substitute* '("libclamav/c++/detect.cpp" (substitute* '("libclamav/c++/detect.cpp"

View File

@ -7860,7 +7860,7 @@ CONFIG_CRYPTO_VMAC=m
# #
# Digest # Digest
# #
CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32=m CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_CRCT10DIF=y CONFIG_CRYPTO_CRCT10DIF=y
CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_GHASH=m

View File

@ -7932,7 +7932,7 @@ CONFIG_CRYPTO_VMAC=m
# #
# Digest # Digest
# #
CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_CRC32C=y
CONFIG_CRYPTO_CRC32=m CONFIG_CRYPTO_CRC32=m
CONFIG_CRYPTO_CRCT10DIF=y CONFIG_CRYPTO_CRCT10DIF=y
CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_GHASH=m

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -94,10 +94,10 @@
(add-after 'unpack 'patch-paths (add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; prepare ChibiOS ;; prepare ChibiOS
(and (zero? (system* "unzip" "-o" (assoc-ref inputs "chibios"))) (invoke "unzip" "-o" (assoc-ref inputs "chibios"))
(zero? (system* "mv" "ChibiOS_2.6.9" "chibios")) (invoke "mv" "ChibiOS_2.6.9" "chibios")
(with-directory-excursion "chibios/ext" (with-directory-excursion "chibios/ext"
(zero? (system* "unzip" "-o" "fatfs-0.9-patched.zip")))) (invoke "unzip" "-o" "fatfs-0.9-patched.zip"))
;; Remove source of non-determinism in ChibiOS ;; Remove source of non-determinism in ChibiOS
(substitute* "chibios/os/various/shell.c" (substitute* "chibios/os/various/shell.c"
@ -149,7 +149,7 @@
(string-append toolchain (string-append toolchain
"/arm-none-eabi/lib"))) "/arm-none-eabi/lib")))
(with-directory-excursion "platform_linux" (with-directory-excursion "platform_linux"
(zero? (system* "sh" "compile_firmware.sh"))))) (invoke "sh" "compile_firmware.sh"))))
(replace 'install (replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
@ -284,14 +284,14 @@ runtime.")
port))) port)))
;; Build it! ;; Build it!
(zero? (system* "ant" (invoke "ant"
(string-append "-Djavac.classpath=" classpath) (string-append "-Djavac.classpath=" classpath)
"-Dbuild.runtime=true" "-Dbuild.runtime=true"
"-Dbuild.time=01/01/1970 00:00:00" "-Dbuild.time=01/01/1970 00:00:00"
"-Djavac.source=1.7" "-Djavac.source=1.7"
"-Djavac.target=1.7" "-Djavac.target=1.7"
(string-append "-Dtag.short.version=" (string-append "-Dtag.short.version="
,version)))))) ,version)))))
(replace 'install (replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))

View File

@ -135,10 +135,9 @@ is to write a job file matching the I/O load one wants to simulate.")
(replace 'build (replace 'build
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((mpi-home (assoc-ref inputs "mpi"))) (let ((mpi-home (assoc-ref inputs "mpi")))
(zero? ;; Not safe for parallel build
;; Not safe for parallel build (invoke "make" "-C" "imb/src" "-f" "make_mpich" "SHELL=sh"
(system* "make" "-C" "imb/src" "-f" "make_mpich" "SHELL=sh" (string-append "MPI_HOME=" mpi-home)))))
(string-append "MPI_HOME=" mpi-home))))))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))

View File

@ -11,7 +11,7 @@
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2019 Eric Bavier <bavier@member.fsf.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -246,7 +246,12 @@ reconstruction capability.")
(inputs (inputs
`(("linux-headers" ,linux-libre-headers))) `(("linux-headers" ,linux-libre-headers)))
(arguments (arguments
`(#:phases `(#:make-flags
(list "RM=rm" "LN=ln" "SYMLINK=ln -s"
"CONFIG_SHELL=sh" "CCOM=gcc"
(string-append "INS_BASE=" (assoc-ref %outputs "out"))
(string-append "INS_RBASE=" (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure) (delete 'configure)
(add-before 'build 'set-linux-headers (add-before 'build 'set-linux-headers
@ -261,19 +266,7 @@ reconstruction capability.")
(find-files "DEFAULTS_ENG" "^Defaults\\.") (find-files "DEFAULTS_ENG" "^Defaults\\.")
(find-files "TEMPLATES" "^Defaults\\.")) (find-files "TEMPLATES" "^Defaults\\."))
(("/opt/schily") (assoc-ref %outputs "out"))) (("/opt/schily") (assoc-ref %outputs "out")))
#t)) #t)))
(replace 'build
(lambda _
(zero?
(system* "make" "CONFIG_SHELL=sh" "CCOM=gcc" "RM=rm"))))
(replace 'install
(lambda _
(zero?
(system* "make"
"RM=rm" "LN=ln" "SYMLINK=ln -s"
(string-append "INS_BASE=" (assoc-ref %outputs "out"))
(string-append "INS_RBASE=" (assoc-ref %outputs "out"))
"install" )))))
#:tests? #f)) ; no tests #:tests? #f)) ; no tests
(synopsis "Command line utilities to manipulate and burn CD/DVD/BD images") (synopsis "Command line utilities to manipulate and burn CD/DVD/BD images")
(description "cdrtools is a collection of command line utilities to create (description "cdrtools is a collection of command line utilities to create

View File

@ -186,14 +186,15 @@ around in a large, deeply nested project.")
(mkdir-p (string-append out (mkdir-p (string-append out
"/share/man/man1")) "/share/man/man1"))
(mkdir-p (string-append out (mkdir-p (string-append out
"/share/doc"))))) "/share/doc"))
#t)))
(replace 'check (replace 'check
(lambda _ (lambda _
(setenv "HOME" (getcwd)) (setenv "HOME" (getcwd))
(setenv "PATH" (setenv "PATH"
(string-append (getcwd) ":" (string-append (getcwd) ":"
(getenv "PATH"))) (getenv "PATH")))
(zero? (system* "make" "test"))))) (invoke "make" "test"))))
#:make-flags (list (string-append "PREFIX=" #:make-flags (list (string-append "PREFIX="
(assoc-ref %outputs "out"))))) (assoc-ref %outputs "out")))))

View File

@ -160,10 +160,9 @@ sharing) to clients via USB, ethernet, WiFi, cellular and Bluetooth.")
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'configure (replace 'configure
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(zero? (invoke "qmake"
(system* "qmake" (string-append "PREFIX="
(string-append "PREFIX=" (assoc-ref outputs "out")))))
(assoc-ref outputs "out"))))))
(add-before 'install 'fix-Makefiles (add-before 'install 'fix-Makefiles
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))

View File

@ -155,17 +155,16 @@ It is developed using Objective Caml and Camlp5.")
"EMACS=" emacs "/bin/emacs"))) "EMACS=" emacs "/bin/emacs")))
#t))) #t)))
(add-after 'unpack 'clean (add-after 'unpack 'clean
(lambda _ (lambda _
;; Delete the pre-compiled elc files for Emacs 23. ;; Delete the pre-compiled elc files for Emacs 23.
(zero? (system* "make" "clean")))) (invoke "make" "clean")))
(add-after 'install 'install-doc (add-after 'install 'install-doc
(lambda* (#:key make-flags #:allow-other-keys) (lambda* (#:key make-flags #:allow-other-keys)
;; XXX FIXME avoid building/installing pdf files, ;; XXX FIXME avoid building/installing pdf files,
;; due to unresolved errors building them. ;; due to unresolved errors building them.
(substitute* "Makefile" (substitute* "Makefile"
((" [^ ]*\\.pdf") "")) ((" [^ ]*\\.pdf") ""))
(zero? (apply system* "make" "install-doc" (apply invoke "make" "install-doc" make-flags))))))
make-flags)))))))
(home-page "http://proofgeneral.inf.ed.ac.uk/") (home-page "http://proofgeneral.inf.ed.ac.uk/")
(synopsis "Generic front-end for proof assistants based on Emacs") (synopsis "Generic front-end for proof assistants based on Emacs")
(description (description
@ -255,16 +254,14 @@ inside Coq.")
(add-before 'configure 'fix-remake (add-before 'configure 'fix-remake
(lambda _ (lambda _
(substitute* "remake.cpp" (substitute* "remake.cpp"
(("/bin/sh") (which "sh"))))) (("/bin/sh") (which "sh")))
#t))
(replace 'build (replace 'build
(lambda _ (lambda _ (invoke "./remake")))
(zero? (system* "./remake"))))
(replace 'check (replace 'check
(lambda _ (lambda _ (invoke "./remake" "check")))
(zero? (system* "./remake" "check"))))
(replace 'install (replace 'install
(lambda _ (lambda _ (invoke "./remake" "install"))))))
(zero? (system* "./remake" "install")))))))
(home-page "http://gappa.gforge.inria.fr/") (home-page "http://gappa.gforge.inria.fr/")
(synopsis "Verify and formally prove properties on numerical programs") (synopsis "Verify and formally prove properties on numerical programs")
(description "Gappa is a tool intended to help verifying and formally proving (description "Gappa is a tool intended to help verifying and formally proving
@ -298,15 +295,14 @@ assistant.")
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure) (delete 'configure)
(add-before 'build 'chdir (add-before 'build 'chdir
(lambda _ (lambda _ (chdir "mathcomp") #t))
(chdir "mathcomp")))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(setenv "COQLIB" (string-append (assoc-ref outputs "out") "/lib/coq/")) (setenv "COQLIB" (string-append (assoc-ref outputs "out") "/lib/coq/"))
(zero? (system* "make" "-f" "Makefile.coq" (invoke "make" "-f" "Makefile.coq"
(string-append "COQLIB=" (assoc-ref outputs "out") (string-append "COQLIB=" (assoc-ref outputs "out")
"/lib/coq/") "/lib/coq/")
"install"))))))) "install"))))))
(home-page "https://math-comp.github.io/math-comp/") (home-page "https://math-comp.github.io/math-comp/")
(synopsis "Mathematical Components for Coq") (synopsis "Mathematical Components for Coq")
(description "Mathematical Components for Coq has its origins in the formal (description "Mathematical Components for Coq has its origins in the formal
@ -351,16 +347,14 @@ part of the distribution.")
(add-before 'configure 'fix-remake (add-before 'configure 'fix-remake
(lambda _ (lambda _
(substitute* "remake.cpp" (substitute* "remake.cpp"
(("/bin/sh") (which "sh"))))) (("/bin/sh") (which "sh")))
#t))
(replace 'build (replace 'build
(lambda _ (lambda _ (invoke "./remake")))
(zero? (system* "./remake"))))
(replace 'check (replace 'check
(lambda _ (lambda _ (invoke "./remake" "check")))
(zero? (system* "./remake" "check"))))
(replace 'install (replace 'install
(lambda _ (lambda _ (invoke "./remake" "install"))))))
(zero? (system* "./remake" "install")))))))
(home-page "http://coquelicot.saclay.inria.fr/index.html") (home-page "http://coquelicot.saclay.inria.fr/index.html")
(synopsis "Coq library for Reals") (synopsis "Coq library for Reals")
(description "Coquelicot is an easier way of writing formulas and theorem (description "Coquelicot is an easier way of writing formulas and theorem
@ -436,16 +430,14 @@ provides BigN, BigZ, BigQ that used to be part of Coq standard library.")
(add-before 'configure 'fix-remake (add-before 'configure 'fix-remake
(lambda _ (lambda _
(substitute* "remake.cpp" (substitute* "remake.cpp"
(("/bin/sh") (which "sh"))))) (("/bin/sh") (which "sh")))
#t))
(replace 'build (replace 'build
(lambda _ (lambda _ (invoke "./remake")))
(zero? (system* "./remake"))))
(replace 'check (replace 'check
(lambda _ (lambda _ (invoke "./remake" "check")))
(zero? (system* "./remake" "check"))))
(replace 'install (replace 'install
(lambda _ (lambda _ (invoke "./remake" "install"))))))
(zero? (system* "./remake" "install")))))))
(home-page "http://coq-interval.gforge.inria.fr/") (home-page "http://coq-interval.gforge.inria.fr/")
(synopsis "Coq tactics to simplify inequality proofs") (synopsis "Coq tactics to simplify inequality proofs")
(description "Interval provides vernacular files containing tactics for (description "Interval provides vernacular files containing tactics for

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 David Thompson <davet@gnu.org> ;;; Copyright © 2014 David Thompson <davet@gnu.org>
;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017, 2018 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox> ;;; Copyright © 2016 Lukas Gradl <lgradl@openmailbox>
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@ -303,13 +303,12 @@ secure operations. ")
(delete 'configure) (delete 'configure)
(replace 'check (replace 'check
(lambda _ (lambda _
(and (invoke "./worgen" "8-12" "top1000.txt" "3-10" "top400nouns.txt"
(zero? (system* "./worgen" "8-12" "top1000.txt" "3-10" "top400nouns.txt" "3-6" "top150adjectives.txt" "3-6")
"3-6" "top150adjectives.txt" "3-6")) (invoke "./eschalot" "-r" "^guix|^guixsd")
(zero? (system* "./eschalot" "-r" "^guix|^guixsd")) (invoke "./eschalot" "-r" "^gnu|^free")
(zero? (system* "./eschalot" "-r" "^gnu|^free")) (invoke "./eschalot" "-r" "^cyber|^hack")
(zero? (system* "./eschalot" "-r" "^cyber|^hack")) (invoke "./eschalot" "-r" "^troll")))
(zero? (system* "./eschalot" "-r" "^troll")))))
;; Make install can not create the bin dir, create it. ;; Make install can not create the bin dir, create it.
(add-before 'install 'create-bin-dir (add-before 'install 'create-bin-dir
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)

View File

@ -107,7 +107,7 @@
(replace 'check (replace 'check
(lambda _ (lambda _
(setenv "DBUS_FATAL_WARNINGS" "0") (setenv "DBUS_FATAL_WARNINGS" "0")
(zero? (system* "dbus-launch" "ctest" ".")))) (invoke "dbus-launch" "ctest" ".")))
(add-before 'check 'check-setup (add-before 'check 'check-setup
(lambda _ (lambda _
(setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output (setenv "CTEST_OUTPUT_ON_FAILURE" "1") ; Enable debug output

View File

@ -4648,7 +4648,7 @@ indentation (space indentation only).
(define-public emacs-elpy (define-public emacs-elpy
(package (package
(name "emacs-elpy") (name "emacs-elpy")
(version "1.27.0") (version "1.28.0")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -4657,7 +4657,7 @@ indentation (space indentation only).
(file-name (string-append name "-" version "-checkout")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"1b76y0kzk7s9ya8k9bpsgn31i9l0rxs4iz6lg7snhjgh03k0ssgv")))) "073bwxwjzcbmvpcz9q2xjwzx9x7hkvjni6fwvikh6yawzjp56jis"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(arguments (arguments
`(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include) `(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
@ -6037,7 +6037,7 @@ highlights quasi-quoted expressions.")
(define-public emacspeak (define-public emacspeak
(package (package
(name "emacspeak") (name "emacspeak")
(version "48.0") (version "49.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -6046,7 +6046,7 @@ highlights quasi-quoted expressions.")
version "/emacspeak-" version ".tar.bz2")) version "/emacspeak-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"07imi3hji06b3r7v7v59978q76s8a7ynmxwfc9j03pgnv965lpjy")))) "1smf26m7201z0bk49lzbw9zhbjfi6wylidfjixb8ylp6g0wnh8dx"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:make-flags (list (string-append "prefix=" '(#:make-flags (list (string-append "prefix="
@ -6081,9 +6081,8 @@ highlights quasi-quoted expressions.")
"stumpwm" "xsl")) "stumpwm" "xsl"))
;; Make sure emacspeak is loaded from the correct directory. ;; Make sure emacspeak is loaded from the correct directory.
(substitute* "etc/emacspeak.sh" (substitute* "etc/emacspeak.sh"
(("exec FLAVOR.*") (("/lisp/emacspeak-setup.el")
(string-append "exec " emacs " -l " lisp (string-append lisp "/lisp/emacspeak-setup.el")))
"/lisp/emacspeak-setup.el $CL_ALL")))
;; Install the convenient startup script. ;; Install the convenient startup script.
(mkdir-p bin) (mkdir-p bin)
(copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak"))) (copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
@ -10160,6 +10159,32 @@ time is being spent during Emacs startup in order to optimize startup time.")
;; A new mpv backend is included in Emms from 5.0. ;; A new mpv backend is included in Emms from 5.0.
(deprecated-package "emacs-emms-player-simple-mpv" emacs-emms)) (deprecated-package "emacs-emms-player-simple-mpv" emacs-emms))
(define-public emacs-magit-gerrit
(let ((version "0.3")
(revision "1")
(commit "ece6f369694aca17f3ac166ed2801b432acfe20d"))
(package
(name "emacs-magit-gerrit")
(version (git-version version revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/terranpro/magit-gerrit.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"0mms0gxv9a3ns8lk5k2wjibm3088y1cmpr3axjdh6ppv7r5wdvii"))))
(build-system emacs-build-system)
(propagated-inputs
`(("emacs-magit" ,emacs-magit)))
(home-page "https://github.com/terranpro/magit-gerrit")
(synopsis "Magit extension for Gerrit")
(description "This Magit extension provides integration with Gerrit,
which makes it possible to conduct Gerrit code reviews directly from within
Emacs.")
(license license:gpl3+))))
(define-public emacs-magit-org-todos-el (define-public emacs-magit-org-todos-el
(let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a")) (let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
(package (package
@ -12920,3 +12945,28 @@ to open SQLite databases.")
Nix expressions. It supports syntax highlighting, indenting and refilling of Nix expressions. It supports syntax highlighting, indenting and refilling of
comments.") comments.")
(license license:lgpl2.1+))) (license license:lgpl2.1+)))
(define-public emacs-simple-mpc
;; There have been no releases.
(let ((commit "bee8520e81292b4c7353e45b193f9a13b482f5b2")
(revision "1"))
(package
(name "emacs-simple-mpc")
(version (git-version "0" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/jorenvo/simple-mpc.git")
(commit commit)))
(file-name (git-file-name name version))
(sha256
(base32
"1ja06pv007cmzjjgka95jlg31k7d29jrih1yxyblsxv85s9sg21q"))))
(build-system emacs-build-system)
(propagated-inputs `(("emacs-s" ,emacs-s)))
(home-page "https://github.com/jorenvo/simple-mpc")
(synopsis "Simple Emacs frontend to mpc")
(description "This package provides an Emacs major mode which acts as a
front end to mpc, a client for the @dfn{Music Player Daemon} (MPD).")
(license license:gpl3+))))

View File

@ -59,6 +59,7 @@
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages texinfo) #:use-module (gnu packages texinfo)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (guix utils) #:use-module (guix utils)
@ -210,6 +211,22 @@ languages.")
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))))) `(("pkg-config" ,pkg-config)))))
(define-public emacs-xwidgets
(package
(inherit emacs)
(name "emacs-xwidgets")
(synopsis "The extensible, customizable, self-documenting text
editor (with xwidgets support)")
(build-system gnu-build-system)
(arguments
`(#:configure-flags
'("--with-xwidgets")
,@(package-arguments emacs)))
(inputs
`(("webkitgtk" ,webkitgtk)
("libxcomposite" ,libxcomposite)
,@(package-inputs emacs)))))
(define-public emacs-no-x (define-public emacs-no-x
(package (inherit emacs) (package (inherit emacs)
(name "emacs-no-x") (name "emacs-no-x")

View File

@ -348,8 +348,8 @@ SEGGER J-Link and compatible devices.")
(replace 'configure (replace 'configure
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(zero? (system* "./configure" (invoke "./configure"
(string-append "--prefix=" out))))))))) (string-append "--prefix=" out))))))))
(home-page "http://jim.tcl.tk") (home-page "http://jim.tcl.tk")
(synopsis "Small footprint Tcl implementation") (synopsis "Small footprint Tcl implementation")
(description "Jim is a small footprint implementation of the Tcl programming (description "Jim is a small footprint implementation of the Tcl programming
@ -575,7 +575,7 @@ with a layered architecture of JTAG interface and TAP support.")
;; have to create the target directories at build time. ;; have to create the target directories at build time.
(add-before 'build 'create-target-directories (add-before 'build 'create-target-directories
(lambda* (#:key make-flags #:allow-other-keys) (lambda* (#:key make-flags #:allow-other-keys)
(zero? (apply system* "make" "install-dirs" make-flags)))) (apply invoke "make" "install-dirs" make-flags)))
(add-before 'build 'set-cross-environment-variables (add-before 'build 'set-cross-environment-variables
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(setenv "CROSS_LIBRARY_PATH" (setenv "CROSS_LIBRARY_PATH"
@ -589,7 +589,7 @@ with a layered architecture of JTAG interface and TAP support.")
#t)) #t))
(add-before 'install 'install-includes (add-before 'install 'install-includes
(lambda* (#:key make-flags #:allow-other-keys) (lambda* (#:key make-flags #:allow-other-keys)
(zero? (apply system* "make" "install-includes" make-flags))))))) (apply invoke "make" "install-includes" make-flags))))))
(native-inputs (native-inputs
`(("propeller-gcc" ,propeller-gcc) `(("propeller-gcc" ,propeller-gcc)
("propeller-binutils" ,propeller-binutils) ("propeller-binutils" ,propeller-binutils)

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2016 David Thompson <davet@gnu.org>
@ -390,9 +390,9 @@ optimizer; and it can produce photorealistic and design review images.")
(replace 'configure (replace 'configure
;; The configure script doesn't tolerate most of our configure flags. ;; The configure script doesn't tolerate most of our configure flags.
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(zero? (system* "sh" "configure" (invoke "sh" "configure"
(string-append "--prefix=" (string-append "--prefix="
(assoc-ref outputs "out"))))))))) (assoc-ref outputs "out"))))))))
(home-page "http://repo.hu/projects/pcb-rnd/") (home-page "http://repo.hu/projects/pcb-rnd/")
(description "PCB RND is a fork of the GNU PCB circuit board editing tool (description "PCB RND is a fork of the GNU PCB circuit board editing tool
featuring various improvements and bug fixes."))) featuring various improvements and bug fixes.")))

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com> ;;; Copyright © 2016 Matthew Jordan <matthewjordandevops@yandex.com>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -26,33 +27,35 @@
(define-public entr (define-public entr
(package (package
(name "entr") (name "entr")
(version "3.6") (version "4.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://entrproject.org/code/entr-" (uri (string-append "http://entrproject.org/code/entr-"
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1sy81np6kgmq04kfn2ckf4fp7jcf5d1963shgmapx3al3kc4c9x4")))) "0y7gvyf0iykpf3gfw09m21hy51m6qn4cpkbrm4nnn7pwrwycj0y5"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:test-target "test" `(#:test-target "test"
#:phases (modify-phases %standard-phases #:phases
(replace 'configure (modify-phases %standard-phases
(lambda* (#:key outputs #:allow-other-keys) (replace 'configure
(let ((out (assoc-ref outputs "out"))) (lambda* (#:key outputs #:allow-other-keys)
(setenv "CONFIG_SHELL" (which "bash")) (let ((out (assoc-ref outputs "out")))
(setenv "CC" (which "gcc")) (setenv "CONFIG_SHELL" (which "bash"))
(setenv "DESTDIR" (string-append out "/")) (setenv "CC" (which "gcc"))
(setenv "PREFIX" "") (setenv "DESTDIR" (string-append out "/"))
(setenv "MANPREFIX" "man") (setenv "PREFIX" "")
(zero? (system* "./configure"))))) (setenv "MANPREFIX" "man")
(add-before 'build 'remove-fhs-file-names (invoke "./configure"))))
(lambda _ (add-before 'build 'remove-fhs-file-names
;; Use the tools available in $PATH. (lambda _
(substitute* "entr.c" ;; Use the tools available in $PATH.
(("/bin/cat") "cat") (substitute* "entr.c"
(("/usr/bin/clear") "clear"))))))) (("/bin/cat") "cat")
(("/usr/bin/clear") "clear"))
#t)))))
(home-page "http://entrproject.org/") (home-page "http://entrproject.org/")
(synopsis "Run arbitrary commands when files change") (synopsis "Run arbitrary commands when files change")
(description (description

View File

@ -3,7 +3,7 @@
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015, 2017 Andy Wingo <wingo@pobox.com> ;;; Copyright © 2015, 2017 Andy Wingo <wingo@pobox.com>
;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com> ;;; Copyright © 2015 David Hashe <david.hashe@dhashe.com>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
@ -209,12 +209,12 @@ other applications that need to directly deal with input devices.")
(arguments (arguments
'(#:phases '(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'autogen (add-after 'unpack 'patch-autogen
(lambda _ (lambda _
;; Run 'configure' in its own phase, not now. ;; Run 'configure' in its own phase, not now.
(substitute* "autogen.sh" (substitute* "autogen.sh"
(("^.*\\./configure.*") "")) (("^.*\\./configure.*") ""))
(zero? (system* "sh" "autogen.sh"))))))) #t)))))
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
("automake" ,automake) ("automake" ,automake)

View File

@ -126,9 +126,9 @@ reliability in mind.")
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(setenv "CONFIG_SHELL" (which "sh")) (setenv "CONFIG_SHELL" (which "sh"))
(setenv "SHELL" (which "sh")) (setenv "SHELL" (which "sh"))
(zero? (system* "./configure" (invoke "./configure"
(string-append "--prefix=" out))))))) (string-append "--prefix=" out))))))
#:tests? #f)) ;there are no tests #:tests? #f)) ;there are no tests
(inputs `(("ncurses" ,ncurses))) (inputs `(("ncurses" ,ncurses)))
(home-page "http://www.ncftp.com/ncftp/") (home-page "http://www.ncftp.com/ncftp/")
(synopsis "Command-line File Transfer Protocol (FTP) client") (synopsis "Command-line File Transfer Protocol (FTP) client")

View File

@ -4027,7 +4027,7 @@ emerges from a sewer hole and pulls her below ground.")
(define-public cdogs-sdl (define-public cdogs-sdl
(package (package
(name "cdogs-sdl") (name "cdogs-sdl")
(version "0.6.8") (version "0.6.9")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -4036,7 +4036,7 @@ emerges from a sewer hole and pulls her below ground.")
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1v0adxm4xsix6r6j9hs7vmss7pxrb37azwfazr54p1dmfz4s6rp8")))) "13gyv2hzk43za1n3lsjnd5v64xlzfzq7n10scd1rcbsnk1n007zr"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags

View File

@ -4,6 +4,7 @@
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -49,20 +50,20 @@
#:use-module (gnu packages xml)) #:use-module (gnu packages xml))
(define-public gnucash (define-public gnucash
;; TODO: Unbundle libraries such as guile-json found under the "borrowed/"
;; directory.
(package (package
(name "gnucash") (name "gnucash")
(version "3.3") (version "3.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/" (uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/"
version "/gnucash-" version ".tar.bz2")) version "/gnucash-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0grr5qi5rn1xvr7qx5d7mcxa2mcgycy2b325ry73bb485a6yv5l3")) "1ms2wg4sh5gq3rpjmmnp85rh5nc9ahca1imxkvhz4d3yiwy8hm52"))
(patches (search-patches "gnucash-price-quotes-perl.patch" (patches (search-patches "gnucash-fix-test-transaction-failure.patch"))))
"gnucash-disable-failing-tests.patch"
"gnucash-fix-test-transaction-failure.patch"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(inputs (inputs
`(("guile" ,guile-2.2) `(("guile" ,guile-2.2)
@ -79,18 +80,18 @@
("perl-finance-quote" ,perl-finance-quote) ("perl-finance-quote" ,perl-finance-quote)
("tzdata" ,tzdata-for-tests))) ("tzdata" ,tzdata-for-tests)))
(native-inputs (native-inputs
`(("glib" ,glib "bin") ; glib-compile-schemas, etc. `(("glib" ,glib "bin") ; glib-compile-schemas, etc.
("intltool" ,intltool) ("intltool" ,intltool)
("googlemock" ,(package-source googletest)) ("googlemock" ,(package-source googletest))
("googletest" ,googletest) ("googletest" ,googletest)
("gnucash-docs" ,gnucash-docs) ("gnucash-docs" ,gnucash-docs)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))
(outputs '("out" "doc")) (outputs '("out" "doc" "debug"))
(arguments (arguments
`(#:test-target "check" `(#:test-target "check"
#:configure-flags #:configure-flags
(list "-DWITH_OFX=OFF" ; libofx is not available yet (list "-DWITH_OFX=OFF" ; libofx is not available yet
"-DWITH_SQL=OFF") ; without dbi.h "-DWITH_SQL=OFF") ; without dbi.h
#:make-flags '("GUILE_AUTO_COMPILE=0") #:make-flags '("GUILE_AUTO_COMPILE=0")
#:modules ((guix build cmake-build-system) #:modules ((guix build cmake-build-system)
((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
@ -119,44 +120,64 @@
(("set\\(SHELL /bin/bash\\)") (("set\\(SHELL /bin/bash\\)")
(string-append "set(SHELL " (which "bash") ")"))) (string-append "set(SHELL " (which "bash") ")")))
#t))) #t)))
;; After wrapping gnc-fq-check and gnc-fq-helper we can no longer
;; execute them with perl, so execute them directly instead.
(add-after 'unpack 'fix-finance-quote-check
(lambda _
(substitute* "libgnucash/scm/price-quotes.scm"
(("\"perl\" \"-w\" ") ""))
#t))
;; The test-stress-options unit test is known to fail, so we disable
;; it (see: https://bugs.gnucash.org/show_bug.cgi?id=796877).
(add-after 'unpack 'disable-stress-options-test
(lambda _
(substitute* "gnucash/report/standard-reports/test/CMakeLists.txt"
(("test-stress-options.scm") ""))
#t))
;; The qof test requires the en_US, en_GB, and fr_FR locales.
(add-before 'check 'install-locales
(lambda _
(setenv "LOCPATH" (getcwd))
(invoke "localedef" "-i" "en_US" "-f" "UTF-8" "./en_US.UTF-8")
(invoke "localedef" "-i" "en_GB" "-f" "UTF-8" "./en_GB.UTF-8")
(invoke "localedef" "-i" "fr_FR" "-f" "UTF-8" "./fr_FR.UTF-8")
#t))
;; There are about 100 megabytes of documentation. ;; There are about 100 megabytes of documentation.
(add-after (add-after 'install 'install-docs
'install 'install-docs (lambda* (#:key inputs outputs #:allow-other-keys)
(lambda* (#:key inputs outputs #:allow-other-keys) (let ((docs (assoc-ref inputs "gnucash-docs"))
(let ((docs (assoc-ref inputs "gnucash-docs")) (doc-output (assoc-ref outputs "doc")))
(doc-output (assoc-ref outputs "doc"))) (mkdir-p (string-append doc-output "/share"))
(mkdir-p (string-append doc-output "/share")) (symlink (string-append docs "/share/gnome")
(symlink (string-append docs "/share/gnome") (string-append doc-output "/share/gnome"))
(string-append doc-output "/share/gnome")) #t)))
#t))) (add-after 'install-docs 'wrap-programs
(add-after (lambda* (#:key inputs outputs #:allow-other-keys)
'install-docs 'wrap-programs (for-each (lambda (prog)
(lambda* (#:key inputs outputs #:allow-other-keys) (wrap-program (string-append (assoc-ref outputs "out")
(for-each (lambda (prog) "/bin/" prog)
(wrap-program (string-append (assoc-ref outputs "out") `("PERL5LIB" ":" prefix
"/bin/" prog) ,(map (lambda (o)
`("PERL5LIB" ":" prefix (string-append o "/lib/perl5/site_perl/"
,(map (lambda (o) ,(package-version perl)))
(string-append o "/lib/perl5/site_perl/" (if (string=? prog "gnc-fq-helper")
,(package-version perl))) (list
(if (string=? prog "gnc-fq-helper") ,@(transitive-input-references
(list 'inputs
,@(transitive-input-references (map (lambda (l)
'inputs (assoc l (inputs)))
(map (lambda (l) '("perl-finance-quote"
(assoc l (inputs))) "perl-date-manip"))))
'("perl-finance-quote" (list
"perl-date-manip")))) ,@(transitive-input-references
(list 'inputs
,@(transitive-input-references (map (lambda (l)
'inputs (assoc l (inputs)))
(map (lambda (l) '("perl-finance-quote")))))))))
(assoc l (inputs))) '("gnucash"
'("perl-finance-quote"))))))))) "gnc-fq-check"
'("gnucash" "gnc-fq-helper"
"gnc-fq-check" "gnc-fq-dump"))))
"gnc-fq-helper"
"gnc-fq-dump"))))
(add-after 'install 'glib-or-gtk-compile-schemas (add-after 'install 'glib-or-gtk-compile-schemas
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)) (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
(add-after 'install 'glib-or-gtk-wrap (add-after 'install 'glib-or-gtk-wrap
@ -168,44 +189,46 @@
It can be used to track bank accounts, stocks, income and expenses, based on It can be used to track bank accounts, stocks, income and expenses, based on
the double-entry accounting practice. It includes support for QIF/OFX/HBCI the double-entry accounting practice. It includes support for QIF/OFX/HBCI
import and transaction matching. It also automates several tasks, such as import and transaction matching. It also automates several tasks, such as
financial calculations or scheduled transactions.") financial calculations or scheduled transactions.
To make the GnuCash documentation available, its doc output must be
installed as well as Yelp, the Gnome help browser.")
(license license:gpl3+))) (license license:gpl3+)))
;; This package is not public, since we use it to build the "doc" output of ;; This package is not public, since we use it to build the "doc" output of
;; the gnucash package (see above). It would be confusing if it were public. ;; the gnucash package (see above). It would be confusing if it were public.
(define gnucash-docs (define gnucash-docs
(package (let ((revision "a")) ;set to the empty string when no revision
(name "gnucash-docs") (package
(version (package-version gnucash)) (name "gnucash-docs")
(source (version (package-version gnucash))
(origin (source
(method url-fetch) (origin
(uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/" (method url-fetch)
version "/gnucash-docs-" version ".tar.gz")) (uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/"
(sha256 version "/gnucash-docs-" version revision ".tar.gz"))
(base32 (sha256
"10v4hw4lh888r8yv473pqrvzfjg8dwamk62sghs93rn88ndwm16c")))) (base32
(build-system gnu-build-system) "0bgjxpxgk7hy8ihn1kvd8p6vv191q5md2hz6jb9mqc4aykpvdlq7"))))
;; These are native-inputs because they are only required for building the (build-system gnu-build-system)
;; documentation. ;; These are native-inputs because they are only required for building the
(native-inputs ;; documentation.
`(("libxml2" ,libxml2) (native-inputs
;; The "check" target needs the docbook xml packages for validating the `(("libxml2" ,libxml2)
;; DocBook XML during the tests. ;; The "check" target needs the docbook xml package for validating the
("docbook-xml-4.4" ,docbook-xml-4.4) ;; DocBook XML during the tests.
("docbook-xml-4.2" ,docbook-xml-4.2) ("docbook-xml" ,docbook-xml)
("docbook-xml-4.1.2" ,docbook-xml-4.1.2) ("libxslt" ,libxslt)
("libxslt" ,libxslt) ("docbook-xsl" ,docbook-xsl)
("docbook-xsl" ,docbook-xsl) ("scrollkeeper" ,scrollkeeper)))
("scrollkeeper" ,scrollkeeper))) (home-page "https://www.gnucash.org/")
(home-page "https://www.gnucash.org/") (synopsis "Documentation for GnuCash")
(synopsis "Documentation for GnuCash") (description
(description "User guide and other documentation for GnuCash in various languages.
"User guide and other documentation for GnuCash in various languages.
This package exists because the GnuCash project maintains its documentation in This package exists because the GnuCash project maintains its documentation in
an entirely separate package from the actual GnuCash program. It is intended an entirely separate package from the actual GnuCash program. It is intended
to be read using the GNOME Yelp program.") to be read using the GNOME Yelp program.")
(license (list license:fdl1.1+ license:gpl3+)))) (license (list license:fdl1.1+ license:gpl3+)))))
(define-public gwenhywfar (define-public gwenhywfar
(package (package

View File

@ -5,7 +5,7 @@
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org> ;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2016 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2016 Christopher Baines <mail@cbaines.net>
@ -369,7 +369,7 @@ libskba (working with X.509 certificates and CMS data).")
(define-public gpgme (define-public gpgme
(package (package
(name "gpgme") (name "gpgme")
(version "1.11.1") (version "1.12.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -377,7 +377,16 @@ libskba (working with X.509 certificates and CMS data).")
".tar.bz2")) ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0vxx5xaag3rhp4g2arp5qm77gvz4kj0m3hnpvhkdvqyjfhbi26rd")))) "1n4c1q2ls7sqx1vpr3p5n8vbjkw6kqp8jxqa28p0x9j36wf9bp5l"))
;; One test fails because the conflict keys have expired. See
;; https://dev.gnupg.org/T3815
(patches (list (origin
(method url-fetch)
(uri "https://dev.gnupg.org/rM66376f3e206a1aa791d712fb8577bb3490268f60?diff=1")
(file-name "gpgme-fix-conflict-test-keys.patch")
(sha256
(base32
"0j718iy5a9fhkrfs4gzrnm4ggi163prqf1i8lfmqczswvz88zfly")))))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("gnupg" ,gnupg))) `(("gnupg" ,gnupg)))
@ -523,11 +532,9 @@ distributed separately.")
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'build 'make-build (add-before 'build 'make-build
(lambda _ (lambda _ (invoke "make" "build")))
(zero? (system* "make" "build"))))
(replace 'check (replace 'check
(lambda _ (lambda _ (invoke "make" "check"))))))
(zero? (system* "make" "check")))))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("gnupg" ,gnupg-1))) `(("gnupg" ,gnupg-1)))

View File

@ -651,8 +651,8 @@ output.")
(replace 'configure (replace 'configure
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(zero? (system* "qmake" (invoke "qmake"
(string-append "prefix=" out)))))) (string-append "prefix=" out)))))
(add-after 'install 'wrap-program (add-after 'install 'wrap-program
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
@ -668,7 +668,8 @@ output.")
cd \"~a\" cd \"~a\"
exec -a \"$0\" ~a/.brdf-real~%" exec -a \"$0\" ~a/.brdf-real~%"
data bin))) data bin)))
(chmod "brdf" #o555)))))))) (chmod "brdf" #o555)))
#t)))))
(native-inputs (native-inputs
`(("qttools" ,qttools))) ;for 'qmake' `(("qttools" ,qttools))) ;for 'qmake'
(inputs (inputs

View File

@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co> ;;; Copyright © 2016 Alex Sassmannshausen <alex@pompo.co>
;;; Copyright © 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com> ;;; Copyright © 2016 Erik Edrosa <erik.edrosa@gmail.com>
;;; Copyright © 2016 Eraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Eraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
@ -1288,7 +1288,7 @@ key-value cache and store.")
(define-public guile-wisp (define-public guile-wisp
(package (package
(name "guile-wisp") (name "guile-wisp")
(version "0.9.8") (version "0.9.9")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://bitbucket.org/ArneBab/" (uri (string-append "https://bitbucket.org/ArneBab/"
@ -1296,57 +1296,48 @@ key-value cache and store.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1f2bbicq1rxnwmiplrm4r75wj06w385mjkyvi7g4k740bgwcrzxr")))) "1xa0f0fvcrimqap50azv5872bfx8jbhc6baxa1prpbwcksbh8gdz"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:modules ((guix build gnu-build-system) `(#:modules ((guix build gnu-build-system)
(guix build utils) (guix build utils)
(ice-9 rdelim) (ice-9 rdelim)
(ice-9 popen)) (ice-9 popen))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'configure 'substitute-before-config (add-before 'configure 'patch-/usr/bin/env
(lambda _
(lambda* (#:key inputs #:allow-other-keys) (substitute* "Makefile.in"
(let ((bash (assoc-ref inputs "bash"))) (("/usr/bin/env bash") (which "bash"))
;; Puts together some test files with /bin/bash hardcoded (("\\$\\(GUILE_EFFECTIVE_VERSION\\)/site")
(substitute* "Makefile.in" "site/$(GUILE_EFFECTIVE_VERSION)")) ;use the right order
(("/usr/bin/env bash") #t))
(string-append bash "/bin/bash"))
(("\\$\\(GUILE_EFFECTIVE_VERSION\\)/site")
"site/$(GUILE_EFFECTIVE_VERSION)")) ;use the right order
#t)))
;; auto compilation breaks, but if we set HOME to /tmp, ;; auto compilation breaks, but if we set HOME to /tmp,
;; that works ok ;; that works ok
(add-before (add-before 'check 'auto-compile-hacky-workaround
'check 'auto-compile-hacky-workaround (lambda _ (setenv "HOME" "/tmp") #t))
(lambda _
(setenv "HOME" "/tmp")
#t))
(add-after 'install 'install-go-files (add-after 'install 'install-go-files
(lambda* (#:key outputs inputs #:allow-other-keys) (lambda* (#:key outputs inputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(effective (read-line (effective (read-line
(open-pipe* OPEN_READ (open-pipe* OPEN_READ
"guile" "-c" "guile" "-c"
"(display (effective-version))"))) "(display (effective-version))")))
(module-dir (string-append out "/share/guile/site/" (module-dir (string-append out "/share/guile/site/"
effective)) effective))
(object-dir (string-append out "/lib/guile/" effective (object-dir (string-append out "/lib/guile/" effective
"/site-ccache")) "/site-ccache"))
(prefix (string-length module-dir))) (prefix (string-length module-dir)))
;; compile to the destination ;; compile to the destination
(for-each (lambda (file) (for-each (lambda (file)
(let* ((base (string-drop (string-drop-right file 4) (let* ((base (string-drop (string-drop-right file 4)
prefix)) prefix))
(go (string-append object-dir base ".go"))) (go (string-append object-dir base ".go")))
(invoke "guild" "compile" "-L" module-dir (invoke "guild" "compile" "-L" module-dir
file "-o" go))) file "-o" go)))
(find-files module-dir "\\.scm$")) (find-files module-dir "\\.scm$"))
#t)))))) #t))))))
(home-page "http://draketo.de/english/wisp") (home-page "https://draketo.de/english/wisp")
(inputs (inputs
`(("guile" ,guile-2.2))) `(("guile" ,guile-2.2)))
(native-inputs (native-inputs

View File

@ -11403,4 +11403,94 @@ from a shell. The @code{tldr} pages are a community effort to simplify the
man pages with practical examples.") man pages with practical examples.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public ghc-c2hs
(package
(name "ghc-c2hs")
(version "0.28.6")
(source
(origin
(method url-fetch)
(uri (string-append
"https://hackage.haskell.org/package/c2hs/c2hs-"
version
".tar.gz"))
(sha256
(base32
"1nplgxfin139x12sb656f5870rpdclrhzi8mq8pry035qld15pci"))))
(build-system haskell-build-system)
(inputs
`(("ghc-language-c" ,ghc-language-c)
("ghc-dlist" ,ghc-dlist)))
(native-inputs
`(("ghc-test-framework" ,ghc-test-framework)
("ghc-test-framework-hunit" ,ghc-test-framework-hunit)
("ghc-hunit" ,ghc-hunit)
("ghc-shelly" ,ghc-shelly)
("ghc-text" ,ghc-text)
("gcc" ,gcc)))
(arguments
`(;; XXX: Test failures are induced by a parse error in <bits/floatn.h>
;; of glibc 2.28.
#:tests? #f
#:phases
(modify-phases %standard-phases
(add-before 'check 'set-cc
;; add a cc executable in the path, needed for some tests to pass
(lambda* (#:key inputs #:allow-other-keys)
(let ((gcc (assoc-ref inputs "gcc"))
(tmpbin (tmpnam))
(curpath (getenv "PATH")))
(mkdir-p tmpbin)
(symlink (which "gcc") (string-append tmpbin "/cc"))
(setenv "PATH" (string-append tmpbin ":" curpath)))
#t))
(add-after 'check 'remove-cc
;; clean the tmp dir made in 'set-cc
(lambda _
(let* ((cc-path (which "cc"))
(cc-dir (dirname cc-path)))
(delete-file-recursively cc-dir)
#t))))))
(home-page "https://github.com/haskell/c2hs")
(synopsis "Create Haskell bindings to C libraries")
(description "C->Haskell assists in the development of Haskell bindings to
C libraries. It extracts interface information from C header files and
generates Haskell code with foreign imports and marshaling. Unlike writing
foreign imports by hand (or using hsc2hs), this ensures that C functions are
imported with the correct Haskell types.")
(license license:gpl2)))
(define-public ghc-libmpd
(package
(name "ghc-libmpd")
(version "0.9.0.9")
(source
(origin
(method url-fetch)
(uri (string-append
"mirror://hackage/package/libmpd/libmpd-"
version
".tar.gz"))
(sha256
(base32
"1931m23iqb4wddpdidm4ph746zpaw41kkjzmb074j7yyfpk7x1jv"))))
(build-system haskell-build-system)
(inputs
`(("ghc-attoparsec" ,ghc-attoparsec)
("ghc-old-locale" ,ghc-old-locale)
("ghc-text" ,ghc-text)
("ghc-data-default-class" ,ghc-data-default-class)
("ghc-network" ,ghc-network)
("ghc-utf8-string" ,ghc-utf8-string)))
(native-inputs
`(("ghc-quickcheck" ,ghc-quickcheck)
("ghc-hspec" ,ghc-hspec)
("hspec-discover" ,hspec-discover)))
(home-page "https://github.com/vimus/libmpd-haskell")
(synopsis "Haskell client library for the Music Player Daemon")
(description "This package provides a pure Haskell client library for the
Music Player Daemon.")
(license license:expat)))
;;; haskell.scm ends here ;;; haskell.scm ends here

View File

@ -8,7 +8,7 @@
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 nee <nee-git@hidamari.blue> ;;; Copyright © 2017 nee <nee-git@hidamari.blue>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -126,28 +126,25 @@ actions.")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'autogen (add-before 'bootstrap 'pre-bootstrap
(lambda _ (lambda _
(define (write-dummy-changelog port) (define (write-dummy-changelog port)
(display "See Git history for a change log.\n" port)) (display "See Git history for a change log.\n" port))
(setenv "NOCONFIGURE" "true")
;; Create ChangeLog{,.html} to placate the makefile, which would ;; Create ChangeLog{,.html} to placate the makefile, which would
;; otherwise require access to the Git repo. ;; otherwise require access to the Git repo.
(call-with-output-file "ChangeLog" (call-with-output-file "ChangeLog"
write-dummy-changelog) write-dummy-changelog)
(call-with-output-file "ChangeLog.html" (call-with-output-file "ChangeLog.html"
write-dummy-changelog) write-dummy-changelog)
(setenv "NOCONFIGURE" "true")
(zero? (system* "sh" "autogen.sh"))))))) #t)))))
(inputs (inputs
`(("clutter" ,clutter) `(("clutter" ,clutter)
("libchamplain" ,libchamplain) ("libchamplain" ,libchamplain)
("lcms" ,lcms) ("lcms" ,lcms)
("exiv2" ,exiv2) ("exiv2" ,exiv2)
("libpng" ,libpng) ("libpng" ,libpng)
("gtk+" ,gtk+-2))) ("gtk+" ,gtk+)))
(native-inputs (native-inputs
`(("autoconf" ,autoconf) `(("autoconf" ,autoconf)
("automake" ,automake) ("automake" ,automake)
@ -304,37 +301,24 @@ your images. Among its features are:
`(#:tests? #f ; no tests `(#:tests? #f ; no tests
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'configure (add-after 'unpack 'patch-convert
(lambda* (#:key inputs #:allow-other-keys)
(let* ((magic (assoc-ref %build-inputs "imagemagick"))
(convert (string-append magic "/bin/convert")))
(substitute* "catimg"
;; By replacing "convert", we also replace the "convert"
;; in the message 'The version of convert is too old, don't
;; expect good results :('. This should not happen, but in
;; practice this error message should not affect us.
(("convert") convert))
#t)))
(replace 'build
(lambda _ (lambda _
(let* ((out (assoc-ref %outputs "out")) (substitute* "catimg"
(man (string-append out "/share/man/man1"))) ;; By replacing "convert", we also replace the "convert"
(zero? (system* "cmake" ;; in the message 'The version of convert is too old, don't
(string-append "-DCMAKE_INSTALL_PREFIX=" out) ;; expect good results :('. This should not happen, but in
(string-append "-DMAN_OUTPUT_PATH=" man) ;; practice this error message should not affect us.
".")) (("convert") (which "convert")))
(zero? (system* "make"))))) #t))
(add-before 'install 'install-script (add-after 'install 'install-script
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
;; The bash script lacks an file extension. We have to rename ;; The bash script lacks an file extension. We have to rename
;; it so that the C program and the bash script can be happy ;; it so that the C program and the bash script can be happy
;; side by side. ;; side by side.
(let* ((out (assoc-ref outputs "out")) (copy-file "../source/catimg"
(bin (string-append out "/bin"))) (string-append (assoc-ref outputs "out")
(install-file "catimg" bin) "/bin/catimg.sh"))
(rename-file (string-append bin "/catimg") #t)))))
(string-append bin "/catimg.sh"))
#t))))))
(inputs (inputs
`(("imagemagick" ,imagemagick))) ; for the bash script version `(("imagemagick" ,imagemagick))) ; for the bash script version
(home-page "https://github.com/posva/catimg") (home-page "https://github.com/posva/catimg")

View File

@ -12,7 +12,7 @@
;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org> ;;; Copyright © 2016 Raymond Nicholson <rain1@openmailbox.org>
;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
;;; Copyright © 2016, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> ;;; Copyright © 2016, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2016 John Darrington <jmd@gnu.org> ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016, 2017, 2018 Marius Bakke <mbakke@fastmail.com>
@ -441,8 +441,8 @@ It has been modified to remove all non-free binary blobs.")
#:patches %linux-libre-4.19-patches #:patches %linux-libre-4.19-patches
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define %linux-libre-4.14-version "4.14.94") (define %linux-libre-4.14-version "4.14.95")
(define %linux-libre-4.14-hash "06yf4ggdf9dn7zh17pv1kx84sn39mbxpfhsx1mdckzwpis7lcjzs") (define %linux-libre-4.14-hash "07bxbwb5fan96aws6g91vxkrvl80a53wjbl8xkh4q3c6iah8wkvf")
(define-public linux-libre-4.14 (define-public linux-libre-4.14
(make-linux-libre %linux-libre-4.14-version (make-linux-libre %linux-libre-4.14-version
@ -451,8 +451,8 @@ It has been modified to remove all non-free binary blobs.")
#:configuration-file kernel-config)) #:configuration-file kernel-config))
(define-public linux-libre-4.9 (define-public linux-libre-4.9
(make-linux-libre "4.9.151" (make-linux-libre "4.9.152"
"0pjcqmn03zb0n83rlfkrq10k7fl7dbh3ll2d8k9sqi3m81c3843h" "0qssksykzbcy58aqvmxk9h1xpaqvfwp31xvxfmwxdh7z4n3yn60y"
'("x86_64-linux" "i686-linux") '("x86_64-linux" "i686-linux")
#:configuration-file kernel-config)) #:configuration-file kernel-config))
@ -1506,25 +1506,23 @@ transparently through a bridge.")
(add-after 'install 'install-python (add-after 'install 'install-python
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(define (python-inst python) (define (python-inst python)
(let ((ldflags (format #f "LDFLAGS=-Wl,-rpath=~a/lib" (invoke python "setup.py" "build")
(assoc-ref %outputs "out"))) (invoke python "setup.py" "install"
(pyout (assoc-ref %outputs python))) (string-append "--prefix="
(and (assoc-ref %outputs python)))
(zero? (system (format #f "~a ~a setup.py build" (invoke python "setup.py" "clean"))
ldflags python pyout))) (setenv "LDFLAGS" (format #f "-Wl,-rpath=~a/lib"
(zero? (assoc-ref %outputs "out")))
(system (format #f "~a ~a setup.py install --prefix=~a"
ldflags python pyout)))
(zero? (system* python "setup.py" "clean")))))
(with-directory-excursion "./python" (with-directory-excursion "./python"
(every python-inst '("python2" "python3"))))) (for-each python-inst '("python2" "python3")))
#t))
(add-after 'install 'install-doc (add-after 'install 'install-doc
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((dest (string-append (assoc-ref outputs "doc") (let ((dest (string-append (assoc-ref outputs "doc")
"/share/doc/libnl"))) "/share/doc/libnl")))
(mkdir-p dest) (mkdir-p dest)
(zero? (system* "tar" "xf" (assoc-ref inputs "libnl3-doc") (invoke "tar" "xf" (assoc-ref inputs "libnl3-doc")
"--strip-components=1" "-C" dest)))))))) "--strip-components=1" "-C" dest)))))))
(home-page "https://www.infradead.org/~tgr/libnl/") (home-page "https://www.infradead.org/~tgr/libnl/")
(synopsis "NetLink protocol library suite") (synopsis "NetLink protocol library suite")
(description (description

View File

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015, 2016, 2017 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org> ;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -104,33 +105,32 @@ on just one button press.")
(license license:gpl2+))) (license license:gpl2+)))
(define-public python-lirc (define-public python-lirc
(let ((commit "4091fe918f3eed2513dad008828565cace408d2f") (let ((commit "c28708bbeb6e02d85f13dd7e0b24e8e86abc215b")
(revision "1")) (revision "2"))
(package (package
(name "python-lirc") (name "python-lirc")
(version (string-append "1.2.1-" revision "." (string-take commit 7))) (version (git-version "1.2.1" revision commit))
(source (source
(origin (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/tompreston/python-lirc.git") (url "https://github.com/tompreston/python-lirc.git")
(commit commit))) (commit commit)))
(sha256 (file-name (git-file-name name version))
(base32 (sha256
"0cm47s5pvijfs3v2k7hmpxv3mvp4n5la0ihnsczk5ym3iq166jil")) (base32
(file-name (string-append name "-" version)))) "13s9zqyfh871ls1aha47rhmk13b4mcyfckcn2sw70bvc26832gk6"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("lirc" ,lirc))) `(("lirc" ,lirc)))
(native-inputs (native-inputs
`(("python-cython" ,python-cython))) `(("python-cython" ,python-cython)))
(arguments (arguments
`(#:tests? #f ; the only tests that exist are human-interactive `(#:tests? #f ; the only tests that exist are interactive
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'build 'build-from-cython-files (add-before 'build 'build-from-cython-files
(lambda _ (lambda _ (invoke "make" "py3"))))))
(zero? (system* "make" "py3")))))))
(home-page "https://github.com/tompreston/python-lirc") (home-page "https://github.com/tompreston/python-lirc")
(synopsis "Python bindings for LIRC") (synopsis "Python bindings for LIRC")
(description "@code{lirc} is a Python module which provides LIRC bindings.") (description "@code{lirc} is a Python module which provides LIRC bindings.")
@ -146,7 +146,6 @@ on just one button press.")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'build 'build-from-cython-files (add-before 'build 'build-from-cython-files
(lambda _ (lambda _ (invoke "make" "py2"))))))
(zero? (system* "make" "py2")))))))
(native-inputs (native-inputs
`(("python2-cython" ,python2-cython)))))) `(("python2-cython" ,python2-cython))))))

View File

@ -505,8 +505,9 @@ statistical profiler, a code coverage tool, and many other extensions.")
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'unpack (replace 'unpack
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(and (zero? (system* "tar" "xzvf" (assoc-ref inputs "ccl"))) (invoke "tar" "xzvf" (assoc-ref inputs "ccl"))
(begin (chdir "ccl") #t)))) (chdir "ccl")
#t))
(delete 'configure) (delete 'configure)
(add-before 'build 'pre-build (add-before 'build 'pre-build
;; Enter the source directory for the current platform's lisp ;; Enter the source directory for the current platform's lisp
@ -527,7 +528,7 @@ statistical profiler, a code coverage tool, and many other extensions.")
(substitute* '("Makefile") (substitute* '("Makefile")
(("/bin/rm") "rm")) (("/bin/rm") "rm"))
(setenv "CC" "gcc") (setenv "CC" "gcc")
(zero? (system* "make" "clean")))) (invoke "make" "clean")))
;; XXX Do we need to recompile the heap image as well for Guix? ;; XXX Do we need to recompile the heap image as well for Guix?
;; For now just use the one we already got in the tarball. ;; For now just use the one we already got in the tarball.
(replace 'install (replace 'install

View File

@ -3,7 +3,7 @@
;;; Copyright © 2014, 2017 Julien Lepiller <julien@lepiller.eu> ;;; Copyright © 2014, 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca> ;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
@ -186,18 +186,18 @@ end-to-end encryption.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'install 'install-etc (add-after 'install 'install-etc
(lambda* (#:key (make-flags '()) #:allow-other-keys) (lambda* (#:key (make-flags '()) #:allow-other-keys)
(zero? (apply system* "make" "install-etc" make-flags)))) (apply invoke "make" "install-etc" make-flags)))
(add-after 'install-etc 'install-lib (add-after 'install-etc 'install-lib
(lambda* (#:key (make-flags '()) #:allow-other-keys) (lambda* (#:key (make-flags '()) #:allow-other-keys)
(zero? (apply system* "make" "install-dev" make-flags)))) (apply invoke "make" "install-dev" make-flags)))
(replace 'configure (replace 'configure
;; bitlbee's configure script does not tolerate many of the ;; bitlbee's configure script does not tolerate many of the
;; variable settings that Guix would pass to it. ;; variable settings that Guix would pass to it.
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(zero? (system* "./configure" (invoke "./configure"
(string-append "--prefix=" (string-append "--prefix="
(assoc-ref outputs "out")) (assoc-ref outputs "out"))
"--otr=1"))))))) "--otr=1"))))))
(synopsis "IRC to instant messaging gateway") (synopsis "IRC to instant messaging gateway")
(description "BitlBee brings IM (instant messaging) to IRC clients, for (description "BitlBee brings IM (instant messaging) to IRC clients, for
people who have an IRC client running all the time and don't want to run an people who have an IRC client running all the time and don't want to run an
@ -225,12 +225,12 @@ identi.ca and status.net).")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'autogen (add-after 'unpack 'patch-autogen
(lambda _ (lambda _
(let ((sh (which "sh"))) (let ((sh (which "sh")))
(substitute* "autogen.sh" (("/bin/sh") sh)) (substitute* "autogen.sh" (("/bin/sh") sh))
(setenv "CONFIG_SHELL" sh) (setenv "CONFIG_SHELL" sh))
(zero? (system* "./autogen.sh"))))) #t))
(replace 'configure (replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(invoke "./configure" (invoke "./configure"
@ -718,20 +718,20 @@ on Axolotl and PEP.")
(define-public dino (define-public dino
;; The only release tarball is for version 0.0, but it is very old and fails ;; The only release tarball is for version 0.0, but it is very old and fails
;; to build. ;; to build.
(let ((commit "f25fadde2d6c9492b9cafe2cddbcc7b966942e47") (let ((commit "8e14ac6d714b7f88e16de31a6c795e811dc27417")
(revision "3")) (revision "4"))
(package (package
(name "dino") (name "dino")
(version (string-append "0.0-" revision "." (string-take commit 9))) (version (git-version "0.0" revision commit))
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
(url "https://github.com/dino/dino.git") (url "https://github.com/dino/dino.git")
(commit commit))) (commit commit)))
(file-name (string-append name "-" version "-checkout")) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"1nhzrw3pbpybn9qclckk6z427vbgnqd0y1l63zd1rfw4zw099mzs")))) "0xfmwnc2f8lsvmp7m8ggikzqjaw5z6wmxrv6j5ljha5ckffrdd9m"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:tests? #f ; there are no tests `(#:tests? #f ; there are no tests
@ -750,14 +750,10 @@ on Axolotl and PEP.")
;; libsignal-protocol-c, so we need to put the sources there. ;; libsignal-protocol-c, so we need to put the sources there.
(add-after 'unpack 'unpack-sources (add-after 'unpack 'unpack-sources
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((unpack (lambda (source target) (with-directory-excursion "plugins/signal-protocol/libsignal-protocol-c"
(with-directory-excursion target (invoke "tar" "xvf"
(zero? (system* "tar" "xvf" (assoc-ref inputs "libsignal-protocol-c-source")
(assoc-ref inputs source) "--strip-components=1"))))
"--strip-components=1"))))))
(unpack "libsignal-protocol-c-source"
"plugins/signal-protocol/libsignal-protocol-c")
#t)))
(add-after 'install 'glib-or-gtk-wrap (add-after 'install 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
(inputs (inputs
@ -765,7 +761,8 @@ on Axolotl and PEP.")
("libsignal-protocol-c" ,libsignal-protocol-c) ("libsignal-protocol-c" ,libsignal-protocol-c)
("libgcrypt" ,libgcrypt) ("libgcrypt" ,libgcrypt)
("libsoup" ,libsoup) ("libsoup" ,libsoup)
("sqlite" ,sqlite) ("qrencode" ,qrencode)
("sqlite" ,sqlite-with-column-metadata)
("gpgme" ,gpgme) ("gpgme" ,gpgme)
("gtk+" ,gtk+) ("gtk+" ,gtk+)
("glib-networking" ,glib-networking) ("glib-networking" ,glib-networking)
@ -1269,7 +1266,7 @@ into existing applications.")
(define-public perl-net-psyc (define-public perl-net-psyc
(package (package
(name "perl-net-psyc") (name "perl-net-psyc")
(version "1.1") (version "1.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -1278,13 +1275,10 @@ into existing applications.")
(file-name (string-append name "-" version ".zip")) (file-name (string-append name "-" version ".zip"))
(sha256 (sha256
(base32 (base32
"1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42")) "0vsjclglkwgbyd9m5ad642fyysxw2x725nhq4r2m9pvqaq6s5yf2"))))
;; psycmp3 currently depends on MP3::List and rxaudio (shareware),
;; we can add it back when this is no longer the case.
(snippet '(begin
(delete-file "contrib/psycmp3")
#t))))
(build-system perl-build-system) (build-system perl-build-system)
(native-inputs
`(("unzip" ,unzip)))
(inputs (inputs
`(("perl-curses" ,perl-curses) `(("perl-curses" ,perl-curses)
("perl-io-socket-ssl" ,perl-io-socket-ssl))) ("perl-io-socket-ssl" ,perl-io-socket-ssl)))
@ -1296,8 +1290,7 @@ into existing applications.")
;; (leaves out psycion) and says ;; (leaves out psycion) and says
;; "# Just to give you a rough idea". XXX: Fix it upstream. ;; "# Just to give you a rough idea". XXX: Fix it upstream.
(replace 'build (replace 'build
(lambda _ (lambda _ (invoke "make" "manuals")))
(zero? (system* "make" "manuals"))))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
@ -1538,9 +1531,6 @@ support, and more.")
(arguments (arguments
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'autogen
(lambda _
(zero? (system* "sh" "autogen.sh"))))
;; For 'system' commands in Scheme code. ;; For 'system' commands in Scheme code.
(add-after 'install 'wrap-program (add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)

View File

@ -255,11 +255,11 @@ and numerical quadrature programs are included.")
(delete 'configure) ;no configuration (delete 'configure) ;no configuration
(replace 'check (replace 'check
(lambda* (#:key make-flags #:allow-other-keys) (lambda* (#:key make-flags #:allow-other-keys)
(and (zero? (apply system* "make" (apply invoke "make"
"stest" "test_standalone" "stest" "test_standalone"
make-flags)) make-flags)
(zero? (system* "./stest")) (invoke "./stest")
(zero? (system* "./test"))))) (invoke "./test")))
(add-before 'install 'install-nogroup (add-before 'install 'install-nogroup
(lambda _ (lambda _
;; Let permissions inherit from the current process ;; Let permissions inherit from the current process

View File

@ -2771,8 +2771,10 @@ of tools for manipulating and accessing your music.")
(inputs (inputs
`(("alsa-lib" ,alsa-lib) `(("alsa-lib" ,alsa-lib)
("jack" ,jack-1) ("jack" ,jack-1)
("rtmidi" ,rtmidi)
("sdl" ,sdl2) ("sdl" ,sdl2)
("zlib" ,zlib))) ("zlib" ,zlib)
("zziplib" ,zziplib)))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config))) `(("pkg-config" ,pkg-config)))
(synopsis "Music tracker for working with .MOD/.XM module files") (synopsis "Music tracker for working with .MOD/.XM module files")

View File

@ -10,8 +10,9 @@
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Peter Kreye <kreyepr@gmail.com> ;;; Copyright © 2018 Peter Kreye <kreyepr@gmail.com>
;;; Copyright © 2018 Gabriel Hondet <gabrielhondet@gmail.com> ;;; Copyright © 2018, 2019 Gabriel Hondet <gabrielhondet@gmail.com>
;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -191,19 +192,18 @@ patch-/bin/sh-references: ~a: changing `\"/bin/sh\"' to `~a'~%"
(mandir (string-append out "/share/man"))) (mandir (string-append out "/share/man")))
;; Custom configure script doesn't recognize ;; Custom configure script doesn't recognize
;; --prefix=<PREFIX> syntax (with equals sign). ;; --prefix=<PREFIX> syntax (with equals sign).
(zero? (system* "./configure" (invoke "./configure"
"--prefix" out "--prefix" out
"--mandir" mandir))))) "--mandir" mandir))))
(replace 'build (replace 'build
(lambda _ (lambda _
(zero? (system* "make" "-j" (number->string (invoke "make" "-j" (number->string (parallel-job-count))
(parallel-job-count)) "world.opt")))
"world.opt"))))
(delete 'check) (delete 'check)
(add-after 'install 'check (add-after 'install 'check
(lambda _ (lambda _
(with-directory-excursion "testsuite" (with-directory-excursion "testsuite"
(zero? (system* "make" "all"))))) (invoke "make" "all"))))
(add-before 'check 'prepare-socket-test (add-before 'check 'prepare-socket-test
(lambda _ (lambda _
(format (current-error-port) (format (current-error-port)
@ -254,7 +254,7 @@ functional, imperative and object-oriented styles of programming.")
(replace 'build (replace 'build
(lambda _ (lambda _
;; Specifying '-j' at all causes the build to fail. ;; Specifying '-j' at all causes the build to fail.
(zero? (system* "make" "world.opt")))) (invoke "make" "world.opt")))
,@(if (string=? "aarch64-linux" (%current-system)) ,@(if (string=? "aarch64-linux" (%current-system))
;; Custom configure script doesn't recongnize aarch64. ;; Custom configure script doesn't recongnize aarch64.
'((replace 'configure '((replace 'configure
@ -269,11 +269,9 @@ functional, imperative and object-oriented styles of programming.")
(replace 'check (replace 'check
(lambda _ (lambda _
(with-directory-excursion "testsuite" (with-directory-excursion "testsuite"
(zero? (system* (invoke "make" "all"
"make"
"all"
(string-append (string-append
"TOPDIR=" (getcwd) "/..")))))))))))) "TOPDIR=" (getcwd) "/..")))))))))))
(define-public ocaml-4.07 (define-public ocaml-4.07
(package (package
@ -449,26 +447,26 @@ Git-friendly development workflow.")
;; which fails on the second attempt. ;; which fails on the second attempt.
#:parallel-build? #f #:parallel-build? #f
#:make-flags '("all") #:make-flags '("all")
#:phases (modify-phases %standard-phases #:phases
(replace (modify-phases %standard-phases
'configure (replace 'configure
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
;; This is a home-made 'configure' script. ;; This is a home-made 'configure' script.
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(zero? (system* "./configure" (invoke "./configure"
(string-append "--libdir=" out (string-append "--libdir=" out
"/lib/ocaml/site-lib") "/lib/ocaml/site-lib")
(string-append "--bindir=" out "/bin") (string-append "--bindir=" out "/bin")
(string-append "--pkgdir=" out (string-append "--pkgdir=" out
"/lib/ocaml/site-lib")))))) "/lib/ocaml/site-lib")))))
(add-after 'install 'install-meta (add-after 'install 'install-meta
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(substitute* "camlp4/META.in" (substitute* "camlp4/META.in"
(("directory = .*") (("directory = .*")
(string-append "directory = \"" out (string-append "directory = \"" out
"/lib/ocaml/site-lib/camlp4\"\n"))) "/lib/ocaml/site-lib/camlp4\"\n")))
(zero? (system* "make" "install-META")))))))) (invoke "make" "install-META")))))))
(home-page "https://github.com/ocaml/camlp4") (home-page "https://github.com/ocaml/camlp4")
(synopsis "Write parsers in OCaml") (synopsis "Write parsers in OCaml")
(description (description
@ -1151,8 +1149,7 @@ files in these formats.")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'configure (replace 'configure
(lambda* (#:key #:allow-other-keys) (lambda _ (invoke "./configure"))))))
(zero? (system* "./configure")))))))
(home-page "https://forge.ocamlcore.org/projects/zarith/") (home-page "https://forge.ocamlcore.org/projects/zarith/")
(synopsis "Implements arbitrary-precision integers") (synopsis "Implements arbitrary-precision integers")
(description "Implements arithmetic and logical operations over (description "Implements arithmetic and logical operations over
@ -1768,15 +1765,17 @@ spans without being subject to operating system calendar time adjustments.")
(define-public ocaml-cmdliner (define-public ocaml-cmdliner
(package (package
(name "ocaml-cmdliner") (name "ocaml-cmdliner")
(version "0.9.8") (version "1.0.2")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://erratique.ch/software/cmdliner/releases/" (uri (string-append "http://erratique.ch/software/cmdliner/releases/"
"cmdliner-" version ".tbz")) "cmdliner-" version ".tbz"))
(sha256 (sha256
(base32 (base32
"0hdxlkgiwjml9dpaa80282a8350if7mc1m6yz2mrd7gci3fszykx")))) "18jqphjiifljlh9jg8zpl6310p3iwyaqphdkmf89acyaix0s4kj1"))))
(build-system ocaml-build-system) (build-system ocaml-build-system)
(inputs
`(("ocaml-result" ,ocaml-result)))
(native-inputs (native-inputs
`(("ocamlbuild" ,ocamlbuild) `(("ocamlbuild" ,ocamlbuild)
("opam" ,opam))) ("opam" ,opam)))
@ -1785,6 +1784,12 @@ spans without being subject to operating system calendar time adjustments.")
#:build-flags '("native=true" "native-dynlink=true") #:build-flags '("native=true" "native-dynlink=true")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'install
;; The makefile says 'adjust on cli invocation'
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(invoke "make" "install" (string-append "PREFIX=" out))
#t)))
(delete 'configure)))) (delete 'configure))))
(home-page "http://erratique.ch/software/cmdliner") (home-page "http://erratique.ch/software/cmdliner")
(synopsis "Declarative definition of command line interfaces for OCaml") (synopsis "Declarative definition of command line interfaces for OCaml")
@ -1802,14 +1807,14 @@ most of the POSIX and GNU conventions.")
(define-public ocaml-fmt (define-public ocaml-fmt
(package (package
(name "ocaml-fmt") (name "ocaml-fmt")
(version "0.8.0") (version "0.8.5")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "http://erratique.ch/software/fmt/releases/fmt-" (uri (string-append "http://erratique.ch/software/fmt/releases/fmt-"
version ".tbz")) version ".tbz"))
(sha256 (base32 (sha256 (base32
"16y7ibndnairb53j8a6qgipyqwjxncn4pl9jiw5bxjfjm59108px")))) "1zj9azcxcn6skmb69ykgmi9z8c50yskwg03wqgh87lypgjdcz060"))))
(build-system ocaml-build-system) (build-system ocaml-build-system)
(native-inputs (native-inputs
`(("ocamlbuild" ,ocamlbuild) `(("ocamlbuild" ,ocamlbuild)
@ -1817,6 +1822,7 @@ most of the POSIX and GNU conventions.")
("topkg" ,ocaml-topkg))) ("topkg" ,ocaml-topkg)))
(propagated-inputs (propagated-inputs
`(("result" ,ocaml-result) `(("result" ,ocaml-result)
("ocaml-uchar" ,ocaml-uchar)
("cmdliner" ,ocaml-cmdliner))) ("cmdliner" ,ocaml-cmdliner)))
(arguments `(#:tests? #f (arguments `(#:tests? #f
#:build-flags (list "build" "--with-base-unix" "true" #:build-flags (list "build" "--with-base-unix" "true"
@ -2269,14 +2275,14 @@ representation of the data.")
(define-public ocaml-uchar (define-public ocaml-uchar
(package (package
(name "ocaml-uchar") (name "ocaml-uchar")
(version "0.0.1") (version "0.0.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/ocaml/uchar/releases/download/v" (uri (string-append "https://github.com/ocaml/uchar/releases/download/v"
version "/uchar-" version ".tbz")) version "/uchar-" version ".tbz"))
(sha256 (base32 (sha256 (base32
"0ficw1x7ymbd6m8hqw3w1aycwm1hbwd6bad3c5pspwnzh3qlikhi")))) "1w2saw7zanf9m9ffvz2lvcxvlm118pws2x1wym526xmydhqpyfa7"))))
(build-system ocaml-build-system) (build-system ocaml-build-system)
(arguments (arguments
`(#:tests? #f `(#:tests? #f
@ -4342,13 +4348,12 @@ is provide a description of your project and Jbuilder will do the rest.")
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure) (delete 'configure)
(replace 'build (replace 'build
(lambda* (#:key #:allow-other-keys) (lambda _ (invoke "jbuilder" "build")))
(zero? (system* "jbuilder" "build"))))
(delete 'check) (delete 'check)
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(zero? (system* "jbuilder" "install" "--prefix" out)))))))) (invoke "jbuilder" "install" "--prefix" out)))))))
(native-inputs (native-inputs
`(("jbuilder" ,ocaml-jbuilder))) `(("jbuilder" ,ocaml-jbuilder)))
(propagated-inputs (propagated-inputs
@ -4420,9 +4425,9 @@ instead of bindings to a C library.")
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(libdir (string-append out "/lib/ocaml/site-lib"))) (libdir (string-append out "/lib/ocaml/site-lib")))
(mkdir-p libdir) (mkdir-p libdir)
(zero? (system* "jbuilder" "install" (invoke "jbuilder" "install"
"--prefix" out "--prefix" out
"--libdir" libdir)))))))) "--libdir" libdir)))))))
(native-inputs (native-inputs
`(("ocaml" ,ocaml) `(("ocaml" ,ocaml)
("cppo" ,ocaml-cppo) ("cppo" ,ocaml-cppo)
@ -4749,6 +4754,35 @@ speedup, polymorphic variants and optional syntax for tuples and variants.
yojson package. The program @code{atdgen} can be used to derive OCaml-JSON yojson package. The program @code{atdgen} can be used to derive OCaml-JSON
serializers and deserializers from type definitions.") serializers and deserializers from type definitions.")
(license license:bsd-3))) (license license:bsd-3)))
(define-public ocaml-craml
(package
(name "ocaml-craml")
(version "1.0.0")
(home-page "https://github.com/realworldocaml/craml")
(source
(origin
(method git-fetch)
(uri (git-reference
(url (string-append home-page ".git"))
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32
"197xjp4vmzdymf2ndinw271ihpf45h04mx8gqj8ypspxdr5fj1a5"))))
(build-system dune-build-system)
(inputs
`(("ocaml-fmt" ,ocaml-fmt)
("ocaml-astring" ,ocaml-astring)
("ocaml-logs" ,ocaml-logs)
("ocaml-cmdliner" ,ocaml-cmdliner)))
(synopsis
"CRAM-testing framework for testing command line applications")
(description "CRAM is a is functional testing framework for command line
applications. @code{craml} is freely inspired by the
Mercurial's @code{https://www.selenic.com/blog/?p=663, unified test
format}. @code{craml} is released as a single binary (called @code{craml}).")
(license license:isc)))
(define-public ocaml-merlin (define-public ocaml-merlin
(package (package

View File

@ -582,7 +582,7 @@ in transmittable and storable formats, such as JSON and MessagePack.")
(add-before 'check 'init-git (add-before 'check 'init-git
(lambda _ (lambda _
;; reno expects a git repo ;; reno expects a git repo
(zero? (system* "git" "init"))))))) (invoke "git" "init"))))))
(propagated-inputs (propagated-inputs
`(("python-dulwich" ,python-dulwich) `(("python-dulwich" ,python-dulwich)
("python-pbr" ,python-pbr) ("python-pbr" ,python-pbr)
@ -596,7 +596,7 @@ in transmittable and storable formats, such as JSON and MessagePack.")
("python-docutils" ,python-docutils) ("python-docutils" ,python-docutils)
("python-sphinx" ,python-sphinx) ("python-sphinx" ,python-sphinx)
("gnupg" ,gnupg) ("gnupg" ,gnupg)
("git" ,git))) ("git" ,git-minimal)))
(home-page "http://docs.openstack.org/developer/reno/") (home-page "http://docs.openstack.org/developer/reno/")
(synopsis "Release notes manager") (synopsis "Release notes manager")
(description "Reno is a tool for storing release notes in a git repository (description "Reno is a tool for storing release notes in a git repository
@ -626,7 +626,7 @@ and building documentation from them.")
;; Note: Upstream tests would have also built the release notes. ;; Note: Upstream tests would have also built the release notes.
;; That only would work if we were in a git checkout. ;; That only would work if we were in a git checkout.
;; Therefore, we don't do it here. ;; Therefore, we don't do it here.
(zero? (system* "python" "setup.py" "build_sphinx"))))))) (invoke "python" "setup.py" "build_sphinx"))))))
(propagated-inputs (propagated-inputs
`(("python-requests" ,python-requests))) `(("python-requests" ,python-requests)))
(native-inputs (native-inputs

View File

@ -381,15 +381,14 @@ random passwords that pass the checks.")
#t))) #t)))
(add-after 'install 'manpage (add-after 'install 'manpage
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(and ;; Without this substitution, it fails with
;; Without this substitution, it fails with ;; ImportError: No module named 'gpg'
;; ImportError: No module named 'gpg' (substitute* "Makefile"
(substitute* "Makefile" (("PYTHONPATH=.") ""))
(("PYTHONPATH=.") "")) (invoke "make" "assword.1")
(zero? (system* "make" "assword.1")) (install-file
(install-file "assword.1"
"assword.1" (string-append (assoc-ref outputs "out") "/share/man/man1")))))))
(string-append (assoc-ref outputs "out") "/share/man/man1"))))))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("txt2man" ,txt2man))) `(("txt2man" ,txt2man)))

View File

@ -1,39 +0,0 @@
test-stress-options.scm does not exist, and test-qof passes when run in the
build directory after the gnucash build.
diff -ur gnucash-3.3.old/gnucash/report/standard-reports/test/CMakeLists.txt gnucash-3.3/gnucash/report/standard-reports/test/CMakeLists.txt
--- gnucash-3.3.old/gnucash/report/standard-reports/test/CMakeLists.txt 2018-10-04 09:29:00.916641417 -0400
+++ gnucash-3.3/gnucash/report/standard-reports/test/CMakeLists.txt 2018-10-04 09:30:52.962504860 -0400
@@ -13,10 +13,6 @@
test-income-gst.scm
)
-set(scm_test_with_textual_ports_SOURCES
- test-stress-options.scm
-)
-
set(GUILE_DEPENDS
scm-gnc-module
scm-app-utils
@@ -31,9 +27,6 @@
if (HAVE_SRFI64)
gnc_add_scheme_tests("${scm_test_with_srfi64_SOURCES}")
- if (HAVE_TEXT_PORTS)
- gnc_add_scheme_tests("${scm_test_with_textual_ports_SOURCES}")
- endif (HAVE_TEXT_PORTS)
endif (HAVE_SRFI64)
gnc_add_scheme_tests("${scm_test_standard_reports_SOURCES}")
diff -ur gnucash-3.3.old/libgnucash/engine/test/CMakeLists.txt gnucash-3.3/libgnucash/engine/test/CMakeLists.txt
--- gnucash-3.3.old/libgnucash/engine/test/CMakeLists.txt 2018-10-04 09:29:00.876640751 -0400
+++ gnucash-3.3/libgnucash/engine/test/CMakeLists.txt 2018-10-05 10:46:22.542962546 -0400
@@ -54,8 +54,6 @@
# This test does not run on Win32
if (NOT WIN32)
set(SOURCES ${test_qof_SOURCES} ${CMAKE_SOURCE_DIR}/common/test-core/unittest-support.c)
- add_engine_test(test-qof "${SOURCES}")
- target_compile_definitions(test-qof PRIVATE TESTPROG=test_qof)
set(SOURCES ${test_engine_SOURCES} ${CMAKE_SOURCE_DIR}/common/test-core/unittest-support.c)
add_engine_test(test-engine "${SOURCES}")

View File

@ -1,24 +0,0 @@
After wrapping gnc-fq-check and gnc-fq-helper we can no longer execute them
with perl, so execute them directly instead.
diff -ur gnucash-3.2.old/libgnucash/scm/price-quotes.scm gnucash-3.2/libgnucash/scm/price-quotes.scm
--- gnucash-3.2.old/libgnucash/scm/price-quotes.scm 2018-09-15 00:48:33.718389646 -0400
+++ gnucash-3.2/libgnucash/scm/price-quotes.scm 2018-09-15 13:51:49.249862724 -0400
@@ -74,7 +74,7 @@
(define (start-program)
(if (not (string-null? gnc:*finance-quote-check*))
(set! program (gnc-spawn-process-async
- (list "perl" "-w" gnc:*finance-quote-check*) #t))))
+ (list gnc:*finance-quote-check*) #t))))
(define (get-sources)
(if (not (null? program))
@@ -158,7 +158,7 @@
(define (start-quoter)
(if (not (string-null? gnc:*finance-quote-helper*))
(set! quoter (gnc-spawn-process-async
- (list "perl" "-w" gnc:*finance-quote-helper*) #t))))
+ (list gnc:*finance-quote-helper*) #t))))
(define (get-quotes)
(if (not (null? quoter))

View File

@ -0,0 +1,58 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.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 python-check)
#:use-module (gnu packages)
#:use-module (gnu packages check)
#:use-module (gnu packages python-web)
#:use-module (gnu packages python-xyz)
#:use-module (guix utils)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system python))
(define-public python-coveralls
(package
(name "python-coveralls")
(version "1.5.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "coveralls" version))
(sha256
(base32
"0vfdny96gcq05qk5wxdbfxfaaprdk7c9q2pqvg7ac5l9sf48wqxb"))))
(build-system python-build-system)
(propagated-inputs
`(("python-coverage" ,python-coverage)
("python-docopt" ,python-docopt)
("python-pyyaml" ,python-pyyaml)
("python-requests" ,python-requests)
("python-sh" ,python-sh)
("python-urllib3" ,python-urllib3)))
(native-inputs
`(("python-mock" ,python-mock)
("python-pytest" ,python-pytest)))
(home-page "https://github.com/coveralls-clients/coveralls-python")
(synopsis "Show coverage stats online via coveralls.io")
(description
"Coveralls.io is a service for publishing code coverage statistics online.
This package provides seamless integration with coverage.py (and thus pytest,
nosetests, etc...) in Python projects.")
(license license:expat)))

View File

@ -11,7 +11,7 @@
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org> ;;; Copyright © 2016 Danny Milosavljevic <dannym+a@scratchpost.org>
;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au> ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
@ -434,14 +434,14 @@ message digests and key derivation functions.")
(define-public python-pyopenssl (define-public python-pyopenssl
(package (package
(name "python-pyopenssl") (name "python-pyopenssl")
(version "18.0.0") (version "19.0.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pyOpenSSL" version)) (uri (pypi-uri "pyOpenSSL" version))
(sha256 (sha256
(base32 (base32
"1055rb456nvrjcij3sqj6c6l3kmh5cqqay0nsmx3pxq07d1g3234")))) "007j40y7x3k8xj54dy2qnij9lldfp71k9mkflhd9vqbdiwrndjmf"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
'(#:phases '(#:phases
@ -450,15 +450,15 @@ message digests and key derivation functions.")
(add-after 'install 'check (add-after 'install 'check
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs) (add-installed-pythonpath inputs outputs)
(zero? (system* "py.test" "-v" "-k" (invoke "py.test" "-v" "-k"
(string-append (string-append
;; This test tries to look up certificates from ;; This test tries to look up certificates from
;; the compiled-in default path in OpenSSL, which ;; the compiled-in default path in OpenSSL, which
;; does not exist in the build environment. ;; does not exist in the build environment.
"not test_fallback_default_verify_paths " "not test_fallback_default_verify_paths "
;; This test attempts to make a connection to ;; This test attempts to make a connection to
;; an external web service. ;; an external web service.
"and not test_set_default_verify_paths")))))))) "and not test_set_default_verify_paths")))))))
(propagated-inputs (propagated-inputs
`(("python-cryptography" ,python-cryptography) `(("python-cryptography" ,python-cryptography)
("python-six" ,python-six))) ("python-six" ,python-six)))

View File

@ -113,6 +113,7 @@
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto) #:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
#:use-module (gnu packages qt) #:use-module (gnu packages qt)
@ -434,42 +435,80 @@ concepts.")
(define-public python2-h5py (define-public python2-h5py
(package-with-python2 python-h5py)) (package-with-python2 python-h5py))
(define-public python-sh
(package
(name "python-sh")
(version "1.12.14")
(source
(origin
(method url-fetch)
(uri (pypi-uri "sh" version))
(sha256
(base32
"1z2hx357xp3v4cv44xmqp7lli3frndqpyfmpbxf7n76h7s1zaaxm"))))
(build-system python-build-system)
(home-page "https://github.com/amoffat/sh")
(synopsis "Python subprocess replacement")
(description "This package provides a replacement for Python's
@code{subprocess} feature.")
(license license:expat)))
(define-public python-cftime
(package
(name "python-cftime")
(version "1.0.3.4")
(source
(origin
(method url-fetch)
(uri (pypi-uri "cftime" version))
(sha256
(base32
"0362dhxbzk593walyjz30dll6y2y79wialik647cbwdsf3ad0x6x"))))
(build-system python-build-system)
(propagated-inputs
`(("python-numpy" ,python-numpy)))
(native-inputs
`(("python-coveralls" ,python-coveralls)
("python-cython" ,python-cython)
("python-pytest-cov" ,python-pytest-cov)))
(home-page "https://github.com/Unidata/cftime")
(synopsis "Library for time handling")
(description
"This package provides time-handling functionality that used to be part
of the netcdf4 package before.")
;; This package claims to include code under the GPLv3 but is released
;; under ISC.
(license (list license:isc license:gpl3+))))
(define-public python-netcdf4 (define-public python-netcdf4
(package (package
(name "python-netcdf4") (name "python-netcdf4")
(version "1.2.9") (version "1.4.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "netCDF4" version)) (uri (pypi-uri "netCDF4" version))
(sha256 (sha256
(base32 (base32
"1h6jq338amlbk0ilzvjyl7cck80i0bah9a5spn9in71vy2qxm7i5")))) "0c0sklgrmv15ygliin8qq0hp7vanmbi74m6zpi0r1ksr0hssyd5r"))))
(build-system python-build-system) (build-system python-build-system)
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'configure-locations
(lambda* (#:key inputs #:allow-other-keys)
(setenv "HDF5_DIR" (assoc-ref inputs "hdf5"))
#t)))))
(native-inputs (native-inputs
`(("python-cython" ,python-cython))) `(("python-cython" ,python-cython)))
(propagated-inputs (propagated-inputs
`(("python-numpy" ,python-numpy))) `(("python-numpy" ,python-numpy)
("python-cftime" ,python-cftime)))
(inputs (inputs
`(("netcdf" ,netcdf) `(("netcdf" ,netcdf)
("hdf4" ,hdf4) ("hdf4" ,hdf4)
("hdf5" ,hdf5))) ("hdf5" ,hdf5)))
(arguments (home-page "https://github.com/Unidata/netcdf4-python")
'(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(setenv "NO_NET" "1") ; disable opendap tests
(with-directory-excursion "test"
(setenv "PYTHONPATH" ; find and add the library we just built
(string-append
(car (find-files "../build" "lib.*"
#:directories? #:t
#:fail-on-error? #:t))
":" (getenv "PYTHONPATH")))
(zero? (system* "python" "run_all.py"))))))))
(home-page
"https://github.com/Unidata/netcdf4-python")
(synopsis "Python/numpy interface to the netCDF library") (synopsis "Python/numpy interface to the netCDF library")
(description "Netcdf4-python is a Python interface to the netCDF C (description "Netcdf4-python is a Python interface to the netCDF C
library. netCDF version 4 has many features not found in earlier library. netCDF version 4 has many features not found in earlier
@ -1710,7 +1749,7 @@ version numbers.")
(arguments (arguments
'(#:phases '(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (lambda _ (zero? (system* "nosetests"))))))) (replace 'check (lambda _ (invoke "nosetests"))))))
(native-inputs (native-inputs
`(("python-nose" ,python-nose) `(("python-nose" ,python-nose)
("python-vcversioner" ,python-vcversioner))) ("python-vcversioner" ,python-vcversioner)))
@ -2106,7 +2145,7 @@ logic-free templating system Mustache.")
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda _ (lambda _
(zero? (system* "python" "test_pystache.py"))))))))) (invoke "python" "test_pystache.py"))))))))
(define-public python-joblib (define-public python-joblib
(package (package
@ -2855,8 +2894,7 @@ objects.")
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda _ (lambda _ (invoke "nosetests" "-v"))))))
(zero? (system* "nosetests" "-v")))))))
(propagated-inputs (propagated-inputs
`(("python-colormath" ,python-colormath))) `(("python-colormath" ,python-colormath)))
(native-inputs (native-inputs
@ -2963,12 +3001,12 @@ color scales, and color space conversion easy. It has support for:
(with-directory-excursion "doc" (with-directory-excursion "doc"
(copy-recursively sphinx-theme-checkout scipy-sphinx-theme) (copy-recursively sphinx-theme-checkout scipy-sphinx-theme)
(mkdir-p html) (mkdir-p html)
(system* "make" "html" pyver) (invoke "make" "html" pyver)
(system* "make" "latex" "PAPER=a4" pyver) (invoke "make" "latex" "PAPER=a4" pyver)
(system* "make" "-C" "build/latex" (invoke "make" "-C" "build/latex"
"all-pdf" "PAPER=a4" pyver) "all-pdf" "PAPER=a4" pyver)
;; FIXME: Generation of the info file fails. ;; FIXME: Generation of the info file fails.
;; (system* "make" "info" pyver) ;; (invoke "make" "info" pyver)
;; (mkdir-p info) ;; (mkdir-p info)
;; (copy-file "build/texinfo/numpy.info" ;; (copy-file "build/texinfo/numpy.info"
;; (string-append info "/numpy.info")) ;; (string-append info "/numpy.info"))
@ -3193,7 +3231,7 @@ To address this and enable easy cycling over arbitrary @code{kwargs}, the
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda _ (lambda _
(zero? (system* "nosetests" "--all-modules" "-v" "colorspacious"))))))) (invoke "nosetests" "--all-modules" "-v" "colorspacious"))))))
(home-page "https://github.com/njsmith/colorspacious") (home-page "https://github.com/njsmith/colorspacious")
(synopsis "Python library for colorspace conversions") (synopsis "Python library for colorspace conversions")
(description "@code{colorspacious} is a Python library that lets you (description "@code{colorspacious} is a Python library that lets you
@ -3376,24 +3414,25 @@ toolkits.")
(define-public python2-pysnptools (define-public python2-pysnptools
(package (package
(name "python2-pysnptools") (name "python2-pysnptools")
(version "0.3.9") (version "0.3.13")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "pysnptools" version ".zip")) (uri (pypi-uri "pysnptools" version))
(sha256 (sha256
(base32 (base32
"1wybggjzz8zw7aav4pjsg2h22xp17a1lghrprza1pxwlm7wf96y2")))) "0lnis5xsl7bi0hz4f7gbicahzi5zlxkc21nk3g374xv8fb5hb3qm"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:python ,python-2)) ; only Python 2.7 is supported `(#:python ,python-2 ; only Python 2.7 is supported
#:tests? #f)) ; test files (e.g. examples/toydata.bim) not included
(propagated-inputs (propagated-inputs
`(("python2-numpy" ,python2-numpy) `(("python2-numpy" ,python2-numpy)
("python2-scipy" ,python2-scipy) ("python2-scipy" ,python2-scipy)
("python2-pandas" ,python2-pandas))) ("python2-pandas" ,python2-pandas)))
(native-inputs (native-inputs
`(("unzip" ,unzip))) `(("python2-cython" ,python2-cython)))
(home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/") (home-page "http://microsoftgenomics.github.io/PySnpTools/")
(synopsis "Library for reading and manipulating genetic data") (synopsis "Library for reading and manipulating genetic data")
(description (description
"PySnpTools is a library for reading and manipulating genetic data. It "PySnpTools is a library for reading and manipulating genetic data. It
@ -3603,7 +3642,8 @@ where key might be occurred more than once in the container.")
;; The package uses nosetest for running the tests. ;; The package uses nosetest for running the tests.
;; Adding this initfile allows to run the test suite ;; Adding this initfile allows to run the test suite
;; without requiring nosetest. ;; without requiring nosetest.
(zero? (system* "touch" "tests/__init__.py"))))))) (with-output-to-file "tests/__init__.py" newline)
#t)))))
(propagated-inputs (propagated-inputs
`(("python-six" ,python-six))) `(("python-six" ,python-six)))
(native-inputs (native-inputs
@ -3803,7 +3843,8 @@ a general image processing tool.")
(replace 'check (replace 'check
(lambda _ (lambda _
(with-directory-excursion "tests" (with-directory-excursion "tests"
(zero? (system* "python" "all_tests.py"))))) (invoke "python" "all_tests.py"))
#t))
(add-after 'install 'install-doc (add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((data (string-append (assoc-ref outputs "doc") "/share")) (let* ((data (string-append (assoc-ref outputs "doc") "/share"))
@ -4145,7 +4186,7 @@ cluster without needing to write any wrapper code yourself.")
;; It's easier to run tests after install. ;; It's easier to run tests after install.
;; Make installed package available for running the tests ;; Make installed package available for running the tests
(add-installed-pythonpath inputs outputs) (add-installed-pythonpath inputs outputs)
(zero? (system* "py.test" "-v"))))))) (invoke "py.test" "-v"))))))
(home-page "https://github.com/nickstenning/honcho") (home-page "https://github.com/nickstenning/honcho")
(synopsis "Manage Procfile-based applications") (synopsis "Manage Procfile-based applications")
(description (description
@ -4854,7 +4895,7 @@ libxml2 and libxslt.")
;; For more information, see the file 'convert-py3k' in the source ;; For more information, see the file 'convert-py3k' in the source
;; distribution. ;; distribution.
(replace 'check (replace 'check
(lambda _ (zero? (system* "./convert-py3k"))))))) (lambda _ (invoke "./convert-py3k"))))))
(home-page (home-page
"https://www.crummy.com/software/BeautifulSoup/bs4/") "https://www.crummy.com/software/BeautifulSoup/bs4/")
(synopsis (synopsis
@ -5101,8 +5142,7 @@ and statistical routines from scipy and statsmodels.")
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda _ (lambda _
(zero? (invoke "python" "mpmath/tests/runtests.py" "-local"))))))
(system* "python" "mpmath/tests/runtests.py" "-local")))))))
(home-page "http://mpmath.org") (home-page "http://mpmath.org")
(synopsis "Arbitrary-precision floating-point arithmetic in python") (synopsis "Arbitrary-precision floating-point arithmetic in python")
(description (description
@ -5324,7 +5364,7 @@ Python 2 and Python 3.")
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda _ (lambda _
(zero? (system* "py.test" "-v"))))))) (invoke "py.test" "-v"))))))
(native-inputs (native-inputs
`(("python2-pytest" ,python2-pytest))) `(("python2-pytest" ,python2-pytest)))
(home-page "https://github.com/chrippa/backports.shutil_get_terminal_size") (home-page "https://github.com/chrippa/backports.shutil_get_terminal_size")
@ -5668,7 +5708,7 @@ PEP8_PLUGIN('break_before_binary_operator'),"))
(setenv "PYTHONPATH" (setenv "PYTHONPATH"
(string-append (getcwd) "/build/lib:" (string-append (getcwd) "/build/lib:"
(getenv "PYTHONPATH"))) (getenv "PYTHONPATH")))
(zero? (system* "py.test" "-v"))))))) (invoke "py.test" "-v"))))))
(native-inputs (native-inputs
`(("python-flake8" ,python-flake8) `(("python-flake8" ,python-flake8)
("python-mock" ,python-mock) ("python-mock" ,python-mock)
@ -5754,8 +5794,7 @@ markdown_py is also provided to convert Markdown files to HTML.")
`(#:phases `(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda _ (lambda _ (invoke "nosetests"))))))
(zero? (system* "nosetests")))))))
(home-page "https://github.com/pexpect/ptyprocess") (home-page "https://github.com/pexpect/ptyprocess")
(synopsis "Run a subprocess in a pseudo terminal") (synopsis "Run a subprocess in a pseudo terminal")
(description (description
@ -5809,7 +5848,7 @@ pseudo terminal (pty), and interact with both the process and its pty.")
(add-installed-pythonpath inputs outputs) (add-installed-pythonpath inputs outputs)
(setenv "PATH" (string-append (getenv "PATH") ":" (setenv "PATH" (string-append (getenv "PATH") ":"
(assoc-ref outputs "out") "/bin")) (assoc-ref outputs "out") "/bin"))
(zero? (system* "make" "test"))))))) (invoke "make" "test"))))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("python-coverage" ,python-coverage) `(("python-coverage" ,python-coverage)
@ -6090,7 +6129,7 @@ and MAC network addresses.")
(modify-phases %standard-phases (modify-phases %standard-phases
;; Current test in setup.py does not work as of 1.0.0, so use nose to ;; Current test in setup.py does not work as of 1.0.0, so use nose to
;; run tests instead for now. ;; run tests instead for now.
(replace 'check (lambda _ (zero? (system* "nosetests"))))))) (replace 'check (lambda _ (invoke "nosetests"))))))
(native-inputs `(("python-nose" ,python-nose))) (native-inputs `(("python-nose" ,python-nose)))
(home-page "http://www.python-excel.org/") (home-page "http://www.python-excel.org/")
(synopsis "Library for extracting data from Excel files") (synopsis "Library for extracting data from Excel files")
@ -6166,14 +6205,14 @@ printing of sub-tables by specifying a row range.")
#t)) #t))
(replace 'build (replace 'build
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(zero? (system* "python" "setup.py" "build" (invoke "python" "setup.py" "build"
(string-append "--hdf5=" (string-append "--hdf5="
(assoc-ref inputs "hdf5")))))) (assoc-ref inputs "hdf5")))))
(replace 'check (replace 'check
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(zero? (system* "python" "setup.py" "check" (invoke "python" "setup.py" "check"
(string-append "--hdf5=" (string-append "--hdf5="
(assoc-ref inputs "hdf5"))))))))) (assoc-ref inputs "hdf5"))))))))
(propagated-inputs (propagated-inputs
`(("python-numexpr" ,python-numexpr) `(("python-numexpr" ,python-numexpr)
("python-numpy" ,python-numpy))) ("python-numpy" ,python-numpy)))
@ -6278,8 +6317,7 @@ implementations of ASN.1-based codecs and protocols.")
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda* _ (lambda _ (invoke "python" "ipaddr_test.py"))))))
(zero? (system* "python" "ipaddr_test.py")))))))
(home-page "https://github.com/google/ipaddr-py") (home-page "https://github.com/google/ipaddr-py")
(synopsis "IP address manipulation library") (synopsis "IP address manipulation library")
(description (description
@ -8489,7 +8527,7 @@ module, adding support for Unicode strings.")
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
;; Many tests fail, but the installation proceeds. ;; Many tests fail, but the installation proceeds.
(lambda _ (zero? (system* "make" "-C" "test" "test"))))))) (lambda _ (invoke "make" "-C" "test" "test"))))))
(native-inputs (native-inputs
`(("which" ,which))) ; required for tests `(("which" ,which))) ; required for tests
(propagated-inputs (propagated-inputs
@ -9497,8 +9535,7 @@ parsing UK postcodes.")
'(#:phases '(#:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda _ (lambda _ (invoke "python" "-m" "unittest" "-v" "tests"))))))
(zero? (system* "python" "-m" "unittest" "-v" "tests")))))))
(native-inputs (native-inputs
`(;; For testing `(;; For testing
("python-email-validator" ,python-email-validator) ("python-email-validator" ,python-email-validator)
@ -9634,17 +9671,17 @@ characters, mouse support, and auto suggestions.")
(define-public python-jedi (define-public python-jedi
(package (package
(name "python-jedi") (name "python-jedi")
(version "0.13.1") (version "0.13.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "jedi" version)) (uri (pypi-uri "jedi" version))
(sha256 (sha256
(base32 (base32
"0j11q42g5vjkyhhjpyy8nb0gdxs78m3rpjai7p1hvgpyl9rkyjdp")))) "1za944msp0f8x36qa8l309jhv0kzlsdh7r9nj3z12y8npnsh45sp"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`( ;; Many tests are failing with Python 3.7.x as of version 0.13.1 (see: `( ;; Many tests are failing with Python 3.7.x as of version 0.13.2 (see:
;; https://github.com/davidhalter/jedi/issues/1263) ;; https://github.com/davidhalter/jedi/issues/1263)
#:tests? #f #:tests? #f
#:phases #:phases
@ -9991,9 +10028,9 @@ discovery, monitoring and configuration.")
;; The test runner invokes python2 and python3 for test*.py. ;; The test runner invokes python2 and python3 for test*.py.
;; To avoid having both in inputs, we replicate it here. ;; To avoid having both in inputs, we replicate it here.
(lambda _ (lambda _
(every (lambda (test-file) (for-each (lambda (test-file) (invoke "python" test-file))
(zero? (system* "python" test-file))) (find-files "tests" "^test.*\\.py$"))
(find-files "tests" "^test.*\\.py$"))))))) #t)))))
(build-system python-build-system) (build-system python-build-system)
(home-page "https://github.com/eea/odfpy") (home-page "https://github.com/eea/odfpy")
(synopsis "Python API and tools to manipulate OpenDocument files") (synopsis "Python API and tools to manipulate OpenDocument files")
@ -10392,7 +10429,7 @@ is used by PostgreSQL and the OpenSSH Server for example.")
(setenv "PYTHONPATH" (setenv "PYTHONPATH"
(string-append (getcwd) "/build/lib:" (string-append (getcwd) "/build/lib:"
(getenv "PYTHONPATH"))) (getenv "PYTHONPATH")))
(zero? (system* "py.test" "-vv" ))))))) (invoke "py.test" "-vv" ))))))
(native-inputs (native-inputs
`(("python-pytest" ,python-pytest))) `(("python-pytest" ,python-pytest)))
(home-page (home-page
@ -10512,7 +10549,7 @@ PNG, JPEG, JPEG2000 and GIF files in pure Python.")
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'check (replace 'check
(lambda _ (lambda _
(zero? (system* "python" "test3.py"))))))) (invoke "python" "test3.py"))))))
(home-page "https://github.com/gfxmonk/termstyle") (home-page "https://github.com/gfxmonk/termstyle")
(synopsis "Console text coloring for Python") (synopsis "Console text coloring for Python")
(description "This package provides console text coloring for Python.") (description "This package provides console text coloring for Python.")
@ -10720,7 +10757,7 @@ protocols written in pure Python.")
(setenv "PYTHONPATH" (setenv "PYTHONPATH"
(string-append (getcwd) "/build/lib:" (string-append (getcwd) "/build/lib:"
(getenv "PYTHONPATH"))) (getenv "PYTHONPATH")))
(zero? (system* "python" "test/test_pbkdf2.py"))))))) (invoke "python" "test/test_pbkdf2.py"))))))
(propagated-inputs (propagated-inputs
`(("python-pycrypto" ,python-pycrypto))) ; optional `(("python-pycrypto" ,python-pycrypto))) ; optional
(home-page "https://www.dlitz.net/software/python-pbkdf2/") (home-page "https://www.dlitz.net/software/python-pbkdf2/")
@ -10928,7 +10965,7 @@ Problem} (SAT) solver.")
(add-after 'install 'check (add-after 'install 'check
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs) (add-installed-pythonpath inputs outputs)
(zero? (system* "python" "test/testordereddict.py"))))))) (invoke "python" "test/testordereddict.py"))))))
(home-page "https://bitbucket.org/ruamel/ordereddict") (home-page "https://bitbucket.org/ruamel/ordereddict")
(synopsis "Version of dict that keeps keys in insertion order") (synopsis "Version of dict that keeps keys in insertion order")
(description (description
@ -11185,7 +11222,7 @@ protocols.")
;; Disable python3 tests ;; Disable python3 tests
(substitute* "check" (substitute* "check"
(("python3") "# python3")) (("python3") "# python3"))
(zero? (system* "./check"))))))) (invoke "./check"))))))
(native-inputs (native-inputs
`(("python2-coverage-test-runner" ,python2-coverage-test-runner) `(("python2-coverage-test-runner" ,python2-coverage-test-runner)
("python2-pep8" ,python2-pep8))) ("python2-pep8" ,python2-pep8)))
@ -11225,8 +11262,7 @@ iterating over input files.")
;; and fails. ;; and fails.
(delete 'check) (delete 'check)
(add-before 'build 'check (add-before 'build 'check
(lambda _ (lambda _ (invoke "make" "check"))))))
(zero? (system* "make" "check")))))))
(home-page "https://liw.fi/ttystatus/") (home-page "https://liw.fi/ttystatus/")
(synopsis "Python library for showing progress reporting and (synopsis "Python library for showing progress reporting and
status updates on terminals") status updates on terminals")
@ -11288,8 +11324,7 @@ happens using the @code{logging} library.")
;; and fails. ;; and fails.
(delete 'check) (delete 'check)
(add-before 'build 'check (add-before 'build 'check
(lambda _ (lambda _ (invoke "make" "check"))))))
(zero? (system* "make" "check")))))))
(native-inputs (native-inputs
`(("cmdtest" ,cmdtest) `(("cmdtest" ,cmdtest)
("python2-coverage-test-runner" ,python2-coverage-test-runner))) ("python2-coverage-test-runner" ,python2-coverage-test-runner)))
@ -12303,7 +12338,7 @@ Swagger 2.0).")
(setenv "PYTHONPATH" (string-append (getcwd) (setenv "PYTHONPATH" (string-append (getcwd)
":" ":"
(getenv "PYTHONPATH"))) (getenv "PYTHONPATH")))
(zero? (system* "py.test"))))))) (invoke "py.test"))))))
(propagated-inputs (propagated-inputs
`(("python-flask" ,python-flask) `(("python-flask" ,python-flask)
("python-pyyaml" ,python-pyyaml) ("python-pyyaml" ,python-pyyaml)
@ -13149,9 +13184,9 @@ is the new Pyro version that is actively developed.")
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'build (replace 'build
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(zero? (system* "python" "setup.py" "build" (invoke "python" "setup.py" "build"
(string-append "--netcdf_prefix=" (string-append "--netcdf_prefix="
(assoc-ref inputs "netcdf"))))))))) (assoc-ref inputs "netcdf"))))))))
(home-page "https://bitbucket.org/khinsen/scientificpython") (home-page "https://bitbucket.org/khinsen/scientificpython")
(synopsis "Python modules for scientific computing") (synopsis "Python modules for scientific computing")
(description "ScientificPython is a collection of Python modules that are (description "ScientificPython is a collection of Python modules that are

View File

@ -1907,11 +1907,11 @@ contain over 620 classes.")
(lib (string-append out "/lib/python" (lib (string-append out "/lib/python"
python-major+minor python-major+minor
"/site-packages"))) "/site-packages")))
(zero? (system* "python" "configure.py" (invoke "python" "configure.py"
"--confirm-license" "--confirm-license"
"--bindir" bin "--bindir" bin
"--destdir" lib "--destdir" lib
"--sipdir" sip)))))))) "--sipdir" sip)))))))
(license (list license:gpl2 license:gpl3)))) ; choice of either license (license (list license:gpl2 license:gpl3)))) ; choice of either license
(define-public qscintilla (define-public qscintilla
@ -2103,7 +2103,7 @@ securely. It will not store any data unencrypted unless explicitly requested.")
(substitute* '("doc/doc.pro") (substitute* '("doc/doc.pro")
;; We'll install them in the 'install-man-pages' phase. ;; We'll install them in the 'install-man-pages' phase.
(("^unix:doc\\.files.*") "")) (("^unix:doc\\.files.*") ""))
(zero? (system* "qmake"))))) (invoke "qmake"))))
(add-after 'install 'install-man-pages (add-after 'install 'install-man-pages
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))

View File

@ -304,13 +304,10 @@ ideal (e.g. in LV2 implementations or embedded applications).")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (pypi-uri "rdflib" version))
"https://pypi.python.org/packages/source/r/rdflib/rdflib-"
version
".tar.gz"))
(sha256 (sha256
(base32 (base32
"0398c714znnhaa2x7v51b269hk20iz073knq2mvmqp2ma92z27fs")))) "0398c714znnhaa2x7v51b269hk20iz073knq2mvmqp2ma92z27fs"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
'(;; FIXME: Three test failures. Should be fixed next release. '(;; FIXME: Three test failures. Should be fixed next release.
@ -321,7 +318,7 @@ ideal (e.g. in LV2 implementations or embedded applications).")
;; (lambda _ ;; (lambda _
;; ;; Run tests from the build directory so python3 only ;; ;; Run tests from the build directory so python3 only
;; ;; sees the installed 2to3 version. ;; ;; sees the installed 2to3 version.
;; (zero? (system* "nosetests" "--where=./build/src"))))))) ;; (invoke "nosetests" "--where=./build/src"))))))
(native-inputs (native-inputs
`(("python-nose" ,python-nose))) `(("python-nose" ,python-nose)))
(propagated-inputs (propagated-inputs
@ -329,13 +326,12 @@ ideal (e.g. in LV2 implementations or embedded applications).")
("python-isodate" ,python-isodate) ("python-isodate" ,python-isodate)
("python-pyparsing" ,python-pyparsing))) ("python-pyparsing" ,python-pyparsing)))
(home-page "https://github.com/RDFLib/rdflib") (home-page "https://github.com/RDFLib/rdflib")
(synopsis (synopsis "Python RDF library")
"Python RDF library")
(description (description
"RDFLib is a Python library for working with RDF, a simple yet "RDFLib is a Python library for working with RDF, a simple yet
powerful language for representing information.") powerful language for representing information.")
(license (non-copyleft "file://LICENSE" (license (non-copyleft "file://LICENSE"
"See LICENSE in the distribution.")))) "See LICENSE in the distribution."))))
(define-public python2-rdflib (define-public python2-rdflib
(package-with-python2 python-rdflib)) (package-with-python2 python-rdflib))

View File

@ -91,9 +91,9 @@ Python. It is a C++ library.")
;; The tests require the availability of the ;; The tests require the availability of the
;; 'en_US.ISO-8859-1' locale. ;; 'en_US.ISO-8859-1' locale.
(setenv "LOCPATH" (getcwd)) (setenv "LOCPATH" (getcwd))
(zero? (system* "localedef" "--no-archive" (invoke "localedef" "--no-archive"
"--prefix" (getcwd) "-i" "en_US" "--prefix" (getcwd) "-i" "en_US"
"-f" "ISO-8859-1" "./en_US.ISO-8859-1"))))))) "-f" "ISO-8859-1" "./en_US.ISO-8859-1"))))))
(synopsis "Approximate regex matching library and agrep utility") (synopsis "Approximate regex matching library and agrep utility")
(description "Superset of the POSIX regex API, enabling approximate (description "Superset of the POSIX regex API, enabling approximate
matching. Also ships a version of the agrep utility which behaves similar to matching. Also ships a version of the agrep utility which behaves similar to

View File

@ -287,15 +287,9 @@ destructors. It is the core memory allocator used in Samba.")
`(modify-phases ,phases `(modify-phases ,phases
(replace 'build (replace 'build
(lambda _ (lambda _
(letrec-syntax ((shell (syntax-rules () (invoke "gcc" "-c" "-Ibin/default" "-I" "lib/replace"
((_ (command ...) rest ...) "-I." "-Wall" "-g" "talloc.c")
(and (zero? (system* command ...)) (invoke "ar" "rc" "libtalloc.a" "talloc.o")))
(shell rest ...)))
((_)
#t))))
(shell ("gcc" "-c" "-Ibin/default" "-I" "lib/replace"
"-I." "-Wall" "-g" "talloc.c")
("ar" "rc" "libtalloc.a" "talloc.o")))))
(replace 'install (replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
@ -326,9 +320,9 @@ destructors. It is the core memory allocator used in Samba.")
;; tevent uses a custom configuration script that runs waf. ;; tevent uses a custom configuration script that runs waf.
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(zero? (system* "./configure" (invoke "./configure"
(string-append "--prefix=" out) (string-append "--prefix=" out)
"--bundled-libraries=NONE")))))))) "--bundled-libraries=NONE")))))))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)
("python" ,python-2))) ("python" ,python-2)))
@ -374,11 +368,11 @@ many event types, including timers, signals, and the classic file descriptor eve
;; ldb use a custom configuration script that runs waf. ;; ldb use a custom configuration script that runs waf.
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(zero? (system* "./configure" (invoke "./configure"
(string-append "--prefix=" out) (string-append "--prefix=" out)
(string-append "--with-modulesdir=" out (string-append "--with-modulesdir=" out
"/lib/ldb/modules") "/lib/ldb/modules")
"--bundled-libraries=NONE")))))))) "--bundled-libraries=NONE")))))))
(native-inputs (native-inputs
`(("cmocka" ,cmocka) `(("cmocka" ,cmocka)
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)

View File

@ -2,6 +2,7 @@
;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -21,12 +22,14 @@
(define-module (gnu packages synergy) (define-module (gnu packages synergy)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module ((guix licenses) #:select (gpl2)) #:use-module ((guix licenses) #:select (gpl2))
#:use-module (guix download) #:use-module (guix git-download)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages avahi)
#:use-module (gnu packages curl) #:use-module (gnu packages curl)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages tls) #:use-module (gnu packages tls)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (srfi srfi-26)) #:use-module (srfi srfi-26))
@ -34,80 +37,52 @@
(define-public synergy (define-public synergy
(package (package
(name "synergy") (name "synergy")
(version "1.8.8") (version "1.10.1")
(source (source
(origin (origin
(method url-fetch) (method git-fetch)
(uri (string-append "https://github.com/symless/synergy-core/archive/" (uri (git-reference
"v" version "-stable.tar.gz")) (url "https://github.com/symless/synergy-core.git")
(file-name (string-append name "-" version ".tar.gz")) (commit (string-append "v" version "-stable"))))
(file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"052z1yiwck9hlshf8in2dgz6p7jxmq9yfj32mfzjaygpz6mmmr4y")) "112w2xrp04cysd14xk1ax7cllqpcki0pyica4ivrdngr5qw0r9hp"))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet
;; Remove ~14MB of unnecessary bundled source and binaries ;; Remove unnecessary bundled source and binaries
'(begin '(begin
(for-each delete-file-recursively (delete-file-recursively "ext/openssl")
`("ext/bonjour"
"ext/LICENSE (OpenSSL)"
,@(find-files "ext" "openssl-.*\\.tar\\.gz")
"ext/openssl-osx"
"ext/openssl-win32"
"ext/openssl-win64"))
#t)))) #t))))
(build-system cmake-build-system) (build-system cmake-build-system)
(native-inputs `(("unzip" ,unzip))) (arguments
`(#:tests? #f ; there is no test target
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-headers
(lambda* (#:key inputs #:allow-other-keys)
(setenv "CPLUS_INCLUDE_PATH"
(string-append (assoc-ref inputs "avahi")
"/include/avahi-compat-libdns_sd/:"
(getenv "CPLUS_INCLUDE_PATH")))
;; See https://github.com/symless/synergy-core/pull/6359/
(substitute* "src/gui/src/ScreenSetupView.cpp"
(("#include <QtGui>" m)
(string-append m "\n#include <QHeaderView>")))
(substitute* "src/gui/src/ActionDialog.cpp"
(("#include <QtGui>" m)
(string-append m "\n#include <QButtonGroup>")))
#t)))))
(inputs (inputs
`(("python" ,python-wrapper) `(("avahi" ,avahi)
("python" ,python-wrapper)
("openssl" ,openssl) ("openssl" ,openssl)
("curl" ,curl) ("curl" ,curl)
("libxi" ,libxi) ("libxi" ,libxi)
("libx11" ,libx11) ("libx11" ,libx11)
("libxtst" ,libxtst) ("libxtst" ,libxtst)
("xinput" ,xinput))) ("xinput" ,xinput)
(arguments ("qtbase" ,qtbase)))
`(#:phases
(let ((srcdir (string-append "../synergy-core-" ,version "-stable")))
(modify-phases %standard-phases
(add-before 'configure 'unpack-aux-src
;; TODO: package and use from system
(lambda* (#:key inputs #:allow-other-keys)
(let ((unzip (string-append
(assoc-ref inputs "unzip")
"/bin/unzip")))
(with-directory-excursion "ext"
(for-each
(lambda (f)
(system* unzip "-d" f (string-append f ".zip")))
'("gmock-1.6.0" "gtest-1.6.0"))))
#t))
(replace 'check
;; Don't run "integtests" as it requires network and an X display.
(lambda _
(zero? (system* (string-append srcdir "/bin/unittests")))))
(replace 'install
;; There currently is no installation process, see:
;; http://synergy-project.org/spit/issues/details/3317/
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(ex (string-append out "/share/doc/synergy-"
,version "/examples")))
(begin
(for-each
(lambda (f)
(install-file (string-append srcdir "/bin/" f) bin))
'("synergyc" "synergys" "synergyd"
"usynergy" "syntool"))
;; Install example configuration files
(for-each
(lambda (e)
(install-file (string-append srcdir "/doc/" e) ex))
'("synergy.conf.example"
"synergy.conf.example-advanced"
"synergy.conf.example-basic"))))
#t))))))
(home-page "https://symless.com/synergy") (home-page "https://symless.com/synergy")
(synopsis "Mouse and keyboard sharing utility") (synopsis "Mouse and keyboard sharing utility")
(description (description

View File

@ -547,6 +547,42 @@ converters, will completely supplant the older patterns.")
build fonts using the Metafont system.") build fonts using the Metafont system.")
(license license:knuth))) (license license:knuth)))
(define-public texlive-tex-fontinst-base
(package
(name "texlive-tex-fontinst-base")
(version (number->string %texlive-revision))
(source (origin
(method svn-fetch)
(uri (svn-reference
(url (string-append "svn://www.tug.org/texlive/tags/"
%texlive-tag "/Master/texmf-dist/"
"/tex/fontinst/base"))
(revision %texlive-revision)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"12gnb8hc45p47pqn31msvi4mpr3wxbbbf2k4xhmshjqykwzlx508"))))
(build-system trivial-build-system)
(arguments
`(#:modules ((guix build utils))
#:builder
(begin
(use-modules (guix build utils))
(let ((target (string-append (assoc-ref %outputs "out")
"/share/texmf-dist/tex/fontinst/base")))
(mkdir-p target)
(copy-recursively (assoc-ref %build-inputs "source") target)
#t))))
(home-page "https://www.ctan.org/pkg/fontinst")
(synopsis "Tools for converting and installing fonts for TeX and LaTeX")
(description "This package provides TeX macros for converting Adobe Font
Metric files to TeX metric and virtual font format. Fontinst helps mainly
with the number crunching and shovelling parts of font installation. This
means in practice that it creates a number of files which give the TeX
metrics (and related information) for a font family that TeX needs to do any
typesetting in these fonts.")
(license license:lppl1.1+)))
(define-public texlive-fontname (define-public texlive-fontname
(package (package
(name "texlive-fontname") (name "texlive-fontname")
@ -616,31 +652,37 @@ documents.")
(string-append (getcwd) ":" (string-append (getcwd) ":"
mf "/share/texmf-dist/metafont/base"))) mf "/share/texmf-dist/metafont/base")))
(mkdir "build") (mkdir "build")
(mkdir-p "pk/ljfour/public/cm/dpi600")
(for-each (lambda (font) (for-each (lambda (font)
(format #t "building font ~a\n" font) (format #t "building font ~a\n" font)
(invoke "mf" "-progname=mf" (invoke "mf" "-progname=mf"
"-output-directory=build" "-output-directory=build"
(string-append "\\" (string-append "\\"
"mode:=ljfour; " "mode:=ljfour; "
"mag:=1; " "mag:=1+0/600; "
"batchmode; " "batchmode; "
"input " "input "
(basename font ".mf")))) (basename font ".mf")))
(invoke "gftopk"
(string-append "build/"
(basename font ".mf") ".600gf")
(string-append "pk/ljfour/public/cm/dpi600/"
(basename font ".mf") ".pk")))
(find-files "." "cm(.*[0-9]+.*|inch)\\.mf$")) (find-files "." "cm(.*[0-9]+.*|inch)\\.mf$"))
#t)) #t))
(replace 'install (replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(tfm (string-append (fonts (string-append out "/share/texmf-dist/fonts/"))
out "/share/texmf-dist/fonts/tfm/public/cm")) (pk (string-append fonts "pk"))
(mf (string-append (tfm (string-append fonts "tfm/public/cm"))
out "/share/texmf-dist/fonts/source/public/cm")) (mf (string-append fonts "source/public/cm"))
(type1 (string-append (type1 (string-append fonts "type1/public/amsfonts/cm")))
out "/share/texmf-dist/fonts/type1/public/amsfonts/cm")))
(for-each (cut install-file <> tfm) (for-each (cut install-file <> tfm)
(find-files "build" "\\.*")) (find-files "build" "\\.*"))
(for-each (cut install-file <> mf) (for-each (cut install-file <> mf)
(find-files "." "\\.mf")) (find-files "." "\\.mf"))
(copy-recursively "pk" pk)
(mkdir-p type1) (mkdir-p type1)
(copy-recursively (assoc-ref inputs "cm-type1") type1) (copy-recursively (assoc-ref inputs "cm-type1") type1)
#t)))))) #t))))))
@ -974,6 +1016,7 @@ symbol fonts.")
(arguments (arguments
`(#:modules ((guix build gnu-build-system) `(#:modules ((guix build gnu-build-system)
(guix build utils) (guix build utils)
(ice-9 match)
(srfi srfi-1) (srfi srfi-1)
(srfi srfi-26)) (srfi srfi-26))
#:tests? #f ; no tests #:tests? #f ; no tests
@ -982,7 +1025,7 @@ symbol fonts.")
(delete 'configure) (delete 'configure)
(replace 'build (replace 'build
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(let ((mf (assoc-ref inputs "texlive-metafont-base")) (let ((mf (assoc-ref inputs "texlive-union"))
(cwd (getcwd))) (cwd (getcwd)))
;; Make METAFONT reproducible ;; Make METAFONT reproducible
(setenv "SOURCE_DATE_EPOCH" "1") (setenv "SOURCE_DATE_EPOCH" "1")
@ -1012,24 +1055,112 @@ symbol fonts.")
(getcwd) "/" (getcwd) "/"
(basename font ".mf"))))) (basename font ".mf")))))
(find-files "." "[0-9]+\\.mf$")) (find-files "." "[0-9]+\\.mf$"))
;; There are no metafont sources for the Euler fonts, so we
;; convert the afm files instead.
(mkdir "build/euler")
(for-each (lambda (font)
(format #t "converting afm font ~a\n" (basename font ".afm"))
(invoke "afm2tfm" font
(string-append "build/euler/"
(basename font ".tfm"))))
(find-files (assoc-ref inputs "amsfonts-afm")
"\\.afm$"))
;; Frustratingly, not all fonts can be created this way. To
;; generate eufm8.tfm, for example, we first scale down
;; eufm10.afm to eufm8.pl, and then generate the tfm file from
;; the pl file.
(with-directory-excursion "build/euler"
(setenv "TEXINPUTS"
(string-append (getcwd) "//:"
(assoc-ref inputs "amsfonts-afm") "//:"
(assoc-ref inputs "texlive-union") "//"))
(for-each (match-lambda
(((target-base target-size)
(source-base source-size))
(let ((factor (number->string
(truncate/ (* 1000 target-size)
source-size))))
(invoke "tex"
"-interaction=scrollmode"
(string-append "\\input fontinst.sty "
"\\transformfont{" target-base "}"
"{\\scalefont{" factor "}"
"{\\fromafm{" source-base "}}} "
"\\bye")))
(invoke "pltotf"
(string-append target-base ".pl")
(string-append target-base ".tfm"))
(delete-file (string-append target-base ".pl"))))
'((("eufm8" 8) ("eufm10" 10))
(("eufb6" 6) ("eufb7" 7))
(("eufb8" 8) ("eufb10" 10))
(("eufb9" 9) ("eufb10" 10))
(("eufm6" 6) ("eufb7" 7))
(("eufm9" 9) ("eufb10" 10))
(("eurb6" 6) ("eurb7" 7))
(("eurb8" 8) ("eurb10" 10))
(("eurb9" 9) ("eurb10" 10))
(("eurm6" 6) ("eurm7" 7))
(("eurm8" 8) ("eurm10" 10))
(("eurm9" 9) ("eurm10" 10)))))
#t)) #t))
(replace 'install (replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")) (let* ((out (assoc-ref outputs "out"))
(fonts (string-append out "/share/texmf-dist/fonts")) (root (string-append out "/share/texmf-dist/fonts/"))
(tfm (string-append fonts "/tfm/public/amsfonts")) (pkgs '(("amsfonts-afm" . "afm/public/amsfonts")
(mf (string-append fonts "/source/public/amsfonts")) ("amsfonts-type1" . "type1/public/amsfonts")
(type1 (string-append fonts "/type1/public/amsfonts"))) ("amsfonts-map" . "map/dvips/amsfonts"))))
(for-each (cut install-file <> tfm) (for-each (match-lambda
(find-files "build" "\\.*")) ((pkg . dir)
(for-each (cut install-file <> mf) (let ((target (string-append root dir)))
(find-files "." "\\.mf")) (mkdir-p target)
(copy-recursively (assoc-ref inputs "amsfonts-type1") type1) (copy-recursively (assoc-ref inputs pkg)
#t)))))) target))))
pkgs)
(copy-recursively (assoc-ref inputs "amsfonts-plain")
(string-append out "/share/texmf-dist/tex/plain/amsfonts"))
(let* ((tfm (string-append root "tfm/public/amsfonts"))
(mf (string-append root "source/public/amsfonts")))
(copy-recursively "build" tfm)
(for-each (cut install-file <> mf)
(find-files "." "\\.mf"))
#t)))))))
(native-inputs (native-inputs
`(("texlive-fonts-cm" ,texlive-fonts-cm) `(("texlive-union" ,(texlive-union (list texlive-tex-fontinst-base
("texlive-metafont-base" ,texlive-metafont-base) texlive-fonts-cm
("texlive-bin" ,texlive-bin) texlive-metafont-base)))
("amsfonts-plain"
,(origin
(method svn-fetch)
(uri (svn-reference
(url (string-append "svn://www.tug.org/texlive/tags/"
%texlive-tag "/Master/texmf-dist/"
"/tex/plain/amsfonts"))
(revision %texlive-revision)))
(file-name (string-append name "-plain-" version "-checkout"))
(sha256
(base32
"1hi8c9rkfb6395sxf7fhkr91xygfg8am1hqij9g3h2c7qx3714qp"))))
("amsfonts-map"
,(origin
(method svn-fetch)
(uri (svn-reference
(url (string-append "svn://www.tug.org/texlive/tags/"
%texlive-tag "/Master/texmf-dist/"
"/fonts/map/dvips/amsfonts"))
(revision %texlive-revision)))
(file-name (string-append name "-map-" version "-checkout"))
(sha256
(base32
"1lrj3bd9ybj4aawzlygc6qvakbrwc5s0mc5n9rpic331frv3axfs"))))
("amsfonts-type1" ("amsfonts-type1"
,(origin ,(origin
(method svn-fetch) (method svn-fetch)
@ -1041,7 +1172,19 @@ symbol fonts.")
(file-name (string-append name "-type1-" version "-checkout")) (file-name (string-append name "-type1-" version "-checkout"))
(sha256 (sha256
(base32 (base32
"1zfz33vn6gm19njy74n8wmn7sljrimfhwns5z8qqhxqfh1g4qip2")))))) "1zfz33vn6gm19njy74n8wmn7sljrimfhwns5z8qqhxqfh1g4qip2"))))
("amsfonts-afm"
,(origin
(method svn-fetch)
(uri (svn-reference
(url (string-append "svn://www.tug.org/texlive/tags/"
%texlive-tag "/Master/texmf-dist/"
"/fonts/afm/public/amsfonts"))
(revision %texlive-revision)))
(file-name (string-append name "-afm-" version "-checkout"))
(sha256
(base32
"1fifzkaihmjgchnk7dmw0c23k0cz999dxnc78ivmqvgi1dhx0iv8"))))))
(home-page "https://www.ctan.org/pkg/amsfonts") (home-page "https://www.ctan.org/pkg/amsfonts")
(synopsis "TeX fonts from the American Mathematical Society") (synopsis "TeX fonts from the American Mathematical Society")
(description (description
@ -1169,15 +1312,8 @@ book).")
(getcwd) ":" (getcwd) ":"
(getcwd) "/build:" (getcwd) "/build:"
(string-join (string-join
(append-map (match-lambda (map (match-lambda ((_ . dir) dir)) inputs)
((_ . dir) "//:")))
(find-files dir
(lambda (_ stat)
(eq? 'directory (stat:type stat)))
#:directories? #t
#:stat stat)))
inputs)
":")))
;; Create an empty texsys.cfg, because latex.ltx wants to include ;; Create an empty texsys.cfg, because latex.ltx wants to include
;; it. This file must exist and it's fine if it's empty. ;; it. This file must exist and it's fine if it's empty.
@ -1407,9 +1543,7 @@ users, via its Plain TeX version.)")
(build-system texlive-build-system) (build-system texlive-build-system)
(arguments (arguments
'(#:tex-directory "latex/fancyvrb" '(#:tex-directory "latex/fancyvrb"
;; We exclude "fvrb-ex" to avoid a dependency on texlive-luaotfload and #:tex-format "latex"))
;; thus texlive-luatex-lualibs.
#:build-targets '("fancyvrb.ins")))
(home-page "https://www.ctan.org/pkg/fancyvrb") (home-page "https://www.ctan.org/pkg/fancyvrb")
(synopsis "Sophisticated verbatim text") (synopsis "Sophisticated verbatim text")
(description (description

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2015, 2016 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2015 Roel Janssen <roel@gnu.org> ;;; Copyright © 2015 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
@ -405,7 +405,7 @@ regular expression object can be specified.")
#t)) #t))
(replace 'install (replace 'install
(lambda* (#:key make-flags #:allow-other-keys) (lambda* (#:key make-flags #:allow-other-keys)
(zero? (apply system* "make" `("global_install" ,@make-flags)))))))) (apply invoke "make" `("global_install" ,@make-flags)))))))
(home-page "http://www.winfield.demon.nl/") (home-page "http://www.winfield.demon.nl/")
(synopsis "Microsoft Word document reader") (synopsis "Microsoft Word document reader")
(description "Antiword is an application for displaying Microsoft Word (description "Antiword is an application for displaying Microsoft Word

View File

@ -530,13 +530,13 @@ netcat implementation that supports TLS.")
(package (package
(name "python-acme") (name "python-acme")
;; Remember to update the hash of certbot when updating python-acme. ;; Remember to update the hash of certbot when updating python-acme.
(version "0.29.1") (version "0.30.0")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "acme" version)) (uri (pypi-uri "acme" version))
(sha256 (sha256
(base32 (base32
"0z5l966b1asbcdzl77bmywf22c1q0xill00jj7qyml9wx2nh7qm2")))) "0icly11gaiv5cl57225rdwjbs56ah077csk32skcygf7pq06sjwq"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -587,7 +587,7 @@ netcat implementation that supports TLS.")
(uri (pypi-uri name version)) (uri (pypi-uri name version))
(sha256 (sha256
(base32 (base32
"14i6yrcb9s7ygy99gccfc8jscymi24xb72s5lgg9b2y40z909ikg")))) "1s29rlnmgxq42wd4bpc7bma1hx9wnpw4y6dfznrfj33hfmngwcfn"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(,@(substitute-keyword-arguments (package-arguments python-acme) `(,@(substitute-keyword-arguments (package-arguments python-acme)

View File

@ -43,10 +43,10 @@
;; that we pass by default. ;; that we pass by default.
(setenv "CONFIG_SHELL" (which "sh")) (setenv "CONFIG_SHELL" (which "sh"))
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(zero? (system* "./configure" (invoke "./configure"
(string-append "--prefix=" out) (string-append "--prefix=" out)
(string-append "--infodir=" out (string-append "--infodir=" out
"/share/info"))))))))) "/share/info"))))))))
(home-page "https://www.gnu.org/software/uucp/uucp.html") (home-page "https://www.gnu.org/software/uucp/uucp.html")
(synopsis "UUCP protocol implementation") (synopsis "UUCP protocol implementation")
(description (description

View File

@ -376,7 +376,7 @@ shader compilation.")
("spirv-tools" ,spirv-tools) ("spirv-tools" ,spirv-tools)
("vulkan-headers" ,vulkan-headers) ("vulkan-headers" ,vulkan-headers)
("vulkan-loader" ,vulkan-loader) ("vulkan-loader" ,vulkan-loader)
("wine" ,wine) ; Needed for 'widl'. ("wine-minimal" ,wine-minimal) ; Needed for 'widl'.
("xcb-util" ,xcb-util) ("xcb-util" ,xcb-util)
("xcb-util-keysyms" ,xcb-util-keysyms) ("xcb-util-keysyms" ,xcb-util-keysyms)
("xcb-util-wm" ,xcb-util-wm))) ("xcb-util-wm" ,xcb-util-wm)))

View File

@ -168,7 +168,7 @@
(format #t (format #t
"running ~s with command ~s and parameters ~s~%" "running ~s with command ~s and parameters ~s~%"
"python setup.py" "configure" params) "python setup.py" "configure" params)
(zero? (apply system* "python" "setup.py" "configure" params)))))) (apply invoke "python" "setup.py" "configure" params)))))
(add-after 'install 'post-install (add-after 'install 'post-install
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))

View File

@ -66,7 +66,8 @@
#:use-module (gnu packages vulkan) #:use-module (gnu packages vulkan)
#:use-module (gnu packages xml) #:use-module (gnu packages xml)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (ice-9 match)) #:use-module (ice-9 match)
#:use-module (srfi srfi-1))
(define-public wine (define-public wine
(package (package
@ -125,6 +126,7 @@
("sdl2" ,sdl2) ("sdl2" ,sdl2)
("unixodbc" ,unixodbc) ("unixodbc" ,unixodbc)
("v4l-utils" ,v4l-utils) ("v4l-utils" ,v4l-utils)
("vkd3d" ,vkd3d)
("vulkan-loader" ,vulkan-loader) ("vulkan-loader" ,vulkan-loader)
("zlib" ,zlib))) ("zlib" ,zlib)))
(arguments (arguments
@ -149,6 +151,27 @@
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
;; Explicitely set the 32-bit version of vulkan-loader when installing
;; to i686-linux or x86_64-linux.
;; TODO: Add more JSON files as they become available in Mesa.
,@(match (%current-system)
((or "i686-linux" "x86_64-linux")
`((add-after 'install 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(icd (string-append out "/share/vulkan/icd.d")))
(mkdir-p icd)
(copy-file (string-append (assoc-ref inputs "mesa")
"/share/vulkan/icd.d/radeon_icd.i686.json")
(string-append icd "/radeon_icd.i686.json"))
(wrap-program (string-append out "/bin/wine-preloader")
`("VK_ICD_FILENAMES" ":" =
(,(string-append icd
"/radeon_icd.i686.json"))))
#t)))))
(_
`())
)
(add-after 'configure 'patch-dlopen-paths (add-after 'configure 'patch-dlopen-paths
;; Hardcode dlopened sonames to absolute paths. ;; Hardcode dlopened sonames to absolute paths.
(lambda _ (lambda _
@ -186,6 +209,34 @@ integrate Windows applications into your desktop.")
(string-append "libdir=" %output "/lib/wine64")) (string-append "libdir=" %output "/lib/wine64"))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
;; Explicitely set both the 64-bit and 32-bit versions of vulkan-loader
;; when installing to x86_64-linux so both are available.
;; TODO: Add more JSON files as they become available in Mesa.
,@(match (%current-system)
((or "x86_64-linux")
`((add-after 'copy-wine32-binaries 'wrap-executable
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
(wrap-program (string-append out "/bin/wine-preloader")
`("VK_ICD_FILENAMES" ":" =
(,(string-append (assoc-ref inputs "mesa")
"/share/vulkan/icd.d/radeon_icd.x86_64.json" ":"
(assoc-ref inputs "mesa")
"/share/vulkan/icd.d/intel_icd.x86_64.json" ":"
(assoc-ref inputs "wine")
"/share/vulkan/icd.d/radeon_icd.i686.json"))))
(wrap-program (string-append out "/bin/wine64-preloader")
`("VK_ICD_FILENAMES" ":" =
(,(string-append (assoc-ref inputs "mesa")
"/share/vulkan/icd.d/radeon_icd.x86_64.json"
":" (assoc-ref inputs "mesa")
"/share/vulkan/icd.d/intel_icd.x86_64.json"
":" (assoc-ref inputs "wine")
"/share/vulkan/icd.d/radeon_icd.i686.json"))))
#t)))))
(_
`())
)
(add-after 'install 'copy-wine32-binaries (add-after 'install 'copy-wine32-binaries
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((wine32 (assoc-ref %build-inputs "wine")) (let* ((wine32 (assoc-ref %build-inputs "wine"))
@ -193,7 +244,9 @@ integrate Windows applications into your desktop.")
;; Copy the 32-bit binaries needed for WoW64. ;; Copy the 32-bit binaries needed for WoW64.
(copy-file (string-append wine32 "/bin/wine") (copy-file (string-append wine32 "/bin/wine")
(string-append out "/bin/wine")) (string-append out "/bin/wine"))
(copy-file (string-append wine32 "/bin/wine-preloader") ;; Copy the real 32-bit wine-preloader instead of the wrapped
;; version.
(copy-file (string-append wine32 "/bin/.wine-preloader-real")
(string-append out "/bin/wine-preloader")) (string-append out "/bin/wine-preloader"))
#t))) #t)))
(add-after 'compress-documentation 'copy-wine32-manpage (add-after 'compress-documentation 'copy-wine32-manpage
@ -224,6 +277,36 @@ integrate Windows applications into your desktop.")
(synopsis "Implementation of the Windows API (WoW64 version)") (synopsis "Implementation of the Windows API (WoW64 version)")
(supported-systems '("x86_64-linux" "aarch64-linux")))) (supported-systems '("x86_64-linux" "aarch64-linux"))))
;; This minimal build of Wine is needed to prevent a circular dependency with
;; vkd3d.
(define-public wine-minimal
(package
(inherit wine)
(name "wine-minimal")
(native-inputs (fold alist-delete (package-native-inputs wine)
'("gettext" "perl" "pkg-config")))
(inputs `())
(arguments
`(#:validate-runpath? #f
#:phases
(modify-phases %standard-phases
(add-after 'configure 'patch-dlopen-paths
;; Hardcode dlopened sonames to absolute paths.
(lambda _
(let* ((library-path (search-path-as-string->list
(getenv "LIBRARY_PATH")))
(find-so (lambda (soname)
(search-path library-path soname))))
(substitute* "include/config.h"
(("(#define SONAME_.* )\"(.*)\"" _ defso soname)
(format #f "~a\"~a\"" defso (find-so soname))))
#t))))
#:configure-flags
(list "--without-freetype"
"--without-x")
,@(strip-keyword-arguments '(#:configure-flags #:phases)
(package-arguments wine))))))
(define-public wine-staging-patchset-data (define-public wine-staging-patchset-data
(package (package
(name "wine-staging-patchset-data") (name "wine-staging-patchset-data")
@ -291,7 +374,6 @@ integrate Windows applications into your desktop.")
("mesa" ,mesa) ("mesa" ,mesa)
("python" ,python) ("python" ,python)
("util-linux" ,util-linux) ; for hexdump ("util-linux" ,util-linux) ; for hexdump
("vkd3d" ,vkd3d)
("wine-staging-patchset-data" ,wine-staging-patchset-data) ("wine-staging-patchset-data" ,wine-staging-patchset-data)
,@(package-inputs wine))) ,@(package-inputs wine)))
(arguments (arguments

View File

@ -800,7 +800,7 @@ experience.")
(lambda _ (lambda _
;; There aren't any tests, so just make sure the binary ;; There aren't any tests, so just make sure the binary
;; gets built and can be run successfully. ;; gets built and can be run successfully.
(zero? (system* "../build/awesome" "-v")))) (invoke "../build/awesome" "-v")))
(add-after 'install 'wrap (add-after 'install 'wrap
(lambda* (#:key inputs outputs #:allow-other-keys) (lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((awesome (assoc-ref outputs "out")) (let* ((awesome (assoc-ref outputs "out"))

View File

@ -4,7 +4,7 @@
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Florian Paul Schmidt <mista.tapas@gmx.net> ;;; Copyright © 2016 Florian Paul Schmidt <mista.tapas@gmx.net>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Petter <petter@mykolab.ch> ;;; Copyright © 2017 Petter <petter@mykolab.ch>
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is> ;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@ -126,7 +126,7 @@ Xfce Desktop Environment.")
(string-append %output "/share")) (string-append %output "/share"))
;; For the missing '/etc/machine-id'. ;; For the missing '/etc/machine-id'.
(setenv "DBUS_FATAL_WARNINGS" "0"); (setenv "DBUS_FATAL_WARNINGS" "0");
(zero? (system* "dbus-launch" "make" "check")))) (invoke "dbus-launch" "make" "check")))
(delete 'check)))) (delete 'check))))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("pkg-config" ,pkg-config)

View File

@ -44,8 +44,8 @@
;; Add services to the baseline: a DHCP client and ;; Add services to the baseline: a DHCP client and
;; an SSH server. ;; an SSH server.
(services (cons* (service dhcp-client-service-type) (services (append (list (service dhcp-client-service-type)
(service openssh-service-type (service openssh-service-type
(openssh-configuration (openssh-configuration
(port-number 2222))) (port-number 2222))))
%base-services))) %base-services)))

View File

@ -43,15 +43,15 @@
%base-user-accounts)) %base-user-accounts))
;; Globally-installed packages. ;; Globally-installed packages.
(packages (cons* screen openssh %base-packages)) (packages (append (list screen openssh) %base-packages))
(services (cons* (service dhcp-client-service-type) (services (append (list (service dhcp-client-service-type)
;; mingetty does not work on serial lines. ;; mingetty does not work on serial lines.
;; Use agetty with board-specific serial parameters. ;; Use agetty with board-specific serial parameters.
(agetty-service (agetty-service
(agetty-configuration (agetty-configuration
(extra-options '("-L")) (extra-options '("-L"))
(baud-rate "115200") (baud-rate "115200")
(term "vt100") (term "vt100")
(tty "ttyO0"))) (tty "ttyO0"))))
%base-services))) %base-services)))

View File

@ -25,12 +25,17 @@
(target "my-root") (target "my-root")
(type luks-device-mapping)))) (type luks-device-mapping))))
(file-systems (cons (file-system (file-systems (append
(device (file-system-label "my-root")) (list (file-system
(mount-point "/") (device (file-system-label "my-root"))
(type "ext4") (mount-point "/")
(dependencies mapped-devices)) (type "ext4")
%base-file-systems)) (dependencies mapped-devices))
(file-system
(device (uuid "1234-ABCD" 'fat))
(mount-point "/boot/efi")
(type "vfat")))
%base-file-systems))
(users (cons (user-account (users (cons (user-account
(name "bob") (name "bob")
@ -42,17 +47,20 @@
%base-user-accounts)) %base-user-accounts))
;; This is where we specify system-wide packages. ;; This is where we specify system-wide packages.
(packages (cons* nss-certs ;for HTTPS access (packages (append (list
gvfs ;for user mounts ;; for HTTPS access
%base-packages)) nss-certs
;; for user mounts
gvfs)
%base-packages))
;; Add GNOME and/or Xfce---we can choose at the log-in ;; Add GNOME and/or Xfce---we can choose at the log-in
;; screen with F1. Use the "desktop" services, which ;; screen with F1. Use the "desktop" services, which
;; include the X11 log-in service, networking with ;; include the X11 log-in service, networking with
;; NetworkManager, and more. ;; NetworkManager, and more.
(services (cons* (gnome-desktop-service) (services (append (list (gnome-desktop-service)
(xfce-desktop-service) (xfce-desktop-service))
%desktop-services)) %desktop-services))
;; Allow resolution of '.local' host names with mDNS. ;; Allow resolution of '.local' host names with mDNS.
(name-service-switch %mdns-host-lookup-nss)) (name-service-switch %mdns-host-lookup-nss))

View File

@ -19,15 +19,16 @@
;; Assume the target root file system is labelled "my-root", ;; Assume the target root file system is labelled "my-root",
;; and the EFI System Partition has UUID 1234-ABCD. ;; and the EFI System Partition has UUID 1234-ABCD.
(file-systems (cons* (file-system (file-systems (append
(list (file-system
(device (file-system-label "my-root")) (device (file-system-label "my-root"))
(mount-point "/") (mount-point "/")
(type "ext4")) (type "ext4"))
(file-system (file-system
(device (uuid "1234-ABCD" 'fat)) (device (uuid "1234-ABCD" 'fat))
(mount-point "/boot/efi") (mount-point "/boot/efi")
(type "vfat")) (type "vfat")))
%base-file-systems)) %base-file-systems))
(users (cons (user-account (users (cons (user-account
(name "alice") (name "alice")
@ -40,9 +41,12 @@
;; Add a bunch of window managers; we can choose one at ;; Add a bunch of window managers; we can choose one at
;; the log-in screen with F1. ;; the log-in screen with F1.
(packages (cons* ratpoison i3-wm i3status dmenu ;window managers (packages (append (list
nss-certs ;for HTTPS access ;; window managers
%base-packages)) ratpoison i3-wm i3status dmenu
;; for HTTPS access
nss-certs)
%base-packages))
;; Use the "desktop" services, which include the X11 ;; Use the "desktop" services, which include the X11
;; log-in service, networking with NetworkManager, and more. ;; log-in service, networking with NetworkManager, and more.

View File

@ -24,7 +24,7 @@ partprobe, and then 2) resizing the filesystem with resize2fs.\n"))
(timezone "Etc/UTC") (timezone "Etc/UTC")
(locale "en_US.utf8") (locale "en_US.utf8")
(firmware '()) (firmware '())
;; Assuming /dev/sdX is the target hard disk, and "my-root" is ;; Assuming /dev/sdX is the target hard disk, and "my-root" is
;; the label of the target root file system. ;; the label of the target root file system.
@ -44,10 +44,12 @@ partprobe, and then 2) resizing the filesystem with resize2fs.\n"))
(users %base-user-accounts) (users %base-user-accounts)
;; Globally-installed packages. ;; Globally-installed packages.
(packages (cons* nvi fdisk (packages (append (list nvi fdisk
grub ; mostly so xrefs to its manual work ;; mostly so xrefs to its manual work
parted ; partprobe grub
%base-packages)) ;; partprobe
parted)
%base-packages))
(services (modify-services %base-services (services (modify-services %base-services
(login-service-type config => (login-service-type config =>

View File

@ -3,7 +3,7 @@
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org> ;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de> ;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
@ -65,7 +65,7 @@
ipa ipa
knuth knuth
lgpl2.0 lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3 lgpl3+ lgpl2.0 lgpl2.0+ lgpl2.1 lgpl2.1+ lgpl3 lgpl3+
lppl lppl1.0+ lppl1.2 lppl1.2+ lppl lppl1.0+ lppl1.1+ lppl1.2 lppl1.2+
lppl1.3 lppl1.3+ lppl1.3 lppl1.3+
lppl1.3a lppl1.3a+ lppl1.3a lppl1.3a+
lppl1.3b lppl1.3b+ lppl1.3b lppl1.3b+
@ -421,6 +421,11 @@ at URI, which may be a file:// URI pointing the package's tree."
"https://www.latex-project.org/lppl/lppl-1-0/" "https://www.latex-project.org/lppl/lppl-1-0/"
"LaTeX Project Public License 1.0")) "LaTeX Project Public License 1.0"))
(define lppl1.1+
(license "LPPL 1.1+"
"https://www.latex-project.org/lppl/lppl-1-1/"
"LaTeX Project Public License 1.1"))
(define lppl1.2 (define lppl1.2
(license "LPPL 1.2" (license "LPPL 1.2"
"http://directory.fsf.org/wiki/License:LPPLv1.2" "http://directory.fsf.org/wiki/License:LPPLv1.2"

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015, 2017, 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2017, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
@ -133,6 +133,7 @@
bag-transitive-host-inputs bag-transitive-host-inputs
bag-transitive-build-inputs bag-transitive-build-inputs
bag-transitive-target-inputs bag-transitive-target-inputs
package-closure
default-guile default-guile
default-guile-derivation default-guile-derivation
@ -798,6 +799,28 @@ dependencies are known to build on SYSTEM."
"Return the \"target inputs\" of BAG, recursively." "Return the \"target inputs\" of BAG, recursively."
(transitive-inputs (bag-target-inputs bag))) (transitive-inputs (bag-target-inputs bag)))
(define* (package-closure packages #:key (system (%current-system)))
"Return the closure of PACKAGES on SYSTEM--i.e., PACKAGES and the list of
packages they depend on, recursively."
(let loop ((packages packages)
(visited vlist-null)
(closure (list->setq packages)))
(match packages
(()
(set->list closure))
((package . rest)
(if (vhash-assq package visited)
(loop rest visited closure)
(let* ((bag (package->bag package system))
(dependencies (filter-map (match-lambda
((label (? package? package) . _)
package)
(_ #f))
(bag-direct-inputs bag))))
(loop (append dependencies rest)
(vhash-consq package #t visited)
(fold set-insert closure dependencies))))))))
(define* (package-mapping proc #:optional (cut? (const #f))) (define* (package-mapping proc #:optional (cut? (const #f)))
"Return a procedure that, given a package, applies PROC to all the packages "Return a procedure that, given a package, applies PROC to all the packages
depended on and returns the resulting package. The procedure stops recursion depended on and returns the resulting package. The procedure stops recursion

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2018 Mark H Weaver <mhw@netris.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -44,31 +44,6 @@
(format #f fmt args ...) (format #f fmt args ...)
form)))) form))))
(define (report-invalid-field-specifier name bindings)
"Report the first invalid binding among BINDINGS."
(let loop ((bindings bindings))
(syntax-case bindings ()
(((field value) rest ...) ;good
(loop #'(rest ...)))
((weird _ ...) ;weird!
(syntax-violation name "invalid field specifier" #'weird)))))
(define (report-duplicate-field-specifier name ctor)
"Report the first duplicate identifier among the bindings in CTOR."
(syntax-case ctor ()
((_ bindings ...)
(let loop ((bindings #'(bindings ...))
(seen '()))
(syntax-case bindings ()
(((field value) rest ...)
(not (memq (syntax->datum #'field) seen))
(loop #'(rest ...) (cons (syntax->datum #'field) seen)))
((duplicate rest ...)
(syntax-violation name "duplicate field initializer"
#'duplicate))
(()
#t))))))
(eval-when (expand load eval) (eval-when (expand load eval)
;; The procedures below are needed both at run time and at expansion time. ;; The procedures below are needed both at run time and at expansion time.
@ -91,7 +66,32 @@ interface\" (ABI) for TYPE is equal to COOKIE."
;; recompiled. ;; recompiled.
(throw 'record-abi-mismatch-error 'abi-check (throw 'record-abi-mismatch-error 'abi-check
"~a: record ABI mismatch; recompilation needed" "~a: record ABI mismatch; recompilation needed"
(list #,type) '()))))) (list #,type) '()))))
(define (report-invalid-field-specifier name bindings)
"Report the first invalid binding among BINDINGS."
(let loop ((bindings bindings))
(syntax-case bindings ()
(((field value) rest ...) ;good
(loop #'(rest ...)))
((weird _ ...) ;weird!
(syntax-violation name "invalid field specifier" #'weird)))))
(define (report-duplicate-field-specifier name ctor)
"Report the first duplicate identifier among the bindings in CTOR."
(syntax-case ctor ()
((_ bindings ...)
(let loop ((bindings #'(bindings ...))
(seen '()))
(syntax-case bindings ()
(((field value) rest ...)
(not (memq (syntax->datum #'field) seen))
(loop #'(rest ...) (cons (syntax->datum #'field) seen)))
((duplicate rest ...)
(syntax-violation name "duplicate field initializer"
#'duplicate))
(()
#t)))))))
(define-syntax make-syntactic-constructor (define-syntax make-syntactic-constructor
(syntax-rules () (syntax-rules ()

View File

@ -400,7 +400,7 @@ the latest known version of ~a (~a)~%")
(package-version package))) (package-version package)))
(mlet %store-monad ((edges (node-back-edges %bag-node-type (mlet %store-monad ((edges (node-back-edges %bag-node-type
(all-packages)))) (package-closure (all-packages)))))
(let* ((dependents (node-transitive-edges packages edges)) (let* ((dependents (node-transitive-edges packages edges))
(covering (filter (lambda (node) (covering (filter (lambda (node)
(null? (edges node))) (null? (edges node)))
@ -419,8 +419,8 @@ the latest known version of ~a (~a)~%")
(full-name x))) (full-name x)))
(lst (lst
(format (current-output-port) (format (current-output-port)
(N_ "Building the following package would ensure ~d \ (N_ "Building the following ~*package would ensure ~d \
dependent packages are rebuilt: ~*~{~a~^ ~}~%" dependent packages are rebuilt: ~{~a~^ ~}~%"
"Building the following ~d packages would ensure ~d \ "Building the following ~d packages would ensure ~d \
dependent packages are rebuilt: ~{~a~^ ~}~%" dependent packages are rebuilt: ~{~a~^ ~}~%"
(length covering)) (length covering))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com> ;;; Copyright © 2018 Kyle Meyer <kyle@kyleam.com>
;;; ;;;
@ -32,6 +32,9 @@
#:use-module (guix scripts substitute) #:use-module (guix scripts substitute)
#:use-module (guix http-client) #:use-module (guix http-client)
#:use-module (guix ci) #:use-module (guix ci)
#:use-module (guix sets)
#:use-module (guix graph)
#:autoload (guix scripts graph) (%bag-node-type)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (web uri) #:use-module (web uri)
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
@ -41,6 +44,7 @@
#:use-module (srfi srfi-37) #:use-module (srfi srfi-37)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:use-module (ice-9 vlist)
#:export (guix-weather)) #:export (guix-weather))
(define (all-packages) (define (all-packages)
@ -51,7 +55,10 @@
(cons* replacement package result)) (cons* replacement package result))
(#f (#f
(cons package result)))) (cons package result))))
'())) '()
;; Dismiss deprecated packages but keep hidden packages.
#:select? (negate package-superseded)))
(define (call-with-progress-reporter reporter proc) (define (call-with-progress-reporter reporter proc)
"This is a variant of 'call-with-progress-reporter' that works with monadic "This is a variant of 'call-with-progress-reporter' that works with monadic
@ -254,6 +261,10 @@ Report the availability of substitutes.\n"))
-m, --manifest=MANIFEST -m, --manifest=MANIFEST
look up substitutes for packages specified in MANIFEST")) look up substitutes for packages specified in MANIFEST"))
(display (G_ " (display (G_ "
-c, --coverage[=COUNT]
show substitute coverage for packages with at least
COUNT dependents"))
(display (G_ "
-s, --system=SYSTEM consider substitutes for SYSTEM--e.g., \"i686-linux\"")) -s, --system=SYSTEM consider substitutes for SYSTEM--e.g., \"i686-linux\""))
(newline) (newline)
(display (G_ " (display (G_ "
@ -286,6 +297,11 @@ Report the availability of substitutes.\n"))
(option '(#\m "manifest") #t #f (option '(#\m "manifest") #t #f
(lambda (opt name arg result) (lambda (opt name arg result)
(alist-cons 'manifest arg result))) (alist-cons 'manifest arg result)))
(option '(#\c "coverage") #f #t
(lambda (opt name arg result)
(alist-cons 'coverage
(if arg (string->number* arg) 0)
result)))
(option '(#\s "system") #t #f (option '(#\s "system") #t #f
(lambda (opt name arg result) (lambda (opt name arg result)
(alist-cons 'system arg result))))) (alist-cons 'system arg result)))))
@ -300,6 +316,153 @@ Report the availability of substitutes.\n"))
(map manifest-entry-item (map manifest-entry-item
(manifest-transitive-entries manifest)))) (manifest-transitive-entries manifest))))
;;;
;;; Missing package substitutes.
;;;
(define* (package-partition-boundary pred packages
#:key (system (%current-system)))
"Return the subset of PACKAGES that are at the \"boundary\" between those
that match PRED and those that don't. The returned packages themselves do not
match PRED but they have at least one direct dependency that does.
Note: The assumption is that, if P matches PRED, then all the dependencies of
P match PRED as well."
;; XXX: Graph theoreticians surely have something to teach us about this...
(let loop ((packages packages)
(result (setq))
(visited vlist-null))
(define (visited? package)
(vhash-assq package visited))
(match packages
((package . rest)
(cond ((visited? package)
(loop rest result visited))
((pred package)
(loop rest result (vhash-consq package #t visited)))
(else
(let* ((bag (package->bag package system))
(deps (filter-map (match-lambda
((label (? package? package) . _)
(and (not (pred package))
package))
(_ #f))
(bag-direct-inputs bag))))
(loop (append deps rest)
(if (null? deps)
(set-insert package result)
result)
(vhash-consq package #t visited))))))
(()
(set->list result)))))
(define (package->output-mapping packages system)
"Return a vhash that maps each item of PACKAGES to its corresponding output
store file names for SYSTEM."
(foldm %store-monad
(lambda (package mapping)
(mlet %store-monad ((drv (package->derivation package system
#:graft? #f)))
(return (vhash-consq package
(match (derivation->output-paths drv)
(((names . outputs) ...)
outputs))
mapping))))
vlist-null
packages))
(define (substitute-oracle server items)
"Return a procedure that, when passed a store item (one of those listed in
ITEMS), returns true if SERVER has a substitute for it, false otherwise."
(define available
(fold (lambda (narinfo set)
(set-insert (narinfo-path narinfo) set))
(set)
(lookup-narinfos server items)))
(cut set-contains? available <>))
(define* (report-package-coverage-per-system server packages system
#:key (threshold 0))
"Report on the subset of PACKAGES that lacks SYSTEM substitutes on SERVER,
sorted by decreasing number of dependents. Do not display those with less
than THRESHOLD dependents."
(mlet* %store-monad ((packages -> (package-closure packages #:system system))
(mapping (package->output-mapping packages system))
(back-edges (node-back-edges %bag-node-type packages)))
(define items
(vhash-fold (lambda (package items result)
(append items result))
'()
mapping))
(define substitutable?
(substitute-oracle server items))
(define substitutable-package?
(lambda (package)
(match (vhash-assq package mapping)
((_ . items)
(find substitutable? items))
(#f
#f))))
(define missing
(package-partition-boundary substitutable-package? packages
#:system system))
(define missing-count
(length missing))
(if (zero? threshold)
(format #t (N_ "The following ~a package is missing from '~a' for \
'~a':~%"
"The following ~a packages are missing from '~a' for \
'~a':~%"
missing-count)
missing-count server system)
(format #t (N_ "~a package is missing from '~a' for '~a':~%"
"~a packages are missing from '~a' for '~a', among \
which:~%"
missing-count)
missing-count server system))
(for-each (match-lambda
((package count)
(match (vhash-assq package mapping)
((_ . items)
(when (>= count threshold)
(format #t " ~4d\t~a@~a\t~{~a ~}~%"
count
(package-name package) (package-version package)
items)))
(#f ;PACKAGE must be an internal thing
#f))))
(sort (zip missing
(map (lambda (package)
(node-reachable-count (list package)
back-edges))
missing))
(match-lambda*
(((_ count1) (_ count2))
(< count2 count1)))))
(return #t)))
(define* (report-package-coverage server packages systems
#:key (threshold 0))
"Report on the substitute coverage for PACKAGES, for each of SYSTEMS, on
SERVER. Display information for packages with at least THRESHOLD dependents."
(with-store store
(run-with-store store
(foldm %store-monad
(lambda (system _)
(report-package-coverage-per-system server packages system
#:threshold threshold))
#f
systems))))
;;; ;;;
;;; Entry point. ;;; Entry point.
@ -331,7 +494,12 @@ Report the availability of substitutes.\n"))
(package-outputs packages system)) (package-outputs packages system))
systems))))))) systems)))))))
(for-each (lambda (server) (for-each (lambda (server)
(report-server-coverage server items)) (report-server-coverage server items)
(match (assoc-ref opts 'coverage)
(#f #f)
(threshold
(report-package-coverage server packages systems
#:threshold threshold))))
urls))))) urls)))))
;;; Local Variables: ;;; Local Variables:

View File

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Caleb Ristvedt <caleb.ristvedt@cune.org> ;;; Copyright © 2017 Caleb Ristvedt <caleb.ristvedt@cune.org>
;;; Copyright © 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -109,8 +109,9 @@ Note: TARGET, TO-REPLACE, and SWAP-DIRECTORY must be on the same file system."
(get-temp-link target swap-directory)) (get-temp-link target swap-directory))
(lambda args (lambda args
;; We get ENOSPC when we can't fit an additional entry in ;; We get ENOSPC when we can't fit an additional entry in
;; SWAP-DIRECTORY. ;; SWAP-DIRECTORY. If it's EMLINK, then TARGET has reached its
(if (= ENOSPC (system-error-errno args)) ;; maximum number of links.
(if (memv (system-error-errno args) `(,ENOSPC ,EMLINK))
#f #f
(apply throw args))))) (apply throw args)))))
@ -169,4 +170,8 @@ under STORE."
;; more entries in .links, but that's fine: we can ;; more entries in .links, but that's fine: we can
;; just stop. ;; just stop.
#f) #f)
((= errno EMLINK)
;; PATH has reached the maximum number of links, but
;; that's OK: we just can't deduplicate it more.
#f)
(else (apply throw args)))))))))) (else (apply throw args))))))))))

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -334,18 +334,19 @@ CONTENTS."
(define-syntax-rule (dummy-package name* extra-fields ...) (define-syntax-rule (dummy-package name* extra-fields ...)
"Return a \"dummy\" package called NAME*, with all its compulsory fields "Return a \"dummy\" package called NAME*, with all its compulsory fields
initialized with default values, and with EXTRA-FIELDS set as specified." initialized with default values, and with EXTRA-FIELDS set as specified."
(package extra-fields ... (let ((p (package
(name name*) (version "0") (source #f) (name name*) (version "0") (source #f)
(build-system gnu-build-system) (build-system gnu-build-system)
(synopsis #f) (description #f) (synopsis #f) (description #f)
(home-page #f) (license #f))) (home-page #f) (license #f))))
(package (inherit p) extra-fields ...)))
(define-syntax-rule (dummy-origin extra-fields ...) (define-syntax-rule (dummy-origin extra-fields ...)
"Return a \"dummy\" origin, with all its compulsory fields initialized with "Return a \"dummy\" origin, with all its compulsory fields initialized with
default values, and with EXTRA-FIELDS set as specified." default values, and with EXTRA-FIELDS set as specified."
(origin extra-fields ... (let ((o (origin (method #f) (uri "http://www.example.com")
(method #f) (uri "http://www.example.com") (sha256 (base32 (make-string 52 #\x))))))
(sha256 (base32 (make-string 52 #\x))))) (origin (inherit o) extra-fields ...)))
;; Local Variables: ;; Local Variables:
;; eval: (put 'call-with-derivation-narinfo 'scheme-indent-function 1) ;; eval: (put 'call-with-derivation-narinfo 'scheme-indent-function 1)

View File

@ -690,7 +690,7 @@ or remove one of them from the profile.")
(strerror (store-connection-error-code c)))) (strerror (store-connection-error-code c))))
((store-protocol-error? c) ((store-protocol-error? c)
;; FIXME: Server-provided error messages aren't i18n'd. ;; FIXME: Server-provided error messages aren't i18n'd.
(leave (G_ "build failed: ~a~%") (leave (G_ "~a~%")
(store-protocol-error-message c))) (store-protocol-error-message c)))
((derivation-missing-output-error? c) ((derivation-missing-output-error? c)
(leave (G_ "reference to invalid output '~a' of derivation '~a'~%") (leave (G_ "reference to invalid output '~a' of derivation '~a'~%")

View File

@ -249,6 +249,28 @@
(package-transitive-supported-systems d) (package-transitive-supported-systems d)
(package-transitive-supported-systems e)))) (package-transitive-supported-systems e))))
(test-assert "package-closure"
(let-syntax ((dummy-package/no-implicit
(syntax-rules ()
((_ name rest ...)
(package
(inherit (dummy-package name rest ...))
(build-system trivial-build-system))))))
(let* ((a (dummy-package/no-implicit "a"))
(b (dummy-package/no-implicit "b"
(propagated-inputs `(("a" ,a)))))
(c (dummy-package/no-implicit "c"
(inputs `(("a" ,a)))))
(d (dummy-package/no-implicit "d"
(native-inputs `(("b" ,b)))))
(e (dummy-package/no-implicit "e"
(inputs `(("c" ,c) ("d" ,d))))))
(lset= eq?
(list a b c d e)
(package-closure (list e))
(package-closure (list e d))
(package-closure (list e c b))))))
(test-equal "origin-actual-file-name" (test-equal "origin-actual-file-name"
"foo-1.tar.gz" "foo-1.tar.gz"
(let ((o (dummy-origin (uri "http://www.example.com/foo-1.tar.gz")))) (let ((o (dummy-origin (uri "http://www.example.com/foo-1.tar.gz"))))
@ -1180,4 +1202,5 @@
;;; Local Variables: ;;; Local Variables:
;;; eval: (put 'dummy-package 'scheme-indent-function 1) ;;; eval: (put 'dummy-package 'scheme-indent-function 1)
;;; eval: (put 'dummy-package/no-implicit 'scheme-indent-function 1)
;;; End: ;;; End:

View File

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -143,7 +143,7 @@
(default-value 'dflt) (default-value 'dflt)
(compose concatenate) (compose concatenate)
(extend cons))) (extend cons)))
(t2 (service-type (name 't2) (extensions '()) (t2 (service-type (name 't2)
(default-value 'dflt2) (default-value 'dflt2)
(compose concatenate) (compose concatenate)
(extend cons) (extend cons)