Archived
1
0
Fork 0

Merge branch 'master' into core-updates

This commit is contained in:
Mark H Weaver 2018-01-23 17:01:07 -05:00
commit a102d359a6
No known key found for this signature in database
GPG key ID: 7CEF29847562C516
66 changed files with 1928 additions and 363 deletions

View file

@ -2,7 +2,7 @@
# Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> # Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
# Copyright © 2013 Andreas Enge <andreas@enge.fr> # Copyright © 2013 Andreas Enge <andreas@enge.fr>
# Copyright © 2015, 2017 Alex Kost <alezost@gmail.com> # Copyright © 2015, 2017 Alex Kost <alezost@gmail.com>
# Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> # Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org>
# Copyright © 2016, 2017 Mark H Weaver <mhw@netris.org> # Copyright © 2016, 2017 Mark H Weaver <mhw@netris.org>
# Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> # Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
# Copyright © 2017 Leo Famulari <leo@famulari.name> # Copyright © 2017 Leo Famulari <leo@famulari.name>
@ -26,8 +26,20 @@
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. # along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
bin_SCRIPTS = \ bin_SCRIPTS = scripts/guix
scripts/guix
# Handle substitution of fully-expanded Autoconf variables.
do_subst = $(SED) \
-e 's,[@]GUILE[@],$(GUILE),g' \
-e 's,[@]guilemoduledir[@],$(guilemoduledir),g' \
-e 's,[@]guileobjectdir[@],$(guileobjectdir),g' \
-e 's,[@]localedir[@],$(localedir),g'
scripts/guix: scripts/guix.in Makefile
$(AM_V_at)rm -f $@ $@-t
$(AM_V_at)$(MKDIR_P) "$(@D)"
$(AM_V_GEN)$(do_subst) < "$(srcdir)/$@.in" > "$@-t"
$(AM_V_at)chmod a+x,a-w "$@-t" && mv -f "$@-t" "$@"
nodist_noinst_SCRIPTS = \ nodist_noinst_SCRIPTS = \
pre-inst-env \ pre-inst-env \
@ -437,6 +449,7 @@ EXTRA_DIST = \
TODO \ TODO \
CODE-OF-CONDUCT \ CODE-OF-CONDUCT \
.dir-locals.el \ .dir-locals.el \
bin/guix.in \
build-aux/build-self.scm \ build-aux/build-self.scm \
build-aux/compile-all.scm \ build-aux/compile-all.scm \
build-aux/hydra/evaluate.scm \ build-aux/hydra/evaluate.scm \
@ -472,6 +485,7 @@ endif !BUILD_DAEMON_OFFLOAD
CLEANFILES = \ CLEANFILES = \
$(bin_SCRIPTS) \
$(GOBJECTS) \ $(GOBJECTS) \
$(SCM_TESTS:tests/%.scm=%.log) $(SCM_TESTS:tests/%.scm=%.log)

View file

@ -124,6 +124,8 @@ dnl Make sure we don't suffer from the bug in 'equal?' wrt. syntax objects
dnl found in 2.2.1. See <https://bugs.gnu.org/29903>. dnl found in 2.2.1. See <https://bugs.gnu.org/29903>.
GUIX_ASSERT_SYNTAX_OBJECT_EQUAL GUIX_ASSERT_SYNTAX_OBJECT_EQUAL
AC_PROG_SED
dnl Decompressors, for use by the substituter and other modules. dnl Decompressors, for use by the substituter and other modules.
AC_PATH_PROG([GZIP], [gzip]) AC_PATH_PROG([GZIP], [gzip])
AC_PATH_PROG([BZIP2], [bzip2]) AC_PATH_PROG([BZIP2], [bzip2])
@ -272,7 +274,6 @@ AC_CONFIG_FILES([Makefile
po/packages/Makefile.in po/packages/Makefile.in
guix/config.scm]) guix/config.scm])
AC_CONFIG_FILES([scripts/guix], [chmod +x scripts/guix])
AC_CONFIG_FILES([test-env:build-aux/test-env.in], [chmod +x test-env]) AC_CONFIG_FILES([test-env:build-aux/test-env.in], [chmod +x test-env])
AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in], AC_CONFIG_FILES([pre-inst-env:build-aux/pre-inst-env.in],
[chmod +x pre-inst-env]) [chmod +x pre-inst-env])

View file

@ -40,7 +40,7 @@ Copyright @copyright{} 2017 Christopher Allan Webber@*
Copyright @copyright{} 2017 Marius Bakke@* Copyright @copyright{} 2017 Marius Bakke@*
Copyright @copyright{} 2017 Hartmut Goebel@* Copyright @copyright{} 2017 Hartmut Goebel@*
Copyright @copyright{} 2017 Maxim Cournoyer@* Copyright @copyright{} 2017 Maxim Cournoyer@*
Copyright @copyright{} 2017 Tobias Geerinckx-Rice@* Copyright @copyright{} 2017, 2018 Tobias Geerinckx-Rice@*
Copyright @copyright{} 2017 George Clemmer@* Copyright @copyright{} 2017 George Clemmer@*
Copyright @copyright{} 2017 Andy Wingo@* Copyright @copyright{} 2017 Andy Wingo@*
Copyright @copyright{} 2017 Arun Isaac@* Copyright @copyright{} 2017 Arun Isaac@*
@ -4005,12 +4005,12 @@ Apart from that, the build system also adds the following phases:
@table @code @table @code
@item fix-runpath @item fix-runpath
This phase tries to locate the local directories in the package being build, This phase ensures that all binaries can find the libraries they need.
which has libraries that some of the binaries need. If any are found, they will It searches for required libraries in subdirectories of the package being
be added to the programs @code{RUNPATH}. It is needed because built, and adds those to @code{RUNPATH} where needed. It also removes
@code{meson-for-build} keeps the @code{RUNPATH} of binaries and libraries from references to libraries left over from the build phase by
when they are build, but often that is not the @code{RUNPATH} we want. @code{meson-for-build}, such as test dependencies, that aren't actually
Therefor it is also shrinked to the minimum needed by the program. required for the program to run.
@item glib-or-gtk-wrap @item glib-or-gtk-wrap
This phase is the phase provided by @code{glib-or-gtk-build-system}, and it This phase is the phase provided by @code{glib-or-gtk-build-system}, and it
@ -10342,8 +10342,7 @@ with the default settings, for commonly encountered log files.
(operating-system (operating-system
;; @dots{} ;; @dots{}
(services (cons* (service mcron-service-type) (services (cons (service rottlog-service-type)
(service rottlog-service-type)
%base-services))) %base-services)))
@end lisp @end lisp
@ -18269,8 +18268,6 @@ The following example will configure the service with default values.
By default, Cgit can be accessed on port 80 (@code{http://localhost:80}). By default, Cgit can be accessed on port 80 (@code{http://localhost:80}).
@example @example
(service nginx-service-type)
(service fcgiwrap-service-type)
(service cgit-service-type) (service cgit-service-type)
@end example @end example

View file

@ -28,7 +28,12 @@
#:use-module (guix records) #:use-module (guix records)
#:use-module (guix utils) #:use-module (guix utils)
#:export (u-boot-bootloader #:export (u-boot-bootloader
u-boot-beaglebone-black-bootloader)) u-boot-a20-olinuxino-lime-bootloader
u-boot-a20-olinuxino-lime2-bootloader
u-boot-a20-olinuxino-micro-bootloader
u-boot-banana-pi-m2-ultra-bootloader
u-boot-beaglebone-black-bootloader
u-boot-nintendo-nes-classic-edition-bootloader))
(define install-u-boot (define install-u-boot
#~(lambda (bootloader device mount-point) #~(lambda (bootloader device mount-point)
@ -50,6 +55,13 @@
(write-file-on-device u-boot (* 1024 512) (write-file-on-device u-boot (* 1024 512)
device (* 768 512))))) device (* 768 512)))))
(define install-allwinner-u-boot
#~(lambda (bootloader device mount-point)
(let ((u-boot (string-append bootloader
"/libexec/u-boot-sunxi-with-spl.bin")))
(write-file-on-device u-boot (stat:size (stat u-boot))
device (* 8 1024)))))
;;; ;;;
@ -68,3 +80,33 @@
(inherit u-boot-bootloader) (inherit u-boot-bootloader)
(package u-boot-beagle-bone-black) (package u-boot-beagle-bone-black)
(installer install-beaglebone-black-u-boot))) (installer install-beaglebone-black-u-boot)))
(define u-boot-allwinner-bootloader
(bootloader
(inherit u-boot-bootloader)
(installer install-allwinner-u-boot)))
(define u-boot-nintendo-nes-classic-edition-bootloader
(bootloader
(inherit u-boot-allwinner-bootloader)
(package u-boot-nintendo-nes-classic-edition)))
(define u-boot-a20-olinuxino-lime-bootloader
(bootloader
(inherit u-boot-allwinner-bootloader)
(package u-boot-a20-olinuxino-lime)))
(define u-boot-a20-olinuxino-lime2-bootloader
(bootloader
(inherit u-boot-allwinner-bootloader)
(package u-boot-a20-olinuxino-lime2)))
(define u-boot-a20-olinuxino-micro-bootloader
(bootloader
(inherit u-boot-allwinner-bootloader)
(package u-boot-a20-olinuxino-micro)))
(define u-boot-banana-pi-m2-ultra-bootloader
(bootloader
(inherit u-boot-allwinner-bootloader)
(package u-boot-banana-pi-m2-ultra)))

View file

@ -836,6 +836,7 @@ dist_patch_DATA = \
%D%/packages/patches/libsndfile-armhf-type-checks.patch \ %D%/packages/patches/libsndfile-armhf-type-checks.patch \
%D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \ %D%/packages/patches/libsndfile-CVE-2017-8361-8363-8365.patch \
%D%/packages/patches/libsndfile-CVE-2017-8362.patch \ %D%/packages/patches/libsndfile-CVE-2017-8362.patch \
%D%/packages/patches/libsndfile-CVE-2017-12562.patch \
%D%/packages/patches/libssh-hostname-parser-bug.patch \ %D%/packages/patches/libssh-hostname-parser-bug.patch \
%D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \ %D%/packages/patches/libssh2-fix-build-failure-with-gcrypt.patch \
%D%/packages/patches/libtar-CVE-2013-4420.patch \ %D%/packages/patches/libtar-CVE-2013-4420.patch \
@ -1037,6 +1038,7 @@ dist_patch_DATA = \
%D%/packages/patches/raptor2-heap-overflow.patch \ %D%/packages/patches/raptor2-heap-overflow.patch \
%D%/packages/patches/ratpoison-shell.patch \ %D%/packages/patches/ratpoison-shell.patch \
%D%/packages/patches/rcs-5.9.4-noreturn.patch \ %D%/packages/patches/rcs-5.9.4-noreturn.patch \
%D%/packages/patches/rct-add-missing-headers.patch \
%D%/packages/patches/readline-link-ncurses.patch \ %D%/packages/patches/readline-link-ncurses.patch \
%D%/packages/patches/readline-6.2-CVE-2014-2524.patch \ %D%/packages/patches/readline-6.2-CVE-2014-2524.patch \
%D%/packages/patches/readline-7.0-mingw.patch \ %D%/packages/patches/readline-7.0-mingw.patch \
@ -1049,6 +1051,7 @@ dist_patch_DATA = \
%D%/packages/patches/rsync-CVE-2017-17433-fix-tests.patch \ %D%/packages/patches/rsync-CVE-2017-17433-fix-tests.patch \
%D%/packages/patches/rsync-CVE-2017-17434-pt1.patch \ %D%/packages/patches/rsync-CVE-2017-17434-pt1.patch \
%D%/packages/patches/rsync-CVE-2017-17434-pt2.patch \ %D%/packages/patches/rsync-CVE-2017-17434-pt2.patch \
%D%/packages/patches/rtags-separate-rct.patch \
%D%/packages/patches/ruby-concurrent-ignore-broken-test.patch \ %D%/packages/patches/ruby-concurrent-ignore-broken-test.patch \
%D%/packages/patches/ruby-concurrent-test-arm.patch \ %D%/packages/patches/ruby-concurrent-test-arm.patch \
%D%/packages/patches/ruby-rack-ignore-failing-test.patch \ %D%/packages/patches/ruby-rack-ignore-failing-test.patch \

View file

