mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2024-12-24 05:18:07 -05:00
Merge branch 'master' into staging
This commit is contained in:
commit
02d38bd3a2
74 changed files with 1545 additions and 882 deletions
|
@ -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,9 +10921,9 @@ system, you will want to append services to @var{%base-services}, like
|
|||
this:
|
||||
|
||||
@example
|
||||
(cons* (service avahi-service-type)
|
||||
(service openssh-service-type)
|
||||
%base-services)
|
||||
(append (list (service avahi-service-type)
|
||||
(service openssh-service-type))
|
||||
%base-services)
|
||||
@end example
|
||||
@end defvr
|
||||
|
||||
|
@ -11519,11 +11553,12 @@ well as in the @var{groups} field of the @var{operating-system} record.
|
|||
;; @dots{}
|
||||
|
||||
(services
|
||||
(modify-services %desktop-services
|
||||
(udev-service-type config =>
|
||||
(udev-configuration (inherit config)
|
||||
(rules (cons* android-udev-rules
|
||||
(udev-configuration-rules config))))))))
|
||||
(modify-services %desktop-services
|
||||
(udev-service-type
|
||||
config =>
|
||||
(udev-configuration (inherit config)
|
||||
(rules (cons android-udev-rules
|
||||
(udev-configuration-rules config))))))))
|
||||
@end example
|
||||
|
||||
@defvr {Scheme Variable} urandom-seed-service-type
|
||||
|
|
|
@ -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 \
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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>
|
||||
|
@ -138,43 +138,46 @@ (define-public fplll
|
|||
|
||||
(define-public pari-gp
|
||||
(package
|
||||
(name "pari-gp")
|
||||
(version "2.11.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://pari.math.u-bordeaux.fr/pub/pari/unix/pari-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
(name "pari-gp")
|
||||
(version "2.11.1")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append
|
||||
"https://pari.math.u-bordeaux.fr/pub/pari/unix/pari-"
|
||||
version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"1jfax92jpydjd02fwl30r6b8kfzqqd6sm4yx94gidyz9lqjb7a94"))))
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs `(("texlive" ,texlive-tiny)))
|
||||
(inputs `(("gmp" ,gmp)
|
||||
("libx11" ,libx11)
|
||||
("perl" ,perl)
|
||||
("readline" ,readline)))
|
||||
(arguments
|
||||
'(#:make-flags '("all")
|
||||
#:test-target "dobench"
|
||||
#: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)))))))))
|
||||
(synopsis "PARI/GP, a computer algebra system for number theory")
|
||||
(description
|
||||
"PARI/GP is a widely used computer algebra system designed for fast
|
||||
(build-system gnu-build-system)
|
||||
(native-inputs
|
||||
`(("texlive" ,(texlive-union
|
||||
(list texlive-fonts-amsfonts
|
||||
texlive-latex-amsfonts)))))
|
||||
(inputs `(("gmp" ,gmp)
|
||||
("libx11" ,libx11)
|
||||
("perl" ,perl)
|
||||
("readline" ,readline)))
|
||||
(arguments
|
||||
'(#:make-flags '("all")
|
||||
#:test-target "dobench"
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(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
|
||||
computations in number theory (factorisations, algebraic number theory,
|
||||
elliptic curves...), but it also contains a large number of other useful
|
||||
functions to compute with mathematical entities such as matrices,
|
||||
polynomials, power series, algebraic numbers, etc., and a lot of
|
||||
transcendental functions.
|
||||
PARI is also available as a C library to allow for faster computations.")
|
||||
(license license:gpl2+)
|
||||
(home-page "https://pari.math.u-bordeaux.fr/")))
|
||||
(license license:gpl2+)
|
||||
(home-page "https://pari.math.u-bordeaux.fr/")))
|
||||
|
||||
(define-public gp2c
|
||||
(package
|
||||
|
@ -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
|
||||
|
|
|
@ -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"))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"))
|
||||
(with-directory-excursion "chibios/ext"
|
||||
(zero? (system* "unzip" "-o" "fatfs-0.9-patched.zip"))))
|
||||
(invoke "unzip" "-o" (assoc-ref inputs "chibios"))
|
||||
(invoke "mv" "ChibiOS_2.6.9" "chibios")
|
||||
(with-directory-excursion "chibios/ext"
|
||||
(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"
|
||||
(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))))))
|
||||
(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)))))
|
||||
(replace 'install
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
|
|
|
@ -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))))))
|
||||
;; Not safe for parallel build
|
||||
(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"))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")))))
|
||||
|
|
|
@ -160,10 +160,9 @@ (define-public cmst
|
|||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(zero?
|
||||
(system* "qmake"
|
||||
(string-append "PREFIX="
|
||||
(assoc-ref outputs "out"))))))
|
||||
(invoke "qmake"
|
||||
(string-append "PREFIX="
|
||||
(assoc-ref outputs "out")))))
|
||||
(add-before 'install 'fix-Makefiles
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
|
|
|
@ -155,17 +155,16 @@ (define (coq-prog name)
|
|||
"EMACS=" emacs "/bin/emacs")))
|
||||
#t)))
|
||||
(add-after 'unpack 'clean
|
||||
(lambda _
|
||||
;; Delete the pre-compiled elc files for Emacs 23.
|
||||
(zero? (system* "make" "clean"))))
|
||||
(lambda _
|
||||
;; Delete the pre-compiled elc files for Emacs 23.
|
||||
(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)))))))
|
||||
(lambda* (#:key make-flags #:allow-other-keys)
|
||||
;; XXX FIXME avoid building/installing pdf files,
|
||||
;; due to unresolved errors building them.
|
||||
(substitute* "Makefile"
|
||||
((" [^ ]*\\.pdf") ""))
|
||||
(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"
|
||||
(string-append "COQLIB=" (assoc-ref outputs "out")
|
||||
"/lib/coq/")
|
||||
"install")))))))
|
||||
(invoke "make" "-f" "Makefile.coq"
|
||||
(string-append "COQLIB=" (assoc-ref outputs "out")
|
||||
"/lib/coq/")
|
||||
"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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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+))))
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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"
|
||||
(string-append "--prefix="
|
||||
(assoc-ref outputs "out")))))))))
|
||||
(invoke "sh" "configure"
|
||||
(string-append "--prefix="
|
||||
(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.")))
|
||||
|
|
|
@ -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,33 +27,35 @@ (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
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(setenv "CONFIG_SHELL" (which "bash"))
|
||||
(setenv "CC" (which "gcc"))
|
||||
(setenv "DESTDIR" (string-append out "/"))
|
||||
(setenv "PREFIX" "")
|
||||
(setenv "MANPREFIX" "man")
|
||||
(zero? (system* "./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")))))))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'configure
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(setenv "CONFIG_SHELL" (which "bash"))
|
||||
(setenv "CC" (which "gcc"))
|
||||
(setenv "DESTDIR" (string-append out "/"))
|
||||
(setenv "PREFIX" "")
|
||||
(setenv "MANPREFIX" "man")
|
||||
(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"))
|
||||
#t)))))
|
||||
(home-page "http://entrproject.org/")
|
||||
(synopsis "Run arbitrary commands when files change")
|
||||
(description
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -126,9 +126,9 @@ (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)))))))
|
||||
#:tests? #f)) ;there are no tests
|
||||
(invoke "./configure"
|
||||
(string-append "--prefix=" out))))))
|
||||
#:tests? #f)) ;there are no tests
|
||||
(inputs `(("ncurses" ,ncurses)))
|
||||
(home-page "http://www.ncftp.com/ncftp/")
|
||||
(synopsis "Command-line File Transfer Protocol (FTP) client")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,20 +50,20 @@ (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)
|
||||
(uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/"
|
||||
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"))))
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/"
|
||||
version "/gnucash-" version ".tar.bz2"))
|
||||
(sha256
|
||||
(base32
|
||||
"1ms2wg4sh5gq3rpjmmnp85rh5nc9ahca1imxkvhz4d3yiwy8hm52"))
|
||||
(patches (search-patches "gnucash-fix-test-transaction-failure.patch"))))
|
||||
(build-system cmake-build-system)
|
||||
(inputs
|
||||
`(("guile" ,guile-2.2)
|
||||
|
@ -79,18 +80,18 @@ (define-public gnucash
|
|||
("perl-finance-quote" ,perl-finance-quote)
|
||||
("tzdata" ,tzdata-for-tests)))
|
||||
(native-inputs
|
||||
`(("glib" ,glib "bin") ; glib-compile-schemas, etc.
|
||||
`(("glib" ,glib "bin") ; glib-compile-schemas, etc.
|
||||
("intltool" ,intltool)
|
||||
("googlemock" ,(package-source googletest))
|
||||
("googletest" ,googletest)
|
||||
("gnucash-docs" ,gnucash-docs)
|
||||
("pkg-config" ,pkg-config)))
|
||||
(outputs '("out" "doc"))
|
||||
(outputs '("out" "doc" "debug"))
|
||||
(arguments
|
||||
`(#:test-target "check"
|
||||
#:configure-flags
|
||||
(list "-DWITH_OFX=OFF" ; libofx is not available yet
|
||||
"-DWITH_SQL=OFF") ; without dbi.h
|
||||
(list "-DWITH_OFX=OFF" ; libofx is not available yet
|
||||
"-DWITH_SQL=OFF") ; without dbi.h
|
||||
#:make-flags '("GUILE_AUTO_COMPILE=0")
|
||||
#:modules ((guix build cmake-build-system)
|
||||
((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:)
|
||||
|
@ -119,44 +120,64 @@ (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
|
||||
(lambda* (#:key inputs outputs #:allow-other-keys)
|
||||
(let ((docs (assoc-ref inputs "gnucash-docs"))
|
||||
(doc-output (assoc-ref outputs "doc")))
|
||||
(mkdir-p (string-append doc-output "/share"))
|
||||
(symlink (string-append docs "/share/gnome")
|
||||
(string-append doc-output "/share/gnome"))
|
||||
#t)))
|
||||
(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")
|
||||
"/bin/" prog)
|
||||
`("PERL5LIB" ":" prefix
|
||||
,(map (lambda (o)
|
||||
(string-append o "/lib/perl5/site_perl/"
|
||||
,(package-version perl)))
|
||||
(if (string=? prog "gnc-fq-helper")
|
||||
(list
|
||||
,@(transitive-input-references
|
||||
'inputs
|
||||
(map (lambda (l)
|
||||
(assoc l (inputs)))
|
||||
'("perl-finance-quote"
|
||||
"perl-date-manip"))))
|
||||
(list
|
||||
,@(transitive-input-references
|
||||
'inputs
|
||||
(map (lambda (l)
|
||||
(assoc l (inputs)))
|
||||
'("perl-finance-quote")))))))))
|
||||
'("gnucash"
|
||||
"gnc-fq-check"
|
||||
"gnc-fq-helper"
|
||||
"gnc-fq-dump"))))
|
||||
(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")))
|
||||
(mkdir-p (string-append doc-output "/share"))
|
||||
(symlink (string-append docs "/share/gnome")
|
||||
(string-append doc-output "/share/gnome"))
|
||||
#t)))
|
||||
(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")
|
||||
"/bin/" prog)
|
||||
`("PERL5LIB" ":" prefix
|
||||
,(map (lambda (o)
|
||||
(string-append o "/lib/perl5/site_perl/"
|
||||
,(package-version perl)))
|
||||
(if (string=? prog "gnc-fq-helper")
|
||||
(list
|
||||
,@(transitive-input-references
|
||||
'inputs
|
||||
(map (lambda (l)
|
||||
(assoc l (inputs)))
|
||||
'("perl-finance-quote"
|
||||
"perl-date-manip"))))
|
||||
(list
|
||||
,@(transitive-input-references
|
||||
'inputs
|
||||
(map (lambda (l)
|
||||
(assoc l (inputs)))
|
||||
'("perl-finance-quote")))))))))
|
||||
'("gnucash"
|
||||
"gnc-fq-check"
|
||||
"gnc-fq-helper"
|
||||
"gnc-fq-dump"))))
|
||||
(add-after 'install 'glib-or-gtk-compile-schemas
|
||||
(assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
|
||||
(add-after 'install 'glib-or-gtk-wrap
|
||||
|
@ -168,44 +189,46 @@ (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
|
||||
(package
|
||||
(name "gnucash-docs")
|
||||
(version (package-version gnucash))
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/"
|
||||
version "/gnucash-docs-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"10v4hw4lh888r8yv473pqrvzfjg8dwamk62sghs93rn88ndwm16c"))))
|
||||
(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
|
||||
;; 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)
|
||||
("libxslt" ,libxslt)
|
||||
("docbook-xsl" ,docbook-xsl)
|
||||
("scrollkeeper" ,scrollkeeper)))
|
||||
(home-page "https://www.gnucash.org/")
|
||||
(synopsis "Documentation for GnuCash")
|
||||
(description
|
||||
"User guide and other documentation for GnuCash in various languages.
|
||||
(let ((revision "a")) ;set to the empty string when no revision
|
||||
(package
|
||||
(name "gnucash-docs")
|
||||
(version (package-version gnucash))
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/"
|
||||
version "/gnucash-docs-" version revision ".tar.gz"))
|
||||
(sha256
|
||||
(base32
|
||||
"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 package for validating the
|
||||
;; DocBook XML during the tests.
|
||||
("docbook-xml" ,docbook-xml)
|
||||
("libxslt" ,libxslt)
|
||||
("docbook-xsl" ,docbook-xsl)
|
||||
("scrollkeeper" ,scrollkeeper)))
|
||||
(home-page "https://www.gnucash.org/")
|
||||
(synopsis "Documentation for GnuCash")
|
||||
(description
|
||||
"User guide and other documentation for GnuCash in various languages.
|
||||
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
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,57 +1296,48 @@ (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
|
||||
(substitute* "Makefile.in"
|
||||
(("/usr/bin/env bash")
|
||||
(string-append bash "/bin/bash"))
|
||||
(("\\$\\(GUILE_EFFECTIVE_VERSION\\)/site")
|
||||
"site/$(GUILE_EFFECTIVE_VERSION)")) ;use the right order
|
||||
#t)))
|
||||
|
||||
(add-before 'configure 'patch-/usr/bin/env
|
||||
(lambda _
|
||||
(substitute* "Makefile.in"
|
||||
(("/usr/bin/env bash") (which "bash"))
|
||||
(("\\$\\(GUILE_EFFECTIVE_VERSION\\)/site")
|
||||
"site/$(GUILE_EFFECTIVE_VERSION)")) ;use the right order
|
||||
#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"))
|
||||
(effective (read-line
|
||||
(open-pipe* OPEN_READ
|
||||
"guile" "-c"
|
||||
"(display (effective-version))")))
|
||||
(module-dir (string-append out "/share/guile/site/"
|
||||
effective))
|
||||
(object-dir (string-append out "/lib/guile/" effective
|
||||
"/site-ccache"))
|
||||
(prefix (string-length module-dir)))
|
||||
;; compile to the destination
|
||||
(for-each (lambda (file)
|
||||
(let* ((base (string-drop (string-drop-right file 4)
|
||||
prefix))
|
||||
(go (string-append object-dir base ".go")))
|
||||
(invoke "guild" "compile" "-L" module-dir
|
||||
file "-o" go)))
|
||||
(find-files module-dir "\\.scm$"))
|
||||
#t))))))
|
||||
(home-page "http://draketo.de/english/wisp")
|
||||
(lambda* (#:key outputs inputs #:allow-other-keys)
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(effective (read-line
|
||||
(open-pipe* OPEN_READ
|
||||
"guile" "-c"
|
||||
"(display (effective-version))")))
|
||||
(module-dir (string-append out "/share/guile/site/"
|
||||
effective))
|
||||
(object-dir (string-append out "/lib/guile/" effective
|
||||
"/site-ccache"))
|
||||
(prefix (string-length module-dir)))
|
||||
;; compile to the destination
|
||||
(for-each (lambda (file)
|
||||
(let* ((base (string-drop (string-drop-right file 4)
|
||||
prefix))
|
||||
(go (string-append object-dir base ".go")))
|
||||
(invoke "guild" "compile" "-L" module-dir
|
||||
file "-o" go)))
|
||||
(find-files module-dir "\\.scm$"))
|
||||
#t))))))
|
||||
(home-page "https://draketo.de/english/wisp")
|
||||
(inputs
|
||||
`(("guile" ,guile-2.2)))
|
||||
(native-inputs
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")))
|
||||
(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
|
||||
(add-after 'unpack 'patch-convert
|
||||
(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
|
||||
(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") (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")
|
||||
|
|
|
@ -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"
|
||||
(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")))))
|
||||
(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")))
|
||||
(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
|
||||
|
|
|
@ -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)))
|
||||
(sha256
|
||||
(base32
|
||||
"0cm47s5pvijfs3v2k7hmpxv3mvp4n5la0ihnsczk5ym3iq166jil"))
|
||||
(file-name (string-append name "-" version))))
|
||||
(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
|
||||
"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))))))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
(string-append "--prefix="
|
||||
(assoc-ref outputs "out"))
|
||||
"--otr=1")))))))
|
||||
(invoke "./configure"
|
||||
(string-append "--prefix="
|
||||
(assoc-ref outputs "out"))
|
||||
"--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)
|
||||
|
|
|
@ -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"
|
||||
"stest" "test_standalone"
|
||||
make-flags))
|
||||
(zero? (system* "./stest"))
|
||||
(zero? (system* "./test")))))
|
||||
(apply invoke "make"
|
||||
"stest" "test_standalone"
|
||||
make-flags)
|
||||
(invoke "./stest")
|
||||
(invoke "./test")))
|
||||
(add-before 'install 'install-nogroup
|
||||
(lambda _
|
||||
;; Let permissions inherit from the current process
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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"
|
||||
"--prefix" out
|
||||
"--mandir" mandir)))))
|
||||
(invoke "./configure"
|
||||
"--prefix" out
|
||||
"--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,26 +447,26 @@ (define-public camlp4-4.02
|
|||
;; which fails on the second attempt.
|
||||
#:parallel-build? #f
|
||||
#:make-flags '("all")
|
||||
#: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"
|
||||
(string-append "--libdir=" out
|
||||
"/lib/ocaml/site-lib")
|
||||
(string-append "--bindir=" out "/bin")
|
||||
(string-append "--pkgdir=" out
|
||||
"/lib/ocaml/site-lib"))))))
|
||||
(add-after 'install 'install-meta
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* "camlp4/META.in"
|
||||
(("directory = .*")
|
||||
(string-append "directory = \"" out
|
||||
"/lib/ocaml/site-lib/camlp4\"\n")))
|
||||
(zero? (system* "make" "install-META"))))))))
|
||||
#: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")))
|
||||
(invoke "./configure"
|
||||
(string-append "--libdir=" out
|
||||
"/lib/ocaml/site-lib")
|
||||
(string-append "--bindir=" out "/bin")
|
||||
(string-append "--pkgdir=" out
|
||||
"/lib/ocaml/site-lib")))))
|
||||
(add-after 'install 'install-meta
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (assoc-ref outputs "out")))
|
||||
(substitute* "camlp4/META.in"
|
||||
(("directory = .*")
|
||||
(string-append "directory = \"" out
|
||||
"/lib/ocaml/site-lib/camlp4\"\n")))
|
||||
(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"
|
||||
"--prefix" out
|
||||
"--libdir" libdir))))))))
|
||||
(invoke "jbuilder" "install"
|
||||
"--prefix" out
|
||||
"--libdir" libdir)))))))
|
||||
(native-inputs
|
||||
`(("ocaml" ,ocaml)
|
||||
("cppo" ,ocaml-cppo)
|
||||
|
@ -4749,6 +4754,35 @@ (define-public ocaml-yojson
|
|||
yojson package. The program @code{atdgen} can be used to derive OCaml-JSON
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"))
|
||||
(install-file
|
||||
"assword.1"
|
||||
(string-append (assoc-ref outputs "out") "/share/man/man1"))))))))
|
||||
;; Without this substitution, it fails with
|
||||
;; ImportError: No module named 'gpg'
|
||||
(substitute* "Makefile"
|
||||
(("PYTHONPATH=.") ""))
|
||||
(invoke "make" "assword.1")
|
||||
(install-file
|
||||
"assword.1"
|
||||
(string-append (assoc-ref outputs "out") "/share/man/man1")))))))
|
||||
(build-system python-build-system)
|
||||
(native-inputs
|
||||
`(("txt2man" ,txt2man)))
|
||||
|
|
|
@ -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}")
|
|
@ -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))
|
58
gnu/packages/python-check.scm
Normal file
58
gnu/packages/python-check.scm
Normal 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)))
|
|
@ -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,15 +450,15 @@ (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"
|
||||
(string-append
|
||||
;; This test tries to look up certificates from
|
||||
;; the compiled-in default path in OpenSSL, which
|
||||
;; does not exist in the build environment.
|
||||
"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"))))))))
|
||||
(invoke "py.test" "-v" "-k"
|
||||
(string-append
|
||||
;; This test tries to look up certificates from
|
||||
;; the compiled-in default path in OpenSSL, which
|
||||
;; does not exist in the build environment.
|
||||
"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")))))))
|
||||
(propagated-inputs
|
||||
`(("python-cryptography" ,python-cryptography)
|
||||
("python-six" ,python-six)))
|
||||
|
|
|
@ -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"
|
||||
(string-append "--hdf5="
|
||||
(assoc-ref inputs "hdf5"))))))
|
||||
(invoke "python" "setup.py" "build"
|
||||
(string-append "--hdf5="
|
||||
(assoc-ref inputs "hdf5")))))
|
||||
(replace 'check
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(zero? (system* "python" "setup.py" "check"
|
||||
(string-append "--hdf5="
|
||||
(assoc-ref inputs "hdf5")))))))))
|
||||
(invoke "python" "setup.py" "check"
|
||||
(string-append "--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"
|
||||
(string-append "--netcdf_prefix="
|
||||
(assoc-ref inputs "netcdf")))))))))
|
||||
(invoke "python" "setup.py" "build"
|
||||
(string-append "--netcdf_prefix="
|
||||
(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
|
||||
|
|
|
@ -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"
|
||||
"--confirm-license"
|
||||
"--bindir" bin
|
||||
"--destdir" lib
|
||||
"--sipdir" sip))))))))
|
||||
(invoke "python" "configure.py"
|
||||
"--confirm-license"
|
||||
"--bindir" bin
|
||||
"--destdir" lib
|
||||
"--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"))
|
||||
|
|
|
@ -304,13 +304,10 @@ (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"))))
|
||||
(base32
|
||||
"0398c714znnhaa2x7v51b269hk20iz073knq2mvmqp2ma92z27fs"))))
|
||||
(build-system python-build-system)
|
||||
(arguments
|
||||
'(;; FIXME: Three test failures. Should be fixed next release.
|
||||
|
@ -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,13 +326,12 @@ (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.")
|
||||
(license (non-copyleft "file://LICENSE"
|
||||
"See LICENSE in the distribution."))))
|
||||
"See LICENSE in the distribution."))))
|
||||
|
||||
(define-public python2-rdflib
|
||||
(package-with-python2 python-rdflib))
|
||||
|
|
|
@ -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"
|
||||
"--prefix" (getcwd) "-i" "en_US"
|
||||
"-f" "ISO-8859-1" "./en_US.ISO-8859-1")))))))
|
||||
(invoke "localedef" "--no-archive"
|
||||
"--prefix" (getcwd) "-i" "en_US"
|
||||
"-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
|
||||
|
|
|
@ -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"
|
||||
"-I." "-Wall" "-g" "talloc.c")
|
||||
("ar" "rc" "libtalloc.a" "talloc.o")))))
|
||||
(invoke "gcc" "-c" "-Ibin/default" "-I" "lib/replace"
|
||||
"-I." "-Wall" "-g" "talloc.c")
|
||||
(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"
|
||||
(string-append "--prefix=" out)
|
||||
"--bundled-libraries=NONE"))))))))
|
||||
(invoke "./configure"
|
||||
(string-append "--prefix=" out)
|
||||
"--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"
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--with-modulesdir=" out
|
||||
"/lib/ldb/modules")
|
||||
"--bundled-libraries=NONE"))))))))
|
||||
(invoke "./configure"
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--with-modulesdir=" out
|
||||
"/lib/ldb/modules")
|
||||
"--bundled-libraries=NONE")))))))
|
||||
(native-inputs
|
||||
`(("cmocka" ,cmocka)
|
||||
("pkg-config" ,pkg-config)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")))
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(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" "\\.*"))
|
||||
(for-each (cut install-file <> mf)
|
||||
(find-files "." "\\.mf"))
|
||||
(copy-recursively (assoc-ref inputs "amsfonts-type1") type1)
|
||||
#t))))))
|
||||
(let* ((out (assoc-ref outputs "out"))
|
||||
(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"))
|
||||
#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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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"
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--infodir=" out
|
||||
"/share/info")))))))))
|
||||
(invoke "./configure"
|
||||
(string-append "--prefix=" out)
|
||||
(string-append "--infodir=" out
|
||||
"/share/info"))))))))
|
||||
(home-page "https://www.gnu.org/software/uucp/uucp.html")
|
||||
(synopsis "UUCP protocol implementation")
|
||||
(description
|
||||
|
|
|
@ -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)))
|
||||
|
|
|
@ -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")))
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"))
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -44,8 +44,8 @@
|
|||
|
||||
;; Add services to the baseline: a DHCP client and
|
||||
;; an SSH server.
|
||||
(services (cons* (service dhcp-client-service-type)
|
||||
(service openssh-service-type
|
||||
(openssh-configuration
|
||||
(port-number 2222)))
|
||||
%base-services)))
|
||||
(services (append (list (service dhcp-client-service-type)
|
||||
(service openssh-service-type
|
||||
(openssh-configuration
|
||||
(port-number 2222))))
|
||||
%base-services)))
|
||||
|
|
|
@ -43,15 +43,15 @@
|
|||
%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)
|
||||
;; mingetty does not work on serial lines.
|
||||
;; Use agetty with board-specific serial parameters.
|
||||
(agetty-service
|
||||
(agetty-configuration
|
||||
(extra-options '("-L"))
|
||||
(baud-rate "115200")
|
||||
(term "vt100")
|
||||
(tty "ttyO0")))
|
||||
%base-services)))
|
||||
(services (append (list (service dhcp-client-service-type)
|
||||
;; mingetty does not work on serial lines.
|
||||
;; Use agetty with board-specific serial parameters.
|
||||
(agetty-service
|
||||
(agetty-configuration
|
||||
(extra-options '("-L"))
|
||||
(baud-rate "115200")
|
||||
(term "vt100")
|
||||
(tty "ttyO0"))))
|
||||
%base-services)))
|
||||
|
|
|
@ -25,12 +25,17 @@
|
|||
(target "my-root")
|
||||
(type luks-device-mapping))))
|
||||
|
||||
(file-systems (cons (file-system
|
||||
(device (file-system-label "my-root"))
|
||||
(mount-point "/")
|
||||
(type "ext4")
|
||||
(dependencies mapped-devices))
|
||||
%base-file-systems))
|
||||
(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
|
||||
(name "bob")
|
||||
|
@ -42,17 +47,20 @@
|
|||
%base-user-accounts))
|
||||
|
||||
;; This is where we specify system-wide packages.
|
||||
(packages (cons* nss-certs ;for HTTPS access
|
||||
gvfs ;for user mounts
|
||||
%base-packages))
|
||||
(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)
|
||||
%desktop-services))
|
||||
(services (append (list (gnome-desktop-service)
|
||||
(xfce-desktop-service))
|
||||
%desktop-services))
|
||||
|
||||
;; Allow resolution of '.local' host names with mDNS.
|
||||
(name-service-switch %mdns-host-lookup-nss))
|
||||
|
|
|
@ -19,15 +19,16 @@
|
|||
|
||||
;; 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"))
|
||||
%base-file-systems))
|
||||
(type "vfat")))
|
||||
%base-file-systems))
|
||||
|
||||
(users (cons (user-account
|
||||
(name "alice")
|
||||
|
@ -40,9 +41,12 @@
|
|||
|
||||
;; 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
|
||||
%base-packages))
|
||||
(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
|
||||
;; log-in service, networking with NetworkManager, and more.
|
||||
|
|
|
@ -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,10 +44,12 @@ 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
|
||||
%base-packages))
|
||||
(packages (append (list nvi fdisk
|
||||
;; mostly so xrefs to its manual work
|
||||
grub
|
||||
;; partprobe
|
||||
parted)
|
||||
%base-packages))
|
||||
|
||||
(services (modify-services %base-services
|
||||
(login-service-type config =>
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ()
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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))))))))))
|
||||
|
|
|
@ -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 ...
|
||||
(name name*) (version "0") (source #f)
|
||||
(build-system gnu-build-system)
|
||||
(synopsis #f) (description #f)
|
||||
(home-page #f) (license #f)))
|
||||
(let ((p (package
|
||||
(name name*) (version "0") (source #f)
|
||||
(build-system gnu-build-system)
|
||||
(synopsis #f) (description #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)
|
||||
|
|
|
@ -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'~%")
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue