Merge branch 'master' into staging

This commit is contained in:
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 ESP, 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
must have the @code{esp} flag set. E.g., for @command{parted}:
(ESP) is required. This partition can be mounted at @file{/boot/efi} for
instance and must have the @code{esp} flag set. E.g., for @command{parted}:
@example
parted /dev/sda set 1 esp on
@ -2169,9 +2169,9 @@ mount LABEL=my-root /mnt
@end example
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
partition for example, mount it at @file{/mnt/boot} now so it is found
by @code{guix system init} afterwards.
system relative to this path. If you have opted for @file{/boot/efi} as an
EFI mount point for example, mount it at @file{/mnt/boot/efi} now so it is
found by @code{guix system init} afterwards.
Finally, if you plan to use one or more swap partitions (@pxref{Memory
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}
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
to a mounted EFI partition, like @code{/boot/efi}, and do make sure the
path is actually mounted.
to a mounted EFI partition, like @code{/boot/efi}; do make sure the path is
currently mounted and a @code{file-sytem} entry is specified in your
configuration.
@item
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
items occupy in the store (assuming deduplication is turned off), and
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
(@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
with the @code{-m} option of @command{guix package} (@pxref{Invoking
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
@node Invoking guix processes
@ -10887,8 +10921,8 @@ system, you will want to append services to @var{%base-services}, like
this:
@example
(cons* (service avahi-service-type)
(service openssh-service-type)
(append (list (service avahi-service-type)
(service openssh-service-type))
%base-services)
@end example
@end defvr
@ -11520,9 +11554,10 @@ well as in the @var{groups} field of the @var{operating-system} record.
(services
(modify-services %desktop-services
(udev-service-type config =>
(udev-service-type
config =>
(udev-configuration (inherit config)
(rules (cons* android-udev-rules
(rules (cons android-udev-rules
(udev-configuration-rules config))))))))
@end example

View file

@ -371,6 +371,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/pure.scm \
%D%/packages/pv.scm \
%D%/packages/python.scm \
%D%/packages/python-check.scm \
%D%/packages/python-compression.scm \
%D%/packages/python-crypto.scm \
%D%/packages/python-web.scm \
@ -829,8 +830,7 @@ dist_patch_DATA = \
%D%/packages/patches/gmp-faulty-test.patch \
%D%/packages/patches/gnome-todo-libical-compat.patch \
%D%/packages/patches/gnome-tweak-tool-search-paths.patch \
%D%/packages/patches/gnucash-price-quotes-perl.patch \
%D%/packages/patches/gnucash-disable-failing-tests.patch \
%D%/packages/patches/gnucash-fix-test-transaction-failure.patch \
%D%/packages/patches/gnutls-skip-trust-store-test.patch \
%D%/packages/patches/gobject-introspection-absolute-shlib-path.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 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2019 Brett Gilio <brettg@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -1602,14 +1603,14 @@ (define-public graphios
(define-public ansible
(package
(name "ansible")
(version "2.7.5")
(version "2.7.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "ansible" version))
(sha256
(base32
"1fsif2jmkrrgiawsd8r6sxrqvh01fvrmdhas0p540a6i9fby3yda"))))
"0f7b2ghm34ql8yv90wr0ngd6w7wyvnlcxpc3snkj86kcjsnmx1bd"))))
(build-system python-build-system)
(native-inputs
`(("python-bcrypt" ,python-bcrypt)

View file

@ -3,7 +3,7 @@
;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; 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, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
@ -149,7 +149,10 @@ (define-public pari-gp
(base32
"1jfax92jpydjd02fwl30r6b8kfzqqd6sm4yx94gidyz9lqjb7a94"))))
(build-system gnu-build-system)
(native-inputs `(("texlive" ,texlive-tiny)))
(native-inputs
`(("texlive" ,(texlive-union
(list texlive-fonts-amsfonts
texlive-latex-amsfonts)))))
(inputs `(("gmp" ,gmp)
("libx11" ,libx11)
("perl" ,perl)
@ -157,13 +160,13 @@ (define-public pari-gp
(arguments
'(#:make-flags '("all")
#:test-target "dobench"
#:phases (modify-phases %standard-phases
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero?
(system* "./Configure"
(string-append "--prefix=" out)))))))))
(invoke "./Configure"
(string-append "--prefix="
(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
@ -354,11 +357,11 @@ (define-public flint
(mpfr (assoc-ref inputs "mpfr")))
;; do not pass "--enable-fast-install", which makes the
;; homebrew configure process fail
(zero? (system*
"./configure"
(invoke "./configure"
(string-append "--prefix=" out)
(string-append "--with-gmp=" gmp)
(string-append "--with-mpfr=" mpfr)))))))))
(string-append "--with-mpfr=" mpfr))
#t))))))
(synopsis "Fast library for number theory")
(description
"FLINT is a C library for number theory. It supports arithmetic

View file

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

View file

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

View file

@ -112,8 +112,10 @@ (define-public clamav
;; install sample .conf files to %output/etc rather than /etc/clamav
#:make-flags (list (string-append "sysconfdir=" %output "/etc"))
#: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
(lambda _ (zero? (system* "autoreconf" "-vfi"))))
(lambda _ (invoke "autoreconf" "-vfi")))
(add-before 'configure 'patch-llvm-config
(lambda _
(substitute* '("libclamav/c++/detect.cpp"

View file

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

View file

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

View file

@ -1,5 +1,5 @@
;;; 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.
;;;
@ -94,10 +94,10 @@ (define-public axoloti-runtime
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
;; prepare ChibiOS
(and (zero? (system* "unzip" "-o" (assoc-ref inputs "chibios")))
(zero? (system* "mv" "ChibiOS_2.6.9" "chibios"))
(invoke "unzip" "-o" (assoc-ref inputs "chibios"))
(invoke "mv" "ChibiOS_2.6.9" "chibios")
(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
(substitute* "chibios/os/various/shell.c"
@ -149,7 +149,7 @@ (define-public axoloti-runtime
(string-append toolchain
"/arm-none-eabi/lib")))
(with-directory-excursion "platform_linux"
(zero? (system* "sh" "compile_firmware.sh")))))
(invoke "sh" "compile_firmware.sh"))))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -284,14 +284,14 @@ (define-public axoloti-patcher
port)))
;; Build it!
(zero? (system* "ant"
(invoke "ant"
(string-append "-Djavac.classpath=" classpath)
"-Dbuild.runtime=true"
"-Dbuild.time=01/01/1970 00:00:00"
"-Djavac.source=1.7"
"-Djavac.target=1.7"
(string-append "-Dtag.short.version="
,version))))))
,version)))))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))

View file

@ -135,10 +135,9 @@ (define (imb mpi)
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(let ((mpi-home (assoc-ref inputs "mpi")))
(zero?
;; Not safe for parallel build
(system* "make" "-C" "imb/src" "-f" "make_mpich" "SHELL=sh"
(string-append "MPI_HOME=" mpi-home))))))
(invoke "make" "-C" "imb/src" "-f" "make_mpich" "SHELL=sh"
(string-append "MPI_HOME=" mpi-home)))))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))

View file