@ -2095,7 +2095,7 @@ buffers.")
(define-public intel-gpu-tools (define-public intel-gpu-tools
(package (package
(name "intel-gpu-tools") (name "intel-gpu-tools")
(version "1.18") (version "1.21")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://cgit.freedesktop.org/xorg/app/" (uri (string-append "https://cgit.freedesktop.org/xorg/app/"
@ -2103,7 +2103,7 @@ buffers.")
"intel-gpu-tools-" version ".tar.gz")) "intel-gpu-tools-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0w7djk0y5w76hzn1b3cm39zd5c6w9za1wfn80wd857h0v313rzq3")))) "1xfy4cgimyyn5qixlrfkadgnl9qwbk30vw8k80g8vjnrcc4hx986"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:tests? #f ; many of the tests try to load kernel modules `(#:tests? #f ; many of the tests try to load kernel modules
@ -2111,9 +2111,9 @@ buffers.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'autogen (add-after 'unpack 'autogen
(lambda _ (lambda _
;; Don't run configure in this phase ;; Don't run configure in this phase.
(setenv "NOCONFIGURE" "1") (setenv "NOCONFIGURE" "1")
(zero? (system* "sh" "autogen.sh"))))))) (invoke "sh" "autogen.sh"))))))
(inputs (inputs
`(("util-macros" ,util-macros) `(("util-macros" ,util-macros)
("libdrm" ,libdrm) ("libdrm" ,libdrm)

View file

@ -24,6 +24,7 @@
(define-module (gnu packages android) (define-module (gnu packages android)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download) #:use-module (guix git-download)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system python) #:use-module (guix build-system python)
@ -35,7 +36,8 @@
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages ssh) #:use-module (gnu packages ssh)
#:use-module (gnu packages version-control) #:use-module (gnu packages version-control)
#:use-module (gnu packages tls)) #:use-module (gnu packages tls)
#:use-module (gnu packages linux))
;; The Makefiles that we add are largely based on the Debian ;; The Makefiles that we add are largely based on the Debian
;; packages. They are licensed under GPL-2 and have copyright: ;; packages. They are licensed under GPL-2 and have copyright:
@ -309,6 +311,33 @@ of device actions, such as installing and debugging apps, and it provides access
to a Unix shell that can run commands on the connected device or emulator.") to a Unix shell that can run commands on the connected device or emulator.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public mkbootimg
(package
(name "mkbootimg")
(version (android-platform-version))
(source (origin
(inherit (android-platform-system-core version))))
(build-system python-build-system)
(arguments
`(#:tests? #f
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'enter-source
(lambda _ (chdir "mkbootimg") #t))
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "mkbootimg" bin)
#t))))))
(home-page "https://developer.android.com/studio/command-line/adb.html")
(synopsis "Tool to create Android boot images")
(description "This package provides a tool to create Android Boot
Images.")
(license license:asl2.0)))
(define-public android-udev-rules (define-public android-udev-rules
(package (package
(name "android-udev-rules") (name "android-udev-rules")
@ -439,3 +468,38 @@ parts of the development workflow. Repo is not meant to replace Git, only to
make it easier to work with Git. The repo command is an executable Python make it easier to work with Git. The repo command is an executable Python
script that you can put anywhere in your path.") script that you can put anywhere in your path.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public abootimg
(package
(name "abootimg")
(version "0.6")
(source
(origin
(method url-fetch)
(uri (string-append "http://http.debian.net/debian/pool/main/a/abootimg/"
"abootimg_" version ".orig.tar.gz"))
(sha256
(base32 "0sfc2k011l1ymv97821w89391gnqdh8pp0haz4sdcm5hx0axv2ba"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f
#:phases
(modify-phases %standard-phases
(replace 'configure
(lambda _
(setenv "CC" "gcc")
#t))
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin")))
(install-file "abootimg" bin)
#t))))))
(inputs
`(("libblkid" ,util-linux)))
(home-page "https://ac100.grandou.net/abootimg")
(synopsis "Tool for manipulating Android Boot Images")
(description "This package provides a tool for manipulating old Android
Boot Images. @code{abootimg} can work directly on block devices, or, the
safest way, on a file image.")
(license license:gpl2+)))

View file

@ -27,6 +27,7 @@
#:use-module (guix licenses) #:use-module (guix licenses)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages perl) #:use-module (gnu packages perl)
#:use-module (gnu packages python)
#:use-module (gnu packages m4) #:use-module (gnu packages m4)
#:use-module (gnu packages man) #:use-module (gnu packages man)
#:use-module (gnu packages bash) #:use-module (gnu packages bash)
@ -399,3 +400,38 @@ complexity of working with shared libraries across platforms.")
(description (package-description libtool)) (description (package-description libtool))
(home-page (package-home-page libtool)) (home-page (package-home-page libtool))
(license lgpl2.1+))) (license lgpl2.1+)))
(define-public pyconfigure
(package
(name "pyconfigure")
(version "0.2.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/pyconfigure/pyconfigure-"
version ".tar.gz"))
(sha256
(base32
"0kxi9bg7l6ric39vbz9ykz4a21xlihhh2zcc3297db8amvhqwhrp"))))
(build-system gnu-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'configure 'patch-python
(lambda _
(substitute* "pyconf.in"
(("/usr/bin/env python") (which "python3")))
#t)))))
(inputs
`(("python" ,python-3)))
(synopsis "@command{configure} interface for Python-based packages")
(description
"GNU pyconfigure provides template files for easily implementing
standards-compliant configure scripts and Makefiles for Python-based packages.
It is designed to work alongside existing Python setup scripts, making it easy
to integrate into existing projects. Powerful and flexible Autoconf macros
are available, allowing you to easily make adjustments to the installation
procedure based on the capabilities of the target computer.")
(home-page "https://www.gnu.org/software/pyconfigure/manual/")
(license
(fsf-free
"https://www.gnu.org/prep/maintain/html_node/License-Notices-for-Other-Files.html"))))

View file

@ -1,10 +1,10 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2015, 2016, 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2015, 2016 Pjotr Prins <pjotr.guix@thebird.nl> ;;; Copyright © 2015, 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2016 Raoul Bonnal <ilpuccio.febo@gmail.com> ;;; Copyright © 2016 Raoul Bonnal <ilpuccio.febo@gmail.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@ -71,6 +71,7 @@
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages imagemagick) #:use-module (gnu packages imagemagick)
#:use-module (gnu packages java) #:use-module (gnu packages java)
#:use-module (gnu packages jemalloc)
#:use-module (gnu packages ldc) #:use-module (gnu packages ldc)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages logging) #:use-module (gnu packages logging)
@ -3433,7 +3434,7 @@ sometimes better. Khmer can also identify and fix problems with shotgun
data.") data.")
;; When building on i686, armhf and mips64el, we get the following error: ;; When building on i686, armhf and mips64el, we get the following error:
;; error: ['khmer', 'khmer.tests', 'oxli'] require 64-bit operating system ;; error: ['khmer', 'khmer.tests', 'oxli'] require 64-bit operating system
(supported-systems '("x86_64-linux")) (supported-systems '("x86_64-linux" "aarch64-linux"))
(license license:bsd-3))) (license license:bsd-3)))
(define-public kaiju (define-public kaiju
@ -5562,6 +5563,11 @@ application of SortMeRNA is filtering rRNA from metatranscriptomic data.")
(modify-phases %standard-phases (modify-phases %standard-phases
(add-after 'unpack 'enter-source-dir (add-after 'unpack 'enter-source-dir
(lambda _ (chdir "source") #t)) (lambda _ (chdir "source") #t))
(add-after 'enter-source-dir 'make-reproducible
(lambda _
(substitute* "Makefile"
(("(COMPILATION_TIME_PLACE=\")(.*)(\")" _ pre mid post)
(string-append pre "Built with Guix" post)))))
(add-after 'enter-source-dir 'do-not-use-bundled-htslib (add-after 'enter-source-dir 'do-not-use-bundled-htslib
(lambda _ (lambda _
(substitute* "Makefile" (substitute* "Makefile"
@ -11106,3 +11112,463 @@ for alignment. Pseudoalignment of reads preserves the key information needed
for quantification, and kallisto is therefore not only fast, but also as for quantification, and kallisto is therefore not only fast, but also as
accurate as existing quantification tools.") accurate as existing quantification tools.")
(license license:bsd-2))) (license license:bsd-2)))
(define-public libgff
(package
(name "libgff")
(version "1.0")
(source (origin
(method url-fetch)
(uri (string-append
"https://github.com/Kingsford-Group/"
"libgff/archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0vc4nxyhlm6g9vvmx5l4lfs5pnvixsv1hiiy4kddf2y3p6jna8ls"))))
(build-system cmake-build-system)
(arguments `(#:tests? #f)) ; no tests included
(home-page "https://github.com/Kingsford-Group/libgff")
(synopsis "Parser library for reading/writing GFF files")
(description "This is a simple \"libraryfication\" of the GFF/GTF parsing
code that is used in the Cufflinks codebase. The goal of this library is to
provide this functionality without the necessity of drawing in a heavy-weight
dependency like SeqAn.")
(license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt"))))
(define-public libdivsufsort
(package
(name "libdivsufsort")
(version "2.0.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/y-256/libdivsufsort.git")
(commit version)))
(sha256
(base32
"0fgdz9fzihlvjjrxy01md1bv9vh12rkgkwbm90b1hj5xpbaqp7z2"))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ; there are no tests
#:configure-flags
;; Needed for rapmap and sailfish.
'("-DBUILD_DIVSUFSORT64=ON")))
(home-page "https://github.com/y-256/libdivsufsort")
(synopsis "Lightweight suffix-sorting library")
(description "libdivsufsort is a software library that implements a
lightweight suffix array construction algorithm. This library provides a
simple and an efficient C API to construct a suffix array and a
Burrows-Wheeler transformed string from a given string over a constant-size
alphabet. The algorithm runs in O(n log n) worst-case time using only 5n+O(1)
bytes of memory space, where n is the length of the string.")
(license license:expat)))
(define-public sailfish
(package
(name "sailfish")
(version "0.10.1")
(source (origin
(method url-fetch)
(uri
(string-append "https://github.com/kingsfordgroup/"
"sailfish/archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1inn60dxiwsz8g9w7kvfhjxj4bwfb0r12dyhpzzhfbig712dkmm0"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete bundled headers for eigen3.
(delete-file-recursively "include/eigen3/")
#t))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
(list (string-append "-DBOOST_INCLUDEDIR="
(assoc-ref %build-inputs "boost")
"/include/")
(string-append "-DBOOST_LIBRARYDIR="
(assoc-ref %build-inputs "boost")
"/lib/")
(string-append "-DBoost_LIBRARIES="
"-lboost_iostreams "
"-lboost_filesystem "
"-lboost_system "
"-lboost_thread "
"-lboost_timer "
"-lboost_chrono "
"-lboost_program_options")
"-DBoost_FOUND=TRUE"
;; Don't download RapMap---we already have it!
"-DFETCHED_RAPMAP=1")
;; Tests must be run after installation and the location of the test
;; data file must be overridden. But the tests fail. It looks like
;; they are not really meant to be run.
#:tests? #f
#:phases
(modify-phases %standard-phases
;; Boost cannot be found, even though it's right there.
(add-after 'unpack 'do-not-look-for-boost
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "CMakeLists.txt"
(("find_package\\(Boost 1\\.53\\.0") "#"))))
(add-after 'unpack 'do-not-assign-to-macro
(lambda _
(substitute* "include/spdlog/details/format.cc"
(("const unsigned CHAR_WIDTH = 1;") ""))))
(add-after 'unpack 'prepare-rapmap
(lambda* (#:key inputs #:allow-other-keys)
(let ((src "external/install/src/rapmap/")
(include "external/install/include/rapmap/")
(rapmap (assoc-ref inputs "rapmap")))
(mkdir-p "/tmp/rapmap")
(system* "tar" "xf"
(assoc-ref inputs "rapmap")
"-C" "/tmp/rapmap"
"--strip-components=1")
(mkdir-p src)
(mkdir-p include)
(for-each (lambda (file)
(install-file file src))
(find-files "/tmp/rapmap/src" "\\.(c|cpp)"))
(copy-recursively "/tmp/rapmap/include" include))))
(add-after 'unpack 'use-system-libraries
(lambda* (#:key inputs #:allow-other-keys)
(substitute* '("src/SailfishIndexer.cpp"
"src/SailfishUtils.cpp"
"src/SailfishQuantify.cpp"
"src/FASTAParser.cpp"
"include/PCA.hpp"
"include/SailfishUtils.hpp"
"include/SailfishIndex.hpp"
"include/CollapsedEMOptimizer.hpp"
"src/CollapsedEMOptimizer.cpp")
(("#include \"jellyfish/config.h\"") ""))
(substitute* "src/CMakeLists.txt"
(("\\$\\{GAT_SOURCE_DIR\\}/external/install/include/jellyfish-2.2..")
(string-append (assoc-ref inputs "jellyfish")
"/include/jellyfish-" ,(package-version jellyfish)))
(("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libjellyfish-2.0.a")
(string-append (assoc-ref inputs "jellyfish")
"/lib/libjellyfish-2.0.a"))
(("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort.a")
(string-append (assoc-ref inputs "libdivsufsort")
"/lib/libdivsufsort.so"))
(("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort64.a")
(string-append (assoc-ref inputs "libdivsufsort")
"/lib/libdivsufsort64.so")))
(substitute* "CMakeLists.txt"
;; Don't prefer static libs
(("SET\\(CMAKE_FIND_LIBRARY_SUFFIXES.*") "")
(("find_package\\(Jellyfish.*") "")
(("ExternalProject_Add\\(libjellyfish") "message(")
(("ExternalProject_Add\\(libgff") "message(")
(("ExternalProject_Add\\(libsparsehash") "message(")
(("ExternalProject_Add\\(libdivsufsort") "message("))
;; Ensure that Eigen headers can be found
(setenv "CPLUS_INCLUDE_PATH"
(string-append (getenv "CPLUS_INCLUDE_PATH")
":"
(assoc-ref inputs "eigen")
"/include/eigen3")))))))
(inputs
`(("boost" ,boost)
("eigen" ,eigen)
("jemalloc" ,jemalloc)
("jellyfish" ,jellyfish)
("sparsehash" ,sparsehash)
("rapmap" ,(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/COMBINE-lab/RapMap.git")
(commit (string-append "sf-v" version))))
(file-name (string-append "rapmap-sf-v" version "-checkout"))
(sha256
(base32
"1hv79l5i576ykv5a1srj2p0q36yvyl5966m0fcy2lbi169ipjakf"))
(modules '((guix build utils)))
;; These files are expected to be excluded.
(snippet
'(begin (delete-file-recursively "include/spdlog")
(for-each delete-file '("include/xxhash.h"
"src/xxhash.c"))))))
("libdivsufsort" ,libdivsufsort)
("libgff" ,libgff)
("tbb" ,tbb)
("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://www.cs.cmu.edu/~ckingsf/software/sailfish")
(synopsis "Mapping-based isoform quantification from RNA-Seq reads")
(description "Sailfish is a tool for genomic transcript quantification
from RNA-seq data. It requires a set of target transcripts (either from a
reference or de-novo assembly) to quantify. All you need to run sailfish is a
fasta file containing your reference transcripts and a (set of) fasta/fastq
file(s) containing your reads.")
(license license:gpl3+)))
(define libstadenio-for-salmon
(package
(name "libstadenio")
(version "1.14.8")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/COMBINE-lab/staden-io_lib.git")
(commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"1x8kxxqxl892vwfbprlbyfwkkv7c34ggkc94892x9x0g37x5nbwx"))))
(build-system gnu-build-system)
(arguments '(#:parallel-tests? #f)) ; not supported
(inputs
`(("zlib" ,zlib)))
(native-inputs
`(("perl" ,perl))) ; for tests
(home-page "https://github.com/COMBINE-lab/staden-io_lib")
(synopsis "General purpose trace and experiment file library")
(description "This package provides a library of file reading and writing
code to provide a general purpose Trace file (and Experiment File) reading
interface.
The following file formats are supported:
@enumerate
@item SCF trace files
@item ABI trace files
@item ALF trace files
@item ZTR trace files
@item SFF trace archives
@item SRF trace archives
@item Experiment files
@item Plain text files
@item SAM/BAM sequence files
@item CRAM sequence files
@end enumerate\n")
(license license:bsd-3)))
(define spdlog-for-salmon
(package
(name "spdlog")
(version "0.14.0")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/COMBINE-lab/spdlog.git")
(commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"13730429gwlabi432ilpnja3sfvy0nn2719vnhhmii34xcdyc57q"))))
(build-system cmake-build-system)
(home-page "https://github.com/COMBINE-lab/spdlog")
(synopsis "Very fast C++ logging library")
(description "Spdlog is a very fast header-only C++ logging library with
performance as its primary goal.")
(license license:expat)))
;; This is a modified variant of bwa for use with Salmon. It installs a
;; library to avoid having to build this as part of Salmon.
(define bwa-for-salmon
(package (inherit bwa)
(name "bwa")
(version "0.7.12.5")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/COMBINE-lab/bwa.git")
(commit (string-append "v" version))))
(file-name (string-append "bwa-for-salmon-" version "-checkout"))
(sha256
(base32
"1z2qa64y0c5hky10510x137mnzlhz6k8qf27csw4w9j6qihq95gb"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ;no "check" target
#:phases
(modify-phases %standard-phases
(replace 'install
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin"))
(lib (string-append out "/lib"))
(doc (string-append out "/share/doc/bwa"))
(man (string-append out "/share/man/man1"))
(inc (string-append out "/include/bwa")))
(install-file "bwa" bin)
(install-file "README.md" doc)
(install-file "bwa.1" man)
(install-file "libbwa.a" lib)
(mkdir-p lib)
(mkdir-p inc)
(for-each (lambda (file)
(install-file file inc))
(find-files "." "\\.h$")))
#t))
;; no "configure" script
(delete 'configure))))))
(define-public salmon
(package
(name "salmon")
(version "0.9.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/COMBINE-lab/salmon.git")
(commit (string-append "v" version))))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"1zi1ff4i7y2ykk0vdzysgwzzzv166vg2x77pj1mf4baclavxj87a"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete bundled headers for eigen3.
(delete-file-recursively "include/eigen3/")
#t))))
(build-system cmake-build-system)
(arguments
`(#:configure-flags
(list (string-append "-DBOOST_INCLUDEDIR="
(assoc-ref %build-inputs "boost")
"/include/")
(string-append "-DBOOST_LIBRARYDIR="
(assoc-ref %build-inputs "boost")
"/lib/")
(string-append "-DBoost_LIBRARIES="
"-lboost_iostreams "
"-lboost_filesystem "
"-lboost_system "
"-lboost_thread "
"-lboost_timer "
"-lboost_chrono "
"-lboost_program_options")
"-DBoost_FOUND=TRUE"
"-DTBB_LIBRARIES=tbb tbbmalloc"
;; Don't download RapMap---we already have it!
"-DFETCHED_RAPMAP=1")
#:phases
(modify-phases %standard-phases
;; Boost cannot be found, even though it's right there.
(add-after 'unpack 'do-not-look-for-boost
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "CMakeLists.txt"
(("find_package\\(Boost 1\\.53\\.0") "#"))))
(add-after 'unpack 'do-not-phone-home
(lambda _
(substitute* "src/Salmon.cpp"
(("getVersionMessage\\(\\)") "\"\""))))
(add-after 'unpack 'prepare-rapmap
(lambda* (#:key inputs #:allow-other-keys)
(let ((src "external/install/src/rapmap/")
(include "external/install/include/rapmap/")
(rapmap (assoc-ref inputs "rapmap")))
(mkdir-p src)
(mkdir-p include)
(for-each (lambda (file)
(install-file file src))
(find-files (string-append rapmap "/src") "\\.(c|cpp)"))
(copy-recursively (string-append rapmap "/include") include)
(for-each delete-file '("external/install/include/rapmap/xxhash.h"
"external/install/include/rapmap/FastxParser.hpp"
"external/install/include/rapmap/concurrentqueue.h"
"external/install/include/rapmap/FastxParserThreadUtils.hpp"
"external/install/src/rapmap/FastxParser.cpp"
"external/install/src/rapmap/xxhash.c")))))
(add-after 'unpack 'use-system-libraries
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "src/CMakeLists.txt"
(("\\$\\{GAT_SOURCE_DIR\\}/external/install/include/jellyfish-2.2..")
(string-append (assoc-ref inputs "jellyfish")
"/include/jellyfish-" ,(package-version jellyfish)))
(("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libjellyfish-2.0.a")
(string-append (assoc-ref inputs "jellyfish")
"/lib/libjellyfish-2.0.a"))
(("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort.a")
(string-append (assoc-ref inputs "libdivsufsort")
"/lib/libdivsufsort.so"))
(("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libstaden-read.a")
(string-append (assoc-ref inputs "libstadenio-for-salmon")
"/lib/libstaden-read.a"))
(("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libbwa.a")
(string-append (assoc-ref inputs "bwa") "/lib/libbwa.a"))
(("\\$\\{GAT_SOURCE_DIR\\}/external/install/lib/libdivsufsort64.a")
(string-append (assoc-ref inputs "libdivsufsort")
"/lib/libdivsufsort64.so")))
(substitute* "CMakeLists.txt"
;; Don't prefer static libs
(("SET\\(CMAKE_FIND_LIBRARY_SUFFIXES.*") "")
(("set\\(TBB_LIBRARIES") "message(")
(("find_package\\(Jellyfish.*") "")
(("ExternalProject_Add\\(libcereal") "message(")
(("ExternalProject_Add\\(libbwa") "message(")
(("ExternalProject_Add\\(libjellyfish") "message(")
(("ExternalProject_Add\\(libgff") "message(")
(("ExternalProject_Add\\(libtbb") "message(")
(("ExternalProject_Add\\(libspdlog") "message(")
(("ExternalProject_Add\\(libdivsufsort") "message(")
(("ExternalProject_Add\\(libstadenio") "message(")
(("ExternalProject_Add_Step\\(") "message("))
;; Ensure that all headers can be found
(setenv "CPLUS_INCLUDE_PATH"
(string-append (getenv "CPLUS_INCLUDE_PATH")
":"
(assoc-ref inputs "bwa")
"/include/bwa"
":"
(assoc-ref inputs "eigen")
"/include/eigen3"))
(setenv "CPATH"
(string-append (assoc-ref inputs "bwa")
"/include/bwa"
":"
(assoc-ref inputs "eigen")
"/include/eigen3"))
#t))
;; CMAKE_INSTALL_PREFIX does not exist when the tests are
;; run. It only exists after the install phase.
(add-after 'unpack 'fix-tests
(lambda _
(substitute* "src/CMakeLists.txt"
(("DTOPLEVEL_DIR=\\$\\{CMAKE_INSTALL_PREFIX")
"DTOPLEVEL_DIR=${GAT_SOURCE_DIR"))
#t)))))
(inputs
`(("boost" ,boost)
("bwa" ,bwa-for-salmon)
("bzip2" ,bzip2)
("cereal" ,cereal)
("eigen" ,eigen)
("rapmap" ,(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/COMBINE-lab/RapMap.git")
(commit (string-append "salmon-v" version))))
(file-name (string-append "rapmap-salmon-v" version "-checkout"))
(sha256
(base32
"1yc12yqsz6f0r8sg1qnk57xg34aqwc9jbqq6gd5ys28xw3plj98p"))))
("jemalloc" ,jemalloc)
("jellyfish" ,jellyfish)
("libgff" ,libgff)
("tbb" ,tbb)
("libdivsufsort" ,libdivsufsort)
("libstadenio-for-salmon" ,libstadenio-for-salmon)
("spdlog-for-salmon" ,spdlog-for-salmon)
("xz" ,xz)
("zlib" ,zlib)))
(home-page "https://github.com/COMBINE-lab/salmon")
(synopsis "Quantification from RNA-seq reads using lightweight alignments")
(description "Salmon is a program to produce highly-accurate,
transcript-level quantification estimates from RNA-seq data. Salmon achieves
its accuracy and speed via a number of different innovations, including the
use of lightweight alignments (accurate but fast-to-compute proxies for
traditional read alignments) and massively-parallel stochastic collapsed
variational inference.")
(license license:gpl3+)))

View file

@ -5,7 +5,7 @@
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Tomáš Čech <sleep_walker@gnu.org> ;;; Copyright © 2016 Tomáš Čech <sleep_walker@gnu.org>
;;; Copyright © 2016, 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org> ;;; Copyright © 2017 Jelle Licht <jlicht@fsfe.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -340,14 +340,15 @@ downloads, download scheduling, download rate limiting.")
(define-public mktorrent (define-public mktorrent
(package (package
(name "mktorrent") (name "mktorrent")
(version "1.0") (version "1.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/mktorrent/mktorrent/" (file-name (string-append name "-" version ".tar.gz"))
version "/" name "-" version ".tar.gz")) (uri (string-append "https://github.com/Rudde/mktorrent/archive/v"
version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"17qi3nfky240pq6qcmf5qg324mxm83vk9r3nvsdhsvinyqm5d3kg")))) "1j9qc4fxa9isnaygqk6jazsiklqywl2wcs95b8dx01963407bx6h"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases (modify-phases %standard-phases `(#:phases (modify-phases %standard-phases
@ -359,13 +360,14 @@ downloads, download scheduling, download rate limiting.")
"USE_LONG_OPTIONS=1" "USE_LONG_OPTIONS=1"
"USE_PTHREADS=1") "USE_PTHREADS=1")
#:tests? #f)) ; no tests #:tests? #f)) ; no tests
(home-page "http://mktorrent.sourceforge.net/") (home-page "https://github.com/Rudde/mktorrent")
(synopsis "Utility to create BitTorrent metainfo files") (synopsis "Utility to create BitTorrent metainfo files")
(description "mktorrent is a simple command-line utility to create (description
BitTorrent @dfn{metainfo} files, often known simply as @dfn{torrents}, from "mktorrent is a simple command-line utility to create BitTorrent
both single files and whole directories. It can add multiple trackers and web @dfn{metainfo} files, often known simply as @dfn{torrents}, from both single
seed URLs, and set the @code{private} flag to disallow advertisement through files and whole directories. It can add multiple trackers and web seed URLs,
the distributed hash table (DHT) and Peer Exchange. Hashing is multi-threaded and set the @code{private} flag to disallow advertisement through the
distributed hash table (@dfn{DHT}) and Peer Exchange. Hashing is multi-threaded
and will take advantage of multiple processor cores where possible.") and will take advantage of multiple processor cores where possible.")
(license (list l:public-domain ; sha1.*, used to build without OpenSSL (license (list l:public-domain ; sha1.*, used to build without OpenSSL
l:gpl2+)))) ; with permission to link with OpenSSL l:gpl2+)))) ; with permission to link with OpenSSL
@ -373,7 +375,7 @@ and will take advantage of multiple processor cores where possible.")
(define-public libtorrent-rasterbar (define-public libtorrent-rasterbar
(package (package
(name "libtorrent-rasterbar") (name "libtorrent-rasterbar")
(version "1.1.5") (version "1.1.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -383,7 +385,7 @@ and will take advantage of multiple processor cores where possible.")
"/libtorrent-rasterbar-" version ".tar.gz")) "/libtorrent-rasterbar-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0c398b7hsa5dvj4m0jc8h7mn0m3nawmagb6c5c7ml5c9hc338c8h")))) "1vr1a7smkwh7dc7jb9n68i0cg59wxhgywxc9kxpbs8fi9c04vixp"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags
@ -399,7 +401,7 @@ and will take advantage of multiple processor cores where possible.")
("openssl" ,openssl))) ("openssl" ,openssl)))
(native-inputs `(("python" ,python-2) (native-inputs `(("python" ,python-2)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))
(home-page "http://www.rasterbar.com/products/libtorrent/") (home-page "https://www.libtorrent.org/")
(synopsis "Feature complete BitTorrent implementation") (synopsis "Feature complete BitTorrent implementation")
(description (description
"libtorrent-rasterbar is a feature complete C++ BitTorrent implementation "libtorrent-rasterbar is a feature complete C++ BitTorrent implementation

View file

@ -37,6 +37,7 @@
#:use-module (gnu packages disk) #:use-module (gnu packages disk)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gettext) #:use-module (gnu packages gettext)
#:use-module (gnu packages linux) #:use-module (gnu packages linux)
#:use-module (gnu packages man) #:use-module (gnu packages man)
@ -335,7 +336,7 @@ tree binary files. These are board description files used by Linux and BSD.")
(define u-boot (define u-boot
(package (package
(name "u-boot") (name "u-boot")
(version "2017.11") (version "2018.01")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -343,11 +344,12 @@ tree binary files. These are board description files used by Linux and BSD.")
"u-boot-" version ".tar.bz2")) "u-boot-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"01bcsah5imy6m3fbjwhqywxg0pfk5fl8ks9ylb7kv3zmrb9qy0ba")))) "1nidnnjprgxdhiiz7gmaj8cgcf52l5gbv64cmzjq4gmkjirmk3wk"))))
(native-inputs (native-inputs
`(("bc" ,bc) `(("bc" ,bc)
("dtc" ,dtc) ;("dtc" ,dtc) ; they have their own incompatible copy.
("python-2" ,python-2))) ("python-2" ,python-2)
("swig" ,swig)))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://www.denx.de/wiki/U-Boot/") (home-page "http://www.denx.de/wiki/U-Boot/")
(synopsis "ARM bootloader") (synopsis "ARM bootloader")
@ -363,10 +365,12 @@ also initializes the boards (RAM etc).")
`#f))) `#f)))
(package (package
(inherit u-boot) (inherit u-boot)
(name (string-append "u-boot-" (string-downcase board))) (name (string-append "u-boot-"
(string-replace-substring (string-downcase board)
"_" "-")))
(native-inputs (native-inputs
`(,@(if (not same-arch?) `(,@(if (not same-arch?)
`(("cross-gcc" ,(cross-gcc triplet)) `(("cross-gcc" ,(cross-gcc triplet #:xgcc gcc-7))
("cross-binutils" ,(cross-binutils triplet))) ("cross-binutils" ,(cross-binutils triplet)))
'()) '())
,@(package-native-inputs u-boot))) ,@(package-native-inputs u-boot)))
@ -423,6 +427,21 @@ also initializes the boards (RAM etc).")
(define-public u-boot-odroid-c2 (define-public u-boot-odroid-c2
(make-u-boot-package "odroid-c2" "aarch64-linux-gnu")) (make-u-boot-package "odroid-c2" "aarch64-linux-gnu"))
(define-public u-boot-banana-pi-m2-ultra
(make-u-boot-package "Bananapi_M2_Ultra" "arm-linux-gnueabihf"))
(define-public u-boot-a20-olinuxino-lime
(make-u-boot-package "A20-OLinuXino-Lime" "arm-linux-gnueabihf"))
(define-public u-boot-a20-olinuxino-lime2
(make-u-boot-package "A20-OLinuXino-Lime2" "arm-linux-gnueabihf"))
(define-public u-boot-a20-olinuxino-micro
(make-u-boot-package "A20-OLinuXino_MICRO" "arm-linux-gnueabihf"))
(define-public u-boot-nintendo-nes-classic-edition
(make-u-boot-package "Nintendo_NES_Classic_Edition" "arm-linux-gnueabihf"))
(define-public vboot-utils (define-public vboot-utils
(package (package
(name "vboot-utils") (name "vboot-utils")

View file

@ -3,7 +3,7 @@
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -75,7 +75,7 @@
(define-public nss-certs (define-public nss-certs
(package (package
(name "nss-certs") (name "nss-certs")
(version "3.34.1") (version "3.35")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (let ((version-with-underscores (uri (let ((version-with-underscores
@ -86,7 +86,7 @@
"nss-" version ".tar.gz"))) "nss-" version ".tar.gz")))
(sha256 (sha256
(base32 (base32
"186x33wsk4mzjz7dzbn8p0py9a0nzkgzpfkdv4rlyy5gghv5vhd3")))) "1ypn68z9ncbbshi3184ywrhx5i846lyd72gps1grzqzdkgh7s4pl"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out")) (outputs '("out"))
(native-inputs (native-inputs

View file

@ -26,12 +26,13 @@
(define-module (gnu packages code) (define-module (gnu packages code)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix git-download)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system cmake) #:use-module (guix build-system cmake)
#:use-module (gnu packages)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages emacs) #:use-module (gnu packages emacs)
#:use-module (gnu packages gcc) #:use-module (gnu packages gcc)
@ -43,6 +44,7 @@
#:use-module (gnu packages ncurses) #:use-module (gnu packages ncurses)
#:use-module (gnu packages autotools) #:use-module (gnu packages autotools)
#:use-module (gnu packages llvm) #:use-module (gnu packages llvm)
#:use-module (gnu packages lua)
#:use-module (gnu packages bash)) #:use-module (gnu packages bash))
;;; Tools to deal with source code: metrics, cross-references, etc. ;;; Tools to deal with source code: metrics, cross-references, etc.
@ -393,28 +395,43 @@ functionality such as HTML output.")
(name "rtags") (name "rtags")
(version "2.16") (version "2.16")
(home-page "https://github.com/Andersbakken/rtags") (home-page "https://github.com/Andersbakken/rtags")
(source (origin (source
(method git-fetch) (origin
(uri (git-reference (method url-fetch)
(url home-page) (uri
(commit "8ef7554852541eced514c56d5e39d6073f7a2ef9") (string-append home-page "/archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
;; FIXME: This fetches bundled copies of Lua, RCT, and (patches (search-patches "rtags-separate-rct.patch"))
;; Selene. (modules '((guix build utils)))
(recursive? #t))) (snippet
;; Part of spliting rct with rtags.
;; Substitute #include "rct/header.h" with #include <rct/header.h>.
'(with-directory-excursion "src"
(delete-file-recursively "rct") ;remove bundled copy
(let ((files (find-files "." ".*\\.cpp|.*\\.h")))
(substitute* files
(("#include ?\"rct/(.*.h)\"" all header)
(string-append "#include <rct/" header ">"))))))
(sha256 (sha256
(base32 (base32
"12r7lsqdmcbs9864a6dpblvifqvmfxhvxippyhfnnm2ai5ra80nc")) "17rkci3mmiw93qc32b9x76pg57b0lx80avr6wnmh190jx8n3v3wy"))))
(file-name (git-file-name name version))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:configure-flags '("-DBUILD_TESTING=FALSE" '(#:configure-flags
"-DRTAGS_NO_ELISP_FILES=1") '("-DRTAGS_NO_ELISP_FILES=1"
"-DCMAKE_BUILD_TYPE=RelWithDebInfo"
"-DCMAKE_CXX_FLAGS=-std=c++11"
"-DBUILD_TESTING=FALSE")
#:tests? #f)) #:tests? #f))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs (inputs
`(("clang" ,clang) `(("bash-completion" ,bash-completion)
("clang" ,clang)
("llvm" ,llvm) ("llvm" ,llvm)
("bash-completion" ,bash-completion))) ("lua" ,lua)
("rct" ,rct)
("selene" ,selene)))
(synopsis "Indexer for the C language family with Emacs integration") (synopsis "Indexer for the C language family with Emacs integration")
(description (description
"RTags is a client/server application that indexes C/C++ code and keeps a "RTags is a client/server application that indexes C/C++ code and keeps a

View file

@ -1311,10 +1311,11 @@ compresser/decompresser.")
("java-snappy" ,java-snappy) ("java-snappy" ,java-snappy)
("hamcrest" ,java-hamcrest-core) ("hamcrest" ,java-hamcrest-core)
("testng" ,java-testng))) ("testng" ,java-testng)))
(synopsis "Java port of snappy") (synopsis "Java port of the Snappy (de)compressor")
(description "Iq80-snappy is a rewrite (port) of Snappy writen in pure (description
Java. This compression code produces a byte-for-byte exact copy of the output "Iq80-snappy is a port of the Snappy compressor and decompressor rewritten
created by the original C++ code, and extremely fast.") in pure Java. This compression code produces a byte-for-byte exact copy of the
output created by the original C++ code, and is extremely fast.")
(license license:asl2.0))) (license license:asl2.0)))
(define-public java-jbzip2 (define-public java-jbzip2

View file

@ -68,7 +68,7 @@ operating system functions.")
(define-public rct (define-public rct
(let* ((commit "b3e6f41d9844ef64420e628e0c65ed98278a843a") (let* ((commit "b3e6f41d9844ef64420e628e0c65ed98278a843a")
(revision "1") (revision "2")
(version (git-version "0.0.0" revision commit))) (version (git-version "0.0.0" revision commit)))
(package (package
(name "rct") (name "rct")
@ -82,11 +82,13 @@ operating system functions.")
(sha256 (sha256
(base32 (base32
"1m2931jacka27ghnpgf1z1plkkr64z0pga4r4zdrfpp2d7xnrdvb")) "1m2931jacka27ghnpgf1z1plkkr64z0pga4r4zdrfpp2d7xnrdvb"))
(patches (search-patches "rct-add-missing-headers.patch"))
(file-name (git-file-name name version)))) (file-name (git-file-name name version))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
'(#:configure-flags '(#:configure-flags
'("-DWITH_TESTS=ON"))) ; To run the test suite '("-DWITH_TESTS=ON" ; To run the test suite
"-DRCT_RTTI_ENABLED=ON")))
(native-inputs (native-inputs
`(("cppunit" ,cppunit) `(("cppunit" ,cppunit)
("pkg-config" ,pkg-config))) ("pkg-config" ,pkg-config)))

View file

@ -1840,3 +1840,24 @@ plots in @code{ggplot2}.")
attractive command line interfaces (CLIs). It includes tools for drawing attractive command line interfaces (CLIs). It includes tools for drawing
rules, boxes, trees, and Unicode symbols with ASCII alternatives.") rules, boxes, trees, and Unicode symbols with ASCII alternatives.")
(license license:expat))) (license license:expat)))
(define-public r-argparser
(package
(name "r-argparser")
(version "0.4")
(source
(origin
(method url-fetch)
(uri (cran-uri "argparser" version))
(sha256
(base32
"0s1wxshx4jk69wfxhycx973q6y8cmqrfymyjklhq1i8xrj0kmmx9"))))
(build-system r-build-system)
(home-page "https://bitbucket.org/djhshih/argparser")
(synopsis "Command-line argument parser")
(description
"This package provides a cross-platform command-line argument parser
written purely in R with no external dependencies. It is useful with the
Rscript front-end and facilitates turning an R script into an executable
script.")
(license license:gpl3+)))

View file

@ -202,7 +202,9 @@ target that libc."
(patches (patches
(append (append
(origin-patches (package-source xgcc)) (origin-patches (package-source xgcc))
(cons (search-patch "gcc-cross-environment-variables.patch") (cons (if (version>=? (package-version xgcc) "6.0")
(search-patch "gcc-6-cross-environment-variables.patch")
(search-patch "gcc-cross-environment-variables.patch"))
(cross-gcc-patches target)))) (cross-gcc-patches target))))
(modules '((guix build utils))) (modules '((guix build utils)))
(snippet (snippet

View file

@ -3,6 +3,7 @@
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net> ;;; Copyright © 2017 ng0 <contact.ng0@cryptolab.net>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -718,3 +719,25 @@ static files.")
lower the barrier of entry, providing tools to enable teams to work towards lower the barrier of entry, providing tools to enable teams to work towards
higher quality while welcoming newcomers.") higher quality while welcoming newcomers.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public python-django-tagging
(package
(name "python-django-tagging")
(version "0.4.6")
(source
(origin
(method url-fetch)
(uri (pypi-uri "django-tagging" version))
(sha256
(base32
"0s7b4v45j783yaxs7rni10k24san0ya77nqz4s7zdf3jhfpk42r1"))))
(build-system python-build-system)
(home-page "https://github.com/Fantomas42/django-tagging")
(synopsis "Generic tagging application for Django")
(description "This package provides a generic tagging application for
Django projects, which allows association of a number of tags with any
@code{Model} instance and makes retrieval of tags simple.")
(license license:bsd-3)))
(define-public python2-django-tagging
(package-with-python2 python-django-tagging))

View file

@ -4,7 +4,7 @@
;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014, 2015, 2016, 2017 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015, 2016, 2017 Alex Kost <alezost@gmail.com> ;;; Copyright © 2014, 2015, 2016, 2017 Alex Kost <alezost@gmail.com>
;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch> ;;; Copyright © 2015 Federico Beffa <beffa@fbengineering.ch>
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2016, 2017 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org> ;;; Copyright © 2015, 2016 Christopher Allan Webber <cwebber@dustycloud.org>
;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com> ;;; Copyright © 2016 Adriano Peluso <catonano@gmail.com>
@ -3169,15 +3169,16 @@ perspective only its buffers are available by default.")
(define-public emacs-request (define-public emacs-request
(package (package
(name "emacs-request") (name "emacs-request")
(version "0.2.0") (version "0.3.0")
(source (origin (source (origin
(method url-fetch) (method git-fetch)
(uri (string-append (uri (git-reference
"https://github.com/tkf/emacs-request/archive/v" (url "https://github.com/tkf/emacs-request.git")
version ".tar.gz")) (commit (string-append "v" version))))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version "-checkout"))
(sha256 (sha256
(base32 "0sll9g9x15jxrdr58pdxx4iz74rnjd43q521iqm890i6hmkrgwap")))) (base32
"0wyxqbb35yqf6ci47531lk32d6fppamx9d8826kdz983vm87him7"))))
(build-system emacs-build-system) (build-system emacs-build-system)
(home-page "https://github.com/tkf/emacs-request") (home-page "https://github.com/tkf/emacs-request")
(synopsis "Package for speaking HTTP in Emacs Lisp") (synopsis "Package for speaking HTTP in Emacs Lisp")

View file

@ -8,6 +8,7 @@
;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com> ;;; Copyright © 2017 Vasile Dumitrascu <va511e@yahoo.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Adriano Peluso <catonano@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -720,3 +721,34 @@ agent.")
(description "This package allows using KeepKey as a hardware SSH/GPG (description "This package allows using KeepKey as a hardware SSH/GPG
agent.") agent.")
(license license:lgpl3))) (license license:lgpl3)))
(define-public python-stdnum
(package
(name "python-stdnum")
(version "1.8.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "python-stdnum" version))
(sha256
(base32
"0hvr47q32xbyiznpmbg4r8rcvxhnf0lwf33hcpnynyik57djy5np"))))
(build-system python-build-system)
(home-page
"https://arthurdejong.org/python-stdnum/")
(synopsis
"Python module to handle standardized number and code formats")
(description
"This is a Python library that aims to provide functions to handle,
parse and validate standard numbers.
The module supports more than 100 different number formats
amongst which a great number of VAT and other tax numbers,
personal identity and company identification codes,
international standard numbers (ISBN, IBAN, EAN, etc.)
and various other formats.
The module also inclused implementations of the Verhoeff,
Luhn and family of ISO/IEC 7064 check digit algorithms. ")
(license license:lgpl2.1+)))
(define-public python2-stdnum
(package-with-python2 python-stdnum))

View file

@ -112,7 +112,7 @@ is used in some video games and movies.")
(define-public deutex (define-public deutex
(package (package
(name "deutex") (name "deutex")
(version "5.1.0") (version "5.1.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/Doom-Utils/" name (uri (string-append "https://github.com/Doom-Utils/" name
@ -120,7 +120,7 @@ is used in some video games and movies.")
name "-" version ".tar.xz")) name "-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0hwkm0q2w16ddmiwh7x3jcfp58zjb40a5dh7c3sybwm9bar37pn1")))) "0yqzlb3imkdzy8yd7xc69xk9ajf4dhiz3a9ssphyf4c9rcr440wj"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("asciidoc" ,asciidoc))) (native-inputs `(("asciidoc" ,asciidoc)))
(home-page "https://github.com/Doom-Utils/deutex") (home-page "https://github.com/Doom-Utils/deutex")
@ -1069,6 +1069,10 @@ games.")
(arguments (arguments
`(#:scons ,scons-python2 `(#:scons ,scons-python2
#:scons-flags (list "platform=x11" #:scons-flags (list "platform=x11"
,@(if (string-prefix? "aarch64" (or (%current-target-system)
(%current-system)))
`("CCFLAGS=-DNO_THREADS")
'())
;; Avoid using many of the bundled libs. ;; Avoid using many of the bundled libs.
;; Note: These options can be found in the SConstruct file. ;; Note: These options can be found in the SConstruct file.
"builtin_freetype=no" "builtin_freetype=no"

View file

@ -3,6 +3,7 @@
;;; Copyright © 2016 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2017 Björn Höfling <bjoern.hoefling@bjoernhoefling.de> ;;; Copyright © 2017 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -72,9 +73,6 @@ topology functions.")
license:zlib ; tests/xmltester/tinyxml/* license:zlib ; tests/xmltester/tinyxml/*
license:public-domain)))) ; include/geos/timeval.h license:public-domain)))) ; include/geos/timeval.h
;;; FIXME GNOME Maps only runs within GNOME. On i3, it fails with this error:
;;; (org.gnome.Maps:8568): GLib-GIO-ERROR **: Settings schema
;;; 'org.gnome.desktop.interface' is not installed
(define-public gnome-maps (define-public gnome-maps
(package (package
(name "gnome-maps") (name "gnome-maps")
@ -122,13 +120,19 @@ topology functions.")
`(("folks" ,folks) `(("folks" ,folks)
("libchamplain" ,libchamplain) ("libchamplain" ,libchamplain)
("libgee" ,libgee) ("libgee" ,libgee)
("libsecret" ,libsecret)
("libsoup" ,libsoup)
("libgweather" ,libgweather)
("libxml2" ,libxml2) ("libxml2" ,libxml2)
("gdk-pixbuf" ,gdk-pixbuf)
("glib-networking" ,glib-networking)
("geoclue" ,geoclue) ("geoclue" ,geoclue)
("geocode-glib" ,geocode-glib) ("geocode-glib" ,geocode-glib)
("gfbgraph" ,gfbgraph) ("gfbgraph" ,gfbgraph)
("gjs" ,gjs) ("gjs" ,gjs)
("glib" ,glib) ("glib" ,glib)
("gnome-online-accounts" ,gnome-online-accounts) ("gnome-online-accounts" ,gnome-online-accounts)
("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
("rest" ,rest) ("rest" ,rest)
("webkitgtk" ,webkitgtk))) ("webkitgtk" ,webkitgtk)))
(propagated-inputs (propagated-inputs

View file

@ -2,6 +2,7 @@
;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -43,29 +44,32 @@
(define-public babl (define-public babl
(package (package
(name "babl") (name "babl")
(version "0.1.38") (version "0.1.40")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (list (string-append "https://download.gimp.org/pub/babl/" (uri (list (string-append "https://download.gimp.org/pub/babl/"
"0.1/babl-" version ".tar.bz2") (version-major+minor version)
(string-append "http://ftp.gtk.org/pub/babl/0.1/babl-" "/babl-" version ".tar.bz2")
version ".tar.bz2") (string-append "http://ftp.gtk.org/pub/babl/"
(string-append "ftp://ftp.gtk.org/pub/babl/0.1/babl-" (version-major+minor version)
version ".tar.bz2"))) "/babl-" version ".tar.bz2")
(string-append "ftp://ftp.gtk.org/pub/babl/"
(version-major+minor version)
"/babl-" version ".tar.bz2")))
(sha256 (sha256
(base32 (base32
"11pfbyzq20596p9sgwraxspg3djg1jzz6wvz4bapf0yyr97jiyd0")))) "08cdl6rcfvkhqsnhb214xzr0wbrv0956xzlrzqxcb1k1madgjanh"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "http://gegl.org/babl/") (home-page "http://gegl.org/babl/")
(synopsis "Image pixel format conversion library") (synopsis "Image pixel format conversion library")
(description (description
"Babl is a dynamic, any to any, pixel format translation library. "Babl is a dynamic, any-to-any pixel format translation library.
It allows converting between different methods of storing pixels known as It allows converting between different methods of storing pixels, known as
pixel formats that have with different bitdepths and other data @dfn{pixel formats}, that have different bit depths and other data
representations, color models and component permutations. representations, color models, and component permutations.
A vocabulary to formulate new pixel formats from existing primitives is A vocabulary to formulate new pixel formats from existing primitives is
provided as well as the framework to add new color models and data types.") provided, as well as a framework to add new color models and data types.")
(license license:lgpl3+))) (license license:lgpl3+)))
(define-public gegl (define-public gegl

View file

@ -5,7 +5,7 @@
;;; Copyright © 2015, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2017 ng0 <ng0@n0.is> ;;; Copyright © 2016, 2017, 2018 ng0 <ng0@n0.is>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -205,7 +205,8 @@ authentication and support for SSL3 and TLS.")
("pkg-config" ,pkg-config) ("pkg-config" ,pkg-config)
("python" ,python-2))) ("python" ,python-2)))
(arguments (arguments
`(#:configure-flags (list "--disable-ntlm-wb") `(#:configure-flags (list "--disable-ntlm-wb"
"--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt")
#:test-target "test" #:test-target "test"
#:parallel-tests? #f #:parallel-tests? #f
#:phases #:phases
@ -226,8 +227,7 @@ authentication and support for SSL3 and TLS.")
(("/bin/sh") (which "sh"))) (("/bin/sh") (which "sh")))
;; Make test output more verbose. ;; Make test output more verbose.
(zero? (system* "make" "-C" "tests" "test")) (invoke "make" "-C" "tests" "test"))))))
#t)))))
(synopsis "Microfork of cURL with support for the HTTP/HTTPS/GnuTLS subset of cURL") (synopsis "Microfork of cURL with support for the HTTP/HTTPS/GnuTLS subset of cURL")
(description (description
"Gnurl is a microfork of cURL, a command line tool for transferring data "Gnurl is a microfork of cURL, a command line tool for transferring data
@ -325,7 +325,7 @@ kinds of basic applications for the foundation of a GNU internet.")
'(#:phases (modify-phases %standard-phases '(#:phases (modify-phases %standard-phases
(add-after 'unpack 'bootstrap (add-after 'unpack 'bootstrap
(lambda _ (lambda _
(zero? (system* "autoreconf" "-vfi"))))))) (invoke "autoreconf" "-vfi"))))))
(native-inputs `(("pkg-config" ,pkg-config) (native-inputs `(("pkg-config" ,pkg-config)
("autoconf" ,(autoconf-wrapper)) ("autoconf" ,(autoconf-wrapper))
("automake" ,automake))) ("automake" ,automake)))

View file

@ -7,6 +7,7 @@
;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016, 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru> ;;; Copyright © 2017 Sergei Trofimovich <slyfox@inbox.ru>
;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com> ;;; Copyright © 2017 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -196,10 +197,10 @@
(home-page "https://golang.org/") (home-page "https://golang.org/")
(synopsis "Compiler and libraries for Go, a statically-typed language") (synopsis "Compiler and libraries for Go, a statically-typed language")
(description "Go, also commonly referred to as golang, is an imperative (description "Go, also commonly referred to as golang, is an imperative
programming language. Designed primarily for systems programming, it is a programming language designed primarily for systems programming. Go is a
compiled, statically typed language in the tradition of C and C++, with compiled, statically typed language in the tradition of C and C++, but adds
garbage collection, various safety features and in the style of communicating garbage collection, various safety features, and concurrent programming features
sequential processes (CSP) concurrent programming features added.") in the style of communicating sequential processes (@dfn{CSP}).")
(supported-systems '("x86_64-linux" "i686-linux" "armhf-linux")) (supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
(license license:bsd-3))) (license license:bsd-3)))
@ -207,7 +208,7 @@ sequential processes (CSP) concurrent programming features added.")
(package (package
(inherit go-1.4) (inherit go-1.4)
(name "go") (name "go")
(version "1.9.2") (version "1.9.3")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -215,7 +216,7 @@ sequential processes (CSP) concurrent programming features added.")
name version ".src.tar.gz")) name version ".src.tar.gz"))
(sha256 (sha256
(base32 (base32
"1p23n4xzbknl3bbhlckbvxbhpxknd5rn0i2szmn9i2dcz15ihpv6")))) "1bj73hrr7jjdg0w6snwkqb5y3yrlks5nrs2lgnkyy0hyx7b0lgaf"))))
(arguments (arguments
(substitute-keyword-arguments (package-arguments go-1.4) (substitute-keyword-arguments (package-arguments go-1.4)
((#:phases phases) ((#:phases phases)
@ -300,13 +301,6 @@ sequential processes (CSP) concurrent programming features added.")
(substitute* "../misc/cgo/testcarchive/carchive_test.go" (substitute* "../misc/cgo/testcarchive/carchive_test.go"
(("#!/usr/bin/env") (string-append "#!" (which "env")))) (("#!/usr/bin/env") (string-append "#!" (which "env"))))
;; Escape braces in test data to workaround test failure. For
;; more information:
;; https://github.com/golang/go/issues/20007
;; FIXME: remove this once we upgrade to 1.9
(substitute* "cmd/vet/testdata/copylock_func.go"
(("struct\\{lock sync.Mutex\\}") "struct\\{lock sync.Mutex\\}"))
(substitute* "net/lookup_unix.go" (substitute* "net/lookup_unix.go"
(("/etc/protocols") (string-append net-base "/etc/protocols"))) (("/etc/protocols") (string-append net-base "/etc/protocols")))
(substitute* "net/port_unix.go" (substitute* "net/port_unix.go"

View file

@ -8,6 +8,7 @@
;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com> ;;; Copyright © 2017 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com> ;;; Copyright © 2017 Ben Woodcroft <donttrustben@gmail.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018 Mathieu Othacehe <m.othacehe@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -41,12 +42,16 @@
#:use-module (gnu packages boost) #:use-module (gnu packages boost)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages documentation) #:use-module (gnu packages documentation)
#:use-module (gnu packages ghostscript)
#:use-module (gnu packages haskell) #:use-module (gnu packages haskell)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages imagemagick)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages flex) #:use-module (gnu packages flex)
#:use-module (gnu packages fonts) #:use-module (gnu packages fonts)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages perl)
#:use-module (gnu packages pdf)
#:use-module (gnu packages pkg-config) #:use-module (gnu packages pkg-config)
#:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate #:use-module (gnu packages pulseaudio) ;libsndfile, libsamplerate
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
@ -686,3 +691,86 @@ your terminal. It comes bundled with predefined styles:
(define-public python2-pastel (define-public python2-pastel
(package-with-python2 python-pastel)) (package-with-python2 python-pastel))
(define-public fgallery
(package
(name "fgallery")
(version "1.8.2")
(source (origin
(method url-fetch)
(uri
(string-append
"http://www.thregr.org/~wavexx/software/fgallery/releases/"
"fgallery-" version ".zip"))
(sha256
(base32
"18wlvqbxcng8pawimbc8f2422s8fnk840hfr6946lzsxr0ijakvf"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
#:phases
(modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(replace 'install
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(bin (string-append out "/bin/"))
(share (string-append out "/share/fgallery"))
(man (string-append out "/share/man/man1"))
(perl5lib (getenv "PERL5LIB"))
(script (string-append share "/fgallery")))
(define (bin-directory input-name)
(string-append (assoc-ref inputs input-name) "/bin"))
(mkdir-p man)
(copy-file "fgallery.1" (string-append man "/fgallery.1"))
(mkdir-p share)
(copy-recursively "." share)
;; fgallery copies files from store when it is run. The
;; read-only permissions from the store directories will cause
;; fgallery to fail. Do not preserve file attributes when
;; copying files to prevent it.
(substitute* script
(("'cp'")
"'cp', '--no-preserve=all'"))
(mkdir-p bin)
(symlink script (string-append out "/bin/fgallery"))
(wrap-program script
`("PATH" ":" prefix
,(map bin-directory '("imagemagick"
"lcms"
"fbida"
"libjpeg"
"zip"
"jpegoptim"
"pngcrush"
"p7zip")))
`("PERL5LIB" ":" prefix (,perl5lib)))
#t))))))
(native-inputs
`(("unzip" ,unzip)))
;; TODO: Add missing optional dependency: facedetect.
(inputs
`(("imagemagick" ,imagemagick)
("lcms" ,lcms)
("fbida" ,fbida)
("libjpeg" ,libjpeg)
("zip" ,zip)
("perl" ,perl)
("perl-cpanel-json-xs" ,perl-cpanel-json-xs)
("perl-image-exiftool" ,perl-image-exiftool)
("jpegoptim" ,jpegoptim)
("pngcrush" ,pngcrush)
("p7zip" ,p7zip)))
(home-page "http://www.thregr.org/~wavexx/software/fgallery/")
(synopsis "Static photo gallery generator")
(description
"FGallery is a static, JavaScript photo gallery generator with minimalist
look. The result can be uploaded on any web server without additional
requirements.")
(license license:gpl2+)))

View file

@ -4,6 +4,7 @@
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -85,7 +86,7 @@ licences similar to the Modified BSD licence."))))
(define-public mia (define-public mia
(package (package
(name "mia") (name "mia")
(version "2.4.4") (version "2.4.6")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://sourceforge/mia/mia/" (uri (string-append "mirror://sourceforge/mia/mia/"
@ -93,7 +94,7 @@ licences similar to the Modified BSD licence."))))
"/mia-" version ".tar.xz")) "/mia-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"124gvf8nkls59mlnx8ynq00n9zrah7a54gsywafx7qmfr0y95ra7")))) "0j4nd5z7i3v199jh7hqqhwd4g7snchizkc7rhzanpvngqg91m1pb"))))
(build-system cmake-build-system) (build-system cmake-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags

View file

@ -5,6 +5,7 @@
;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -164,7 +165,7 @@ script.")
(define-public graphicsmagick (define-public graphicsmagick
(package (package
(name "graphicsmagick") (name "graphicsmagick")
(version "1.3.27") (version "1.3.28")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -176,7 +177,7 @@ script.")
"/GraphicsMagick-" version ".tar.xz"))) "/GraphicsMagick-" version ".tar.xz")))
(sha256 (sha256
(base32 (base32
"0rq35p3rml10cxz2z4s7xcfsilhhk19mmy094g3ivz0fg797hcnh")))) "0jlrrimrajcmwp7llivyj14qnzb1mpqd8vw95dl6zbx5m2lnhall"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:configure-flags `(#:configure-flags

View file

@ -674,7 +674,7 @@ slabtop, and skill.")
(define-public usbutils (define-public usbutils
(package (package
(name "usbutils") (name "usbutils")
(version "008") (version "009")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -682,7 +682,7 @@ slabtop, and skill.")
"usbutils-" version ".tar.xz")) "usbutils-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"132clk14j4nm8crln2jymdbbc2vhzar2j2hnxyh05m79pbq1lx24")))) "0q3iavmak2bs9xw486w4xfbjl0hbzii93ssgpr95mxmm9kjz1gwb"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs (inputs
`(("libusb" ,libusb) `(("libusb" ,libusb)
@ -1433,7 +1433,7 @@ configuration and monitoring interfaces.")
(define-public iw (define-public iw
(package (package
(name "iw") (name "iw")
(version "4.9") (version "4.14")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -1441,7 +1441,7 @@ configuration and monitoring interfaces.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1klpvv98bnx1zm6aqalnri2vd7w80scmdaxr2qnblb6mz82whk1j")))) "12ddd6vh6vs97135bnlyr0szv7hvpbnmfh48584frzab0z0725ph"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs `(("pkg-config" ,pkg-config))) (native-inputs `(("pkg-config" ,pkg-config)))
(inputs `(("libnl" ,libnl))) (inputs `(("libnl" ,libnl)))

View file

@ -1,6 +1,7 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org> ;;; Copyright © 2018 Sou Bunnbu <iyzsong@member.fsf.org>
;;; Copyright © 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -22,14 +23,19 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module ((guix licenses) #:prefix license:) #:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system perl) #:use-module (guix build-system perl)
#:use-module (guix build-system python)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages compression) #:use-module (gnu packages compression)
#:use-module (gnu packages django)
#:use-module (gnu packages gd) #:use-module (gnu packages gd)
#:use-module (gnu packages image) #:use-module (gnu packages image)
#:use-module (gnu packages mail) #:use-module (gnu packages mail)
#:use-module (gnu packages perl)) #:use-module (gnu packages perl)
#:use-module (gnu packages python)
#:use-module (gnu packages python-web)
#:use-module (gnu packages time))
(define-public nagios (define-public nagios
(package (package
@ -156,3 +162,102 @@ HTTP. Features:
@item Supports IPv6. @item Supports IPv6.
@end itemize") @end itemize")
(license license:gpl2))) (license license:gpl2)))
(define-public python-whisper
(package
(name "python-whisper")
(version "1.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "whisper" version))
(sha256
(base32
"1v1bi3fl1i6p4z4ki692bykrkw6907dn3mfq0151f70lvi3zpns3"))))
(build-system python-build-system)
(home-page "http://graphiteapp.org/")
(synopsis "Fixed size round-robin style database for Graphite")
(description "Whisper is one of three components within the Graphite
project. Whisper is a fixed-size database, similar in design and purpose to
RRD (round-robin-database). It provides fast, reliable storage of numeric
data over time. Whisper allows for higher resolution (seconds per point) of
recent data to degrade into lower resolutions for long-term retention of
historical data.")
(license license:asl2.0)))
(define-public python2-whisper
(package-with-python2 python-whisper))
(define-public python2-carbon
(package
(name "python2-carbon")
(version "1.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "carbon" version))
(sha256
(base32
"142smpmgbnjinvfb6s4ijazish4vfgzyd8zcmdkh55y051fkixkn"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2 ; only supports Python 2
#:phases
(modify-phases %standard-phases
;; Don't install to /opt
(add-after 'unpack 'do-not-install-to-/opt
(lambda _ (setenv "GRAPHITE_NO_PREFIX" "1") #t)))))
(propagated-inputs
`(("python2-whisper" ,python2-whisper)
("python2-configparser" ,python2-configparser)
("python2-txamqp" ,python2-txamqp)))
(home-page "http://graphiteapp.org/")
(synopsis "Backend data caching and persistence daemon for Graphite")
(description "Carbon is a backend data caching and persistence daemon for
Graphite. Carbon is responsible for receiving metrics over the network,
caching them in memory for \"hot queries\" from the Graphite-Web application,
and persisting them to disk using the Whisper time-series library.")
(license license:asl2.0)))
(define-public python2-graphite-web
(package
(name "python2-graphite-web")
(version "1.0.2")
(source
(origin
(method url-fetch)
(uri (pypi-uri "graphite-web" version))
(sha256
(base32
"0q8bwlj75jqyzmazfsi5sa26xl58ssa8wdxm2l4j0jqyn8xpfnmc"))))
(build-system python-build-system)
(arguments
`(#:python ,python-2 ; only supports Python 2
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'relax-requirements
(lambda _
(substitute* "setup.py"
(("0.4.3") ,(package-version python2-django-tagging))
(("<1.9.99") (string-append "<="
,(package-version python2-django))))
#t))
;; Don't install to /opt
(add-after 'unpack 'do-not-install-to-/opt
(lambda _ (setenv "GRAPHITE_NO_PREFIX" "1") #t)))))
(propagated-inputs
`(("python2-cairocffi" ,python2-cairocffi)
("python2-pytz" ,python2-pytz)
("python2-whisper" ,python2-whisper)
("python2-django" ,python2-django)
("python2-django-tagging" ,python2-django-tagging)
("python2-scandir" ,python2-scandir)
("python2-urllib3" ,python2-urllib3)
("python2-pyparsing" ,python2-pyparsing)
("python2-txamqp" ,python2-txamqp)))
(home-page "http://graphiteapp.org/")
(synopsis "Scalable realtime graphing system")
(description "Graphite is a scalable real-time graphing system that does
two things: store numeric time-series data, and render graphs of this data on
demand.")
(license license:asl2.0)))

View file

@ -88,7 +88,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
(define-public mpd (define-public mpd
(package (package
(name "mpd") (name "mpd")
(version "0.20.13") (version "0.20.15")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (uri
@ -97,7 +97,7 @@ interfacing MPD in the C, C++ & Objective C languages.")
"/mpd-" version ".tar.xz")) "/mpd-" version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0h7z90dnpwlyad4kfi1ja9v9vzqic0xg93iy4q0dwlhav0scbha6")))) "0h7bm561i8p0bjp1hy8fsiy5zj7db24zyv6ypfihwf35wrklz766"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases

View file

@ -134,11 +134,13 @@
(sha256 (sha256
(base32 (base32
"1cs3z6frx2ch7rm5ammx9p0rxcjrbj1vq14hvcbimpaw39rdsn3d")))) "1cs3z6frx2ch7rm5ammx9p0rxcjrbj1vq14hvcbimpaw39rdsn3d"))))
(build-system gnu-build-system) (build-system scons-build-system)
(arguments (arguments
`(#:tests? #f ;no tests `(#:tests? #f ;no tests
#:scons-flags
(list (string-append "prefix=" (assoc-ref %outputs "out")))
#:scons ,scons-python2
#:phases #:phases
;; TODO: Add scons-build-system and use it here.
(modify-phases %standard-phases (modify-phases %standard-phases
(delete 'configure) (delete 'configure)
(add-after 'unpack 'scons-propagate-environment (add-after 'unpack 'scons-propagate-environment
@ -161,26 +163,18 @@
" or \"score/\" in file" " or \"score/\" in file"
" or \"Documentation/\" in file"))) " or \"Documentation/\" in file")))
#t)) #t))
(replace 'build (lambda _ (zero? (system* "scons")))) (add-after 'install 'fix-directory-permissions
(replace 'install
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))) (let ((out (assoc-ref outputs "out")))
(and
(zero? (system* "scons"
(string-append "prefix=" out)
"install"))
;; Fix directory permissions
(begin
(chmod (string-append out "/share/Aria/Documentation") #o555) (chmod (string-append out "/share/Aria/Documentation") #o555)
(chmod (string-append out "/share/Aria/score") #o555) (chmod (string-append out "/share/Aria/score") #o555)
#t)))))))) #t))))))
(inputs (inputs
`(("wxwidgets" ,wxwidgets) `(("wxwidgets" ,wxwidgets)
("glib" ,glib) ("glib" ,glib)
("alsa-lib" ,alsa-lib))) ("alsa-lib" ,alsa-lib)))
(native-inputs (native-inputs
`(("scons" ,scons) `(("pkg-config" ,pkg-config)))
("pkg-config" ,pkg-config)))
(home-page "http://ariamaestosa.sourceforge.net/") (home-page "http://ariamaestosa.sourceforge.net/")
(synopsis "MIDI sequencer and editor") (synopsis "MIDI sequencer and editor")
(description (description
@ -1187,6 +1181,14 @@ add_library( rapidjson INTERFACE IMPORTED )"))
"exclude:Score/ViewFilter/ViewFilter" "exclude:Score/ViewFilter/ViewFilter"
"exclude:Formats/PowerTabOldImport/Directions" "exclude:Formats/PowerTabOldImport/Directions"
)))) ))))
;; FIXME: This bug has been fixed upstream, but no release has been
;; made yet. See https://github.com/powertab/powertabeditor/issues/257
(add-after 'unpack 'fix-boost-bug
(lambda _
(substitute* "source/score/voiceutils.cpp"
(("boost::rational<int> duration\\(4, pos.getDurationType\\(\\)\\);")
"boost::rational<int> duration(4, static_cast<int>(pos.getDurationType()));"))
#t))
(add-before 'configure 'remove-third-party-libs (add-before 'configure 'remove-third-party-libs
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; Link with required static libraries, because we're not ;; Link with required static libraries, because we're not

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2014 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2014, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -27,7 +27,8 @@
#:use-module (gnu packages mp3) #:use-module (gnu packages mp3)
#:use-module (gnu packages base) #:use-module (gnu packages base)
#:use-module (gnu packages xiph) #:use-module (gnu packages xiph)
#:use-module (gnu packages xml)) #:use-module (gnu packages xml)
#:use-module (ice-9 match))
(define-public orpheus (define-public orpheus
(package (package
@ -62,13 +63,14 @@
(setenv "CONFIG_SHELL" (which "bash")) (setenv "CONFIG_SHELL" (which "bash"))
(setenv "SHELL" (which "bash")) (setenv "SHELL" (which "bash"))
(setenv "LIBS" "-logg") ;doesn't declare its use of libogg (setenv "LIBS" "-logg") ;doesn't declare its use of libogg
(zero? (invoke "./configure"
(system* "./configure" (string-append "--prefix=" out) (string-append "--prefix=" out)
,@(if (string=? "mips64el-linux" ,@(match (%current-system)
(%current-system)) ("mips64el-linux"
'("--host=mips64el-unknown-linux-gnu") '("--host=mips64el-unknown-linux-gnu"))
'()) ("aarch64-linux"
))))) '("--build=aarch64-unknown-linux-gnu"))
(_ `()))))))
(add-after 'configure 'configure-players (add-after 'configure 'configure-players
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
;; To avoid propagating the mpg321 and vorbis-tools inputs, we can ;; To avoid propagating the mpg321 and vorbis-tools inputs, we can

View file

@ -87,8 +87,8 @@
;; Note: the 'update-guix-package.scm' script expects this definition to ;; Note: the 'update-guix-package.scm' script expects this definition to
;; start precisely like this. ;; start precisely like this.
(let ((version "0.14.0") (let ((version "0.14.0")
(commit "0dcf675c56a4649ccef657e78849e91f9f9b4c0a") (commit "33988f9b5876e4b44cabe1997a91eb604931c1ca")
(revision 6)) (revision 7))
(package (package
(name "guix") (name "guix")
@ -104,7 +104,7 @@
(commit commit))) (commit commit)))
(sha256 (sha256
(base32 (base32
"0kqpdg8ydxm67cdlrqsdrpzv0qdvnfln0ixsjrmdw2pcngh6wn56")) "0sfr32yhkm87apgpp6mjr6r43sp4l0ih35q4pmhwzfnj2bimmzhk"))
(file-name (string-append "guix-" version "-checkout")))) (file-name (string-append "guix-" version "-checkout"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments

View file

@ -47,7 +47,7 @@
(define-public parallel (define-public parallel
(package (package
(name "parallel") (name "parallel")
(version "20171222") (version "20180122")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -55,7 +55,7 @@
version ".tar.bz2")) version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"1p3r6dlhy49q3y468kf65nqdp0knqw41vwga9rprrvi04kywgj4v")))) "1wkbppb4mc56grl6jsp803sf0hm7mg5ff7qmxalp7sd0vxqw41p9"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
`(#:phases `(#:phases
@ -76,10 +76,10 @@
#t)) #t))
(add-after 'install 'post-install-test (add-after 'install 'post-install-test
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(zero? (system* (string-append (invoke (string-append
(assoc-ref outputs "out") "/bin/parallel") (assoc-ref outputs "out") "/bin/parallel")
"echo" "echo"
":::" "1" "2" "3"))))))) ":::" "1" "2" "3"))))))
(inputs (inputs
`(("perl" ,perl) `(("perl" ,perl)
("procps" ,procps))) ("procps" ,procps)))

View file

@ -0,0 +1,97 @@
Fix CVE-2017-12562:
https://github.com/erikd/libsndfile/issues/292
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-12562
Patch copied from upstream source repository:
https://github.com/erikd/libsndfile/commit/cf7a8182c2642c50f1cf90dddea9ce96a8bad2e8
From cf7a8182c2642c50f1cf90dddea9ce96a8bad2e8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rn=20Heusipp?= <osmanx@problemloesungsmaschine.de>
Date: Wed, 14 Jun 2017 12:25:40 +0200
Subject: [PATCH] src/common.c: Fix heap buffer overflows when writing strings
in binheader
Fixes the following problems:
1. Case 's' only enlarges the buffer by 16 bytes instead of size bytes.
2. psf_binheader_writef() enlarges the header buffer (if needed) prior to the
big switch statement by an amount (16 bytes) which is enough for all cases
where only a single value gets added. Cases 's', 'S', 'p' however
additionally write an arbitrary length block of data and again enlarge the
buffer to the required amount. However, the required space calculation does
not take into account the size of the length field which gets output before
the data.
3. Buffer size requirement calculation in case 'S' does not account for the
padding byte ("size += (size & 1) ;" happens after the calculation which
uses "size").
4. Case 'S' can overrun the header buffer by 1 byte when no padding is
involved
("memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + 1) ;" while
the buffer is only guaranteed to have "size" space available).
5. "psf->header.ptr [psf->header.indx] = 0 ;" in case 'S' always writes 1 byte
beyond the space which is guaranteed to be allocated in the header buffer.
6. Case 's' can overrun the provided source string by 1 byte if padding is
involved ("memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size) ;"
where "size" is "strlen (strptr) + 1" (which includes the 0 terminator,
plus optionally another 1 which is padding and not guaranteed to be
readable via the source string pointer).
Closes: https://github.com/erikd/libsndfile/issues/292
---
src/common.c | 15 +++++++--------
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/src/common.c b/src/common.c
index 1a6204ca..6b2a2ee9 100644
--- a/src/common.c
+++ b/src/common.c
@@ -681,16 +681,16 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...)
/* Write a C string (guaranteed to have a zero terminator). */
strptr = va_arg (argptr, char *) ;
size = strlen (strptr) + 1 ;
- size += (size & 1) ;
- if (psf->header.indx + (sf_count_t) size >= psf->header.len && psf_bump_header_allocation (psf, 16))
+ if (psf->header.indx + 4 + (sf_count_t) size + (sf_count_t) (size & 1) > psf->header.len && psf_bump_header_allocation (psf, 4 + size + (size & 1)))
return count ;
if (psf->rwf_endian == SF_ENDIAN_BIG)
- header_put_be_int (psf, size) ;
+ header_put_be_int (psf, size + (size & 1)) ;
else
- header_put_le_int (psf, size) ;
+ header_put_le_int (psf, size + (size & 1)) ;
memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size) ;
+ size += (size & 1) ;
psf->header.indx += size ;
psf->header.ptr [psf->header.indx - 1] = 0 ;
count += 4 + size ;
@@ -703,16 +703,15 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...)
*/
strptr = va_arg (argptr, char *) ;
size = strlen (strptr) ;
- if (psf->header.indx + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, size))
+ if (psf->header.indx + 4 + (sf_count_t) size + (sf_count_t) (size & 1) > psf->header.len && psf_bump_header_allocation (psf, 4 + size + (size & 1)))
return count ;
if (psf->rwf_endian == SF_ENDIAN_BIG)
header_put_be_int (psf, size) ;
else
header_put_le_int (psf, size) ;
- memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + 1) ;
+ memcpy (&(psf->header.ptr [psf->header.indx]), strptr, size + (size & 1)) ;
size += (size & 1) ;
psf->header.indx += size ;
- psf->header.ptr [psf->header.indx] = 0 ;
count += 4 + size ;
break ;
@@ -724,7 +723,7 @@ psf_binheader_writef (SF_PRIVATE *psf, const char *format, ...)
size = (size & 1) ? size : size + 1 ;
size = (size > 254) ? 254 : size ;
- if (psf->header.indx + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, size))
+ if (psf->header.indx + 1 + (sf_count_t) size > psf->header.len && psf_bump_header_allocation (psf, 1 + size))
return count ;
header_put_byte (psf, size) ;

View file

@ -0,0 +1,43 @@
From: fis <ybbs.daans@hotmail.com>
Date: Sat, 20 Jan 2018 07:42:38 +0800
Subject: [PATCH] rct.cmake: Add missing headers.
---
rct.cmake | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/rct.cmake b/rct.cmake
index 323e7b9..3e0ac6b 100644
--- a/rct.cmake
+++ b/rct.cmake
@@ -339,7 +339,27 @@ if (NOT RCT_NO_INSTALL)
rct/Timer.h
rct/Value.h
rct/WriteLocker.h
+ rct/CpuUsage.h
+ rct/DataFile.h
+ rct/Date.h
+ rct/EmbeddedLinkedList.h
+ rct/FinishMessage.h
+ rct/Flags.h
+ rct/Hash.h
+ rct/LinkedList.h
+ rct/Map.h
+ rct/MemoryMappedFile.h
+ rct/OnDestruction.h
+ rct/QuitMessage.h
+ rct/ResponseMessage.h
+ rct/ScriptEngine.h
+ rct/StackBuffer.h
+ rct/WindowsUnicodeConversion.h
DESTINATION include/rct)
+ install(FILES
+ json/json.hpp
+ DESTINATION include/rct/json)
+
install(EXPORT "rct" DESTINATION lib/cmake)
endif ()
--
2.13.6

View file

@ -0,0 +1,72 @@
Unbundle RCT and use our own copy.
--- rtags-2.16/src/CMakeLists.txt 2018-01-23 10:36:17.645855140 +0100
+++ rtags-2.16/src/CMakeLists.txt 2018-01-23 10:38:14.605234740 +0100
@@ -105,12 +105,6 @@ if (LUA_ENABLED)
CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 -DCMAKE_GENERATOR=${CMAKE_GENERATOR})
endif ()
-set(RCT_RTTI_ENABLED 1)
-set(RCT_NO_INSTALL 1)
-set(RCT_NO_LIBRARY 1)
-# Everyting which as been set either in rct/rct.cmake or rct/compiler.cmake
-# doesn't need to be set in this file again.
-include(rct/rct.cmake)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wstrict-aliasing=2 -Wcast-qual -fPIC")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-aliasing=2 -Wcast-qual -fPIC")
@@ -128,8 +122,7 @@ add_definitions(
"-DRTAGS_SOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}"
"-DCLANG_LIBDIR=${LIBCLANG_LIBDIR}"
"-DCLANG_VERSION=${LIBCLANG_VERSION_STRING}"
- "-DOS_${CMAKE_SYSTEM_NAME}"
- ${RCT_DEFINITIONS})
+ "-DOS_${CMAKE_SYSTEM_NAME}")
if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
add_definitions(-D__LONG_LONG_SUPPORTED)
@@ -172,8 +165,7 @@ set(RTAGS_SOURCES
Symbol.cpp
SymbolInfoJob.cpp
Token.cpp
- TokensJob.cpp
- ${RCT_SOURCES})
+ TokensJob.cpp)
if (LUA_ENABLED)
list(APPEND RTAGS_SOURCES AST.cpp)
@@ -195,10 +187,10 @@ endif ()
include_directories(
${CMAKE_CURRENT_LIST_DIR}
- ${RCT_INCLUDE_DIRS}
${CMAKE_CURRENT_LIST_DIR}/selene/include
${CMAKE_CURRENT_BINARY_DIR}/lua-prefix/src/lua-build
- ${CMAKE_CURRENT_LIST_DIR}/lua/src)
+ ${CMAKE_CURRENT_LIST_DIR}/lua/src
+ ${CMAKE_CURRENT_BINARY_DIR}/include)
if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
set(START_GROUP "")
@@ -223,17 +215,17 @@ else ()
endif()
# RCT_LIBRARIES and stdc++ library must be at the end
-set(RTAGS_LIBRARIES ${RTAGS_LIBRARIES} -lstdc++ ${RCT_LIBRARIES})
+set(RTAGS_LIBRARIES ${RTAGS_LIBRARIES} -lstdc++)
add_executable(rc rc.cpp)
-target_link_libraries(rc ${RTAGS_LIBRARIES})
+target_link_libraries(rc ${RTAGS_LIBRARIES} rct)
add_executable(rdm rdm.cpp)
-target_link_libraries(rdm ${RTAGS_LIBRARIES})
+target_link_libraries(rdm ${RTAGS_LIBRARIES} rct)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
add_executable(rp rp.cpp)
-target_link_libraries(rp ${RTAGS_LIBRARIES})
+target_link_libraries(rp ${RTAGS_LIBRARIES} rct)
if (CYGWIN)
EnsureLibraries(rdm rct)

View file

@ -47,6 +47,7 @@
(define-public libsndfile (define-public libsndfile
(package (package
(name "libsndfile") (name "libsndfile")
(replacement libsndfile/fixed)
(version "1.0.28") (version "1.0.28")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
@ -80,6 +81,15 @@ SPARC. Hopefully the design of the library will also make it easy to extend
for reading and writing new sound file formats.") for reading and writing new sound file formats.")
(license l:gpl2+))) (license l:gpl2+)))
(define libsndfile/fixed
(package
(inherit libsndfile)
(source (origin
(inherit (package-source libsndfile))
(patches (append
(origin-patches (package-source libsndfile))
(search-patches "libsndfile-CVE-2017-12562.patch")))))))
(define-public libsamplerate (define-public libsamplerate
(package (package
(name "libsamplerate") ; aka. Secret Rabbit Code (SRC) (name "libsamplerate") ; aka. Secret Rabbit Code (SRC)

View file

@ -36,7 +36,7 @@
;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2016, 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au> ;;; Copyright © 2017 Carlo Zancanaro <carlo@zancanaro.id.au>
;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com> ;;; Copyright © 2017 Frederick M. Muriithi <fredmanglis@gmail.com>
;;; Copyright © 2017 Adriano Peluso <catonano@gmail.com> ;;; Copyright © 2017, 2018 Adriano Peluso <catonano@gmail.com>
;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au> ;;; Copyright © 2017 Ben Sturmfels <ben@sturm.com.au>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.org> ;;; Copyright © 2017 José Miguel Sánchez García <jmi2k@openmailbox.org>
@ -45,6 +45,7 @@
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com> ;;; Copyright © 2017 Muriithi Frederick Muriuki <fredmanglis@gmail.com>
;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org> ;;; Copyright © 2017 Brendan Tildesley <brendan.tildesley@openmailbox.org>
;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -7645,6 +7646,35 @@ alternative when librabbitmq is not available.")
#:tests? #f #:tests? #f
,@(package-arguments amqp)))))) ,@(package-arguments amqp))))))
(define-public python-txamqp
(package
(name "python-txamqp")
(version "0.8.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "txAMQP" version))
(sha256
(base32
"1r43a66dd547mz40ikymm8y3d480cidy560fj81qc0jk4lncgmmr"))))
(build-system python-build-system)
(propagated-inputs
`(("python-six" ,python-six)
("python-twisted" ,python-twisted)))
(home-page "https://github.com/txamqp/txamqp")
(synopsis "Communicate with AMQP peers and brokers using Twisted")
(description
"This package provides a Python library for communicating with AMQP peers
and brokers using the asynchronous networking framework Twisted. It contains
all the necessary code to connect, send and receive messages to/from an
AMQP-compliant peer or broker (Qpid, OpenAMQ, RabbitMQ) using Twisted. It
also includes support for using Thrift RPC over AMQP in Twisted
applications.")
(license license:asl2.0)))
(define-public python2-txamqp
(package-with-python2 python-txamqp))
(define-public python-kombu (define-public python-kombu
(package (package
(name "python-kombu") (name "python-kombu")
@ -8111,15 +8141,14 @@ is made as zipfile like as possible.")
(define-public python-magic (define-public python-magic
(package (package
(name "python-magic") (name "python-magic")
(version "0.4.3") (version "0.4.15")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://github.com/ahupp/python-magic/archive/" (uri (pypi-uri "python-magic" version))
version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"17bgy92i7sb021f2s4mw1dcvpm6p1mi9jihridwy1pyn8mzvpjgk")) "1mgwig9pnzgkf86q9ji9pnc99bngms15lfszq5rgqb9db07mqxpk"))
(file-name (string-append name "-" version "-checkout")))) (file-name (string-append name "-" version "-checkout"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
@ -8160,8 +8189,10 @@ is made as zipfile like as possible.")
(inputs (inputs
;; python-magic needs to be able to find libmagic.so. ;; python-magic needs to be able to find libmagic.so.
`(("file" ,file))) `(("file" ,file)))
(home-page "https://github.com/ahupp/python-magic") (home-page
(synopsis "File type identification using libmagic") "https://github.com/ahupp/python-magic")
(synopsis
"File type identification using libmagic")
(description (description
"This module uses ctypes to access the libmagic file type "This module uses ctypes to access the libmagic file type
identification library. It makes use of the local magic database and identification library. It makes use of the local magic database and
@ -9250,21 +9281,20 @@ and/or Xon/Xoff. The port is accessed in RAW mode.")
(define-public python-kivy (define-public python-kivy
(package (package
(name "python-kivy") (name "python-kivy")
(version "1.9.1") (version "1.10.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "kivy" version)) (uri (pypi-uri "Kivy" version))
(file-name (string-append name "-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"0zk3g1j1z0lzcm9d0k1lprrs95zr8n8k5pdg3p5qlsn26jz4bg19")))) "1394zh6kvf7k5d8vlzxcsfcailr3q59xwg9b1n7qaf25bvyq1h98"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
`(#:tests? #f ; Tests require many optional packages `(#:tests? #f ; Tests require many optional packages
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'build (lambda _ (zero? (system* "make" "force"))))
(add-after 'patch-generated-file-shebangs 'set-sdl-paths (add-after 'patch-generated-file-shebangs 'set-sdl-paths
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(setenv "KIVY_SDL2_PATH" (setenv "KIVY_SDL2_PATH"
@ -9272,7 +9302,8 @@ and/or Xon/Xoff. The port is accessed in RAW mode.")
"/include/SDL2")) "/include/SDL2"))
#t))))) #t)))))
(native-inputs (native-inputs
`(("pkg-config" ,pkg-config) `(("git" ,git)
("pkg-config" ,pkg-config)
("python-cython" ,python-cython))) ("python-cython" ,python-cython)))
(inputs (inputs
`(("gstreamer" ,gstreamer) `(("gstreamer" ,gstreamer)
@ -11134,18 +11165,20 @@ information.")
(define-public python-relatorio (define-public python-relatorio
(package (package
(name "python-relatorio") (name "python-relatorio")
(version "0.6.4") (version "0.8.0")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (pypi-uri "relatorio" version)) (uri (pypi-uri "relatorio" version))
(sha256 (sha256
(base32 (base32
"0lincq79mzgazwd9gh41dybjh9c3n87r83pl8nk3j79aihyfk84z")))) "1na6hlhz1awi1hbjg1gyclq0khz42iz90wvdjw7mmj655788bpxx"))))
(build-system python-build-system) (build-system python-build-system)
(propagated-inputs (propagated-inputs
`(("python-lxml" ,python-lxml) `(("python-lxml" ,python-lxml)
("python-genshi" ,python-genshi))) ("python-genshi" ,python-genshi)))
(native-inputs
`(("python-magic" ,python-magic)))
(home-page "https://relatorio.tryton.org/") (home-page "https://relatorio.tryton.org/")
(synopsis "Templating library able to output ODT and PDF files") (synopsis "Templating library able to output ODT and PDF files")
(description "Relatorio is a templating library which provides a way to (description "Relatorio is a templating library which provides a way to
@ -12348,7 +12381,7 @@ not actively maintained and works only with Python 2 and NumPy < 1.9.")
(define-public python2-mmtk (define-public python2-mmtk
(package (package
(name "python2-mmtk") (name "python2-mmtk")
(version "2.7.10") (version "2.7.11")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -12357,7 +12390,7 @@ not actively maintained and works only with Python 2 and NumPy < 1.9.")
(file-name (string-append "MMTK-" version ".tar.gz")) (file-name (string-append "MMTK-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1k4gsd50zja89dbzgy3aji7h4zpvbvdfrds7rxr3whqrsgcffnir")))) "1d0nnjx4lwsvh8f99vv1r6gi50d93yba0adkz8b4zgv4za4c5862"))))
(build-system python-build-system) (build-system python-build-system)
(native-inputs (native-inputs
`(("netcdf" ,netcdf))) `(("netcdf" ,netcdf)))
@ -12385,3 +12418,49 @@ and normal mode analysis, but also basic routines for implementing new methods
for simulation and analysis. The library is currently not actively maintained for simulation and analysis. The library is currently not actively maintained
and works only with Python 2 and NumPy < 1.9.") and works only with Python 2 and NumPy < 1.9.")
(license license:cecill-c))) (license license:cecill-c)))
(define-public python-phonenumbers
(package
(name "python-phonenumbers")
(version "8.8.9")
(source
(origin
(method url-fetch)
(uri (pypi-uri "phonenumbers" version))
(sha256
(base32
"1lhhxmx3hk0b5891nc0p82dl5bq2w9cqbawmh8j5zy587af2j6fq"))))
(build-system python-build-system)
(home-page
"https://github.com/daviddrysdale/python-phonenumbers")
(synopsis
"Python library for dealing with international phone numbers")
(description
"This package provides a Python port of Google's libphonenumber library.")
(license license:asl2.0)))
(define-public python2-phonenumbers
(package-with-python2 python-phonenumbers))
(define-public python-yapf
(package
(name "python-yapf")
(version "0.20.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "yapf" version))
(sha256
(base32
"0s7l6afzxvpx39kzd0lwshlaxw8m4fwh4iy0rlmav4vipr3g46dx"))))
(build-system python-build-system)
(home-page "https://github.com/google/yapf")
(synopsis "Formatter for Python code")
(description "YAPF is a formatter for Python code. It's based off of
@dfn{clang-format}, developed by Daniel Jasper. In essence, the algorithm
takes the code and reformats it to the best formatting that conforms to the
style guide, even if the original code didn't violate the style guide.")
(license license:asl2.0)))
(define-public python2-yapf
(package-with-python2 python-yapf))

View file

@ -7,7 +7,7 @@
;;; Copyright © 2016 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2016 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2018 ng0 <ng0@n0.is> ;;; Copyright © 2017, 2018 ng0 <ng0@n0.is>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name> ;;; Copyright © 2017, 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -644,3 +644,49 @@ Korn Shell programming language and a successor to the Public Domain Korn
Shell (pdksh).") Shell (pdksh).")
(license (list miros (license (list miros
isc)))) ; strlcpy.c isc)))) ; strlcpy.c
(define-public oil-shell
(package
(name "oil-shell")
(version "0.3.0")
(source (origin
(method url-fetch)
(uri (string-append "https://www.oilshell.org/download/oil-"
version ".tar.xz"))
(sha256
(base32
"0j4fyn6xjaf29xqyzm09ahazmq9v1hkxv4kps7n3lzdfr32a4kk9"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; the tests are not distributed in the tarballs
#:strip-binaries? #f ; the binaries cannot be stripped
#:phases
(modify-phases %standard-phases
(add-after 'unpack 'patch-compiler-invocation
(lambda _
(substitute* "configure"
((" cc ") " gcc "))
#t))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(setenv "CC" "gcc")
;; The configure script doesn't recognize CONFIG_SHELL.
(setenv "CONFIG_SHELL" (which "sh"))
(invoke "./configure" (string-append "--prefix=" out)
"--with-readline"))))
(add-before 'install 'make-destination
(lambda _
;; The build scripts don't create the destination directory.
(mkdir-p (string-append (assoc-ref %outputs "out") "/bin")))))))
(inputs
`(("readline" ,readline)))
(synopsis "Bash-compatible Unix shell")
(description "Oil is a Unix / POSIX shell, compatible with Bash. It
implements the Oil language, which is a new shell language to which Bash can be
automatically translated. The Oil language is a superset of Bash. It also
implements the OSH language, a statically-parseable language based on Bash as it
is commonly written.")
(home-page "https://www.oilshell.org/")
(license (list psfl ; The Oil sources include a patched Python 2 source tree
asl2.0))))

View file

@ -3,6 +3,7 @@
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com> ;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2016 Christopher Baines <mail@cbaines.net>
;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at> ;;; Copyright © 2017 Stefan Reichör <stefan@xsteve.at>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -112,16 +113,16 @@ are already there.")
(native-inputs (native-inputs
`(("go" ,go) `(("go" ,go)
("which" ,which))) ("which" ,which)))
(home-page "http://direnv.net/") (home-page "https://direnv.net/")
(synopsis "Environment switcher for the shell") (synopsis "Environment switcher for the shell")
(description "direnv can hook into bash, zsh, tcsh and fish shell to load (description
"direnv can hook into the bash, zsh, tcsh, and fish shells to load
or unload environment variables depending on the current directory. This or unload environment variables depending on the current directory. This
allows project-specific environment variables without using the ~/.profile allows project-specific environment variables without using @file{~/.profile}.
file.
Before each prompt, direnv checks for the existence of a .envrc file in the Before each prompt, direnv checks for the existence of a @file{.envrc} file in
current and parent directories. This file is then used to alter the the current and parent directories. This file is then used to alter the
environmental variables of the current shell.") environment variables of the current shell.")
(license expat))) (license expat)))
(define-public fzy (define-public fzy

View file

@ -2,6 +2,7 @@
;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -79,14 +80,14 @@ slsh, which is part of the S-Lang distribution.")
(define-public newt (define-public newt
(package (package
(name "newt") (name "newt")
(version "0.52.18") (version "0.52.20")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://pagure.io/releases/" (uri (string-append "https://pagure.io/releases/"
name "/" name "-" version ".tar.gz")) name "/" name "-" version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"07n9f2mqsjfj35wx5ldhvl9sqcjqpcl0g4fdd9mawmny9rihw6vp")))) "1g3dpfnvaw7vljbr7nzq1rl88d6r8cmrvvng9inphgzwxxmvlrld"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(outputs '("out" "python")) (outputs '("out" "python"))
(inputs (inputs
@ -100,8 +101,9 @@ slsh, which is part of the S-Lang distribution.")
;; Set the correct RUNPATH in binaries. ;; Set the correct RUNPATH in binaries.
(list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")) (list (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
#:make-flags #:make-flags
;; configure does not allow us to override this variable from the ;; configure uses a hard-coded search of /usr/include/python* to set
;; command-line. Fortunately, the Makefile does, so provide it here. ;; this variable, and does not allow us to override it from the
;; command line. Fortunately, the Makefile does, so provide it here.
(list (string-append "PYTHONVERS=python" (list (string-append "PYTHONVERS=python"
,(version-major+minor (package-version python)))) ,(version-major+minor (package-version python))))
#:phases #:phases

View file

@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016 David Craven <david@craven.ch> ;;; Copyright © 2016 David Craven <david@craven.ch>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -142,7 +143,7 @@ which allows users to view a desktop computing environment.")
(define-public spice-gtk (define-public spice-gtk
(package (package
(name "spice-gtk") (name "spice-gtk")
(version "0.33") (version "0.34")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (string-append
@ -150,7 +151,7 @@ which allows users to view a desktop computing environment.")
"spice-gtk-" version ".tar.bz2")) "spice-gtk-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0fdgx9k4vgmasp8i2n0swrkapq8f212igcg7wsgvr3mbhsvk7bvx")))) "1vknp72pl6v6nf3dphhwp29hk6gv787db2pmyg4m312z2q0hwwp9"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(propagated-inputs (propagated-inputs
`(("gstreamer" ,gstreamer) `(("gstreamer" ,gstreamer)
@ -239,7 +240,7 @@ which allows users to view a desktop computing environment.")
environments which allows you to view a computing 'desktop' environment environments which allows you to view a computing 'desktop' environment
not only on the machine where it is running, but from anywhere on the not only on the machine where it is running, but from anywhere on the
Internet and from a wide variety of machine architectures.") Internet and from a wide variety of machine architectures.")
(home-page "http://www.spice-space.org") (home-page "https://www.spice-space.org")
(license (list license:lgpl2.1+ license:lgpl2.0+)))) (license (list license:lgpl2.1+ license:lgpl2.0+))))
(define-public spice-vdagent (define-public spice-vdagent
@ -290,7 +291,7 @@ Internet and from a wide variety of machine architectures.")
(synopsis "Spice agent for Linux") (synopsis "Spice agent for Linux")
(description "Spice-vdagent enables sharing the clipboard and guest display (description "Spice-vdagent enables sharing the clipboard and guest display
resolution scaling on graphical console window resize.") resolution scaling on graphical console window resize.")
(home-page "http://www.spice-space.org") (home-page "https://www.spice-space.org")
(license license:gpl3+))) (license license:gpl3+)))
(define-public virt-viewer (define-public virt-viewer

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015 Vicente Vera Parra <vicentemvp@gmail.com> ;;; Copyright © 2015 Vicente Vera Parra <vicentemvp@gmail.com>
;;; Copyright © 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2016 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
@ -30,6 +30,7 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix hg-download) #:use-module (guix hg-download)
#:use-module (guix git-download)
#:use-module (guix utils) #:use-module (guix utils)
#:use-module (guix build-system gnu) #:use-module (guix build-system gnu)
#:use-module (guix build-system r) #:use-module (guix build-system r)
@ -5509,3 +5510,27 @@ positioning methods that can be re-used across several different plots. There
are heuristics for examining @code{trellis} and @code{ggplot} objects and are heuristics for examining @code{trellis} and @code{ggplot} objects and
inferring an appropriate positioning method.") inferring an appropriate positioning method.")
(license license:gpl3))) (license license:gpl3)))
(define-public r-catterplots
(let ((commit "40063ec57f9515d231508f135ca0ec769614efb9")
(revision "2"))
(package
(name "r-catterplots")
(version (string-append "0-" revision "." (string-take commit 9)))
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/Gibbsdavidl/CatterPlots.git")
(commit commit)))
(file-name (string-append name "-" version "-checkout"))
(sha256
(base32
"1wl80pgbz8d9kfpffvkh439hlgz2qldm9m75wqjfrgrg8lcjzrxg"))))
(build-system r-build-system)
(propagated-inputs
`(("r-png" ,r-png)))
(home-page "https://github.com/Gibbsdavidl/CatterPlots")
(synopsis "Scatter plots with cat shaped points")
(description "Did you ever wish you could make scatter plots with cat
shaped points? Now you can!")
(license license:asl2.0))))

View file

@ -21,6 +21,7 @@
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (gnu packages check) #:use-module (gnu packages check)
#:use-module (gnu packages databases) #:use-module (gnu packages databases)
#:use-module (gnu packages finance)
#:use-module (gnu packages gtk) #:use-module (gnu packages gtk)
#:use-module (gnu packages python) #:use-module (gnu packages python)
#:use-module (gnu packages python-web) #:use-module (gnu packages python-web)
@ -29,24 +30,23 @@
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix build-system python)) #:use-module (guix build-system python))
(define-public trytond (define-public python-trytond
(package (package
(name "trytond") (name "python-trytond")
(version "4.4.1") (version "4.6.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (pypi-uri "trytond" version))
"https://downloads.tryton.org/4.4/trytond-"
version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"15gm34qwj5fpnkqvrxzndl8653zbczhsa76dm1gi4cqj1r29bbpr")))) "0asc3pd37h8ky8j66iqxr0fv0k6mpjcwxwm0xgm5hrdi32l5cdda"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("python-dateutil" ,python-dateutil) `(("python-dateutil" ,python-dateutil)
("python-genshi" ,python-genshi) ("python-genshi" ,python-genshi)
("python-polib" ,python-polib) ("python-polib" ,python-polib)
("python-magic" ,python-magic)
;; there's no python-mysql in Guix right now ;; there's no python-mysql in Guix right now
;; so python-psycopg2 (postgresql) only for now ;; so python-psycopg2 (postgresql) only for now
("python-psycopg2" ,python-psycopg2) ("python-psycopg2" ,python-psycopg2)
@ -62,7 +62,8 @@
(modify-phases %standard-phases (modify-phases %standard-phases
(add-before 'check 'preparations (add-before 'check 'preparations
(lambda _ (lambda _
(setenv "DB_NAME" ":memory:")))))) (setenv "DB_NAME" ":memory:")
#t)))))
(home-page "https://www.tryton.org/") (home-page "https://www.tryton.org/")
(synopsis "Server component of Tryton") (synopsis "Server component of Tryton")
(description "Tryton is a three-tier high-level general purpose (description "Tryton is a three-tier high-level general purpose
@ -74,16 +75,14 @@ and security.")
(define-public tryton (define-public tryton
(package (package
(name "tryton") (name "tryton")
(version "4.4.0") (version "4.6.2")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
(uri (string-append (uri (pypi-uri "tryton" version))
"https://downloads.tryton.org/4.4/tryton-"
version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"1lklcz5fs6rkrd7z2m2f5gz4fdwzkgnhg2hyvzp20kdsvi33bq2j")))) "0bamr040np02gfjk8c734rw3mbgg75irfgpdcl2npgkdzyw1ksf9"))))
(build-system python-build-system) (build-system python-build-system)
(inputs (inputs
`(("python2-chardet" ,python2-chardet) `(("python2-chardet" ,python2-chardet)
@ -95,3 +94,106 @@ and security.")
(synopsis "Client component of Tryton") (synopsis "Client component of Tryton")
(description "This package is the client component of Tryton.") (description "This package is the client component of Tryton.")
(license license:gpl3+))) (license license:gpl3+)))
(define-public python-trytond-country
(package
(name "python-trytond-country")
(version "4.6.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "trytond_country" version))
(sha256
(base32
"11c9mw2scbjn7c6yhlwh5ml266f0s31lh4jwj6gh7vl1shs3isr3"))))
(build-system python-build-system)
(arguments
`(#:phases
(modify-phases %standard-phases
(add-before 'check 'preparations
(lambda _
(setenv "DB_NAME" ":memory:")
#t)))))
(propagated-inputs
`(("python-trytond" ,python-trytond)
("python-wrapt" ,python-wrapt)
("python-werkzeug" ,python-werkzeug)
("python-sql" ,python-sql)
("python-polib" ,python-polib)
("python-dateutil" ,python-dateutil)
("python-genshi" ,python-genshi)
("python-relatorio" ,python-relatorio)
("python-magic" ,python-magic)))
(home-page "http://www.tryton.org/")
(synopsis "Tryton module with countries")
(description "This package provides a Tryton module with countries.")
(license license:gpl3+)))
(define-public python-trytond-party
(package
(name "python-trytond-party")
(version "4.6.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "trytond_party" version))
(sha256
(base32
"0fbf4kxywiglcdsx9ppjg7nxw87915mb6bpn1jn652gk949rdww5"))))
(build-system python-build-system)
;; XXX The tests seem to require Proteus. But Proteus tests seem to
;; require trytond-party.
(arguments
'(#:tests? #f))
(propagated-inputs
`(("python-trytond" ,python-trytond)
("python-trytond-country" ,python-trytond-country)
("python-stdnum" ,python-stdnum)
("python-sql" ,python-sql)
("python-wrapt" ,python-wrapt)
("python-werkzeug" ,python-werkzeug)
("python-polib" ,python-polib)
("python-dateutil" ,python-dateutil)
("python-genshi" ,python-genshi)
("python-relatorio" ,python-relatorio)
("python-magic" ,python-magic)
("python-phonenumbers" ,python-phonenumbers)))
(home-page "http://www.tryton.org/")
(synopsis
"Tryton module for parties and addresses")
(description
"This package provides a Tryton module for (counter)parties and
addresses.")
(license license:gpl3+)))
(define-public python-proteus
(package
(name "python-proteus")
(version "4.6.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "proteus" version))
(sha256
(base32
"0flkf1vxbhz51b7bq31dn7q9mlkli3pmpbzfhsxfqpf6laghbkqg"))))
(build-system python-build-system)
(propagated-inputs
`(("python-dateutil" ,python-dateutil)
("python-trytond-party" ,python-trytond-party)
("python-trytond-country" ,python-trytond-country)
("python-trytond" ,python-trytond)
("python-stdnum" ,python-stdnum)
("python-sql" ,python-sql)
("python-wrapt" ,python-wrapt)
("python-werkzeug" ,python-werkzeug)
("python-polib" ,python-polib)
("python-genshi" ,python-genshi)
("python-relatorio" ,python-relatorio)
("python-magic" ,python-magic)))
(home-page "http://www.tryton.org/")
(synopsis
"Library to access a Tryton server as a client")
(description
"This package provides a library to access Tryton server as a client.")
(license license:lgpl3+)))