@ -11,7 +11,7 @@
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Nils Gillmann <ng0@n0.is>
;;; 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>
;;;
;;; This file is part of GNU Guix.
@ -246,7 +246,12 @@ (define-public cdrtools
(inputs
`(("linux-headers" ,linux-libre-headers)))
(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
(delete 'configure)
(add-before 'build 'set-linux-headers
@ -261,19 +266,7 @@ (define-public cdrtools
(find-files "DEFAULTS_ENG" "^Defaults\\.")
(find-files "TEMPLATES" "^Defaults\\."))
(("/opt/schily") (assoc-ref %outputs "out")))
#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" )))))
#t)))
#:tests? #f)) ; no tests
(synopsis "Command line utilities to manipulate and burn CD/DVD/BD images")
(description "cdrtools is a collection of command line utilities to create

View file

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

View file

@ -160,10 +160,9 @@ (define-public cmst
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(zero?
(system* "qmake"
(invoke "qmake"
(string-append "PREFIX="
(assoc-ref outputs "out"))))))
(assoc-ref outputs "out")))))
(add-before 'install 'fix-Makefiles
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))

View file

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

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; 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 Lukas Gradl <lgradl@openmailbox>
;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@ -303,13 +303,12 @@ (define-public eschalot
(delete 'configure)
(replace 'check
(lambda _
(and
(zero? (system* "./worgen" "8-12" "top1000.txt" "3-10" "top400nouns.txt"
"3-6" "top150adjectives.txt" "3-6"))
(zero? (system* "./eschalot" "-r" "^guix|^guixsd"))
(zero? (system* "./eschalot" "-r" "^gnu|^free"))
(zero? (system* "./eschalot" "-r" "^cyber|^hack"))
(zero? (system* "./eschalot" "-r" "^troll")))))
(invoke "./worgen" "8-12" "top1000.txt" "3-10" "top400nouns.txt"
"3-6" "top150adjectives.txt" "3-6")
(invoke "./eschalot" "-r" "^guix|^guixsd")
(invoke "./eschalot" "-r" "^gnu|^free")
(invoke "./eschalot" "-r" "^cyber|^hack")
(invoke "./eschalot" "-r" "^troll")))
;; Make install can not create the bin dir, create it.
(add-before 'install 'create-bin-dir
(lambda* (#:key outputs #:allow-other-keys)

View file

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

View file

@ -4648,7 +4648,7 @@ (define-public emacs-highlight-indentation
(define-public emacs-elpy
(package
(name "emacs-elpy")
(version "1.27.0")
(version "1.28.0")
(source (origin
(method git-fetch)
(uri (git-reference
@ -4657,7 +4657,7 @@ (define-public emacs-elpy
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"1b76y0kzk7s9ya8k9bpsgn31i9l0rxs4iz6lg7snhjgh03k0ssgv"))))
"073bwxwjzcbmvpcz9q2xjwzx9x7hkvjni6fwvikh6yawzjp56jis"))))
(build-system emacs-build-system)
(arguments
`(#:include (cons* "^elpy/[^/]+\\.py$" "^snippets\\/" %default-include)
@ -6037,7 +6037,7 @@ (define-public emacs-highlight-stages
(define-public emacspeak
(package
(name "emacspeak")
(version "48.0")
(version "49.0")
(source
(origin
(method url-fetch)
@ -6046,7 +6046,7 @@ (define-public emacspeak
version "/emacspeak-" version ".tar.bz2"))
(sha256
(base32
"07imi3hji06b3r7v7v59978q76s8a7ynmxwfc9j03pgnv965lpjy"))))
"1smf26m7201z0bk49lzbw9zhbjfi6wylidfjixb8ylp6g0wnh8dx"))))
(build-system gnu-build-system)
(arguments
'(#:make-flags (list (string-append "prefix="
@ -6081,9 +6081,8 @@ (define-public emacspeak
"stumpwm" "xsl"))
;; Make sure emacspeak is loaded from the correct directory.
(substitute* "etc/emacspeak.sh"
(("exec FLAVOR.*")
(string-append "exec " emacs " -l " lisp
"/lisp/emacspeak-setup.el $CL_ALL")))
(("/lisp/emacspeak-setup.el")
(string-append lisp "/lisp/emacspeak-setup.el")))
;; Install the convenient startup script.
(mkdir-p bin)
(copy-file "etc/emacspeak.sh" (string-append bin "/emacspeak")))
@ -10160,6 +10159,32 @@ (define-public emacs-emms-player-simple-mpv
;; A new mpv backend is included in Emms from 5.0.
(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
(let ((commit "df206287737b9671f2e36ae7b1474ebbe9940d2a"))
(package
@ -12920,3 +12945,28 @@ (define-public emacs-nix-mode
Nix expressions. It supports syntax highlighting, indenting and refilling of
comments.")
(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 @@ (define-module (gnu packages emacs)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages tls)
#:use-module (gnu packages webkit)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (guix utils)
@ -210,6 +211,22 @@ (define-public emacs-minimal
(native-inputs
`(("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
(package (inherit emacs)
(name "emacs-no-x")

View file

@ -348,8 +348,8 @@ (define-public jimtcl
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero? (system* "./configure"
(string-append "--prefix=" out)))))))))
(invoke "./configure"
(string-append "--prefix=" out))))))))
(home-page "http://jim.tcl.tk")
(synopsis "Small footprint Tcl implementation")
(description "Jim is a small footprint implementation of the Tcl programming
@ -575,7 +575,7 @@ (define-public proplib
;; have to create the target directories at build time.
(add-before 'build 'create-target-directories
(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
(lambda* (#:key outputs #:allow-other-keys)
(setenv "CROSS_LIBRARY_PATH"
@ -589,7 +589,7 @@ (define-public proplib
#t))
(add-before 'install 'install-includes
(lambda* (#:key make-flags #:allow-other-keys)
(zero? (apply system* "make" "install-includes" make-flags)))))))
(apply invoke "make" "install-includes" make-flags))))))
(native-inputs
`(("propeller-gcc" ,propeller-gcc)
("propeller-binutils" ,propeller-binutils)

View file

@ -1,5 +1,5 @@
;;; 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 © 2016, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 David Thompson <davet@gnu.org>
@ -390,9 +390,9 @@ (define-public pcb-rnd
(replace 'configure
;; The configure script doesn't tolerate most of our configure flags.
(lambda* (#:key outputs #:allow-other-keys)
(zero? (system* "sh" "configure"
(invoke "sh" "configure"
(string-append "--prefix="
(assoc-ref outputs "out")))))))))
(assoc-ref outputs "out"))))))))
(home-page "http://repo.hu/projects/pcb-rnd/")
(description "PCB RND is a fork of the GNU PCB circuit board editing tool
featuring various improvements and bug fixes.")))

View file

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

View file

@ -3,7 +3,7 @@
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015, 2017 Andy Wingo <wingo@pobox.com>
;;; 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 © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
@ -209,12 +209,12 @@ (define-public libxdg-basedir
(arguments
'(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autogen
(add-after 'unpack 'patch-autogen
(lambda _
;; Run 'configure' in its own phase, not now.
(substitute* "autogen.sh"
(("^.*\\./configure.*") ""))
(zero? (system* "sh" "autogen.sh")))))))
#t)))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)

View file

@ -126,8 +126,8 @@ (define-public ncftp
(let ((out (assoc-ref outputs "out")))
(setenv "CONFIG_SHELL" (which "sh"))
(setenv "SHELL" (which "sh"))
(zero? (system* "./configure"
(string-append "--prefix=" out)))))))
(invoke "./configure"
(string-append "--prefix=" out))))))
#:tests? #f)) ;there are no tests
(inputs `(("ncurses" ,ncurses)))
(home-page "http://www.ncftp.com/ncftp/")

View file

@ -4027,7 +4027,7 @@ (define-public freegish
(define-public cdogs-sdl
(package
(name "cdogs-sdl")
(version "0.6.8")
(version "0.6.9")
(source (origin
(method git-fetch)
(uri (git-reference
@ -4036,7 +4036,7 @@ (define-public cdogs-sdl
(file-name (git-file-name name version))
(sha256
(base32
"1v0adxm4xsix6r6j9hs7vmss7pxrb37azwfazr54p1dmfz4s6rp8"))))
"13gyv2hzk43za1n3lsjnd5v64xlzfzq7n10scd1rcbsnk1n007zr"))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags

View file

@ -4,6 +4,7 @@
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2019 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -49,9 +50,11 @@ (define-module (gnu packages gnucash)
#:use-module (gnu packages xml))
(define-public gnucash
;; TODO: Unbundle libraries such as guile-json found under the "borrowed/"
;; directory.
(package
(name "gnucash")
(version "3.3")
(version "3.4")
(source
(origin
(method url-fetch)
@ -59,10 +62,8 @@ (define-public gnucash
version "/gnucash-" version ".tar.bz2"))
(sha256
(base32
"0grr5qi5rn1xvr7qx5d7mcxa2mcgycy2b325ry73bb485a6yv5l3"))
(patches (search-patches "gnucash-price-quotes-perl.patch"
"gnucash-disable-failing-tests.patch"
"gnucash-fix-test-transaction-failure.patch"))))
"1ms2wg4sh5gq3rpjmmnp85rh5nc9ahca1imxkvhz4d3yiwy8hm52"))
(patches (search-patches "gnucash-fix-test-transaction-failure.patch"))))
(build-system cmake-build-system)
(inputs
`(("guile" ,guile-2.2)
@ -85,7 +86,7 @@ (define-public gnucash
("googletest" ,googletest)
("gnucash-docs" ,gnucash-docs)
("pkg-config" ,pkg-config)))
(outputs '("out" "doc"))
(outputs '("out" "doc" "debug"))
(arguments
`(#:test-target "check"
#:configure-flags
@ -119,9 +120,30 @@ (define-public gnucash
(("set\\(SHELL /bin/bash\\)")
(string-append "set(SHELL " (which "bash") ")")))
#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.
(add-after
'install 'install-docs
(add-after 'install 'install-docs
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((docs (assoc-ref inputs "gnucash-docs"))
(doc-output (assoc-ref outputs "doc")))
@ -129,8 +151,7 @@ (define-public gnucash
(symlink (string-append docs "/share/gnome")
(string-append doc-output "/share/gnome"))
#t)))
(add-after
'install-docs 'wrap-programs
(add-after 'install-docs 'wrap-programs
(lambda* (#:key inputs outputs #:allow-other-keys)
(for-each (lambda (prog)
(wrap-program (string-append (assoc-ref outputs "out")
@ -168,12 +189,16 @@ (define-public gnucash
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
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+)))
;; 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.
(define gnucash-docs
(let ((revision "a")) ;set to the empty string when no revision
(package
(name "gnucash-docs")
(version (package-version gnucash))
@ -181,20 +206,18 @@ (define gnucash-docs
(origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/"
version "/gnucash-docs-" version ".tar.gz"))
version "/gnucash-docs-" version revision ".tar.gz"))
(sha256
(base32
"10v4hw4lh888r8yv473pqrvzfjg8dwamk62sghs93rn88ndwm16c"))))
"0bgjxpxgk7hy8ihn1kvd8p6vv191q5md2hz6jb9mqc4aykpvdlq7"))))
(build-system gnu-build-system)
;; These are native-inputs because they are only required for building the
;; documentation.
(native-inputs
`(("libxml2" ,libxml2)
;; The "check" target needs the docbook xml packages for validating the
;; The "check" target needs the docbook xml package for validating the
;; DocBook XML during the tests.
("docbook-xml-4.4" ,docbook-xml-4.4)
("docbook-xml-4.2" ,docbook-xml-4.2)
("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
("docbook-xml" ,docbook-xml)
("libxslt" ,libxslt)
("docbook-xsl" ,docbook-xsl)
("scrollkeeper" ,scrollkeeper)))
@ -205,7 +228,7 @@ (define gnucash-docs
This package exists because the GnuCash project maintains its documentation in
an entirely separate package from the actual GnuCash program. It is intended
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
(package

View file

@ -5,7 +5,7 @@
;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.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 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, 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2016 Christopher Baines <mail@cbaines.net>
@ -369,7 +369,7 @@ (define-public gnupg-1
(define-public gpgme
(package
(name "gpgme")
(version "1.11.1")
(version "1.12.0")
(source
(origin
(method url-fetch)
@ -377,7 +377,16 @@ (define-public gpgme
".tar.bz2"))
(sha256
(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)
(native-inputs
`(("gnupg" ,gnupg)))
@ -523,11 +532,9 @@ (define-public python-pygpgme
`(#:phases
(modify-phases %standard-phases
(add-before 'build 'make-build
(lambda _
(zero? (system* "make" "build"))))
(lambda _ (invoke "make" "build")))
(replace 'check
(lambda _
(zero? (system* "make" "check")))))))
(lambda _ (invoke "make" "check"))))))
(build-system python-build-system)
(native-inputs
`(("gnupg" ,gnupg-1)))

View file

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

View file

@ -3,7 +3,7 @@
;;; Copyright © 2014, 2015, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2017 Christopher Allan Webber <cwebber@dustycloud.org>
;;; 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 Eraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017 Alex Kost <alezost@gmail.com>
@ -1288,7 +1288,7 @@ (define-public guile2.2-redis
(define-public guile-wisp
(package
(name "guile-wisp")
(version "0.9.8")
(version "0.9.9")
(source (origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/ArneBab/"
@ -1296,35 +1296,26 @@ (define-public guile-wisp
version ".tar.gz"))
(sha256
(base32
"1f2bbicq1rxnwmiplrm4r75wj06w385mjkyvi7g4k740bgwcrzxr"))))
"1xa0f0fvcrimqap50azv5872bfx8jbhc6baxa1prpbwcksbh8gdz"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 rdelim)
(ice-9 popen))
#:phases
(modify-phases %standard-phases
(add-before 'configure 'substitute-before-config
(lambda* (#:key inputs #:allow-other-keys)
(let ((bash (assoc-ref inputs "bash")))
;; Puts together some test files with /bin/bash hardcoded
(add-before 'configure 'patch-/usr/bin/env
(lambda _
(substitute* "Makefile.in"
(("/usr/bin/env bash")
(string-append bash "/bin/bash"))
(("/usr/bin/env bash") (which "bash"))
(("\\$\\(GUILE_EFFECTIVE_VERSION\\)/site")
"site/$(GUILE_EFFECTIVE_VERSION)")) ;use the right order
#t)))
#t))
;; auto compilation breaks, but if we set HOME to /tmp,
;; that works ok
(add-before
'check 'auto-compile-hacky-workaround
(lambda _
(setenv "HOME" "/tmp")
#t))
(add-before 'check 'auto-compile-hacky-workaround
(lambda _ (setenv "HOME" "/tmp") #t))
(add-after 'install 'install-go-files
(lambda* (#:key outputs inputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -1346,7 +1337,7 @@ (define-public guile-wisp
file "-o" go)))
(find-files module-dir "\\.scm$"))
#t))))))
(home-page "http://draketo.de/english/wisp")
(home-page "https://draketo.de/english/wisp")
(inputs
`(("guile" ,guile-2.2)))
(native-inputs

View file

@ -11403,4 +11403,94 @@ (define-public ghc-tldr
man pages with practical examples.")
(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

View file

@ -8,7 +8,7 @@
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 nee <nee-git@hidamari.blue>
;;; 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.
;;;
@ -126,28 +126,25 @@ (define-public geeqie
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autogen
(add-before 'bootstrap 'pre-bootstrap
(lambda _
(define (write-dummy-changelog port)
(display "See Git history for a change log.\n" port))
(setenv "NOCONFIGURE" "true")
;; Create ChangeLog{,.html} to placate the makefile, which would
;; otherwise require access to the Git repo.
(call-with-output-file "ChangeLog"
write-dummy-changelog)
(call-with-output-file "ChangeLog.html"
write-dummy-changelog)
(zero? (system* "sh" "autogen.sh")))))))
(setenv "NOCONFIGURE" "true")
#t)))))
(inputs
`(("clutter" ,clutter)
("libchamplain" ,libchamplain)
("lcms" ,lcms)
("exiv2" ,exiv2)
("libpng" ,libpng)
("gtk+" ,gtk+-2)))
("gtk+" ,gtk+)))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
@ -304,37 +301,24 @@ (define-public catimg
`(#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key inputs #:allow-other-keys)
(let* ((magic (assoc-ref %build-inputs "imagemagick"))
(convert (string-append magic "/bin/convert")))
(add-after 'unpack 'patch-convert
(lambda _
(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 _
(let* ((out (assoc-ref %outputs "out"))
(man (string-append out "/share/man/man1")))
(zero? (system* "cmake"
(string-append "-DCMAKE_INSTALL_PREFIX=" out)
(string-append "-DMAN_OUTPUT_PATH=" man)
"."))
(zero? (system* "make")))))
(add-before 'install 'install-script
(("convert") (which "convert")))
#t))
(add-after 'install 'install-script
(lambda* (#:key outputs #:allow-other-keys)
;; The bash script lacks an file extension. We have to rename
;; it so that the C program and the bash script can be happy
;; side by side.
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "catimg" bin)
(rename-file (string-append bin "/catimg")
(string-append bin "/catimg.sh"))
#t))))))
(copy-file "../source/catimg"
(string-append (assoc-ref outputs "out")
"/bin/catimg.sh"))
#t)))))
(inputs
`(("imagemagick" ,imagemagick))) ; for the bash script version
(home-page "https://github.com/posva/catimg")

View file

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

View file

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

View file

@ -505,8 +505,9 @@ (define-public ccl
(modify-phases %standard-phases
(replace 'unpack
(lambda* (#:key inputs #:allow-other-keys)
(and (zero? (system* "tar" "xzvf" (assoc-ref inputs "ccl")))
(begin (chdir "ccl") #t))))
(invoke "tar" "xzvf" (assoc-ref inputs "ccl"))
(chdir "ccl")
#t))
(delete 'configure)
(add-before 'build 'pre-build
;; Enter the source directory for the current platform's lisp
@ -527,7 +528,7 @@ (define-public ccl
(substitute* '("Makefile")
(("/bin/rm") "rm"))
(setenv "CC" "gcc")
(zero? (system* "make" "clean"))))
(invoke "make" "clean")))
;; 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.
(replace 'install

View file

@ -3,7 +3,7 @@
;;; Copyright © 2014, 2017 Julien Lepiller <julien@lepiller.eu>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; 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 © 2016, 2017 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
@ -186,18 +186,18 @@ (define-public bitlbee
(modify-phases %standard-phases
(add-after 'install 'install-etc
(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
(lambda* (#:key (make-flags '()) #:allow-other-keys)
(zero? (apply system* "make" "install-dev" make-flags))))
(apply invoke "make" "install-dev" make-flags)))
(replace 'configure
;; bitlbee's configure script does not tolerate many of the
;; variable settings that Guix would pass to it.
(lambda* (#:key outputs #:allow-other-keys)
(zero? (system* "./configure"
(invoke "./configure"
(string-append "--prefix="
(assoc-ref outputs "out"))
"--otr=1")))))))
"--otr=1"))))))
(synopsis "IRC to instant messaging gateway")
(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
@ -225,12 +225,12 @@ (define-public bitlbee-discord
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autogen
(add-after 'unpack 'patch-autogen
(lambda _
(let ((sh (which "sh")))
(substitute* "autogen.sh" (("/bin/sh") sh))
(setenv "CONFIG_SHELL" sh)
(zero? (system* "./autogen.sh")))))
(setenv "CONFIG_SHELL" sh))
#t))
(replace 'configure
(lambda* (#:key inputs outputs #:allow-other-keys)
(invoke "./configure"
@ -718,20 +718,20 @@ (define-public gajim-omemo
(define-public dino
;; The only release tarball is for version 0.0, but it is very old and fails
;; to build.
(let ((commit "f25fadde2d6c9492b9cafe2cddbcc7b966942e47")
(revision "3"))
(let ((commit "8e14ac6d714b7f88e16de31a6c795e811dc27417")
(revision "4"))
(package
(name "dino")
(version (string-append "0.0-" revision "." (string-take commit 9)))
(version (git-version "0.0" revision commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/dino/dino.git")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(file-name (git-file-name name version))
(sha256
(base32
"1nhzrw3pbpybn9qclckk6z427vbgnqd0y1l63zd1rfw4zw099mzs"))))
"0xfmwnc2f8lsvmp7m8ggikzqjaw5z6wmxrv6j5ljha5ckffrdd9m"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; there are no tests
@ -750,14 +750,10 @@ (define-public dino
;; libsignal-protocol-c, so we need to put the sources there.
(add-after 'unpack 'unpack-sources
(lambda* (#:key inputs #:allow-other-keys)
(let ((unpack (lambda (source target)
(with-directory-excursion target
(zero? (system* "tar" "xvf"
(assoc-ref inputs source)
"--strip-components=1"))))))
(unpack "libsignal-protocol-c-source"
"plugins/signal-protocol/libsignal-protocol-c")
#t)))
(with-directory-excursion "plugins/signal-protocol/libsignal-protocol-c"
(invoke "tar" "xvf"
(assoc-ref inputs "libsignal-protocol-c-source")
"--strip-components=1"))))
(add-after 'install 'glib-or-gtk-wrap
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap)))))
(inputs
@ -765,7 +761,8 @@ (define-public dino
("libsignal-protocol-c" ,libsignal-protocol-c)
("libgcrypt" ,libgcrypt)
("libsoup" ,libsoup)
("sqlite" ,sqlite)
("qrencode" ,qrencode)
("sqlite" ,sqlite-with-column-metadata)
("gpgme" ,gpgme)
("gtk+" ,gtk+)
("glib-networking" ,glib-networking)
@ -1269,7 +1266,7 @@ (define-public gloox
(define-public perl-net-psyc
(package
(name "perl-net-psyc")
(version "1.1")
(version "1.3")
(source
(origin
(method url-fetch)
@ -1278,13 +1275,10 @@ (define-public perl-net-psyc
(file-name (string-append name "-" version ".zip"))
(sha256
(base32
"1lw6807qrbmvzbrjn1rna1dhir2k70xpcjvyjn45y35hav333a42"))
;; 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))))
"0vsjclglkwgbyd9m5ad642fyysxw2x725nhq4r2m9pvqaq6s5yf2"))))
(build-system perl-build-system)
(native-inputs
`(("unzip" ,unzip)))
(inputs
`(("perl-curses" ,perl-curses)
("perl-io-socket-ssl" ,perl-io-socket-ssl)))
@ -1296,8 +1290,7 @@ (define-public perl-net-psyc
;; (leaves out psycion) and says
;; "# Just to give you a rough idea". XXX: Fix it upstream.
(replace 'build
(lambda _
(zero? (system* "make" "manuals"))))
(lambda _ (invoke "make" "manuals")))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
@ -1538,9 +1531,6 @@ (define-public freetalk
(arguments
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'autogen
(lambda _
(zero? (system* "sh" "autogen.sh"))))
;; For 'system' commands in Scheme code.
(add-after 'install 'wrap-program
(lambda* (#:key inputs outputs #:allow-other-keys)

View file

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

View file

@ -2771,8 +2771,10 @@ (define-public milkytracker
(inputs
`(("alsa-lib" ,alsa-lib)
("jack" ,jack-1)
("rtmidi" ,rtmidi)
("sdl" ,sdl2)
("zlib" ,zlib)))
("zlib" ,zlib)
("zziplib" ,zziplib)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(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, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; 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 © 2019 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -191,19 +192,18 @@ (define-public ocaml-4.02
(mandir (string-append out "/share/man")))
;; Custom configure script doesn't recognize
;; --prefix=<PREFIX> syntax (with equals sign).
(zero? (system* "./configure"
(invoke "./configure"
"--prefix" out
"--mandir" mandir)))))
"--mandir" mandir))))
(replace 'build
(lambda _
(zero? (system* "make" "-j" (number->string
(parallel-job-count))
"world.opt"))))
(invoke "make" "-j" (number->string (parallel-job-count))
"world.opt")))
(delete 'check)
(add-after 'install 'check
(lambda _
(with-directory-excursion "testsuite"
(zero? (system* "make" "all")))))
(invoke "make" "all"))))
(add-before 'check 'prepare-socket-test
(lambda _
(format (current-error-port)
@ -254,7 +254,7 @@ (define-public ocaml-4.01
(replace 'build
(lambda _
;; Specifying '-j' at all causes the build to fail.
(zero? (system* "make" "world.opt"))))
(invoke "make" "world.opt")))
,@(if (string=? "aarch64-linux" (%current-system))
;; Custom configure script doesn't recongnize aarch64.
'((replace 'configure
@ -269,11 +269,9 @@ (define-public ocaml-4.01
(replace 'check
(lambda _
(with-directory-excursion "testsuite"
(zero? (system*
"make"
"all"
(invoke "make" "all"
(string-append
"TOPDIR=" (getcwd) "/.."))))))))))))
"TOPDIR=" (getcwd) "/..")))))))))))
(define-public ocaml-4.07
(package
@ -449,18 +447,18 @@ (define-public camlp4-4.02
;; which fails on the second attempt.
#:parallel-build? #f
#:make-flags '("all")
#:phases (modify-phases %standard-phases
(replace
'configure
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
;; This is a home-made 'configure' script.
(let ((out (assoc-ref outputs "out")))
(zero? (system* "./configure"
(invoke "./configure"
(string-append "--libdir=" out
"/lib/ocaml/site-lib")
(string-append "--bindir=" out "/bin")
(string-append "--pkgdir=" out
"/lib/ocaml/site-lib"))))))
"/lib/ocaml/site-lib")))))
(add-after 'install 'install-meta
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
@ -468,7 +466,7 @@ (define-public camlp4-4.02
(("directory = .*")
(string-append "directory = \"" out
"/lib/ocaml/site-lib/camlp4\"\n")))
(zero? (system* "make" "install-META"))))))))
(invoke "make" "install-META")))))))
(home-page "https://github.com/ocaml/camlp4")
(synopsis "Write parsers in OCaml")
(description
@ -1151,8 +1149,7 @@ (define-public ocaml-zarith
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda* (#:key #:allow-other-keys)
(zero? (system* "./configure")))))))
(lambda _ (invoke "./configure"))))))
(home-page "https://forge.ocamlcore.org/projects/zarith/")
(synopsis "Implements arbitrary-precision integers")
(description "Implements arithmetic and logical operations over
@ -1768,15 +1765,17 @@ (define-public ocaml4.02-mtime
(define-public ocaml-cmdliner
(package
(name "ocaml-cmdliner")
(version "0.9.8")
(version "1.0.2")
(source (origin
(method url-fetch)
(uri (string-append "http://erratique.ch/software/cmdliner/releases/"
"cmdliner-" version ".tbz"))
(sha256
(base32
"0hdxlkgiwjml9dpaa80282a8350if7mc1m6yz2mrd7gci3fszykx"))))
"18jqphjiifljlh9jg8zpl6310p3iwyaqphdkmf89acyaix0s4kj1"))))
(build-system ocaml-build-system)
(inputs
`(("ocaml-result" ,ocaml-result)))
(native-inputs
`(("ocamlbuild" ,ocamlbuild)
("opam" ,opam)))
@ -1785,6 +1784,12 @@ (define-public ocaml-cmdliner
#:build-flags '("native=true" "native-dynlink=true")
#: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))))
(home-page "http://erratique.ch/software/cmdliner")
(synopsis "Declarative definition of command line interfaces for OCaml")
@ -1802,14 +1807,14 @@ (define-public ocaml4.02-cmdliner
(define-public ocaml-fmt
(package
(name "ocaml-fmt")
(version "0.8.0")
(version "0.8.5")
(source
(origin
(method url-fetch)
(uri (string-append "http://erratique.ch/software/fmt/releases/fmt-"
version ".tbz"))
(sha256 (base32
"16y7ibndnairb53j8a6qgipyqwjxncn4pl9jiw5bxjfjm59108px"))))
"1zj9azcxcn6skmb69ykgmi9z8c50yskwg03wqgh87lypgjdcz060"))))
(build-system ocaml-build-system)
(native-inputs
`(("ocamlbuild" ,ocamlbuild)
@ -1817,6 +1822,7 @@ (define-public ocaml-fmt
("topkg" ,ocaml-topkg)))
(propagated-inputs
`(("result" ,ocaml-result)
("ocaml-uchar" ,ocaml-uchar)
("cmdliner" ,ocaml-cmdliner)))
(arguments `(#:tests? #f
#:build-flags (list "build" "--with-base-unix" "true"
@ -2269,14 +2275,14 @@ (define-public ocaml4.02-ulex
(define-public ocaml-uchar
(package
(name "ocaml-uchar")
(version "0.0.1")
(version "0.0.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/ocaml/uchar/releases/download/v"
version "/uchar-" version ".tbz"))
(sha256 (base32
"0ficw1x7ymbd6m8hqw3w1aycwm1hbwd6bad3c5pspwnzh3qlikhi"))))
"1w2saw7zanf9m9ffvz2lvcxvlm118pws2x1wym526xmydhqpyfa7"))))
(build-system ocaml-build-system)
(arguments
`(#:tests? #f
@ -4342,13 +4348,12 @@ (define-public ocaml-zed
(modify-phases %standard-phases
(delete 'configure)
(replace 'build
(lambda* (#:key #:allow-other-keys)
(zero? (system* "jbuilder" "build"))))
(lambda _ (invoke "jbuilder" "build")))
(delete 'check)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(zero? (system* "jbuilder" "install" "--prefix" out))))))))
(invoke "jbuilder" "install" "--prefix" out)))))))
(native-inputs
`(("jbuilder" ,ocaml-jbuilder)))
(propagated-inputs
@ -4420,9 +4425,9 @@ (define-public ocaml-utop
(let* ((out (assoc-ref outputs "out"))
(libdir (string-append out "/lib/ocaml/site-lib")))
(mkdir-p libdir)
(zero? (system* "jbuilder" "install"
(invoke "jbuilder" "install"
"--prefix" out
"--libdir" libdir))))))))
"--libdir" libdir)))))))
(native-inputs
`(("ocaml" ,ocaml)
("cppo" ,ocaml-cppo)
@ -4750,6 +4755,35 @@ (define-public ocaml-yojson
serializers and deserializers from type definitions.")
(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
(package
(name "ocaml-merlin")

View file

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

View file

@ -381,15 +381,14 @@ (define-public assword
#t)))
(add-after 'install 'manpage
(lambda* (#:key outputs #:allow-other-keys)
(and
;; Without this substitution, it fails with
;; ImportError: No module named 'gpg'
(substitute* "Makefile"
(("PYTHONPATH=.") ""))
(zero? (system* "make" "assword.1"))
(invoke "make" "assword.1")
(install-file
"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)
(native-inputs
`(("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 Nils Gillmann <ng0@n0.is>
;;; 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, 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
@ -434,14 +434,14 @@ (define-public python2-cryptography
(define-public python-pyopenssl
(package
(name "python-pyopenssl")
(version "18.0.0")
(version "19.0.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pyOpenSSL" version))
(sha256
(base32
"1055rb456nvrjcij3sqj6c6l3kmh5cqqay0nsmx3pxq07d1g3234"))))
"007j40y7x3k8xj54dy2qnij9lldfp71k9mkflhd9vqbdiwrndjmf"))))
(build-system python-build-system)
(arguments
'(#:phases
@ -450,7 +450,7 @@ (define-public python-pyopenssl
(add-after 'install 'check
(lambda* (#:key inputs outputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs)
(zero? (system* "py.test" "-v" "-k"
(invoke "py.test" "-v" "-k"
(string-append
;; This test tries to look up certificates from
;; the compiled-in default path in OpenSSL, which
@ -458,7 +458,7 @@ (define-public python-pyopenssl
"not test_fallback_default_verify_paths "
;; This test attempts to make a connection to
;; an external web service.
"and not test_set_default_verify_paths"))))))))
"and not test_set_default_verify_paths")))))))
(propagated-inputs
`(("python-cryptography" ,python-cryptography)
("python-six" ,python-six)))

View file

@ -113,6 +113,7 @@ (define-module (gnu packages python-xyz)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages python-check)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-web)
#:use-module (gnu packages qt)
@ -434,42 +435,80 @@ (define-public python-h5py
(define-public python2-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
(package
(name "python-netcdf4")
(version "1.2.9")
(version "1.4.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "netCDF4" version))
(sha256
(base32
"1h6jq338amlbk0ilzvjyl7cck80i0bah9a5spn9in71vy2qxm7i5"))))
"0c0sklgrmv15ygliin8qq0hp7vanmbi74m6zpi0r1ksr0hssyd5r"))))
(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
`(("python-cython" ,python-cython)))
(propagated-inputs
`(("python-numpy" ,python-numpy)))
`(("python-numpy" ,python-numpy)
("python-cftime" ,python-cftime)))
(inputs
`(("netcdf" ,netcdf)
("hdf4" ,hdf4)
("hdf5" ,hdf5)))
(arguments
'(#: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")
(home-page "https://github.com/Unidata/netcdf4-python")
(synopsis "Python/numpy interface to the netCDF library")
(description "Netcdf4-python is a Python interface to the netCDF C
library. netCDF version 4 has many features not found in earlier
@ -1710,7 +1749,7 @@ (define-public python-jsonschema
(arguments
'(#:phases
(modify-phases %standard-phases
(replace 'check (lambda _ (zero? (system* "nosetests")))))))
(replace 'check (lambda _ (invoke "nosetests"))))))
(native-inputs
`(("python-nose" ,python-nose)
("python-vcversioner" ,python-vcversioner)))
@ -2106,7 +2145,7 @@ (define-public python2-pystache
(modify-phases %standard-phases
(replace 'check
(lambda _
(zero? (system* "python" "test_pystache.py")))))))))
(invoke "python" "test_pystache.py"))))))))
(define-public python-joblib
(package
@ -2855,8 +2894,7 @@ (define-public python-spectra
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(zero? (system* "nosetests" "-v")))))))
(lambda _ (invoke "nosetests" "-v"))))))
(propagated-inputs
`(("python-colormath" ,python-colormath)))
(native-inputs
@ -2963,12 +3001,12 @@ (define-public python-numpy-documentation
(with-directory-excursion "doc"
(copy-recursively sphinx-theme-checkout scipy-sphinx-theme)
(mkdir-p html)
(system* "make" "html" pyver)
(system* "make" "latex" "PAPER=a4" pyver)
(system* "make" "-C" "build/latex"
(invoke "make" "html" pyver)
(invoke "make" "latex" "PAPER=a4" pyver)
(invoke "make" "-C" "build/latex"
"all-pdf" "PAPER=a4" pyver)
;; FIXME: Generation of the info file fails.
;; (system* "make" "info" pyver)
;; (invoke "make" "info" pyver)
;; (mkdir-p info)
;; (copy-file "build/texinfo/numpy.info"
;; (string-append info "/numpy.info"))
@ -3193,7 +3231,7 @@ (define-public python-colorspacious
(modify-phases %standard-phases
(replace 'check
(lambda _
(zero? (system* "nosetests" "--all-modules" "-v" "colorspacious")))))))
(invoke "nosetests" "--all-modules" "-v" "colorspacious"))))))
(home-page "https://github.com/njsmith/colorspacious")
(synopsis "Python library for colorspace conversions")
(description "@code{colorspacious} is a Python library that lets you
@ -3376,24 +3414,25 @@ (define-public python2-matplotlib-documentation
(define-public python2-pysnptools
(package
(name "python2-pysnptools")
(version "0.3.9")
(version "0.3.13")
(source
(origin
(method url-fetch)
(uri (pypi-uri "pysnptools" version ".zip"))
(uri (pypi-uri "pysnptools" version))
(sha256
(base32
"1wybggjzz8zw7aav4pjsg2h22xp17a1lghrprza1pxwlm7wf96y2"))))
"0lnis5xsl7bi0hz4f7gbicahzi5zlxkc21nk3g374xv8fb5hb3qm"))))
(build-system python-build-system)
(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
`(("python2-numpy" ,python2-numpy)
("python2-scipy" ,python2-scipy)
("python2-pandas" ,python2-pandas)))
(native-inputs
`(("unzip" ,unzip)))
(home-page "http://research.microsoft.com/en-us/um/redmond/projects/mscompbio/")
`(("python2-cython" ,python2-cython)))
(home-page "http://microsoftgenomics.github.io/PySnpTools/")
(synopsis "Library for reading and manipulating genetic data")
(description
"PySnpTools is a library for reading and manipulating genetic data. It
@ -3603,7 +3642,8 @@ (define-public python-orderedmultidict
;; The package uses nosetest for running the tests.
;; Adding this initfile allows to run the test suite
;; without requiring nosetest.
(zero? (system* "touch" "tests/__init__.py")))))))
(with-output-to-file "tests/__init__.py" newline)
#t)))))
(propagated-inputs
`(("python-six" ,python-six)))
(native-inputs
@ -3803,7 +3843,8 @@ (define-public python-pycparser
(replace 'check
(lambda _
(with-directory-excursion "tests"
(zero? (system* "python" "all_tests.py")))))
(invoke "python" "all_tests.py"))
#t))
(add-after 'install 'install-doc
(lambda* (#:key outputs #:allow-other-keys)
(let* ((data (string-append (assoc-ref outputs "doc") "/share"))
@ -4145,7 +4186,7 @@ (define-public python-honcho
;; It's easier to run tests after install.
;; Make installed package available for running the tests
(add-installed-pythonpath inputs outputs)
(zero? (system* "py.test" "-v")))))))
(invoke "py.test" "-v"))))))
(home-page "https://github.com/nickstenning/honcho")
(synopsis "Manage Procfile-based applications")
(description
@ -4854,7 +4895,7 @@ (define-public python-beautifulsoup4
;; For more information, see the file 'convert-py3k' in the source
;; distribution.
(replace 'check
(lambda _ (zero? (system* "./convert-py3k")))))))
(lambda _ (invoke "./convert-py3k"))))))
(home-page
"https://www.crummy.com/software/BeautifulSoup/bs4/")
(synopsis
@ -5101,8 +5142,7 @@ (define-public python-mpmath
(modify-phases %standard-phases
(replace 'check
(lambda _
(zero?
(system* "python" "mpmath/tests/runtests.py" "-local")))))))
(invoke "python" "mpmath/tests/runtests.py" "-local"))))))
(home-page "http://mpmath.org")
(synopsis "Arbitrary-precision floating-point arithmetic in python")
(description
@ -5324,7 +5364,7 @@ (define-public python2-backports-shutil-get-terminal-size
(modify-phases %standard-phases
(replace 'check
(lambda _
(zero? (system* "py.test" "-v")))))))
(invoke "py.test" "-v"))))))
(native-inputs
`(("python2-pytest" ,python2-pytest)))
(home-page "https://github.com/chrippa/backports.shutil_get_terminal_size")
@ -5668,7 +5708,7 @@ (define-public python-flake8-polyfill
(setenv "PYTHONPATH"
(string-append (getcwd) "/build/lib:"
(getenv "PYTHONPATH")))
(zero? (system* "py.test" "-v")))))))
(invoke "py.test" "-v"))))))
(native-inputs
`(("python-flake8" ,python-flake8)
("python-mock" ,python-mock)
@ -5754,8 +5794,7 @@ (define-public python-ptyprocess
`(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(zero? (system* "nosetests")))))))
(lambda _ (invoke "nosetests"))))))
(home-page "https://github.com/pexpect/ptyprocess")
(synopsis "Run a subprocess in a pseudo terminal")
(description
@ -5809,7 +5848,7 @@ (define-public python-cram
(add-installed-pythonpath inputs outputs)
(setenv "PATH" (string-append (getenv "PATH") ":"
(assoc-ref outputs "out") "/bin"))
(zero? (system* "make" "test")))))))
(invoke "make" "test"))))))
(build-system python-build-system)
(native-inputs
`(("python-coverage" ,python-coverage)
@ -6090,7 +6129,7 @@ (define-public python-xlrd
(modify-phases %standard-phases
;; Current test in setup.py does not work as of 1.0.0, so use nose to
;; run tests instead for now.
(replace 'check (lambda _ (zero? (system* "nosetests")))))))
(replace 'check (lambda _ (invoke "nosetests"))))))
(native-inputs `(("python-nose" ,python-nose)))
(home-page "http://www.python-excel.org/")
(synopsis "Library for extracting data from Excel files")
@ -6166,14 +6205,14 @@ (define-public python-tables
#t))
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(zero? (system* "python" "setup.py" "build"
(invoke "python" "setup.py" "build"
(string-append "--hdf5="
(assoc-ref inputs "hdf5"))))))
(assoc-ref inputs "hdf5")))))
(replace 'check
(lambda* (#:key inputs #:allow-other-keys)
(zero? (system* "python" "setup.py" "check"
(invoke "python" "setup.py" "check"
(string-append "--hdf5="
(assoc-ref inputs "hdf5")))))))))
(assoc-ref inputs "hdf5"))))))))
(propagated-inputs
`(("python-numexpr" ,python-numexpr)
("python-numpy" ,python-numpy)))
@ -6278,8 +6317,7 @@ (define-public python2-ipaddr
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* _
(zero? (system* "python" "ipaddr_test.py")))))))
(lambda _ (invoke "python" "ipaddr_test.py"))))))
(home-page "https://github.com/google/ipaddr-py")
(synopsis "IP address manipulation library")
(description
@ -8489,7 +8527,7 @@ (define-public python-rarfile
(modify-phases %standard-phases
(replace 'check
;; Many tests fail, but the installation proceeds.
(lambda _ (zero? (system* "make" "-C" "test" "test")))))))
(lambda _ (invoke "make" "-C" "test" "test"))))))
(native-inputs
`(("which" ,which))) ; required for tests
(propagated-inputs
@ -9497,8 +9535,7 @@ (define-public python-faker
'(#:phases
(modify-phases %standard-phases
(replace 'check
(lambda _
(zero? (system* "python" "-m" "unittest" "-v" "tests")))))))
(lambda _ (invoke "python" "-m" "unittest" "-v" "tests"))))))
(native-inputs
`(;; For testing
("python-email-validator" ,python-email-validator)
@ -9634,17 +9671,17 @@ (define-public python2-prompt-toolkit-1
(define-public python-jedi
(package
(name "python-jedi")
(version "0.13.1")
(version "0.13.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "jedi" version))
(sha256
(base32
"0j11q42g5vjkyhhjpyy8nb0gdxs78m3rpjai7p1hvgpyl9rkyjdp"))))
"1za944msp0f8x36qa8l309jhv0kzlsdh7r9nj3z12y8npnsh45sp"))))
(build-system python-build-system)
(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)
#:tests? #f
#:phases
@ -9991,9 +10028,9 @@ (define-public python-odfpy
;; The test runner invokes python2 and python3 for test*.py.
;; To avoid having both in inputs, we replicate it here.
(lambda _
(every (lambda (test-file)
(zero? (system* "python" test-file)))
(find-files "tests" "^test.*\\.py$")))))))
(for-each (lambda (test-file) (invoke "python" test-file))
(find-files "tests" "^test.*\\.py$"))
#t)))))
(build-system python-build-system)
(home-page "https://github.com/eea/odfpy")
(synopsis "Python API and tools to manipulate OpenDocument files")
@ -10392,7 +10429,7 @@ (define-public python-validictory
(setenv "PYTHONPATH"
(string-append (getcwd) "/build/lib:"
(getenv "PYTHONPATH")))
(zero? (system* "py.test" "-vv" )))))))
(invoke "py.test" "-vv" ))))))
(native-inputs
`(("python-pytest" ,python-pytest)))
(home-page
@ -10512,7 +10549,7 @@ (define-public python-termstyle
(modify-phases %standard-phases
(replace 'check
(lambda _
(zero? (system* "python" "test3.py")))))))
(invoke "python" "test3.py"))))))
(home-page "https://github.com/gfxmonk/termstyle")
(synopsis "Console text coloring for Python")
(description "This package provides console text coloring for Python.")
@ -10720,7 +10757,7 @@ (define-public python-pbkdf2
(setenv "PYTHONPATH"
(string-append (getcwd) "/build/lib:"
(getenv "PYTHONPATH")))
(zero? (system* "python" "test/test_pbkdf2.py")))))))
(invoke "python" "test/test_pbkdf2.py"))))))
(propagated-inputs
`(("python-pycrypto" ,python-pycrypto))) ; optional
(home-page "https://www.dlitz.net/software/python-pbkdf2/")
@ -10928,7 +10965,7 @@ (define-public python2-ruamel.ordereddict
(add-after 'install 'check
(lambda* (#:key inputs outputs #:allow-other-keys)
(add-installed-pythonpath inputs outputs)
(zero? (system* "python" "test/testordereddict.py")))))))
(invoke "python" "test/testordereddict.py"))))))
(home-page "https://bitbucket.org/ruamel/ordereddict")
(synopsis "Version of dict that keeps keys in insertion order")
(description
@ -11185,7 +11222,7 @@ (define-public python2-cliapp
;; Disable python3 tests
(substitute* "check"
(("python3") "# python3"))
(zero? (system* "./check")))))))
(invoke "./check"))))))
(native-inputs
`(("python2-coverage-test-runner" ,python2-coverage-test-runner)
("python2-pep8" ,python2-pep8)))
@ -11225,8 +11262,7 @@ (define-public python2-ttystatus
;; and fails.
(delete 'check)
(add-before 'build 'check
(lambda _
(zero? (system* "make" "check")))))))
(lambda _ (invoke "make" "check"))))))
(home-page "https://liw.fi/ttystatus/")
(synopsis "Python library for showing progress reporting and
status updates on terminals")
@ -11288,8 +11324,7 @@ (define-public python2-larch
;; and fails.
(delete 'check)
(add-before 'build 'check
(lambda _
(zero? (system* "make" "check")))))))
(lambda _ (invoke "make" "check"))))))
(native-inputs
`(("cmdtest" ,cmdtest)
("python2-coverage-test-runner" ,python2-coverage-test-runner)))
@ -12303,7 +12338,7 @@ (define-public python-flasgger
(setenv "PYTHONPATH" (string-append (getcwd)
":"
(getenv "PYTHONPATH")))
(zero? (system* "py.test")))))))
(invoke "py.test"))))))
(propagated-inputs
`(("python-flask" ,python-flask)
("python-pyyaml" ,python-pyyaml)
@ -13149,9 +13184,9 @@ (define-public python2-scientific
(modify-phases %standard-phases
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(zero? (system* "python" "setup.py" "build"
(invoke "python" "setup.py" "build"
(string-append "--netcdf_prefix="
(assoc-ref inputs "netcdf")))))))))
(assoc-ref inputs "netcdf"))))))))
(home-page "https://bitbucket.org/khinsen/scientificpython")
(synopsis "Python modules for scientific computing")
(description "ScientificPython is a collection of Python modules that are

View file

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

View file

@ -304,10 +304,7 @@ (define-public python-rdflib
(source
(origin
(method url-fetch)
(uri (string-append
"https://pypi.python.org/packages/source/r/rdflib/rdflib-"
version
".tar.gz"))
(uri (pypi-uri "rdflib" version))
(sha256
(base32
"0398c714znnhaa2x7v51b269hk20iz073knq2mvmqp2ma92z27fs"))))
@ -321,7 +318,7 @@ (define-public python-rdflib
;; (lambda _
;; ;; Run tests from the build directory so python3 only
;; ;; sees the installed 2to3 version.
;; (zero? (system* "nosetests" "--where=./build/src")))))))
;; (invoke "nosetests" "--where=./build/src"))))))
(native-inputs
`(("python-nose" ,python-nose)))
(propagated-inputs
@ -329,8 +326,7 @@ (define-public python-rdflib
("python-isodate" ,python-isodate)
("python-pyparsing" ,python-pyparsing)))
(home-page "https://github.com/RDFLib/rdflib")
(synopsis
"Python RDF library")
(synopsis "Python RDF library")
(description
"RDFLib is a Python library for working with RDF, a simple yet
powerful language for representing information.")

View file

@ -91,9 +91,9 @@ (define-public tre
;; The tests require the availability of the
;; 'en_US.ISO-8859-1' locale.
(setenv "LOCPATH" (getcwd))
(zero? (system* "localedef" "--no-archive"
(invoke "localedef" "--no-archive"
"--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")
(description "Superset of the POSIX regex API, enabling approximate
matching. Also ships a version of the agrep utility which behaves similar to

View file

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

View file

@ -2,6 +2,7 @@
;;; Copyright © 2014, 2015, 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2019 Ricardo Wurmus <rekado@elephly.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -21,12 +22,14 @@
(define-module (gnu packages synergy)
#:use-module (guix packages)
#:use-module ((guix licenses) #:select (gpl2))
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (gnu packages)
#:use-module (gnu packages avahi)
#:use-module (gnu packages curl)
#:use-module (gnu packages compression)
#:use-module (gnu packages python)
#:use-module (gnu packages qt)
#:use-module (gnu packages tls)
#:use-module (gnu packages xorg)
#:use-module (srfi srfi-26))
@ -34,80 +37,52 @@ (define-module (gnu packages synergy)
(define-public synergy
(package
(name "synergy")
(version "1.8.8")
(version "1.10.1")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/symless/synergy-core/archive/"
"v" version "-stable.tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(method git-fetch)
(uri (git-reference
(url "https://github.com/symless/synergy-core.git")
(commit (string-append "v" version "-stable"))))
(file-name (git-file-name name version))
(sha256
(base32
"052z1yiwck9hlshf8in2dgz6p7jxmq9yfj32mfzjaygpz6mmmr4y"))
"112w2xrp04cysd14xk1ax7cllqpcki0pyica4ivrdngr5qw0r9hp"))
(modules '((guix build utils)))
(snippet
;; Remove ~14MB of unnecessary bundled source and binaries
;; Remove unnecessary bundled source and binaries
'(begin
(for-each delete-file-recursively
`("ext/bonjour"
"ext/LICENSE (OpenSSL)"
,@(find-files "ext" "openssl-.*\\.tar\\.gz")
"ext/openssl-osx"
"ext/openssl-win32"
"ext/openssl-win64"))
(delete-file-recursively "ext/openssl")
#t))))
(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
`(("python" ,python-wrapper)
`(("avahi" ,avahi)
("python" ,python-wrapper)
("openssl" ,openssl)
("curl" ,curl)
("libxi" ,libxi)
("libx11" ,libx11)
("libxtst" ,libxtst)
("xinput" ,xinput)))
(arguments
`(#: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))))))
("xinput" ,xinput)
("qtbase" ,qtbase)))
(home-page "https://symless.com/synergy")
(synopsis "Mouse and keyboard sharing utility")
(description

View file

@ -547,6 +547,42 @@ (define-public texlive-metafont-base
build fonts using the Metafont system.")
(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
(package
(name "texlive-fontname")
@ -616,31 +652,37 @@ (define-public texlive-fonts-cm
(string-append (getcwd) ":"
mf "/share/texmf-dist/metafont/base")))
(mkdir "build")
(mkdir-p "pk/ljfour/public/cm/dpi600")
(for-each (lambda (font)
(format #t "building font ~a\n" font)
(invoke "mf" "-progname=mf"
"-output-directory=build"
(string-append "\\"
"mode:=ljfour; "
"mag:=1; "
"mag:=1+0/600; "
"batchmode; "
"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$"))
#t))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(tfm (string-append
out "/share/texmf-dist/fonts/tfm/public/cm"))
(mf (string-append
out "/share/texmf-dist/fonts/source/public/cm"))
(type1 (string-append
out "/share/texmf-dist/fonts/type1/public/amsfonts/cm")))
(fonts (string-append out "/share/texmf-dist/fonts/"))
(pk (string-append fonts "pk"))
(tfm (string-append fonts "tfm/public/cm"))
(mf (string-append fonts "source/public/cm"))
(type1 (string-append fonts "type1/public/amsfonts/cm")))
(for-each (cut install-file <> tfm)
(find-files "build" "\\.*"))
(for-each (cut install-file <> mf)
(find-files "." "\\.mf"))
(copy-recursively "pk" pk)
(mkdir-p type1)
(copy-recursively (assoc-ref inputs "cm-type1") type1)
#t))))))
@ -974,6 +1016,7 @@ (define-public texlive-fonts-amsfonts
(arguments
`(#:modules ((guix build gnu-build-system)
(guix build utils)
(ice-9 match)
(srfi srfi-1)
(srfi srfi-26))
#:tests? #f ; no tests
@ -982,7 +1025,7 @@ (define-public texlive-fonts-amsfonts
(delete 'configure)
(replace 'build
(lambda* (#:key inputs #:allow-other-keys)
(let ((mf (assoc-ref inputs "texlive-metafont-base"))
(let ((mf (assoc-ref inputs "texlive-union"))
(cwd (getcwd)))
;; Make METAFONT reproducible
(setenv "SOURCE_DATE_EPOCH" "1")
@ -1012,24 +1055,112 @@ (define-public texlive-fonts-amsfonts
(getcwd) "/"
(basename font ".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))
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(fonts (string-append out "/share/texmf-dist/fonts"))
(tfm (string-append fonts "/tfm/public/amsfonts"))
(mf (string-append fonts "/source/public/amsfonts"))
(type1 (string-append fonts "/type1/public/amsfonts")))
(for-each (cut install-file <> tfm)
(find-files "build" "\\.*"))
(root (string-append out "/share/texmf-dist/fonts/"))
(pkgs '(("amsfonts-afm" . "afm/public/amsfonts")
("amsfonts-type1" . "type1/public/amsfonts")
("amsfonts-map" . "map/dvips/amsfonts"))))
(for-each (match-lambda
((pkg . dir)
(let ((target (string-append root dir)))
(mkdir-p target)
(copy-recursively (assoc-ref inputs pkg)
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"))
(copy-recursively (assoc-ref inputs "amsfonts-type1") type1)
#t))))))
#t)))))))
(native-inputs
`(("texlive-fonts-cm" ,texlive-fonts-cm)
("texlive-metafont-base" ,texlive-metafont-base)
("texlive-bin" ,texlive-bin)
`(("texlive-union" ,(texlive-union (list texlive-tex-fontinst-base
texlive-fonts-cm
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"
,(origin
(method svn-fetch)
@ -1041,7 +1172,19 @@ (define-public texlive-fonts-amsfonts
(file-name (string-append name "-type1-" version "-checkout"))
(sha256
(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")
(synopsis "TeX fonts from the American Mathematical Society")
(description
@ -1169,15 +1312,8 @@ (define-public texlive-latex-base
(getcwd) ":"
(getcwd) "/build:"
(string-join
(append-map (match-lambda
((_ . dir)
(find-files dir
(lambda (_ stat)
(eq? 'directory (stat:type stat)))
#:directories? #t
#:stat stat)))
inputs)
":")))
(map (match-lambda ((_ . dir) dir)) inputs)
"//:")))
;; Create an empty texsys.cfg, because latex.ltx wants to include
;; it. This file must exist and it's fine if it's empty.
@ -1407,9 +1543,7 @@ (define-public texlive-latex-fancyvrb
(build-system texlive-build-system)
(arguments
'(#:tex-directory "latex/fancyvrb"
;; We exclude "fvrb-ex" to avoid a dependency on texlive-luaotfload and
;; thus texlive-luatex-lualibs.
#:build-targets '("fancyvrb.ins")))
#:tex-format "latex"))
(home-page "https://www.ctan.org/pkg/fancyvrb")
(synopsis "Sophisticated verbatim text")
(description

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; 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 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016 Jelle Licht <jlicht@fsfe.org>
@ -405,7 +405,7 @@ (define-public antiword
#t))
(replace 'install
(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/")
(synopsis "Microsoft Word document reader")
(description "Antiword is an application for displaying Microsoft Word

View file

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

View file

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

View file

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

View file

@ -168,7 +168,7 @@ (define (which* cmd)
(format #t
"running ~s with command ~s and parameters ~s~%"
"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
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))

View file

@ -66,7 +66,8 @@ (define-module (gnu packages wine)
#:use-module (gnu packages vulkan)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (ice-9 match))
#:use-module (ice-9 match)
#:use-module (srfi srfi-1))
(define-public wine
(package
@ -125,6 +126,7 @@ (define-public wine
("sdl2" ,sdl2)
("unixodbc" ,unixodbc)
("v4l-utils" ,v4l-utils)
("vkd3d" ,vkd3d)
("vulkan-loader" ,vulkan-loader)
("zlib" ,zlib)))
(arguments
@ -149,6 +151,27 @@ (define-public wine
#: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
;; Hardcode dlopened sonames to absolute paths.
(lambda _
@ -186,6 +209,34 @@ (define-public wine64
(string-append "libdir=" %output "/lib/wine64"))
#: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
(lambda* (#:key outputs #:allow-other-keys)
(let* ((wine32 (assoc-ref %build-inputs "wine"))
@ -193,7 +244,9 @@ (define-public wine64
;; Copy the 32-bit binaries needed for WoW64.
(copy-file (string-append wine32 "/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"))
#t)))
(add-after 'compress-documentation 'copy-wine32-manpage
@ -224,6 +277,36 @@ (define-public wine64
(synopsis "Implementation of the Windows API (WoW64 version)")
(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
(package
(name "wine-staging-patchset-data")
@ -291,7 +374,6 @@ (define-public wine-staging
("mesa" ,mesa)
("python" ,python)
("util-linux" ,util-linux) ; for hexdump
("vkd3d" ,vkd3d)
("wine-staging-patchset-data" ,wine-staging-patchset-data)
,@(package-inputs wine)))
(arguments

View file

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

View file

@ -4,7 +4,7 @@
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Florian Paul Schmidt <mista.tapas@gmx.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 Nils Gillmann <ng0@n0.is>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@ -126,7 +126,7 @@ (define-public xfconf
(string-append %output "/share"))
;; For the missing '/etc/machine-id'.
(setenv "DBUS_FATAL_WARNINGS" "0");
(zero? (system* "dbus-launch" "make" "check"))))
(invoke "dbus-launch" "make" "check")))
(delete 'check))))
(native-inputs
`(("pkg-config" ,pkg-config)

View file

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

View file

@ -43,9 +43,9 @@
%base-user-accounts))
;; 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.
;; Use agetty with board-specific serial parameters.
(agetty-service
@ -53,5 +53,5 @@
(extra-options '("-L"))
(baud-rate "115200")
(term "vt100")
(tty "ttyO0")))
(tty "ttyO0"))))
%base-services)))

View file

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

View file

@ -19,14 +19,15 @@
;; Assume the target root file system is labelled "my-root",
;; 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"))
(mount-point "/")
(type "ext4"))
(file-system
(device (uuid "1234-ABCD" 'fat))
(mount-point "/boot/efi")
(type "vfat"))
(type "vfat")))
%base-file-systems))
(users (cons (user-account
@ -40,8 +41,11 @@
;; Add a bunch of window managers; we can choose one at
;; the log-in screen with F1.
(packages (cons* ratpoison i3-wm i3status dmenu ;window managers
nss-certs ;for HTTPS access
(packages (append (list
;; window managers
ratpoison i3-wm i3status dmenu
;; for HTTPS access
nss-certs)
%base-packages))
;; Use the "desktop" services, which include the X11

View file

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

View file

@ -3,7 +3,7 @@
;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012, 2013 Nikita Karetnikov <nikita@karetnikov.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 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Fabian Harfert <fhmgufs@web.de>
@ -65,7 +65,7 @@ (define-module (guix licenses)
ipa
knuth
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.3a lppl1.3a+
lppl1.3b lppl1.3b+
@ -421,6 +421,11 @@ (define lppl1.0+
"https://www.latex-project.org/lppl/lppl-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
(license "LPPL 1.2"
"http://directory.fsf.org/wiki/License:LPPLv1.2"

View file

@ -1,5 +1,5 @@
;;; 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 © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
@ -133,6 +133,7 @@ (define-module (guix packages)
bag-transitive-host-inputs
bag-transitive-build-inputs
bag-transitive-target-inputs
package-closure
default-guile
default-guile-derivation
@ -798,6 +799,28 @@ (define (bag-transitive-target-inputs bag)
"Return the \"target inputs\" of BAG, recursively."
(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)))
"Return a procedure that, given a package, applies PROC to all the packages
depended on and returns the resulting package. The procedure stops recursion

View file

@ -1,5 +1,5 @@
;;; 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>
;;;
;;; This file is part of GNU Guix.
@ -44,31 +44,6 @@ (define-syntax record-error
(format #f fmt args ...)
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)
;; The procedures below are needed both at run time and at expansion time.
@ -91,7 +66,32 @@ (define (abi-check type cookie)
;; recompiled.
(throw 'record-abi-mismatch-error 'abi-check
"~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
(syntax-rules ()

View file

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

View file

@ -1,5 +1,5 @@
;;; 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 © 2018 Kyle Meyer <kyle@kyleam.com>
;;;
@ -32,6 +32,9 @@ (define-module (guix scripts weather)
#:use-module (guix scripts substitute)
#:use-module (guix http-client)
#: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 (web uri)
#:use-module (srfi srfi-1)
@ -41,6 +44,7 @@ (define-module (guix scripts weather)
#:use-module (srfi srfi-37)
#:use-module (ice-9 match)
#:use-module (ice-9 format)
#:use-module (ice-9 vlist)
#:export (guix-weather))
(define (all-packages)
@ -51,7 +55,10 @@ (define (all-packages)
(cons* replacement package result))
(#f
(cons package result))))
'()))
'()
;; Dismiss deprecated packages but keep hidden packages.
#:select? (negate package-superseded)))
(define (call-with-progress-reporter reporter proc)
"This is a variant of 'call-with-progress-reporter' that works with monadic
@ -254,6 +261,10 @@ (define (show-help)
-m, --manifest=MANIFEST
look up substitutes for packages specified in MANIFEST"))
(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\""))
(newline)
(display (G_ "
@ -286,6 +297,11 @@ (define %options
(option '(#\m "manifest") #t #f
(lambda (opt name 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
(lambda (opt name arg result)
(alist-cons 'system arg result)))))
@ -300,6 +316,153 @@ (define (load-manifest file)
(map manifest-entry-item
(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.
@ -331,7 +494,12 @@ (define (guix-weather . args)
(package-outputs packages system))
systems)))))))
(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)))))
;;; Local Variables:

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; 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.
;;;
@ -109,8 +109,9 @@ (define temp-link
(get-temp-link target swap-directory))
(lambda args
;; We get ENOSPC when we can't fit an additional entry in
;; SWAP-DIRECTORY.
(if (= ENOSPC (system-error-errno args))
;; SWAP-DIRECTORY. If it's EMLINK, then TARGET has reached its
;; maximum number of links.
(if (memv (system-error-errno args) `(,ENOSPC ,EMLINK))
#f
(apply throw args)))))
@ -169,4 +170,8 @@ (define* (deduplicate path hash #:key (store %store-directory))
;; more entries in .links, but that's fine: we can
;; just stop.
#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))))))))))

View file

@ -1,5 +1,5 @@
;;; 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.
;;;
@ -334,18 +334,19 @@ (define-syntax with-derivation-substitute
(define-syntax-rule (dummy-package name* extra-fields ...)
"Return a \"dummy\" package called NAME*, with all its compulsory fields
initialized with default values, and with EXTRA-FIELDS set as specified."
(package extra-fields ...
(let ((p (package
(name name*) (version "0") (source #f)
(build-system gnu-build-system)
(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 ...)
"Return a \"dummy\" origin, with all its compulsory fields initialized with
default values, and with EXTRA-FIELDS set as specified."
(origin extra-fields ...
(method #f) (uri "http://www.example.com")
(sha256 (base32 (make-string 52 #\x)))))
(let ((o (origin (method #f) (uri "http://www.example.com")
(sha256 (base32 (make-string 52 #\x))))))
(origin (inherit o) extra-fields ...)))
;; Local Variables:
;; eval: (put 'call-with-derivation-narinfo 'scheme-indent-function 1)

View file

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

View file

@ -249,6 +249,28 @@ (define read-at
(package-transitive-supported-systems d)
(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"
"foo-1.tar.gz"
(let ((o (dummy-origin (uri "http://www.example.com/foo-1.tar.gz"))))
@ -1180,4 +1202,5 @@ (define from-cache
;;; Local Variables:
;;; eval: (put 'dummy-package 'scheme-indent-function 1)
;;; eval: (put 'dummy-package/no-implicit 'scheme-indent-function 1)
;;; End:

View file

@ -1,5 +1,5 @@
;;; 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.
;;;
@ -143,7 +143,7 @@ (define live-service
(default-value 'dflt)
(compose concatenate)
(extend cons)))
(t2 (service-type (name 't2) (extensions '())
(t2 (service-type (name 't2)
(default-value 'dflt2)
(compose concatenate)
(extend cons)