View file

@ -138,14 +138,14 @@ as well as the classic centralized workflow.")
(name "git") (name "git")
;; XXX When updating Git, check if the special 'git:src' input to cgit needs ;; XXX When updating Git, check if the special 'git:src' input to cgit needs
;; to be updated as well. ;; to be updated as well.
(version "2.16.0") (version "2.16.1")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "mirror://kernel.org/software/scm/git/git-" (uri (string-append "mirror://kernel.org/software/scm/git/git-"
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"1y1hdr8ydff5q7y762cwfdgaxam4mxvir6nrw3g51mmkcr77c40d")))) "06gay8k29glg4giwphjalcc1fknxw4bmxkmbr3ic3gzxy8vl7bfg"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(native-inputs (native-inputs
`(("native-perl" ,perl) `(("native-perl" ,perl)
@ -158,7 +158,7 @@ as well as the classic centralized workflow.")
version ".tar.xz")) version ".tar.xz"))
(sha256 (sha256
(base32 (base32
"0k5bviwff2q3vri8v6n2a71sxm83gcskzy6wr2z01pb7xfk28hl9")))))) "1ympib7kd818v4wjgfrhxjrmv91n50lgxxg0i9gcqihgy3divrlp"))))))
(inputs (inputs
`(("curl" ,curl) `(("curl" ,curl)
("expat" ,expat) ("expat" ,expat)

View file

@ -523,10 +523,10 @@ SMPTE 314M.")
(inputs (inputs
`(("libebml" ,libebml))) `(("libebml" ,libebml)))
(home-page "https://www.matroska.org") (home-page "https://www.matroska.org")
(synopsis "C++ libary to parse Matroska files (.mkv and .mka)") (synopsis "C++ library to parse Matroska files (.mkv and .mka)")
(description (description
"Matroska aims to become the standard of multimedia container formats. "Matroska aims to become the standard of multimedia container formats.
It is based on EBML (Extensible Binary Meta Language), a binary derivative It is based on @dfn{EBML} (Extensible Binary Meta Language), a binary derivative
of XML. EBML enables the Matroska Development Team to gain significant of XML. EBML enables the Matroska Development Team to gain significant
advantages in terms of future format extensibility, without breaking file advantages in terms of future format extensibility, without breaking file
support in old parsers. support in old parsers.
@ -1150,7 +1150,7 @@ access to mpv's powerful playback capabilities.")
(define-public youtube-dl (define-public youtube-dl
(package (package
(name "youtube-dl") (name "youtube-dl")
(version "2018.01.18") (version "2018.01.21")
(source (origin (source (origin
(method url-fetch) (method url-fetch)
(uri (string-append "https://yt-dl.org/downloads/" (uri (string-append "https://yt-dl.org/downloads/"
@ -1158,7 +1158,7 @@ access to mpv's powerful playback capabilities.")
version ".tar.gz")) version ".tar.gz"))
(sha256 (sha256
(base32 (base32
"16mdy83s8h1hw1qdbcv6anrgg9zxfw1da22fxjx53pr2x0ywwbsf")))) "14ggjxnhc2sxc93h7d5k3z4n35n5q3ffsif97np0ar93x5z3zgn5"))))
(build-system python-build-system) (build-system python-build-system)
(arguments (arguments
;; The problem here is that the directory for the man page and completion ;; The problem here is that the directory for the man page and completion
@ -1181,11 +1181,12 @@ access to mpv's powerful playback capabilities.")
(("'etc/") (("'etc/")
(string-append "'" prefix "/etc/")) (string-append "'" prefix "/etc/"))
(("'share/") (("'share/")
(string-append "'" prefix "/share/"))))))))) (string-append "'" prefix "/share/")))
#t))))))
(synopsis "Download videos from YouTube.com and other sites") (synopsis "Download videos from YouTube.com and other sites")
(description (description
"Youtube-dl is a small command-line program to download videos from "Youtube-dl is a small command-line program to download videos from
YouTube.com and a few more sites.") YouTube.com and many more sites.")
(home-page "https://yt-dl.org") (home-page "https://yt-dl.org")
(license license:public-domain))) (license license:public-domain)))

View file

@ -728,7 +728,7 @@ Machine Protocol.")
(define-public lookingglass (define-public lookingglass
(package (package
(name "lookingglass") (name "lookingglass")
(version "a9") (version "a10")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -737,7 +737,7 @@ Machine Protocol.")
(file-name (string-append name "-" version)) (file-name (string-append name "-" version))
(sha256 (sha256
(base32 (base32
"015chy4x94x4dd5831d7n0gada8rhahmdx7bdbdhajlzivi3kjcw")))) "0zlxg9ibzr0a598wr5nl1pb4l7mzsqn8ip72v4frph0vwsm5il6c"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(inputs `(("fontconfig" ,fontconfig) (inputs `(("fontconfig" ,fontconfig)
("glu" ,glu) ("glu" ,glu)

View file

@ -44,7 +44,7 @@
(define-public wget (define-public wget
(package (package
(name "wget") (name "wget")
(version "1.19.2") (version "1.19.4")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -52,7 +52,7 @@
version ".tar.lz")) version ".tar.lz"))
(sha256 (sha256
(base32 (base32
"01yzal7xm85543x02bij3capnigr063d6c5vc039f8n5s9d796nm")))) "16jmcqcasx3q9k4azssryli9qyxfq0sfijw998g8zp58cnwzzh1g"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(arguments (arguments
'(#:phases (modify-phases %standard-phases '(#:phases (modify-phases %standard-phases

View file

@ -6,6 +6,7 @@
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org> ;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -199,7 +200,7 @@ and many other languages.")
(define-public wxsvg (define-public wxsvg
(package (package
(name "wxsvg") (name "wxsvg")
(version "1.5.11") (version "1.5.12")
(source (source
(origin (origin
(method url-fetch) (method url-fetch)
@ -207,7 +208,7 @@ and many other languages.")
version "/wxsvg-" version ".tar.bz2")) version "/wxsvg-" version ".tar.bz2"))
(sha256 (sha256
(base32 (base32
"0m3ff8mjiq4hvy8rmxyc9fkpf24xwxhvr3a6jmvr2q5zc41xhz7x")))) "1hn3h9kzsjs4wimlpknzjfgn7q0n792hh7v3mshjgsjxdcrckzan"))))
(build-system glib-or-gtk-build-system) (build-system glib-or-gtk-build-system)
(inputs (inputs
`(("wxwidgets" ,wxwidgets-3.1) `(("wxwidgets" ,wxwidgets-3.1)

View file

@ -90,10 +90,10 @@ things the parser might find in the XML document (like start tags).")
"005a0ipqnfbsq47zrc61zszi439jw32q5xd6dc1jyb3lc0zl266q")))) "005a0ipqnfbsq47zrc61zszi439jw32q5xd6dc1jyb3lc0zl266q"))))
(build-system gnu-build-system) (build-system gnu-build-system)
(home-page "https://matroska-org.github.io/libebml/") (home-page "https://matroska-org.github.io/libebml/")
(synopsis "C++ libary to parse EBML files") (synopsis "C++ library to parse EBML files")
(description "libebml is a C++ library to read and write EBML (Extensible (description "libebml is a C++ library to read and write @dfn{EBML}
Binary Meta Language) files. EBML was designed to be a simplified binary (Extensible Binary Meta Language) files. EBML was designed to be a simplified
extension of XML for the purpose of storing and manipulating data in a binary extension of XML for the purpose of storing and manipulating data in a
hierarchical form with variable field lengths.") hierarchical form with variable field lengths.")
(license license:lgpl2.1))) (license license:lgpl2.1)))

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -24,6 +24,7 @@
#:use-module (guix records) #:use-module (guix records)
#:use-module (guix profiles) #:use-module (guix profiles)
#:use-module (guix discovery) #:use-module (guix discovery)
#:use-module (guix combinators)
#:use-module (guix sets) #:use-module (guix sets)
#:use-module (guix ui) #:use-module (guix ui)
#:use-module ((guix utils) #:select (source-properties->location)) #:use-module ((guix utils) #:select (source-properties->location))
@ -66,6 +67,7 @@
simple-service simple-service
modify-services modify-services
service-back-edges service-back-edges
instantiate-missing-services
fold-services fold-services
service-error? service-error?
@ -630,6 +632,18 @@ kernel."
(service ambiguous-target-service-error-service) (service ambiguous-target-service-error-service)
(target-type ambiguous-target-service-error-target-type)) (target-type ambiguous-target-service-error-target-type))
(define (missing-target-error service target-type)
(raise
(condition (&missing-target-service-error
(service service)
(target-type target-type))
(&message
(message
(format #f (G_ "no target of type '~a' for service '~a'")
(service-type-name target-type)
(service-type-name
(service-kind service))))))))
(define (service-back-edges services) (define (service-back-edges services)
"Return a procedure that, when passed a <service>, returns the list of "Return a procedure that, when passed a <service>, returns the list of
<service> objects that depend on it." <service> objects that depend on it."
@ -642,16 +656,7 @@ kernel."
((target) ((target)
(vhash-consq target service edges)) (vhash-consq target service edges))
(() (()
(raise (missing-target-error service target-type))
(condition (&missing-target-service-error
(service service)
(target-type target-type))
(&message
(message
(format #f (G_ "no target of type '~a' for service '~a'")
(service-type-name target-type)
(service-type-name
(service-kind service))))))))
(x (x
(raise (raise
(condition (&ambiguous-target-service-error (condition (&ambiguous-target-service-error
@ -669,6 +674,38 @@ kernel."
(lambda (node) (lambda (node)
(reverse (vhash-foldq* cons '() node edges))))) (reverse (vhash-foldq* cons '() node edges)))))
(define (instantiate-missing-services services)
"Return SERVICES, a list, augmented with any services targeted by extensions
and missing from SERVICES. Only service types with a default value can be
instantiated; other missing services lead to a
'&missing-target-service-error'."
(define (adjust-service-list svc result instances)
(fold2 (lambda (extension result instances)
(define target-type
(service-extension-target extension))
(match (vhash-assq target-type instances)
(#f
(let ((default (service-type-default-value target-type)))
(if (eq? &no-default-value default)
(missing-target-error svc target-type)
(let ((new (service target-type)))
(values (cons new result)
(vhash-consq target-type new instances))))))
(_
(values result instances))))
result
instances
(service-type-extensions (service-kind svc))))
(let ((instances (fold (lambda (service result)
(vhash-consq (service-kind service) service
result))
vlist-null services)))
(fold2 adjust-service-list
services instances
services)))
(define* (fold-services services (define* (fold-services services
#:key (target-type system-service-type)) #:key (target-type system-service-type))
"Fold SERVICES by propagating their extensions down to the root of type "Fold SERVICES by propagating their extensions down to the root of type

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -83,7 +83,12 @@ return the socket."
(define-syntax-rule (with-shepherd connection body ...) (define-syntax-rule (with-shepherd connection body ...)
"Evaluate BODY... with CONNECTION bound to an open socket to PID 1." "Evaluate BODY... with CONNECTION bound to an open socket to PID 1."
(let ((connection (open-connection))) (let ((connection (open-connection)))
body ...)) (dynamic-wind
(const #t)
(lambda ()
body ...)
(lambda ()
(close-port connection)))))
(define-condition-type &shepherd-error &error (define-condition-type &shepherd-error &error
shepherd-error?) shepherd-error?)

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -66,7 +66,7 @@
(define (shepherd-boot-gexp services) (define (shepherd-boot-gexp services)
(mlet %store-monad ((shepherd-conf (shepherd-configuration-file services))) (with-monad %store-monad
(return #~(begin (return #~(begin
;; Keep track of the booted system. ;; Keep track of the booted system.
(false-if-exception (delete-file "/run/booted-system")) (false-if-exception (delete-file "/run/booted-system"))
@ -84,7 +84,8 @@
;; Start shepherd. ;; Start shepherd.
(execl #$(file-append shepherd "/bin/shepherd") (execl #$(file-append shepherd "/bin/shepherd")
"shepherd" "--config" #$shepherd-conf))))) "shepherd" "--config"
#$(shepherd-configuration-file services))))))
(define shepherd-root-service-type (define shepherd-root-service-type
(service-type (service-type
@ -203,7 +204,7 @@ stored."
(define (shepherd-service-file service) (define (shepherd-service-file service)
"Return a file defining SERVICE." "Return a file defining SERVICE."
(gexp->file (shepherd-service-file-name service) (scheme-file (shepherd-service-file-name service)
(with-imported-modules %default-imported-modules (with-imported-modules %default-imported-modules
#~(begin #~(begin
(use-modules #$@(shepherd-service-modules service)) (use-modules #$@(shepherd-service-modules service))
@ -220,8 +221,7 @@ stored."
"Return the shepherd configuration file for SERVICES." "Return the shepherd configuration file for SERVICES."
(assert-valid-graph services) (assert-valid-graph services)
(mlet %store-monad ((files (mapm %store-monad (let ((files (map shepherd-service-file services)))
shepherd-service-file services)))
(define config (define config
#~(begin #~(begin
(use-modules (srfi srfi-34) (use-modules (srfi srfi-34)
@ -252,7 +252,7 @@ stored."
(filter shepherd-service-auto-start? (filter shepherd-service-auto-start?
services))))))) services)))))))
(gexp->file "shepherd.conf" config))) (scheme-file "shepherd.conf" config)))
(define* (shepherd-service-lookup-procedure services (define* (shepherd-service-lookup-procedure services
#:optional #:optional

View file

@ -263,7 +263,11 @@ access to exported repositories under @file{/srv/git}."
(list (service-extension activation-service-type (list (service-extension activation-service-type
cgit-activation) cgit-activation)
(service-extension nginx-service-type (service-extension nginx-service-type
cgit-configuration-nginx-config))) cgit-configuration-nginx-config)
;; Make sure fcgiwrap is instantiated.
(service-extension fcgiwrap-service-type
(const #t))))
(default-value (cgit-configuration)) (default-value (cgit-configuration))
(description (description
"Run the Cgit web interface, which allows users to browse Git "Run the Cgit web interface, which allows users to browse Git

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2015, 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2016 Chris Marusich <cmmarusich@gmail.com>
@ -492,8 +492,9 @@ a container or that of a \"bare metal\" system."
(define* (operating-system-services os #:key container?) (define* (operating-system-services os #:key container?)
"Return all the services of OS, including \"internal\" services that do not "Return all the services of OS, including \"internal\" services that do not
explicitly appear in OS." explicitly appear in OS."
(instantiate-missing-services
(append (operating-system-user-services os) (append (operating-system-user-services os)
(essential-services os #:container? container?))) (essential-services os #:container? container?))))
;;; ;;;

View file

@ -48,8 +48,8 @@
;; Add GNOME and/or Xfce---we can choose at the log-in ;; Add GNOME and/or Xfce---we can choose at the log-in
;; screen with F1. Use the "desktop" services, which ;; screen with F1. Use the "desktop" services, which
;; include the X11 log-in service, networking with Wicd, ;; include the X11 log-in service, networking with
;; and more. ;; NetworkManager, and more.
(services (cons* (gnome-desktop-service) (services (cons* (gnome-desktop-service)
(xfce-desktop-service) (xfce-desktop-service)
%desktop-services)) %desktop-services))

View file

@ -47,7 +47,7 @@
%base-packages)) %base-packages))
;; Use the "desktop" services, which include the X11 ;; Use the "desktop" services, which include the X11
;; log-in service, networking with Wicd, and more. ;; log-in service, networking with NetworkManager, and more.
(services %desktop-services) (services %desktop-services)
;; Allow resolution of '.local' host names with mDNS. ;; Allow resolution of '.local' host names with mDNS.

View file

@ -44,7 +44,12 @@
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:export (installation-os #:export (installation-os
beaglebone-black-installation-os)) a20-olinuxino-lime-installation-os
a20-olinuxino-lime2-emmc-installation-os
a20-olinuxino-micro-installation-os
banana-pi-m2-ultra-installation-os
beaglebone-black-installation-os
nintendo-nes-classic-edition-installation-os))
;;; Commentary: ;;; Commentary:
;;; ;;;
@ -376,29 +381,67 @@ You have been warned. Thanks for being so brave.\x1b[0m
nvi ;:wq! nvi ;:wq!
%base-packages)))) %base-packages))))
(define beaglebone-black-installation-os (define* (agetty-default-service #:optional (tty "ttyS0"))
(operating-system "Return an agetty-service on the given TTY"
(inherit installation-os) (agetty-service (agetty-configuration
(bootloader (bootloader-configuration
(bootloader u-boot-beaglebone-black-bootloader)
(target "/dev/sda")))
(kernel linux-libre)
(initrd (lambda (fs . rest)
(apply base-initrd fs
;; This module is required to mount the sd card.
#:extra-modules (list "omap_hsmmc")
rest)))
(services (append
;; mingetty does not work on serial lines.
;; Use agetty with board-specific serial parameters.
(list (agetty-service
(agetty-configuration
(extra-options '("-L")) (extra-options '("-L"))
(baud-rate "115200") (baud-rate "115200")
(term "vt100") (term "vt100")
(tty "ttyO0")))) (tty tty))))
(define* (embedded-installation-os bootloader bootloader-target tty
#:key (extra-modules '()))
"Return an installation os for embedded systems.
The initrd gets the extra modules EXTRA-MODULES.
A getty is provided on TTY.
The bootloader BOOTLOADER is installed to BOOTLOADER-TARGET."
(operating-system
(inherit installation-os)
(bootloader (bootloader-configuration
(bootloader bootloader)
(target bootloader-target)))
(kernel linux-libre)
(initrd (lambda (fs . rest)
(apply base-initrd fs
#:extra-modules extra-modules
rest)))
(services (cons* (agetty-default-service tty)
(operating-system-user-services installation-os))))) (operating-system-user-services installation-os)))))
(define beaglebone-black-installation-os
(embedded-installation-os u-boot-beaglebone-black-bootloader
"/dev/sda"
"ttyO0"
#:extra-modules
;; This module is required to mount the sd card.
'("omap_hsmmc")))
(define a20-olinuxino-lime-installation-os
(embedded-installation-os u-boot-a20-olinuxino-lime-bootloader
"/dev/mmcblk0" ; SD card storage
"ttyS0"))
(define a20-olinuxino-lime2-emmc-installation-os
(embedded-installation-os u-boot-a20-olinuxino-lime2-bootloader
"/dev/mmcblk1" ; eMMC storage
"ttyS0"))
(define a20-olinuxino-micro-installation-os
(embedded-installation-os u-boot-a20-olinuxino-micro-bootloader
"/dev/mmcblk0" ; SD card storage
"ttyS0"))
(define banana-pi-m2-ultra-installation-os
(embedded-installation-os u-boot-banana-pi-m2-ultra-bootloader
"/dev/mmcblk1" ; eMMC storage
"ttyS0"))
(define nintendo-nes-classic-edition-installation-os
(embedded-installation-os u-boot-nintendo-nes-classic-edition-bootloader
"/dev/mmcblk0" ; SD card (solder it yourself)
"ttyS0"))
;; Return the default os here so 'guix system' can consume it directly. ;; Return the default os here so 'guix system' can consume it directly.
installation-os installation-os

View file

@ -1,6 +1,6 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
@ -88,8 +88,6 @@
(let ((base-os (let ((base-os
(simple-operating-system (simple-operating-system
(dhcp-client-service) (dhcp-client-service)
(service nginx-service-type)
(service fcgiwrap-service-type)
(service cgit-service-type (service cgit-service-type
(cgit-configuration (cgit-configuration
(nginx %cgit-configuration-nginx))) (nginx %cgit-configuration-nginx)))
@ -130,8 +128,25 @@ HTTP-PORT."
(test-begin "cgit") (test-begin "cgit")
;; XXX: Shepherd reads the config file *before* binding its control
;; socket, so /var/run/shepherd/socket might not exist yet when the
;; 'marionette' service is started.
(test-assert "shepherd socket ready"
(marionette-eval
`(begin
(use-modules (gnu services herd))
(let loop ((i 10))
(cond ((file-exists? (%shepherd-socket-file))
#t)
((> i 0)
(sleep 1)
(loop (- i 1)))
(else
'failure))))
marionette))
;; Wait for nginx to be up and running. ;; Wait for nginx to be up and running.
(test-eq "service running" (test-eq "nginx running"
'running! 'running!
(marionette-eval (marionette-eval
'(begin '(begin
@ -141,7 +156,7 @@ HTTP-PORT."
marionette)) marionette))
;; Wait for fcgiwrap to be up and running. ;; Wait for fcgiwrap to be up and running.
(test-eq "service running" (test-eq "fcgiwrap running"
'running! 'running!
(marionette-eval (marionette-eval
'(begin '(begin

View file

@ -672,10 +672,10 @@ example: \"/foo/bar\" yields '(\"foo\" \"bar\")."
exp ...) exp ...)
(const #f))) (const #f)))
(define (nar-response-port response) (define (nar-response-port response compression)
"Return a port on which to write the body of RESPONSE, the response of a "Return a port on which to write the body of RESPONSE, the response of a
/nar request, according to COMPRESSION." /nar request, according to COMPRESSION."
(match (assoc-ref (response-headers response) 'x-nar-compression) (match compression
(($ <compression> 'gzip level) (($ <compression> 'gzip level)
;; Note: We cannot used chunked encoding here because ;; Note: We cannot used chunked encoding here because
;; 'make-gzip-output-port' wants a file port. ;; 'make-gzip-output-port' wants a file port.
@ -697,11 +697,13 @@ blocking."
(call-with-new-thread (call-with-new-thread
(lambda () (lambda ()
(set-thread-name "publish nar") (set-thread-name "publish nar")
(let* ((response (write-response (sans-content-length response) (let* ((compression (assoc-ref (response-headers response)
'x-nar-compression))
(response (write-response (sans-content-length response)
client)) client))
(port (begin (port (begin
(force-output client) (force-output client)
(nar-response-port response)))) (nar-response-port response compression))))
;; XXX: Given our ugly workaround for <http://bugs.gnu.org/21093> in ;; XXX: Given our ugly workaround for <http://bugs.gnu.org/21093> in
;; 'render-nar', BODY here is just the file name of the store item. ;; 'render-nar', BODY here is just the file name of the store item.
;; We call 'write-file' from here because we know that's the only ;; We call 'write-file' from here because we know that's the only

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Alex Kost <alezost@gmail.com> ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
;;; Copyright © 2016, 2017 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2016, 2017 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
@ -331,7 +331,9 @@ bring the system down."
(let ((to-load-names (map shepherd-service-canonical-name to-load)) (let ((to-load-names (map shepherd-service-canonical-name to-load))
(to-start (filter shepherd-service-auto-start? to-load))) (to-start (filter shepherd-service-auto-start? to-load)))
(info (G_ "loading new services:~{ ~a~}...~%") to-load-names) (info (G_ "loading new services:~{ ~a~}...~%") to-load-names)
(mlet %store-monad ((files (mapm %store-monad shepherd-service-file (mlet %store-monad ((files (mapm %store-monad
(compose lower-object
shepherd-service-file)
to-load))) to-load)))
;; Here we assume that FILES are exactly those that were computed ;; Here we assume that FILES are exactly those that were computed
;; as part of the derivation that built OS, which is normally the ;; as part of the derivation that built OS, which is normally the

View file

@ -1,8 +1,10 @@
#!@GUILE@ --no-auto-compile #!@GUILE@ \
--no-auto-compile -e main -s
-*- scheme -*- -*- scheme -*-
!# !#
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2013 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2013 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -22,56 +24,36 @@
;; IMPORTANT: We must avoid loading any modules from Guix here, ;; IMPORTANT: We must avoid loading any modules from Guix here,
;; because we need to adjust the guile load paths first. ;; because we need to adjust the guile load paths first.
;; It's okay to import modules from core Guile though. ;; It's okay to import modules from core Guile though.
(use-modules (ice-9 regex) (use-modules (srfi srfi-26))
(srfi srfi-26))
(let () (define-syntax-rule (push! elt v) (set! v (cons elt v)))
(define-syntax-rule (push! elt v) (set! v (cons elt v)))
(define config-lookup (define (augment-load-paths!)
(let ((config '(("prefix" . "@prefix@") ;; Add installed modules to load-path.
("exec_prefix" . "@exec_prefix@") (push! "@guilemoduledir@" %load-path)
("datarootdir" . "@datarootdir@") (push! "@guileobjectdir@" %load-compiled-path)
("guilemoduledir" . "@guilemoduledir@")
("guileobjectdir" . "@guileobjectdir@")
("localedir" . "@localedir@")))
(var-ref-regexp (make-regexp "\\$\\{([a-z_]+)\\}")))
(define (expand-var-ref match)
(lookup (match:substring match 1)))
(define (expand str)
(regexp-substitute/global #f var-ref-regexp str
'pre expand-var-ref 'post))
(define (lookup name)
(expand (assoc-ref config name)))
lookup))
(define (maybe-augment-load-paths!) ;; Add modules fetched by 'guix pull' to load-path.
(unless (getenv "GUIX_UNINSTALLED")
(let ((module-dir (config-lookup "guilemoduledir"))
(object-dir (config-lookup "guileobjectdir")))
(push! module-dir %load-path)
(push! object-dir %load-compiled-path))
(let ((updates-dir (and=> (or (getenv "XDG_CONFIG_HOME") (let ((updates-dir (and=> (or (getenv "XDG_CONFIG_HOME")
(and=> (getenv "HOME") (and=> (getenv "HOME")
(cut string-append <> "/.config"))) (cut string-append <> "/.config")))
(cut string-append <> "/guix/latest")))) (cut string-append <> "/guix/latest"))))
(when (and updates-dir (file-exists? updates-dir)) (when (and=> updates-dir file-exists?)
;; XXX: Currently 'guix pull' puts both .scm and .go files in ;; XXX: Currently 'guix pull' puts both .scm and .go files in
;; UPDATES-DIR. ;; UPDATES-DIR.
(push! updates-dir %load-path) (push! updates-dir %load-path)
(push! updates-dir %load-compiled-path))))) (push! updates-dir %load-compiled-path))))
(define* (main #:optional (args (command-line)))
(unless (getenv "GUIX_UNINSTALLED")
(augment-load-paths!))
(define (run-guix-main)
(let ((guix-main (module-ref (resolve-interface '(guix ui)) (let ((guix-main (module-ref (resolve-interface '(guix ui))
'guix-main))) 'guix-main)))
(bindtextdomain "guix" (config-lookup "localedir")) (bindtextdomain "guix" "@localedir@")
(bindtextdomain "guix-packages" (config-lookup "localedir")) (bindtextdomain "guix-packages" "@localedir@")
(apply guix-main (command-line))))
(maybe-augment-load-paths!)
;; XXX: It would be more convenient to change it to: ;; XXX: It would be more convenient to change it to:
;; (exit (run-guix-main)) ;; (exit (apply guix-main (command-line)))
;; but since the 'guix' command is not updated by 'guix pull', we cannot ;; but since the 'guix' command is not updated by 'guix pull', we cannot
;; really do it now. ;; really do it now.
(run-guix-main)) (apply guix-main args)))

View file

@ -111,6 +111,10 @@
(sleep 1) (sleep 1)
(loop (- i 1)))))) (loop (- i 1))))))
(define %gzip-magic-bytes
;; Magic bytes of gzip file.
#vu8(#x1f #x8b))
;; Wait until the two servers are ready. ;; Wait until the two servers are ready.
(wait-until-ready 6789) (wait-until-ready 6789)
@ -213,6 +217,18 @@ FileSize: ~a~%"
(cut restore-file <> temp))) (cut restore-file <> temp)))
(call-with-input-file temp read-string)))) (call-with-input-file temp read-string))))
(unless (zlib-available?)
(test-skip 1))
(test-equal "/nar/gzip/* is really gzip"
%gzip-magic-bytes
;; Since 'gzdopen' (aka. 'call-with-gzip-input-port') transparently reads
;; uncompressed gzip, the test above doesn't check whether it's actually
;; gzip. This is what this test does. See <https://bugs.gnu.org/30184>.
(let ((nar (http-get-port
(publish-uri
(string-append "/nar/gzip/" (basename %item))))))
(get-bytevector-n nar (bytevector-length %gzip-magic-bytes))))
(unless (zlib-available?) (unless (zlib-available?)
(test-skip 1)) (test-skip 1))
(test-equal "/*.narinfo with compression" (test-equal "/*.narinfo with compression"

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; ;;;
;;; This file is part of GNU Guix. ;;; This file is part of GNU Guix.
;;; ;;;
@ -122,6 +122,36 @@
(fold-services (list s) #:target-type t1) (fold-services (list s) #:target-type t1)
#f))) #f)))
(test-assert "instantiate-missing-services"
(let* ((t1 (service-type (name 't1) (extensions '())
(default-value 'dflt)
(compose concatenate)
(extend cons)))
(t2 (service-type (name 't2)
(extensions
(list (service-extension t1 list)))))
(s1 (service t1 'hey!))
(s2 (service t2 42)))
(and (lset= equal?
(list (service t1) s2)
(instantiate-missing-services (list s2)))
(equal? (list s1 s2)
(instantiate-missing-services (list s1 s2))))))
(test-assert "instantiate-missing-services, no default value"
(let* ((t1 (service-type (name 't1) (extensions '())))
(t2 (service-type (name 't2)
(extensions
(list (service-extension t1 list)))))
(s (service t2 42)))
(guard (c ((missing-target-service-error? c)
(and (eq? (missing-target-service-error-target-type c)
t1)
(eq? (missing-target-service-error-service c)
s))))
(instantiate-missing-services (list s))
#f)))
(test-assert "shepherd-service-lookup-procedure" (test-assert "shepherd-service-lookup-procedure"
(let* ((s1 (shepherd-service (provision '(s1 s1b)) (start #f))) (let* ((s1 (shepherd-service (provision '(s1 s1b)) (start #f)))
(s2 (shepherd-service (provision '(s2 s2b)) (start #f))) (s2 (shepherd-service (provision '(s2 s2b)) (start #f)))