diff options
60 files changed, 3099 insertions, 441 deletions
diff --git a/.dir-locals.el b/.dir-locals.el index 793117c0ae..1a3a05f100 100644 --- a/.dir-locals.el +++ b/.dir-locals.el @@ -45,6 +45,7 @@ (eval . (put 'manifest-pattern 'scheme-indent-function 0)) (eval . (put 'substitute-keyword-arguments 'scheme-indent-function 1)) (eval . (put 'with-store 'scheme-indent-function 1)) + (eval . (put 'with-external-store 'scheme-indent-function 1)) (eval . (put 'with-error-handling 'scheme-indent-function 0)) (eval . (put 'with-mutex 'scheme-indent-function 1)) (eval . (put 'with-atomic-file-output 'scheme-indent-function 1)) diff --git a/doc/guix.texi b/doc/guix.texi index 2cea52f02b..12346c4b8e 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -11000,6 +11000,12 @@ Return a service that runs a syslog daemon according to @var{config}. information on the configuration file syntax. @end deffn +@defvr {Scheme Variable} guix-service-type +This is the type of the service that runs the build daemon, +@command{guix-daemon} (@pxref{Invoking guix-daemon}). Its value must be a +@code{guix-configuration} record as described below. +@end defvr + @anchor{guix-configuration-type} @deftp {Data Type} guix-configuration This data type represents the configuration of the Guix build daemon. @@ -11060,11 +11066,6 @@ A directory path where the @command{guix-daemon} will perform builds. @end table @end deftp -@deffn {Scheme Procedure} guix-service @var{config} -Return a service that runs the Guix build daemon according to -@var{config}. -@end deffn - @deffn {Scheme Procedure} udev-service [#:udev @var{eudev} #:rules @code{'()}] Run @var{udev}, which populates the @file{/dev} directory dynamically. udev rules can be provided as a list of files through the @var{rules} @@ -11545,10 +11546,11 @@ The @code{(gnu services networking)} module provides services to configure the network interface. @cindex DHCP, networking service -@deffn {Scheme Procedure} dhcp-client-service [#:dhcp @var{isc-dhcp}] -Return a service that runs @var{dhcp}, a Dynamic Host Configuration -Protocol (DHCP) client, on all the non-loopback network interfaces. -@end deffn +@defvr {Scheme Variable} dhcp-client-service-type +This is the type of services that run @var{dhcp}, a Dynamic Host Configuration +Protocol (DHCP) client, on all the non-loopback network interfaces. Its value +is the DHCP client package to use, @code{isc-dhcp} by default. +@end defvr @deffn {Scheme Procedure} dhcpd-service-type This type defines a service that runs a DHCP daemon. To create a @@ -11815,20 +11817,37 @@ objects}). @end table @end deftp -@cindex NTP +@cindex NTP (Network Time Protocol), service @cindex real time clock -@deffn {Scheme Procedure} ntp-service [#:ntp @var{ntp}] @ - [#:servers @var{%ntp-servers}] @ - [#:allow-large-adjustment? #f] -Return a service that runs the daemon from @var{ntp}, the -@uref{http://www.ntp.org, Network Time Protocol package}. The daemon will -keep the system clock synchronized with that of @var{servers}. -@var{allow-large-adjustment?} determines whether @command{ntpd} is allowed to -make an initial adjustment of more than 1,000 seconds. -@end deffn +@defvr {Scheme Variable} ntp-service-type +This is the type of the service running the the @uref{http://www.ntp.org, +Network Time Protocol (NTP)} daemon, @command{ntpd}. The daemon will keep the +system clock synchronized with that of the specified NTP servers. + +The value of this service is an @code{ntpd-configuration} object, as described +below. +@end defvr + +@deftp {Data Type} ntp-configuration +This is the data type for the NTP service configuration. + +@table @asis +@item @code{servers} (default: @code{%ntp-servers}) +This is the list of servers (host names) with which @command{ntpd} will be +synchronized. + +@item @code{allow-large-adjustment?} (default: @code{#f}) +This determines whether @command{ntpd} is allowed to make an initial +adjustment of more than 1,000 seconds. + +@item @code{ntp} (default: @code{ntp}) +The NTP package to use. +@end table +@end deftp @defvr {Scheme Variable} %ntp-servers -List of host names used as the default NTP servers. +List of host names used as the default NTP servers. These are servers of the +@uref{https://www.ntppool.org/en/, NTP Pool Project}. @end defvr @cindex OpenNTPD @@ -17167,7 +17186,7 @@ A helper function to quickly add php to an @code{nginx-server-configuration}. A simple services setup for nginx with php can look like this: @example -(services (cons* (dhcp-client-service) +(services (cons* (service dhcp-client-service-type) (service php-fpm-service-type) (service nginx-service-type (nginx-server-configuration diff --git a/gnu/local.mk b/gnu/local.mk index 4b8c4c3d69..befe3c4b33 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -886,7 +886,6 @@ dist_patch_DATA = \ %D%/packages/patches/libgdata-glib-duplicate-tests.patch \ %D%/packages/patches/libgnome-encoding.patch \ %D%/packages/patches/libgnomeui-utf8.patch \ - %D%/packages/patches/libgxps-CVE-2017-11590.patch \ %D%/packages/patches/libffi-3.2.1-complex-alpha.patch \ %D%/packages/patches/libjxr-fix-function-signature.patch \ %D%/packages/patches/libjxr-fix-typos.patch \ @@ -1150,6 +1149,7 @@ dist_patch_DATA = \ %D%/packages/patches/slim-login.patch \ %D%/packages/patches/snappy-add-O2-flag-in-CmakeLists.txt.patch \ %D%/packages/patches/sooperlooper-build-with-wx-30.patch \ + %D%/packages/patches/soundconverter-remove-gconf-dependency.patch \ %D%/packages/patches/soundtouch-CVE-2018-14044-14045.patch \ %D%/packages/patches/soundtouch-CVE-2018-1000223.patch \ %D%/packages/patches/steghide-fixes.patch \ diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 8ec69d12a7..b664712f7a 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -14,6 +14,7 @@ ;;; Copyright © 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2018 Brett Gilio <brettg@posteo.net> +;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1041,7 +1042,7 @@ follower.") (define-public fluidsynth (package (name "fluidsynth") - (version "1.1.11") + (version "2.0.1") (source (origin (method git-fetch) (uri (git-reference @@ -1050,7 +1051,7 @@ follower.") (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh")))) + "1mqyym5qkh8xd1rqj3yhfxbw5dxjcrljb6nkfqzvcarlv4h6rjn7")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no check target @@ -1082,6 +1083,22 @@ device. It is the software analogue of a MIDI synthesizer. FluidSynth can also play midifiles using a Soundfont.") (license license:lgpl2.1+))) +;; gzdoom@3.3.0 and lmms@1.1.3 requires this version. Remove once no longer +;; needed. +(define-public fluidsynth-1 + (package + (inherit fluidsynth) + (version "1.1.11") + (source (origin + (inherit (package-source fluidsynth)) + (uri (git-reference + (url "https://github.com/FluidSynth/fluidsynth") + (commit (string-append "v" version)))) + (file-name (git-file-name "fluidsynth" version)) + (sha256 + (base32 + "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh")))))) + (define-public faad2 (package (name "faad2") @@ -1912,7 +1929,7 @@ lv2-c++-tools.") (define-public openal (package (name "openal") - (version "1.19.0") + (version "1.19.1") (source (origin (method url-fetch) (uri (string-append @@ -1920,7 +1937,7 @@ lv2-c++-tools.") version ".tar.bz2")) (sha256 (base32 - "1mhf5bsb58s1xk6hvxl7ly7rd4rpl9z8h07xl1q94brywykg7bgi")))) + "1sdjhkz2gd6lbnwphi1b6aw3br4wv2lik5vnqh6mxfc8a7zqfbsw")))) (build-system cmake-build-system) (arguments `(#:tests? #f ; no check target @@ -2761,7 +2778,7 @@ interface.") (define-public qsynth (package (name "qsynth") - (version "0.5.2") + (version "0.5.3") (source (origin (method url-fetch) @@ -2769,7 +2786,7 @@ interface.") "/qsynth-" version ".tar.gz")) (sha256 (base32 - "1rfkaxq1pyc4hv3l0i6wicianbcbm1wp53kh9i5d4jsljgisd1dv")))) + "1jghczmmva7cyavg1q0j8nr3hmjpzzglzi5ckg92ax4ji8gpks9c")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no "check" phase diff --git a/gnu/packages/aux-files/linux-libre/4.18-arm64.conf b/gnu/packages/aux-files/linux-libre/4.18-arm64.conf index ab30f51d2e..64b14b52c0 100644 --- a/gnu/packages/aux-files/linux-libre/4.18-arm64.conf +++ b/gnu/packages/aux-files/linux-libre/4.18-arm64.conf @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 4.18.0-gnu Kernel Configuration +# Linux/arm64 4.18.14-gnu Kernel Configuration # CONFIG_ARM64=y CONFIG_64BIT=y @@ -481,7 +481,7 @@ CONFIG_HOTPLUG_PCI=y CONFIG_HOTPLUG_PCI_ACPI=y CONFIG_HOTPLUG_PCI_ACPI_IBM=m CONFIG_HOTPLUG_PCI_CPCI=y -# CONFIG_HOTPLUG_PCI_SHPC is not set +CONFIG_HOTPLUG_PCI_SHPC=y # # PCI controller drivers diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 91bb94c549..1e04081ceb 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -136,24 +136,23 @@ (modify-phases %standard-phases (delete 'configure) (replace 'build - (lambda _ - (zero? (system* "gcc" - "-O3" - "-ffast-math" - "-finline-functions" - "-o" - "aragorn" - (string-append "aragorn" ,version ".c"))))) + (lambda _ + (invoke "gcc" + "-O3" + "-ffast-math" + "-finline-functions" + "-o" + "aragorn" + (string-append "aragorn" ,version ".c")) + #t)) (replace 'install - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - (man (string-append out "/share/man/man1"))) - (mkdir-p bin) - (install-file "aragorn" bin) - (mkdir-p man) - (install-file "aragorn.1" man)) - #t))))) + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin")) + (man (string-append out "/share/man/man1"))) + (install-file "aragorn" bin) + (install-file "aragorn.1" man)) + #t))))) (home-page "http://mbio-serv2.mbioekol.lu.se/ARAGORN") (synopsis "Detect tRNA, mtRNA and tmRNA genes in nucleotide sequences") (description @@ -168,15 +167,16 @@ structure of the predicted RNA.") (name "bamm") (version "1.7.3") (source (origin - (method url-fetch) + (method git-fetch) ;; BamM is not available on pypi. - (uri (string-append - "https://github.com/Ecogenomics/BamM/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (uri (git-reference + (url "https://github.com/Ecogenomics/BamM.git") + (commit version) + (recursive? #t))) + (file-name (git-file-name name version)) (sha256 (base32 - "1f35yxp4pc8aadsvbpg6r4kg2jh4fkjci0iby4iyljm6980sac0s")) + "1p83ahi984ipslxlg4yqy1gdnya9rkn1v71z8djgxkm9d2chw4c5")) (modules '((guix build utils))) (snippet `(begin @@ -198,11 +198,12 @@ structure of the predicted RNA.") (lambda _ (with-directory-excursion "c" (let ((sh (which "sh"))) + (for-each make-file-writable (find-files "." ".*")) ;; Use autogen so that 'configure' works. (substitute* "autogen.sh" (("/bin/sh") sh)) (setenv "CONFIG_SHELL" sh) - (substitute* "configure" (("/bin/sh") sh)) - (zero? (system* "./autogen.sh")))))) + (invoke "./autogen.sh"))) + #t)) (delete 'build) ;; Run tests after installation so compilation only happens once. (delete 'check) @@ -230,7 +231,8 @@ structure of the predicted RNA.") ;; There are 2 errors printed, but they are safe to ignore: ;; 1) [E::hts_open_format] fail to open file ... ;; 2) samtools view: failed to open ... - (zero? (system* "nosetests"))))))) + (invoke "nosetests") + #t))))) (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) @@ -335,15 +337,16 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.") (define-public bedops (package (name "bedops") - (version "2.4.33") + (version "2.4.35") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/bedops/bedops/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/bedops/bedops.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0kx4awrwby8f33wqyx8w7ms7v25xhf0d421csgf96a3hfzn2mb0m")))) + "0mmgsgwz5r9w76hzgxkxc9s9lkdhhaf7vr6i02b09vbswvs1fyqx")))) (build-system gnu-build-system) (arguments '(#:tests? #f @@ -365,9 +368,9 @@ transparently with both VCFs and BCFs, both uncompressed and BGZF-compressed.") ;; Unpack the tarballs to benefit from shebang patching. (with-directory-excursion "third-party" - (and (zero? (system* "tar" "xvf" "jansson-2.6.tar.bz2")) - (zero? (system* "tar" "xvf" "zlib-1.2.7.tar.bz2")) - (zero? (system* "tar" "xvf" "bzip2-1.0.6.tar.bz2")))) + (invoke "tar" "xvf" "jansson-2.6.tar.bz2") + (invoke "tar" "xvf" "zlib-1.2.7.tar.bz2") + (invoke "tar" "xvf" "bzip2-1.0.6.tar.bz2")) ;; Disable unpacking of tarballs in Makefile. (substitute* "system.mk/Makefile.linux" (("^\tbzcat .*") "\t@echo \"not unpacking\"\n") @@ -453,6 +456,20 @@ BED, GFF/GTF, VCF.") (find-files "bin" ".*"))) #t))))))) +;; Needed for pybedtools. +(define-public bedtools-2.26 + (package (inherit bedtools) + (name "bedtools") + (version "2.26.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/arq5x/bedtools2/releases/" + "download/v" version "/" + "bedtools-" version ".tar.gz")) + (sha256 + (base32 + "0jhavwifnf7lmkb11h9y7dynr8d699h0rd2l52j1pfgircr2zwv5")))))) + (define-public ribotaper (package (name "ribotaper") @@ -582,29 +599,54 @@ input/output delimiter. When the new functionality is not used, bioawk is intended to behave exactly the same as the original BWK awk.") (license license:x11))) -(define-public python2-pybedtools +(define-public python-pybedtools (package - (name "python2-pybedtools") - (version "0.6.9") + (name "python-pybedtools") + (version "0.7.10") (source (origin (method url-fetch) - (uri (string-append - "https://pypi.python.org/packages/source/p/pybedtools/pybedtools-" - version ".tar.gz")) + (uri (pypi-uri "pybedtools" version)) (sha256 (base32 - "1ldzdxw1p4y3g2ignmggsdypvqkcwqwzhdha4rbgpih048z5p4an")))) + "0l2b2wrnj85azfqgr0zwr60f7j58vlla1hcgxvr9rwikpl8j72ji")))) (build-system python-build-system) - (arguments `(#:python ,python-2)) ; no Python 3 support - (inputs - `(("python-matplotlib" ,python2-matplotlib))) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; See https://github.com/daler/pybedtools/issues/261 + (add-after 'unpack 'disable-broken-tests + (lambda _ + ;; This test (pybedtools.test.test_scripts.test_venn_mpl) needs a + ;; graphical environment. + (substitute* "pybedtools/test/test_scripts.py" + (("def test_venn_mpl") + "def _do_not_test_venn_mpl")) + ;; Requires internet access. + (substitute* "pybedtools/test/test_helpers.py" + (("def test_chromsizes") + "def _do_not_test_chromsizes")) + ;; FIXME: these two fail for no good reason. + (substitute* "pybedtools/test/test1.py" + (("def test_issue_157") + "def _do_not_test_issue_157") + (("def test_to_dataframe") + "def _do_not_test_to_dataframe")) + #t))))) (propagated-inputs - `(("bedtools" ,bedtools) - ("samtools" ,samtools))) + ;; Tests don't pass with Bedtools 2.27.1. + ;; See https://github.com/daler/pybedtools/issues/260 + `(("bedtools" ,bedtools-2.26) + ("samtools" ,samtools) + ("python-matplotlib" ,python-matplotlib) + ("python-pysam" ,python-pysam) + ("python-pyyaml" ,python-pyyaml))) (native-inputs - `(("python-cython" ,python2-cython) - ("python-pyyaml" ,python2-pyyaml) - ("python-nose" ,python2-nose))) + `(("python-numpy" ,python-numpy) + ("python-pandas" ,python-pandas) + ("python-cython" ,python-cython) + ("python-nose" ,python-nose) + ("kentutils" ,kentutils) ; for bedGraphToBigWig + ("python-six" ,python-six))) (home-page "https://pythonhosted.org/pybedtools/") (synopsis "Python wrapper for BEDtools programs") (description @@ -614,6 +656,36 @@ pybedtools extends BEDTools by offering feature-level manipulations from with Python.") (license license:gpl2+))) +(define-public python2-pybedtools + (let ((pkg (package-with-python2 python-pybedtools))) + (package (inherit pkg) + (arguments + `(#:modules ((ice-9 ftw) + (srfi srfi-1) + (srfi srfi-26) + (guix build utils) + (guix build python-build-system)) + ;; See https://github.com/daler/pybedtools/issues/192 + ,@(substitute-keyword-arguments (package-arguments pkg) + ((#:phases phases) + `(modify-phases ,phases + (replace 'check + (lambda _ + (let ((cwd (getcwd))) + (setenv "PYTHONPATH" + (string-append cwd "/build/" + (find (cut string-prefix? "lib" <>) + (scandir (string-append cwd "/build"))) + ":" (getenv "PYTHONPATH")))) + ;; The tests need to be run from elsewhere... + (mkdir-p "/tmp/test") + (copy-recursively "pybedtools/test" "/tmp/test") + (with-directory-excursion "/tmp/test" + (invoke "nosetests" + ;; This test fails for unknown reasons + "--exclude=.*test_getting_example_beds")) + #t)))))))))) + (define-public python-biom-format (package (name "python-biom-format") @@ -999,15 +1071,12 @@ package provides command line tools using the Bio++ library.") #:parallel-build? #f ; not supported #:phases (modify-phases %standard-phases - (add-before - 'configure 'set-HOME + (add-before 'configure 'set-HOME ;; $HOME needs to be set at some point during the configure phase (lambda _ (setenv "HOME" "/tmp") #t)) - (add-after - 'unpack 'enter-dir + (add-after 'unpack 'enter-dir (lambda _ (chdir "c++") #t)) - (add-after - 'enter-dir 'fix-build-system + (add-after 'enter-dir 'fix-build-system (lambda _ (define (which* cmd) (cond ((string=? cmd "date") @@ -1055,31 +1124,31 @@ package provides command line tools using the Bio++ library.") (("action=/bin/") "action=") (("export PATH") ":")) #t)) - (replace - 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (lib (string-append (assoc-ref outputs "lib") "/lib")) - (include (string-append (assoc-ref outputs "include") - "/include/ncbi-tools++"))) - ;; The 'configure' script doesn't recognize things like - ;; '--enable-fast-install'. - (zero? (system* "./configure.orig" - (string-append "--with-build-root=" (getcwd) "/build") - (string-append "--prefix=" out) - (string-append "--libdir=" lib) - (string-append "--includedir=" include) - (string-append "--with-bz2=" - (assoc-ref inputs "bzip2")) - (string-append "--with-z=" - (assoc-ref inputs "zlib")) - (string-append "--with-pcre=" - (assoc-ref inputs "pcre")) - ;; Each library is built twice by default, once - ;; with "-static" in its name, and again - ;; without. - "--without-static" - "--with-dll")))))))) + (replace 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (lib (string-append (assoc-ref outputs "lib") "/lib")) + (include (string-append (assoc-ref outputs "include") + "/include/ncbi-tools++"))) + ;; The 'configure' script doesn't recognize things like + ;; '--enable-fast-install'. + (invoke "./configure.orig" + (string-append "--with-build-root=" (getcwd) "/build") + (string-append "--prefix=" out) + (string-append "--libdir=" lib) + (string-append "--includedir=" include) + (string-append "--with-bz2=" + (assoc-ref inputs "bzip2")) + (string-append "--with-z=" + (assoc-ref inputs "zlib")) + (string-append "--with-pcre=" + (assoc-ref inputs "pcre")) + ;; Each library is built twice by default, once + ;; with "-static" in its name, and again + ;; without. + "--without-static" + "--with-dll") + #t)))))) (outputs '("out" ; 21 MB "lib" ; 226 MB "include")) ; 33 MB @@ -1204,15 +1273,16 @@ errors at the end of reads.") (define-public bowtie (package (name "bowtie") - (version "2.3.2") + (version "2.3.4.3") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/BenLangmead/bowtie2/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/BenLangmead/bowtie2.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0hwa5r9qbglppb7sz5z79rlmmddr3n51n468jb3wh8rwjgn3yr90")) + "1zl3cf327y2p7p03cavymbh7b00djc7lncfaqih33n96iy9q8ibp")) (modules '((guix build utils))) (snippet '(begin @@ -1222,14 +1292,6 @@ errors at the end of reads.") (("-DBUILD_TIME=.*") "-DBUILD_TIME=\"\\\"0\\\"\"")) #t)))) (build-system gnu-build-system) - (inputs - `(("perl" ,perl) - ("perl-clone" ,perl-clone) - ("perl-test-deep" ,perl-test-deep) - ("perl-test-simple" ,perl-test-simple) - ("python" ,python-2) - ("tbb" ,tbb) - ("zlib" ,zlib))) (arguments '(#:make-flags (list "allall" @@ -1239,11 +1301,21 @@ errors at the end of reads.") (modify-phases %standard-phases (delete 'configure) (replace 'check - (lambda* (#:key outputs #:allow-other-keys) - (zero? (system* "perl" - "scripts/test/simple_tests.pl" - "--bowtie2=./bowtie2" - "--bowtie2-build=./bowtie2-build"))))))) + (lambda _ + (invoke "perl" + "scripts/test/simple_tests.pl" + "--bowtie2=./bowtie2" + "--bowtie2-build=./bowtie2-build") + #t))))) + (inputs + `(("tbb" ,tbb) + ("zlib" ,zlib) + ("python" ,python-wrapper))) + (native-inputs + `(("perl" ,perl) + ("perl-clone" ,perl-clone) + ("perl-test-deep" ,perl-test-deep) + ("perl-test-simple" ,perl-test-simple))) (home-page "http://bowtie-bio.sourceforge.net/bowtie2/index.shtml") (synopsis "Fast and sensitive nucleotide sequence read aligner") (description @@ -1638,29 +1710,35 @@ databases.") (define-public clipper (package (name "clipper") - (version "1.1") + (version "1.2.1") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/YeoLab/clipper/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/YeoLab/clipper.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "0pflmsvhbf8izbgwhbhj1i7349sw1f55qpqj8ljmapp16hb0p0qi")) + "0fja1rj84wp9vpj8rxpj3n8zqzcqq454m904yp9as1w4phccirjb")) (modules '((guix build utils))) (snippet '(begin ;; remove unnecessary setup dependency (substitute* "setup.py" (("setup_requires = .*") "")) - (for-each delete-file - '("clipper/src/peaks.so" - "clipper/src/readsToWiggle.so")) - (delete-file-recursively "dist/") #t)))) (build-system python-build-system) - (arguments `(#:python ,python-2)) ; only Python 2 is supported + (arguments + `(#:python ,python-2 ; only Python 2 is supported + #:phases + (modify-phases %standard-phases + ;; This is fixed in upstream commit + ;; f6c2990198f906bf97730d95695b4bd5a6d01ddb. + (add-after 'unpack 'fix-typo + (lambda _ + (substitute* "clipper/src/readsToWiggle.pyx" + (("^sc.*") "")) + #t))))) (inputs `(("htseq" ,python2-htseq) ("python-pybedtools" ,python2-pybedtools) @@ -1985,7 +2063,21 @@ trees (phylogenies) and characters.") (license license:bsd-3))) (define-public python2-dendropy - (package-with-python2 python-dendropy)) + (let ((base (package-with-python2 python-dendropy))) + (package + (inherit base) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'remove-failing-test + (lambda _ + ;; This test fails when the full test suite is run, as documented + ;; at https://github.com/jeetsukumaran/DendroPy/issues/74 + (substitute* "tests/test_dataio_nexml_reader_tree_list.py" + (("test_collection_comments_and_annotations") + "do_not_test_collection_comments_and_annotations")) + #t))) + ,@(package-arguments base)))))) (define-public python-py2bit (package diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm index 33f4abb5ae..77b4dba6d4 100644 --- a/gnu/packages/crypto.scm +++ b/gnu/packages/crypto.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr> +;;; Copyright © 2018 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; ;;; This file is part of GNU Guix. ;;; @@ -854,3 +855,36 @@ public-key cryptography. Asignify is designed to be portable and self-contained with zero external dependencies. Asignify can verify OpenBSD signatures, but it cannot sign messages in OpenBSD format yet.") (license license:bsd-2)))) + +(define-public enchive + (package + (name "enchive") + (version "3.4") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/skeeto/" name "/archive/" + version ".tar.gz")) + (sha256 + (base32 + "17hrxpp4cpn10bk48sfvfjc8hghky34agsnypam1v9f36kbalqfk")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no check target ' + #:make-flags (list "CC=gcc" "PREFIX=$(out)") + #:phases (modify-phases %standard-phases + (delete 'configure) + (add-after 'install 'post-install + (lambda _ + (let* ((out (assoc-ref %outputs "out")) + (lisp (string-append out "/share/emacs/site-lisp"))) + (install-file "enchive-mode.el" lisp) + #t)))))) + (synopsis "Encrypted personal archives") + (description + "Enchive is a tool to encrypt files to yourself for long-term +archival. It's a focused, simple alternative to more complex solutions such as +GnuPG or encrypted filesystems. Enchive has no external dependencies and is +trivial to build for local use. Portability is emphasized over performance.") + (home-page "https://github.com/skeeto/enchive") + (license license:unlicense))) diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm index 5e9871699d..a7c406dc25 100644 --- a/gnu/packages/databases.scm +++ b/gnu/packages/databases.scm @@ -1783,19 +1783,32 @@ trees (LSM), for sustained throughput under random insert workloads.") ;; configure.ac: WiredTiger requires a 64-bit build. (supported-systems '("x86_64-linux" "mips64el-linux" "aarch64-linux")))) +(define-public wiredtiger-3 + (package + (inherit wiredtiger) + (name "wiredtiger") + (version "3.1.0") + (source (origin + (method url-fetch) + (uri (string-append "http://source.wiredtiger.com/releases/wiredtiger-" + version ".tar.bz2")) + (sha256 + (base32 + "014awypv579ascg4jbx4pndj2wld337m79yyzrzyr7hxrff139jx")))))) + (define-public guile-wiredtiger (package (name "guile-wiredtiger") - (version "0.6.3") + (version "0.7.0") (source (origin (method git-fetch) (uri (git-reference (url "https://framagit.org/a-guile-mind/guile-wiredtiger.git") - (commit "070ed68139d99c279f058a6c293f00292d35dbd7"))) + (commit "340ad4bc2ff4dcc6216a2f5c6f9172ca320ac66b"))) (file-name (string-append name "-" version "-checkout")) (sha256 (base32 - "14rna97wsylajzxfif95wnblq85csgcfc666gh5dl0ssgd7x8llh")))) + "15j36bvxxzil7qpwlmh1rffqpva3ynvrcpqhhqbj2c9208ayz595")))) (build-system gnu-build-system) (arguments '(#:parallel-tests? #f ;; tests can't be run in parallel, yet. @@ -1803,21 +1816,19 @@ trees (LSM), for sustained throughput under random insert workloads.") (list (string-append "--with-libwiredtiger-prefix=" (assoc-ref %build-inputs "wiredtiger"))) #:make-flags '("GUILE_AUTO_COMPILE=0"))) - ;; TODO: Remove microkanren.scm when we have a separate package - ;; for it. (native-inputs `(("autoconf" ,autoconf) ("automake" ,automake) ("pkg-config" ,pkg-config))) (inputs - `(("wiredtiger" ,wiredtiger) + `(("wiredtiger" ,wiredtiger-3) ("guile" ,guile-2.2))) (propagated-inputs - `(("guile-lib" ,guile-lib))) ;for (htmlprag) + `(("guile-bytestructures" ,guile-bytestructures))) (synopsis "WiredTiger bindings for GNU Guile") (description "This package provides Guile bindings to the WiredTiger ``NoSQL'' -database. Various higher level database abstractions.") +database.") (home-page "https://framagit.org/a-guile-mind/guile-wiredtiger") (license license:gpl3+))) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 57841e86fa..1069b9e3c3 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -1376,7 +1376,7 @@ environment set through Direnv.") (define-public emacs-ggtags (package (name "emacs-ggtags") - (version "0.8.12") + (version "0.8.13") (source (origin (method url-fetch) @@ -1384,7 +1384,7 @@ environment set through Direnv.") version ".el")) (sha256 (base32 - "0ny3llk021g6r0s75xdm4hzpbxv393ddm2r6f2xdk8kqnq4gnirp")))) + "1qa7lcrcmf76sf6dy8sxbg4adq7rg59fm0n5848w3qxgsr0h45fg")))) (build-system emacs-build-system) (home-page "https://github.com/leoliu/ggtags") (synopsis "Frontend to the GNU Global source code tagging system") @@ -2162,7 +2162,7 @@ keep pressing the key until it selects what you want. There's also (define-public emacs-fill-column-indicator (package (name "emacs-fill-column-indicator") - (version "1.81") + (version "1.89") (source (origin (method url-fetch) @@ -2171,7 +2171,7 @@ keep pressing the key until it selects what you want. There's also (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1xwyqbjbbicmvhlb85vg4j5snwy1vd7rfk89ws4viws5ljkhhyg8")))) + "09ab01np14bdcsr38xf95kpnvxzqr46mdjmphg3pigwnx39a3jvg")))) (build-system emacs-build-system) (home-page "https://www.emacswiki.org/emacs/FillColumnIndicator") (synopsis "Graphically indicate the fill column") @@ -2512,7 +2512,7 @@ snippets for yasnippet.") (define-public emacs-smart-mode-line (package (name "emacs-smart-mode-line") - (version "2.10.1") + (version "2.12.0") (source (origin (method url-fetch) @@ -2521,7 +2521,7 @@ snippets for yasnippet.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0i9wajabrrsjzwd842q0m2611kf0q31p9hg1pdj81177gynkw8l8")))) + "1hn8s6laijmg7w1bgwdfrki6h9vxkbgr8rmmssvd5yqyad5w2sba")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-rich-minority" ,emacs-rich-minority))) @@ -3091,7 +3091,7 @@ an Emacs minor mode that complements the standard @command{lisp-mode}. While lisp-mode supports editing Lisp source files, @command{slime-mode} adds support for interacting with a running Common Lisp process for compilation, debugging, documentation lookup, and so on.") - (license license:gpl2+))) + (license (list license:gpl2+ license:public-domain)))) (define-public emacs-popup (package @@ -4757,14 +4757,14 @@ of its name.") (define-public emacs-rainbow-mode (package (name "emacs-rainbow-mode") - (version "0.13") + (version "1.0.1") (source (origin (method url-fetch) (uri (string-append "http://elpa.gnu.org/packages/rainbow-mode-" version ".el")) (sha256 (base32 - "1d3aamx6qgqqpqijwsr02ggwrh67gfink1bir0692alfkm3zdddl")))) + "0cpga4ax635rfpj7y2vmh7ank0yw00dcy20gjg1mj74r97by8csf")))) (build-system emacs-build-system) (home-page "http://elpa.gnu.org/packages/rainbow-mode.html") (synopsis "Colorize color names in buffers") @@ -5599,7 +5599,7 @@ This package contains the library runtime.") (define-public emacs-nginx-mode (package (name "emacs-nginx-mode") - (version "1.1.4") + (version "1.1.9") (source (origin (method url-fetch) @@ -5609,7 +5609,7 @@ This package contains the library runtime.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1lvkj07kq0jkskr2f61vqb5rlrbnaz9a76ikq40w6925i2r970rr")))) + "0bzyrj6zz1hm67bkhw23bam7qc869s3zg7m1rb1c3aa4n0aw90cq")))) (build-system emacs-build-system) (home-page "https://github.com/ajc/nginx-mode") (synopsis "Emacs major mode for editing nginx config files") @@ -5814,7 +5814,7 @@ mode-line.") (define-public emacs-yasnippet (package (name "emacs-yasnippet") - (version "0.12.2") + (version "0.13.0") (source (origin (method url-fetch) (uri (string-append "https://github.com/joaotavora/yasnippet/" @@ -5822,7 +5822,7 @@ mode-line.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "01jabaz0g67bsziayrxgv74px55fx4nlrcl0csl8f1by2102pwc5")) + "12ls2x17agzbrj1xynjbmfa11igqxia4hj4fv6fpr66yci2r1plc")) (modules '((guix build utils))) (snippet '(begin @@ -7243,7 +7243,7 @@ or @code{treemacs}, but leveraging @code{Dired} to do the job of display.") (define-public emacs-which-key (package (name "emacs-which-key") - (version "3.0.2") + (version "3.3.0") (source (origin (method url-fetch) @@ -7252,7 +7252,7 @@ or @code{treemacs}, but leveraging @code{Dired} to do the job of display.") version ".tar.gz")) (sha256 (base32 - "1xvd70cwq9n31f28viyjxmr3nn8l153gsy6scpszvgvjxkiikv24")) + "1lsj314111cp2hjjwnv3f46ws1za6bm39rgy3l19044xf6a68j5w")) (file-name (string-append name "-" version ".tar.gz")))) (build-system emacs-build-system) (arguments @@ -7421,7 +7421,7 @@ created by @code{git format-patch}, from @code{magit}, @code{dired} and (define-public emacs-erc-hl-nicks (package (name "emacs-erc-hl-nicks") - (version "1.3.2") + (version "1.3.3") (source (origin (method url-fetch) @@ -7430,7 +7430,7 @@ created by @code{git format-patch}, from @code{magit}, @code{dired} and (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "01svpl9bps5kx4y1wnymakxya2cznqmlynvqv2r500wpnbxczrbs")))) + "1a1r2kc3688g8c2ybkpwh88kgmnqhg3h3032g2yn4zr9m0n3vpkr")))) (build-system emacs-build-system) (synopsis "Nickname highlighting for Emacs ERC") (description "@code{erc-hl-nicks} highlights nicknames in ERC, an IRC @@ -9736,7 +9736,7 @@ documentation.") (define-public emacs-hy-mode (package (name "emacs-hy-mode") - (version "1.0.2") + (version "1.0.3") (source (origin (method url-fetch) @@ -9745,7 +9745,7 @@ documentation.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0sbga36zkyhzrzcczsyjzll7b9qsa215pnlw51m4li2irm23jh17")))) + "0b4pvbr2hf77bq2vsyfsv653q0dab7qzq85wc7kdziw7687jdf2z")))) (build-system emacs-build-system) (propagated-inputs `(("emacs-dash" ,emacs-dash) diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 972dec3419..bb96bbe68a 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -246,8 +246,8 @@ canyons and wait for the long I-shaped block to clear four rows at a time.") (license license:gpl3+))) (define-public cataclysm-dda - (let ((commit "ad3b0c3d521292d119f97a83390e7acfe9e9e7f7") - (revision "1")) + (let ((commit "0b2c194e5c6a06f4fbf14a0ec1260e0f3cf2567c") + (revision "2")) (package (name "cataclysm-dda") ;; This denotes the version released after the 0.C release. @@ -260,7 +260,7 @@ canyons and wait for the long I-shaped block to clear four rows at a time.") (commit commit))) (sha256 (base32 - "1kdgbl8zqd53f5yilm2c9nyq3w6585yxl5jvgxy65dlpzxcqqj7y")) + "1yzsn0y2g27bvbxjvivjyjhkmf2w5na1qqw5qfkswcfqqwym2y33")) (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments @@ -1000,7 +1000,7 @@ Every puzzle has a complete solution, although there may be more than one.") (define-public retux (package (name "retux") - (version "1.3.5") + (version "1.3.6") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/retux/" @@ -1008,7 +1008,7 @@ Every puzzle has a complete solution, although there may be more than one.") version "-src.tar.gz")) (sha256 (base32 - "1pcrh3z16fl412r3k7xccrgika19ahb1xh90jihgl8yy7zza2i6p")))) + "01bidh4zisjp3nc436x0g85v60dvwb3ig37i7y01sa71j8fm4fmb")))) (build-system python-build-system) (arguments `(#:tests? #f ; no check target @@ -2137,7 +2137,7 @@ falling, themeable graphics and sounds, and replays.") (define-public wesnoth (package (name "wesnoth") - (version "1.14.4") + (version "1.14.5") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/wesnoth/wesnoth-" @@ -2146,7 +2146,7 @@ falling, themeable graphics and sounds, and replays.") name "-" version ".tar.bz2")) (sha256 (base32 - "1hw1ap8xxpdwyx1sf8fm1g75p6724y3hwb4kpvyqbsq7bwfwsb9i")))) + "1kgpj2f22nnx4mwd1zis3s5ny2983aasgqsmz7wnqaq7n6a7ac85")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; no check target @@ -5355,7 +5355,7 @@ You can save humanity and get programming skills!") (build-system cmake-build-system) (inputs `(("bzip2" ,bzip2) ("fluid-3" ,fluid-3) - ("fluidsynth" ,fluidsynth) + ("fluidsynth" ,fluidsynth-1) ;XXX: try using 2.x when updating ("gtk+3" ,gtk+) ("libgme" ,libgme) ("libjpeg" ,libjpeg) diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index 8dff95fc70..491f688c8e 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -787,7 +787,7 @@ programming langauage. It also contains the utility (define-public appstream-glib (package (name "appstream-glib") - (version "0.7.12") + (version "0.7.14") (source (origin (method url-fetch) (uri (string-append "https://people.freedesktop.org/~hughsient/" @@ -795,7 +795,7 @@ programming langauage. It also contains the utility "appstream-glib-" version ".tar.xz")) (sha256 (base32 - "1jcb2bggcic3iczr2hn8zp8a3c2hl1xjij0aawr7kwqmzh9b3jms")))) + "0n0s99jmx2sx5895lcvmfjwa9r0f06i71495dpn9v9frz4asvk3d")))) (build-system meson-build-system) (native-inputs `(("gettext" ,gettext-minimal) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index bdf4dfe711..ba37d6afa4 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -398,28 +398,30 @@ access the common Google services, and has full asynchronous support.") (define-public libgxps (package (name "libgxps") - (version "0.2.5") + (version "0.3.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) - (patches (search-patches "libgxps-CVE-2017-11590.patch")) (sha256 (base32 - "184r06s8g20cfigg7m169n42jjsc9wmzzlycr4g1fxxhr72r8x9y")))) - (build-system gnu-build-system) + "1bhgrpb6ndlp11qwr95g9piklmjcsca7bi04f8gy9ziipm1i6as1")))) + (build-system meson-build-system) (native-inputs `(("gobject-introspection" ,gobject-introspection) ("pkg-config" ,pkg-config))) (inputs - `(("cairo" ,cairo) - ("glib" ,glib) - ("libarchive" ,libarchive) - ("libjpeg" ,libjpeg) + `(("gtk+" ,gtk+) + ("libjpeg" ,libjpeg-turbo) ("lcms" ,lcms) ("libtiff" ,libtiff) ("nettle" ,nettle))) + (propagated-inputs + ;; In Requires of libgxps.pc. + `(("cairo" ,cairo) + ("glib" ,glib) + ("libarchive" ,libarchive))) (home-page "https://wiki.gnome.org/Projects/libgxps") (synopsis "GObject-based library for handling and rendering XPS documents") (description @@ -7226,6 +7228,71 @@ It supports ripping to any audio codec supported by a GStreamer plugin, such as mp3, Ogg Vorbis and FLAC") (license license:gpl2+))) +(define-public soundconverter + (package + (name "soundconverter") + (version "3.0.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://launchpad.net/soundconverter/trunk/" + version "/+download/" + "soundconverter-" version ".tar.xz")) + + (sha256 + (base32 + "1wrxf5py54xplrf97qp24pzbis0cvax5c6k0c7vr3z3ry8r7gd7c")) + (patches + (search-patches + "soundconverter-remove-gconf-dependency.patch")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:imported-modules ((guix build python-build-system) + (guix build glib-or-gtk-build-system) + ,@%gnu-build-system-modules) + + #:modules ((guix build glib-or-gtk-build-system) + (guix build utils) + ((guix build gnu-build-system) #:prefix gnu:) + ((guix build python-build-system) #:prefix python:)) + + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-POTFILES.in + (lambda _ + (substitute* "po/POTFILES.in" + ;; This file doesn't exist, so without removing it, the 'check + ;; phase fails for the po directory + (("soundconverter/gconfstore\\.py") "")))) + (add-after 'install 'wrap-soundconverter-for-python + (assoc-ref python:%standard-phases 'wrap)) + (add-after 'install 'wrap-soundconverter + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH")) + (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH"))) + (wrap-program (string-append out "/bin/soundconverter") + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)) + `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)))) + #t))))) + (native-inputs + `(("intltool" ,intltool) + ("pkg-config" ,pkg-config) + ("glib:bin" ,glib "bin"))) + (inputs + `(("gtk+" ,gtk+) + ("python" ,python) + ("python-pygobject" ,python-pygobject) + ("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base))) + (home-page "http://soundconverter.org/") + (synopsis "Convert between audio formats with a graphical interface") + (description + "SoundConverter supports converting between many audio formats including +Opus, Ogg Vorbis, FLAC and more. It supports parallel conversion, and +configurable file renaming. ") + (license license:gpl3))) + (define-public workrave (let ((commit "v1_10_21")) (package diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 93f5bb6aff..f6d72edeea 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1948,27 +1948,43 @@ designs.") license:asl2.0 license:cpl1.0))))) -(define-public javacc +(define-public javacc-4 (package (name "javacc") - (version "7.0.3") + (version "4.1") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/javacc/javacc/" - "archive/" version ".tar.gz")) - (file-name (string-append "javacc-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/javacc/javacc.git") + (commit "release_41"))) + (file-name (string-append "javacc-" version "-checkout")) (sha256 (base32 - "111xc9mnmc5a6qz6x3xbhqc07y1lg2b996ggzw0hrblg42zya9xf")))) + "07ysav7j8r1c6h8qxrgqk6lwdp74ly0ad1935lragxml0qqc3ka0")) + (modules '((guix build utils))) + ;; delete bundled jars + (snippet '(begin (delete-file-recursively "lib") #t)))) (build-system ant-build-system) + ;; Tests fail with + ;; /tmp/guix-build-javacc-4.1.drv-0/source/test/javacodeLA/build.xml:60: + ;; JAVACODE failed (arguments - `(#:test-target "test" + `(#:tests? #f #:phases (modify-phases %standard-phases - (add-after 'unpack 'delete-bundled-libs + ;; Delete tests to avoid build failure (we don't run them anyway). + (add-after 'unpack 'delete-tests (lambda _ - (delete-file-recursively "lib") #t)) - (replace 'install (install-jars "target"))))) + (for-each delete-file + '("src/org/javacc/JavaCCTestCase.java" + "src/org/javacc/parser/ExpansionTest.java" + "src/org/javacc/parser/OptionsTest.java" + "src/org/javacc/jjtree/JJTreeOptionsTest.java")) + (for-each delete-file-recursively + '("src/org/javacc/parser/test" + "src/org/javacc/jjdoc/test")) + #t)) + (replace 'install (install-jars "bin/lib"))))) (home-page "https://javacc.org/") (synopsis "Java parser generator") (description "Java Compiler Compiler (JavaCC) is the most popular parser @@ -1980,29 +1996,34 @@ as tree building (via a tool called JJTree included with JavaCC), actions, debugging, etc.") (license license:bsd-3))) -(define-public javacc-4 - (package (inherit javacc) - (version "4.1") +(define-public javacc + (package + (inherit javacc-4) + (version "7.0.3") (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/javacc/javacc.git") - (commit "release_41"))) - (file-name (string-append "javacc-" version "-checkout")) + (method url-fetch) + (uri (string-append "https://github.com/javacc/javacc/" + "archive/" version ".tar.gz")) + (file-name (string-append "javacc-" version ".tar.gz")) (sha256 (base32 - "07ysav7j8r1c6h8qxrgqk6lwdp74ly0ad1935lragxml0qqc3ka0")))) - ;; Tests fail with - ;; /tmp/guix-build-javacc-4.1.drv-0/source/test/javacodeLA/build.xml:60: - ;; JAVACODE failed - (arguments - `(#:tests? #f + "111xc9mnmc5a6qz6x3xbhqc07y1lg2b996ggzw0hrblg42zya9xf")) + (modules '((guix build utils))) + ;; delete bundled jars + (snippet '(begin (for-each delete-file-recursively + '("bootstrap" "lib")) + #t)))) + (arguments + `(#:make-flags ; bootstrap from javacc-4 + (list (string-append "-Dbootstrap-jar=" + (assoc-ref %build-inputs "javacc") + "/share/java/javacc.jar")) + #:test-target "test" #:phases (modify-phases %standard-phases - (add-after 'unpack 'delete-bundled-libs - (lambda _ - (delete-file-recursively "lib") #t)) - (replace 'install (install-jars "bin/lib"))))))) + (replace 'install (install-jars "target"))))) + (native-inputs + `(("javacc" ,javacc-4))))) ;; This is the last 3.x release of ECJ (define-public java-ecj-3 diff --git a/gnu/packages/kodi.scm b/gnu/packages/kodi.scm index 86ce914d53..21e7b12d3e 100644 --- a/gnu/packages/kodi.scm +++ b/gnu/packages/kodi.scm @@ -317,6 +317,11 @@ generator library for C++.") (string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))) + ;; Don't phone home to check for updates.¬ + (substitute* "system/addon-manifest.xml"¬ + (("<addon optional=\\\"true\\\">service.xbmc.versioncheck</addon>") + "")) + ;; Let's disable some tests that are known not to work here. ;; Doing this later while in the cmake "../build" directory ;; is trickier. diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 83cdd9f012..f058cc79a2 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -399,8 +399,8 @@ It has been modified to remove all non-free binary blobs.") ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.18.14") -(define %linux-libre-hash "1gwwx8l283w8v1zylw2haqahvjns5dzqxx9li2586nnl8cfmfnwc") +(define %linux-libre-version "4.18.15") +(define %linux-libre-hash "0v6xs85qn1iy2dj3m6s3cfnhbwb1mjy21d9lagjni8dg3jic26hf") (define %linux-libre-4.18-patches (list %boot-logo-patch @@ -430,8 +430,8 @@ It has been modified to remove all non-free binary blobs.") #:patches %linux-libre-4.18-patches #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.76") -(define %linux-libre-4.14-hash "1y5zqf84ngb6f5f85xpd4bdy6mlxr52x19bx3mdrp82awc9fvr7q") +(define %linux-libre-4.14-version "4.14.77") +(define %linux-libre-4.14-hash "18y81rga2lhsk7bjckglxz52pvnzf103ar0z2zj611g37wyf83r5") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version @@ -440,8 +440,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.133" - "1vr94czdv5alzsgm2k1r6wqm01r2zafrayjn10l6kdr4g7aga488" + (make-linux-libre "4.9.134" + "0f5qif27k0mhc57d98arbfkq7zlvg0ra2gz6g5fasblyjz3j7w7h" %intel-compatible-systems #:configuration-file kernel-config)) @@ -3671,7 +3671,7 @@ The collection contains a set of bandwidth and latency benchmark such as: (package (name "rng-tools") (home-page "https://github.com/nhorman/rng-tools") - (version "6.5") + (version "6.6") (source (origin (method git-fetch) (uri (git-reference (url home-page) @@ -3679,7 +3679,7 @@ The collection contains a set of bandwidth and latency benchmark such as: (file-name (git-file-name name version)) (sha256 (base32 - "11kw1rcgzmgzwk7g1w2g0nzjraqb0pf24gxpy50k4ls2qxslw3rk")))) + "0c32sxfvngdjzfmxn5ngc5yxwi8ij3yl216nhzyz9r31qi3m14v7")))) (build-system gnu-build-system) (arguments `(;; Avoid using OpenSSL, curl, and libxml2, reducing the closure by 166 MiB. diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm index 8b8b9229b5..89ccdb720a 100644 --- a/gnu/packages/lisp.scm +++ b/gnu/packages/lisp.scm @@ -31,6 +31,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix hg-download) #:use-module (guix utils) #:use-module (guix build-system gnu) #:use-module (guix build-system asdf) @@ -61,8 +62,12 @@ #:use-module (gnu packages texinfo) #:use-module (gnu packages version-control) #:use-module (gnu packages xorg) + #:use-module (gnu packages databases) + #:use-module (gnu packages gtk) + #:use-module (gnu packages webkit) #:use-module (ice-9 match) - #:use-module (srfi srfi-1)) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-19)) (define (asdf-substitutions lisp) ;; Prepend XDG_DATA_DIRS/LISP-bundle-systems to ASDF's @@ -1526,3 +1531,2001 @@ based on a subset of MDL. Confusion is a MDL interpreter that works just well enough to play the original mainframe Zork all the way through.") (home-page "http://www.russotto.net/git/mrussotto/confusion/src/master/src/README") (license license:gpl3+)))) + +(define-public sbcl-cl-strings + (let ((revision "1") + (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae")) + (package + (name "sbcl-cl-strings") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/diogoalexandrefranco/cl-strings") + (commit commit))) + (sha256 + (base32 + "00754mfaqallj480lwd346nkfb6ra8pa8xcxcylf4baqn604zlmv")) + (file-name (string-append "cl-strings-" version "-checkout")))) + (build-system asdf-build-system/sbcl) + (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp") + (description + "@command{cl-strings} is a small, portable, dependency-free set of +utilities that make it even easier to manipulate text in Common Lisp. It has +100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp.") + (home-page "https://github.com/diogoalexandrefranco/cl-strings") + (license license:expat)))) + +(define-public cl-strings + (sbcl-package->cl-source-package sbcl-cl-strings)) + +(define-public ecl-cl-strings + (sbcl-package->ecl-package sbcl-cl-strings)) + +(define-public sbcl-trivial-features + (package + (name "sbcl-trivial-features") + (version "0.8") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/trivial-features/trivial-features/archive/v" + version ".tar.gz")) + (sha256 + (base32 "0db1awn6jyhcfhyfvpjvfziprmq85cigf19mwbvaprhblydsag3c")) + (file-name (string-append "trivial-features-" version ".tar.gz")))) + (build-system asdf-build-system/sbcl) + (arguments '(#:tests? #f)) + (home-page "http://cliki.net/trivial-features") + (synopsis "Ensures consistency of @code{*FEATURES*} in Common Lisp") + (description "Trivial-features ensures that @code{*FEATURES*} is +consistent across multiple Common Lisp implementations.") + (license license:expat))) + +(define-public cl-trivial-features + (sbcl-package->cl-source-package sbcl-trivial-features)) + +(define-public ecl-trivial-features + (sbcl-package->ecl-package sbcl-trivial-features)) + +(define-public sbcl-hu.dwim.asdf + (let ((commit "170b0e4fdde3df0bc537327e7600575daac9e141")) + (package + (name "sbcl-hu.dwim.asdf") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/nixeagle/hu.dwim.asdf") + (commit commit))) + (sha256 + (base32 "10ax7p8y6vjqxzcq125p62kf68zi455a65ysgk0kl1f2v839c33v")) + (file-name (git-file-name "hu.dwim.asdf" version)))) + (build-system asdf-build-system/sbcl) + (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.asdf") + (synopsis "Extensions to ASDF") + (description "Various ASDF extensions such as attached test and +documentation system, explicit development support, etc.") + (license license:public-domain)))) + +(define-public cl-hu.dwim.asdf + (sbcl-package->cl-source-package sbcl-hu.dwim.asdf)) + +(define-public ecl-hu.dwim.asdf + (sbcl-package->ecl-package sbcl-hu.dwim.asdf)) + +(define-public sbcl-hu.dwim.stefil + (let ((commit "ab6d1aa8995878a1b66d745dfd0ba021090bbcf9")) + (package + (name "sbcl-hu.dwim.stefil") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://gitlab.common-lisp.net/xcvb/hu.dwim.stefil.git") + (commit commit))) + (sha256 + (base32 "1d8yccw65zj3zh46cbi3x6nmn1dwdb76s9d0av035077mvyirqqp")) + (file-name (git-file-name "hu.dwim.stefil" version)))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("asdf:cl-hu.dwim.asdf" ,sbcl-hu.dwim.asdf))) + (inputs + `(("sbcl-alexandria" ,sbcl-alexandria))) + (home-page "https://hub.darcs.net/hu.dwim/hu.dwim.stefil") + (synopsis "Simple test framework") + (description "Stefil is a simple test framework for Common Lisp, +with a focus on interactive development.") + (license license:public-domain)))) + +(define-public cl-hu.dwim.stefil + (sbcl-package->cl-source-package sbcl-hu.dwim.stefil)) + +(define-public ecl-hu.dwim.stefil + (sbcl-package->ecl-package sbcl-hu.dwim.stefil)) + +(define-public sbcl-babel + (package + (name "sbcl-babel") + (version "0.5.0") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/cl-babel/babel/archive/v" + version ".tar.gz")) + (sha256 + (base32 "189kgbmslh36xx0d2i1g6a7mcvjryvjzkdlnhilqy5xs7hkyqirq")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("tests:cl-hu.dwim.stefil" ,sbcl-hu.dwim.stefil))) + (inputs + `(("sbcl-alexandria" ,sbcl-alexandria) + ("sbcl-trivial-features" ,sbcl-trivial-features))) + (home-page "https://common-lisp.net/project/babel/") + (synopsis "Charset encoding and decoding library") + (description "Babel is a charset encoding and decoding library, not unlike +GNU libiconv, but completely written in Common Lisp.") + (license license:expat))) + +(define-public cl-babel + (sbcl-package->cl-source-package sbcl-babel)) + +(define-public ecl-babel + (sbcl-package->ecl-package sbcl-babel)) + +(define-public sbcl-cl-yacc + (package + (name "sbcl-cl-yacc") + (version "0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jech/cl-yacc") + (commit (string-append "cl-yacc-" version)))) + (sha256 + (base32 + "16946pzf8vvadnyfayvj8rbh4zjzw90h0azz2qk1mxrvhh5wklib")) + (file-name (string-append "cl-yacc-" version "-checkout")))) + (build-system asdf-build-system/sbcl) + (arguments + `(#:asd-file "yacc.asd" + #:asd-system-name "yacc")) + (synopsis "LALR(1) parser generator for Common Lisp, similar in spirit to Yacc") + (description + "CL-Yacc is a LALR(1) parser generator for Common Lisp, similar in spirit +to AT&T Yacc, Berkeley Yacc, GNU Bison, Zebu, lalr.cl or lalr.scm. + +CL-Yacc uses the algorithm due to Aho and Ullman, which is the one also used +by AT&T Yacc, Berkeley Yacc and Zebu. It does not use the faster algorithm due +to DeRemer and Pennello, which is used by Bison and lalr.scm (not lalr.cl).") + (home-page "https://www.irif.fr/~jch//software/cl-yacc/") + (license license:expat))) + +(define-public cl-yacc + (sbcl-package->cl-source-package sbcl-cl-yacc)) + +(define-public ecl-cl-yacc + (sbcl-package->ecl-package sbcl-cl-yacc)) + +(define-public sbcl-jpl-util + (let ((commit "0311ed374e19a49d43318064d729fe3abd9a3b62")) + (package + (name "sbcl-jpl-util") + (version "20151005") + (source + (origin + (method git-fetch) + (uri (git-reference + ;; Quicklisp uses this fork. + (url "https://github.com/hawkir/cl-jpl-util") + (commit commit))) + (file-name + (git-file-name "jpl-util" version)) + (sha256 + (base32 + "0nc0rk9n8grkg3045xsw34whmcmddn2sfrxki4268g7kpgz0d2yz")))) + (build-system asdf-build-system/sbcl) + (synopsis "Collection of Common Lisp utility functions and macros") + (description + "@command{cl-jpl-util} is a collection of Common Lisp utility functions +and macros, primarily for software projects written in CL by the author.") + (home-page "https://www.thoughtcrime.us/software/cl-jpl-util/") + (license license:isc)))) + +(define-public cl-jpl-util + (sbcl-package->cl-source-package sbcl-jpl-util)) + +(define-public ecl-jpl-util + (sbcl-package->ecl-package sbcl-jpl-util)) + +(define-public sbcl-jpl-queues + (package + (name "sbcl-jpl-queues") + (version "0.1") + (source + (origin + (method url-fetch) + (uri (string-append + "http://www.thoughtcrime.us/software/jpl-queues/jpl-queues-" + version + ".tar.gz")) + (sha256 + (base32 + "1wvvv7j117h9a42qaj1g4fh4mji28xqs7s60rn6d11gk9jl76h96")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("jpl-util" ,sbcl-jpl-util) + ("bordeaux-threads" ,sbcl-bordeaux-threads))) + (arguments + ;; Tests seem to be broken. + `(#:tests? #f)) + (synopsis "Common Lisp library implementing a few different kinds of queues") + (description + "A Common Lisp library implementing a few different kinds of queues: + +@itemize +@item Bounded and unbounded FIFO queues. +@item Lossy bounded FIFO queues that drop elements when full. +@item Unbounded random-order queues that use less memory than unbounded FIFO queues. +@end itemize + +Additionally, a synchronization wrapper is provided to make any queue +conforming to the @command{jpl-queues} API thread-safe for lightweight +multithreading applications. (See Calispel for a more sophisticated CL +multithreaded message-passing library with timeouts and alternation among +several blockable channels.)") + (home-page "https://www.thoughtcrime.us/software/jpl-queues/") + (license license:isc))) + +(define-public cl-jpl-queues + (sbcl-package->cl-source-package sbcl-jpl-queues)) + +(define-public ecl-jpl-queues + (sbcl-package->ecl-package sbcl-jpl-queues)) + +(define-public sbcl-eos + (let ((commit "b0faca83781ead9a588661e37bd47f90362ccd94")) + (package + (name "sbcl-eos") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/adlai/Eos") + (commit commit))) + (sha256 + (base32 + "1bq8cfg087iyxmxi1mwgx5cfgy3b8ydrf81xljcis8qbgb2vszph")) + (file-name (git-file-name "eos" version)))) + (build-system asdf-build-system/sbcl) + (synopsis "Unit Testing for Common Lisp") + (description + "Eos was a unit testing library for Common Lisp. +It began as a fork of FiveAM; however, FiveAM development has continued, while +that of Eos has not. Thus, Eos is now deprecated in favor of FiveAM.") + (home-page "https://github.com/adlai/Eos") + (license license:expat)))) + +(define-public cl-eos + (sbcl-package->cl-source-package sbcl-eos)) + +(define-public ecl-eos + (sbcl-package->ecl-package sbcl-eos)) + +(define-public sbcl-esrap + (let ((commit "133be8b05c2aae48696fe5b739eea2fa573fa48d")) + (package + (name "sbcl-esrap") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nikodemus/esrap") + (commit commit))) + (sha256 + (base32 + "02d5clihsdryhf7pix8c5di2571fdsffh75d40fkzhws90r5mksl")) + (file-name (git-file-name "esrap" version)))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("eos" ,sbcl-eos))) ;For testing only. + (inputs + `(("alexandria" ,sbcl-alexandria))) + (synopsis "Common Lisp packrat parser") + (description + "A packrat parser for Common Lisp. +In addition to regular Packrat / Parsing Grammar / TDPL features ESRAP supports: + +@itemize +@item dynamic redefinition of nonterminals +@item inline grammars +@item semantic predicates +@item introspective facilities (describing grammars, tracing, setting breaks) +@end itemize\n") + (home-page "https://nikodemus.github.io/esrap/") + (license license:expat)))) + +(define-public cl-esrap + (sbcl-package->cl-source-package sbcl-esrap)) + +(define-public ecl-esrap + (sbcl-package->ecl-package sbcl-esrap)) + +(define-public sbcl-split-sequence + (package + (name "sbcl-split-sequence") + (version "1.4.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sharplispers/split-sequence") + (commit (string-append "v" version)))) + (sha256 + (base32 + "0c3zp6b7fmmp93sfhq112ind4zkld49ycw68z409xpnz3gc0wpf0")) + (file-name (git-file-name "split-sequence" version)))) + (build-system asdf-build-system/sbcl) + (arguments + ;; TODO: Tests seem to be broken. + ;; https://github.com/sharplispers/split-sequence/issues/8 + `(#:tests? #f)) + (synopsis "Member of the Common Lisp Utilities family of programs") + (description + "Splits sequence into a list of subsequences delimited by objects +satisfying the test.") + (home-page "https://cliki.net/split-sequence") + (license license:expat))) + +(define-public cl-split-sequence + (sbcl-package->cl-source-package sbcl-split-sequence)) + +(define-public ecl-split-sequence + (sbcl-package->ecl-package sbcl-split-sequence)) + +(define-public sbcl-html-encode + (package + (name "sbcl-html-encode") + (version "1.2") + (source + (origin + (method url-fetch) + (uri (string-append + "http://beta.quicklisp.org/archive/html-encode/2010-10-06/html-encode-" + version ".tgz")) + (sha256 + (base32 + "06mf8wn95yf5swhmzk4vp0xr4ylfl33dgfknkabbkd8n6jns8gcf")) + (file-name (string-append "colorize" version "-checkout")))) + (build-system asdf-build-system/sbcl) + (synopsis "Common Lisp library for encoding text in various web-savvy encodings") + (description + "A library for encoding text in various web-savvy encodings.") + (home-page "http://quickdocs.org/html-encode/") + (license license:expat))) + +(define-public cl-html-encode + (sbcl-package->cl-source-package sbcl-html-encode)) + +(define-public ecl-html-encode + (sbcl-package->ecl-package sbcl-html-encode)) + +(define-public sbcl-colorize + (let ((commit "ea676b584e0899cec82f21a9e6871172fe3c0eb5")) + (package + (name "sbcl-colorize") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kingcons/colorize") + (commit commit))) + (sha256 + (base32 + "1pdg4kiaczmr3ivffhirp7m3lbr1q27rn7dhaay0vwghmi31zcw9")) + (file-name (git-file-name "colorize" version)))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("split-sequence" ,sbcl-split-sequence) + ("html-encode" ,sbcl-html-encode))) + (synopsis "Common Lisp for syntax highlighting") + (description + "@command{colorize} is a Lisp library for syntax highlighting +supporting the following languages: Common Lisp, Emacs Lisp, Scheme, Clojure, +C, C++, Java, Python, Erlang, Haskell, Objective-C, Diff, Webkit.") + (home-page "https://github.com/kingcons/colorize") + ;; TODO: Missing license? + (license license:expat)))) + +(define-public cl-colorize + (sbcl-package->cl-source-package sbcl-colorize)) + +(define-public ecl-colorize + (sbcl-package->ecl-package sbcl-colorize)) + +(define-public sbcl-3bmd + (let ((commit "192ea13435b605a96ef607df51317056914cabbd")) + (package + (name "sbcl-3bmd") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/3b/3bmd") + (commit commit))) + (sha256 + (base32 + "1rgv3gi7wf963ikmmpk132wgn0icddf226gq3bmcnk1fr3v9gf2f")) + (file-name (git-file-name "3bmd" version)))) + (build-system asdf-build-system/sbcl) + (arguments + ;; FIXME: We need to specify the name because the build-system thinks + ;; "3" is a version marker. + `(#:asd-system-name "3bmd")) + (inputs + `(("esrap" ,sbcl-esrap) + ("split-sequence" ,sbcl-split-sequence))) + (synopsis "Markdown processor in Command Lisp using esrap parser") + (description + "Common Lisp Markdown -> HTML converter, using @command{esrap} for +parsing, and grammar based on @command{peg-markdown}.") + (home-page "https://github.com/3b/3bmd") + (license license:expat)))) + +(define-public cl-3bmd + (sbcl-package->cl-source-package sbcl-3bmd)) + +(define-public ecl-3bmd + (sbcl-package->ecl-package sbcl-3bmd)) + +(define-public sbcl-3bmd-ext-code-blocks + (let ((commit "192ea13435b605a96ef607df51317056914cabbd")) + (package + (inherit sbcl-3bmd) + (name "sbcl-3bmd-ext-code-blocks") + (arguments + `(#:asd-system-name "3bmd-ext-code-blocks" + #:asd-file "3bmd-ext-code-blocks.asd")) + (inputs + `(("3bmd" ,sbcl-3bmd) + ("colorize" ,sbcl-colorize))) + (synopsis "3bmd extension which adds support for GitHub-style fenced +code blocks") + (description + "3bmd extension which adds support for GitHub-style fenced code blocks, +with @command{colorize} support.")))) + +(define-public cl-3bmd-ext-code-blocks + (sbcl-package->cl-source-package sbcl-3bmd-ext-code-blocks)) + +(define-public ecl-3bmd-ext-code-blocks + (sbcl-package->ecl-package sbcl-3bmd-ext-code-blocks)) + +(define-public sbcl-cl-fad + (package + (name "sbcl-cl-fad") + (version "0.7.5") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/edicl/cl-fad/") + (commit (string-append "v" version)))) + (sha256 + (base32 + "1l1qmk9z57q84bz5r04sxsksggsnd7dgkxlybzh9imz6ma7sm52m")) + (file-name (string-append "cl-fad" version "-checkout")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("bordeaux-threads" ,sbcl-bordeaux-threads))) + (synopsis "Portable pathname library for Common Lisp") + (description + "CL-FAD (for \"Files and Directories\") is a thin layer atop Common +Lisp's standard pathname functions. It is intended to provide some +unification between current CL implementations on Windows, OS X, Linux, and +Unix. Most of the code was written by Peter Seibel for his book Practical +Common Lisp.") + (home-page "https://edicl.github.io/cl-fad/") + (license license:bsd-2))) + +(define-public cl-fad + (sbcl-package->cl-source-package sbcl-cl-fad)) + +(define-public ecl-cl-fad + (sbcl-package->ecl-package sbcl-cl-fad)) + +(define-public sbcl-rt + (package + (name "sbcl-rt") + (version "1990.12.19") + (source + (origin + (method url-fetch) + (uri (string-append "http://beta.quicklisp.org/archive/rt/2010-10-06/rt-" + "20101006-git" ".tgz")) + (sha256 + (base32 + "1jncar0xwkqk8yrc2dln389ivvgzs7ijdhhs3zpfyi5d21f0qa1v")))) + (build-system asdf-build-system/sbcl) + (synopsis "MIT Regression Tester") + (description + "RT provides a framework for writing regression test suites.") + (home-page "https://github.com/sharplispers/nibbles") + (license license:unlicense))) + +(define-public cl-rt + (sbcl-package->cl-source-package sbcl-rt)) + +(define-public ecl-rt + (sbcl-package->ecl-package sbcl-rt)) + +(define-public sbcl-nibbles + (package + (name "sbcl-nibbles") + (version "0.14") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sharplispers/nibbles/") + (commit (string-append "v" version)))) + (sha256 + (base32 + "1v7qfgpvdr6nz7v63dj69d26dis0kff3rd8xamr1llfdvza2pm8f")) + (file-name (git-file-name "nibbles" version)))) + (build-system asdf-build-system/sbcl) + (native-inputs + ;; Tests only. + `(("rt" ,sbcl-rt))) + (synopsis "Common Lisp library for accessing octet-addressed blocks of data") + (description + "When dealing with network protocols and file formats, it's common to +have to read or write 16-, 32-, or 64-bit datatypes in signed or unsigned +flavors. Common Lisp sort of supports this by specifying :element-type for +streams, but that facility is underspecified and there's nothing similar for +read/write from octet vectors. What most people wind up doing is rolling their +own small facility for their particular needs and calling it a day. + +This library attempts to be comprehensive and centralize such +facilities. Functions to read 16-, 32-, and 64-bit quantities from octet +vectors in signed or unsigned flavors are provided; these functions are also +SETFable. Since it's sometimes desirable to read/write directly from streams, +functions for doing so are also provided. On some implementations, +reading/writing IEEE singles/doubles (i.e. single-float and double-float) will +also be supported.") + (home-page "https://github.com/sharplispers/nibbles") + (license license:bsd-3))) + +(define-public cl-nibbles + (sbcl-package->cl-source-package sbcl-nibbles)) + +(define-public ecl-nibbles + (sbcl-package->ecl-package sbcl-nibbles)) + +(define-public sbcl-ironclad + (package + (name "sbcl-ironclad") + (version "0.42") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sharplispers/ironclad/") + (commit (string-append "v" version)))) + (sha256 + (base32 + "1wjcb9vpybxjrmch7f7s78a5abxmnknbd4fl49dl5lz8a3fc8vf0")) + (file-name (string-append "ironblad" version "-checkout")))) + (build-system asdf-build-system/sbcl) + (native-inputs + ;; Tests only. + `(("rt" ,sbcl-rt))) + (inputs + `(("flexi-streams" ,sbcl-flexi-streams) + ("nibbles" ,sbcl-nibbles))) + (synopsis "Cryptographic toolkit written in Common Lisp") + (description + "Ironclad is a cryptography library written entirely in Common Lisp. +It includes support for several popular ciphers, digests, MACs and public key +cryptography algorithms. For several implementations that support Gray +streams, support is included for convenient stream wrappers.") + (home-page "https://github.com/sharplispers/ironclad") + (license license:bsd-3))) + +(define-public cl-ironclad + (sbcl-package->cl-source-package sbcl-ironclad)) + +(define-public ecl-ironclad + (sbcl-package->ecl-package sbcl-ironclad)) + +(define-public sbcl-named-readtables + (let ((commit "4dfb89fa1af6b305b6492b8af042f5190c11e9fc") + (revision "1")) + (package + (name "sbcl-named-readtables") + (version (string-append "0.9-" revision "." (string-take commit 7))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/melisgl/named-readtables.git") + (commit commit))) + (sha256 + (base32 "083kgh5462iqbb4px6kq8s7sggvpvkm36hx4qi9rnaw53b6ilqkk")) + (file-name (git-file-name "named-readtables" version)))) + (build-system asdf-build-system/sbcl) + (arguments + ;; Tests seem to be broken. + `(#:tests? #f)) + (home-page "https://github.com/melisgl/named-readtables/") + (synopsis "Library that creates a namespace for named readtables") + (description "Named readtables is a library that creates a namespace for +named readtables, which is akin to package namespacing in Common Lisp.") + (license license:bsd-3)))) + +(define-public cl-named-readtables + (sbcl-package->cl-source-package sbcl-named-readtables)) + +(define-public ecl-named-readtables + (sbcl-package->ecl-package sbcl-named-readtables)) + +(define-public sbcl-pythonic-string-reader + (let ((commit "47a70ba1e32362e03dad6ef8e6f36180b560f86a")) + (package + (name "sbcl-pythonic-string-reader") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/smithzvk/pythonic-string-reader/") + (commit commit))) + (sha256 + (base32 "1b5iryqw8xsh36swckmz8rrngmc39k92si33fgy5pml3n9l5rq3j")) + (file-name (git-file-name "pythonic-string-reader" version)))) + (build-system asdf-build-system/sbcl) + (inputs + `(("named-readtables" ,sbcl-named-readtables))) + (home-page "https://github.com/smithzvk/pythonic-string-reader") + (synopsis "Read table modification inspired by Python's three quote strings") + (description "This piece of code sets up some reader macros that make it +simpler to input string literals which contain backslashes and double quotes +This is very useful for writing complicated docstrings and, as it turns out, +writing code that contains string literals that contain code themselves.") + (license license:bsd-3)))) + +(define-public cl-pythonic-string-reader + (sbcl-package->cl-source-package sbcl-pythonic-string-reader)) + +(define-public ecl-pythonic-string-reader + (sbcl-package->ecl-package sbcl-pythonic-string-reader)) + +(define-public sbcl-slime-swank + (package + (name "sbcl-slime-swank") + (version "2.22") + (source + (origin + (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + ;; (url "https://github.com/slime/slime/") + ;; (commit "841f61467c03dea9f38ff9d5af0e21a8aa29e8f7") + ;; REVIEW: Do we need sionescu's patch to package SWANK? + (url "https://github.com/sionescu/slime/") + ;; (commit "swank-asdf") + (commit "2f7c3fcb3ac7d50d844d5c6ca0e89b52a45e1d3a"))) + (sha256 + (base32 + ;; "065bc4y6iskazdfwlhgcjlzg9bi2hyjbhmyjw3461506pgkj08vi" + "0pkmg94wn4ii1zhlrncn44mdc5i6c5v0i9gbldx4dwl2yy7ibz5c")) + (modules '((guix build utils))) + (snippet + '(begin + (substitute* "contrib/swank-listener-hooks.lisp" + ((":compile-toplevel :load-toplevel ") "")) + (substitute* "contrib/swank-presentations.lisp" + ((":compile-toplevel :load-toplevel ") "")) + (substitute* "swank.asd" + ((":file \"packages\".*" all) + (string-append all "(:file \"swank-loader-asdf\")\n"))) + (substitute* "swank-loader-asdf.lisp" + ((":common-lisp" all) (string-append all " #:asdf"))) + #t)))) + (build-system asdf-build-system/sbcl) + (arguments + `(#:asd-file "swank.asd" + #:asd-system-name "swank")) + (home-page "https://github.com/slime/slime") + (synopsis "Common Lisp Swank server") + (description + "This is only useful if you want to start a Swank server in a Lisp +processes that doesn't run under Emacs. Lisp processes created by +@command{M-x slime} automatically start the server.") + (license (list license:gpl2+ license:public-domain)))) + +(define-public sbcl-mgl-pax + (let ((commit "818448418d6b9de74620f606f5b23033c6082769")) + (package + (name "sbcl-mgl-pax") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/melisgl/mgl-pax") + (commit commit))) + (sha256 + (base32 + "1p97zfkh130bdxqqxwaw2j9psv58751wakx7czbfpq410lg7dd7i")) + (file-name (git-file-name "mgl-pax" version)))) + (build-system asdf-build-system/sbcl) + (inputs + `(("3bmd" ,sbcl-3bmd) + ("3bmd-ext-code-blocks" ,sbcl-3bmd-ext-code-blocks) + ("babel" ,sbcl-babel) + ("cl-fad" ,sbcl-cl-fad) + ("ironclad" ,sbcl-ironclad) + ("named-readtables" ,sbcl-named-readtables) + ("pythonic-string-reader" ,sbcl-pythonic-string-reader) + ("swank" ,sbcl-slime-swank))) + (synopsis "Exploratory programming environment and documentation generator") + (description + "PAX provides an extremely poor man's Explorable Programming +environment. Narrative primarily lives in so called sections that mix markdown +docstrings with references to functions, variables, etc, all of which should +probably have their own docstrings. + +The primary focus is on making code easily explorable by using SLIME's +@command{M-.} (@command{slime-edit-definition}). See how to enable some +fanciness in Emacs Integration. Generating documentation from sections and all +the referenced items in Markdown or HTML format is also implemented. + +With the simplistic tools provided, one may accomplish similar effects as with +Literate Programming, but documentation is generated from code, not vice versa +and there is no support for chunking yet. Code is first, code must look +pretty, documentation is code.") + (home-page "http://quotenil.com/") + (license license:expat)))) + +(define-public cl-mgl-pax + (sbcl-package->cl-source-package sbcl-mgl-pax)) + +(define-public ecl-mgl-pax + (sbcl-package->ecl-package sbcl-mgl-pax)) + +(define-public sbcl-lisp-unit + (let ((commit "89653a232626b67400bf9a941f9b367da38d3815")) + (package + (name "sbcl-lisp-unit") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OdonataResearchLLC/lisp-unit") + (commit commit))) + (sha256 + (base32 + "0p6gdmgr7p383nvd66c9y9fp2bjk4jx1lpa5p09g43hr9y9pp9ry")) + (file-name (git-file-name "lisp-unit" version)))) + (build-system asdf-build-system/sbcl) + (synopsis "Common Lisp Test framework inspired by JUnit to be simple of use") + (description + "@command{lisp-unit} is a Common Lisp library that supports unit +testing. It is an extension of the library written by Chris Riesbeck.") + (home-page "https://github.com/OdonataResearchLLC/lisp-unit") + (license license:expat)))) + +(define-public cl-lisp-unit + (sbcl-package->cl-source-package sbcl-lisp-unit)) + +(define-public ecl-lisp-unit + (sbcl-package->ecl-package sbcl-lisp-unit)) + +(define-public sbcl-anaphora + (package + (name "sbcl-anaphora") + (version "0.9.6") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tokenrove/anaphora") + (commit version))) + (sha256 + (base32 + "19wfrk3asimznkli0x2rfy637hwpdgqyvwj3vhq9x7vjvyf5vv6x")) + (file-name (git-file-name "anaphora" version)))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("rt" ,sbcl-rt))) + (synopsis "The anaphoric macro collection from Hell") + (description + "Anaphora is the anaphoric macro collection from Hell: it includes many +new fiends in addition to old friends like @command{aif} and +@command{awhen}.") + (home-page "https://github.com/tokenrove/anaphora") + (license license:public-domain))) + +(define-public cl-anaphora + (sbcl-package->cl-source-package sbcl-anaphora)) + +(define-public ecl-anaphora + (sbcl-package->ecl-package sbcl-anaphora)) + +(define-public sbcl-lift + (let ((commit "7d49a66c62759535624037826891152223d4206c")) + (package + (name "sbcl-lift") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/gwkkwg/lift") + (commit commit))) + (sha256 + (base32 + "127v5avpz1i4m0lkaxqrq8hrl69rdazqaxf6s8awf0nd7wj2g4dp")) + (file-name (git-file-name "lift" version)))) + (build-system asdf-build-system/sbcl) + (arguments + ;; The tests require a debugger, but we run with the debugger disabled. + '(#:tests? #f + #:phases + (modify-phases %standard-phases + ;; Do this to ensure the 'reset-gzip-timestamps phase works. + (add-after 'unpack 'make-gzips-writeable + (lambda _ + (for-each (lambda (file) + (chmod file #o755)) + (find-files "." "\\.gz$"))))))) + (synopsis "LIsp Framework for Testing") + (description + "The LIsp Framework for Testing (LIFT) is a unit and system test tool for LISP. +Though inspired by SUnit and JUnit, it's built with Lisp in mind. In LIFT, +testcases are organized into hierarchical testsuites each of which can have +its own fixture. When run, a testcase can succeed, fail, or error. LIFT +supports randomized testing, benchmarking, profiling, and reporting.") + (home-page "https://github.com/gwkkwg/lift") + (license license:x11-style)))) + +(define-public cl-lift + (sbcl-package->cl-source-package sbcl-lift)) + +(define-public ecl-lift + (sbcl-package->ecl-package sbcl-lift)) + +(define-public sbcl-let-plus + (let ((commit "5f14af61d501ecead02ec6b5a5c810efc0c9fdbb")) + (package + (name "sbcl-let-plus") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/sharplispers/let-plus") + (commit commit))) + (sha256 + (base32 + "0i050ca2iys9f5mb7dgqgqdxfnc3b0rnjdwv95sqd490vkiwrsaj")) + (file-name (git-file-name "let-plus" version)))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("anaphora" ,sbcl-anaphora))) + (native-inputs + `(("lift" ,sbcl-lift))) + (synopsis "Destructuring extension of let*") + (description + "This library implements the let+ macro, which is a dectructuring +extension of let*. It features: + +@itemize +@item Clean, consistent syntax and small implementation (less than 300 LOC, +not counting tests) +@item Placeholder macros allow editor hints and syntax highlighting +@item @command{&ign} for ignored values (in forms where that makes sense) +@item Very easy to extend +@end itemize\n") + (home-page "https://github.com/sharplispers/let-plus") + (license license:boost1.0)))) + +(define-public cl-let-plus + (sbcl-package->cl-source-package sbcl-let-plus)) + +(define-public ecl-let-plus + (sbcl-package->ecl-package sbcl-let-plus)) + +(define-public sbcl-cl-colors + (let ((commit "827410584553f5c717eec6182343b7605f707f75")) + (package + (name "sbcl-cl-colors") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tpapp/cl-colors") + (commit commit))) + (sha256 + (base32 + "0l446lday4hybsm9bq3jli97fvv8jb1d33abg79vbylpwjmf3y9a")) + (file-name (git-file-name "cl-colors" version)))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("let-plus" ,sbcl-let-plus))) + (synopsis "Simple color library for Common Lisp") + (description + "This is a very simple color library for Common Lisp, providing + +@itemize +@item Types for representing colors in HSV and RGB spaces. +@item Simple conversion functions between the above types (and also +hexadecimal representation for RGB). +@item Some predefined colors (currently X11 color names – of course the +library does not depend on X11).Because color in your terminal is nice. +@end itemize + +This library is no longer supported by its author.") + (home-page "https://github.com/tpapp/cl-colors") + (license license:boost1.0)))) + +(define-public cl-colors + (sbcl-package->cl-source-package sbcl-cl-colors)) + +(define-public ecl-cl-colors + (sbcl-package->ecl-package sbcl-cl-colors)) + +(define-public sbcl-cl-ansi-text + (let ((commit "53badf7878f27f22f2d4a2a43e6df458e43acbe9")) + (package + (name "sbcl-cl-ansi-text") + (version (git-version "1.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pnathan/cl-ansi-text") + (commit commit))) + (sha256 + (base32 + "11i27n0dbz5lmygiw65zzr8lx0rac6b6yysqranphn31wls6ja3v")) + (file-name (git-file-name "cl-ansi-text" version)))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cl-colors" ,sbcl-cl-colors))) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (synopsis "ANSI terminal color implementation for Common Lisp") + (description + "@command{cl-ansi-text} provides utilities which enable printing to an +ANSI terminal with colored text. It provides the macro @command{with-color} +which causes everything printed in the body to be displayed with the provided +color. It further provides functions which will print the argument with the +named color.") + (home-page "https://github.com/pnathan/cl-ansi-text") + ;; REVIEW: The actual license is LLGPL. Should we add it to Guix? + (license license:lgpl3+)))) + +(define-public cl-ansi-text + (sbcl-package->cl-source-package sbcl-cl-ansi-text)) + +(define-public ecl-cl-ansi-text + (sbcl-package->ecl-package sbcl-cl-ansi-text)) + +(define-public sbcl-prove-asdf + (let ((commit "4f9122bd393e63c5c70c1fba23070622317cfaa0")) + (package + (name "sbcl-prove-asdf") + (version (git-version "1.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fukamachi/prove") + (commit commit))) + (sha256 + (base32 + "07sbfw459z8bbjvx1qlmfa8qk2mvbjnnzi2mi0x72blaj8bkl4vc")) + (file-name (git-file-name "prove" version)))) + (build-system asdf-build-system/sbcl) + (arguments + `(#:asd-file "prove-asdf.asd")) + (synopsis "Test requirement for the Common Lisp 'prove' library") + (description + "Test requirement for the Common Lisp @command{prove} library.") + (home-page "https://github.com/fukamachi/prove") + (license license:expat)))) + +(define-public cl-prove-asdf + (sbcl-package->cl-source-package sbcl-prove-asdf)) + +(define-public ecl-prove-asdf + (sbcl-package->ecl-package sbcl-prove-asdf)) + +(define-public sbcl-prove + (package + (inherit sbcl-prove-asdf) + (name "sbcl-prove") + (inputs + `(("alexandria" ,sbcl-alexandria) + ("cl-ppcre" ,sbcl-cl-ppcre) + ("cl-ansi-text" ,sbcl-cl-ansi-text))) + (native-inputs + `(("prove-asdf" ,sbcl-prove-asdf))) + (arguments + `(#:asd-file "prove.asd")) + (synopsis "Yet another unit testing framework for Common Lisp") + (description + "This project was originally called @command{cl-test-more}. +@command{prove} is yet another unit testing framework for Common Lisp. The +advantages of @command{prove} are: + +@itemize +@item Various simple functions for testing and informative error messages +@item ASDF integration +@item Extensible test reporters +@item Colorizes the report if it's available (note for SLIME) +@item Reports test durations +@end itemize\n"))) + +(define-public cl-prove + (sbcl-package->cl-source-package sbcl-prove)) + +(define-public ecl-prove + (sbcl-package->ecl-package sbcl-prove)) + +(define-public sbcl-proc-parse + (let ((commit "ac3636834d561bdc2686c956dbd82494537285fd")) + (package + (name "sbcl-proc-parse") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/fukamachi/proc-parse") + (commit commit))) + (sha256 + (base32 + "06rnl0h4cx6xv2wj3jczmmcxqn2703inmmvg1s4npbghmijsybfh")) + (file-name (git-file-name "proc-parse" version)))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("babel" ,sbcl-babel))) + (native-inputs + `(("prove" ,sbcl-prove) + ("prove-asdf" ,sbcl-prove-asdf))) + (arguments + ;; TODO: Tests don't find "proc-parse-test", why? + `(#:tests? #f)) + (synopsis "Procedural vector parser") + (description + "This is a string/octets parser library for Common Lisp with speed and +readability in mind. Unlike other libraries, the code is not a +pattern-matching-like, but a char-by-char procedural parser.") + (home-page "https://github.com/fukamachi/proc-parse") + (license license:bsd-2)))) + +(define-public cl-proc-parse + (sbcl-package->cl-source-package sbcl-proc-parse)) + +(define-public ecl-proc-parse + (sbcl-package->ecl-package sbcl-proc-parse)) + +(define-public sbcl-parse-float + (let ((commit "2aae569f2a4b2eb3bfb5401a959425dcf151b09c")) + (package + (name "sbcl-parse-float") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/soemraws/parse-float") + (commit commit))) + (sha256 + (base32 + "08xw8cchhmqcc0byng69m3f5a2izc9y2290jzz2k0qrbibp1fdk7")) + (file-name (git-file-name "proc-parse" version)))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("babel" ,sbcl-babel))) + (native-inputs + `(("prove" ,sbcl-prove) + ("prove-asdf" ,sbcl-prove-asdf))) + (arguments + ;; TODO: Tests don't find "proc-parse-test", why? + `(#:tests? #f)) + (synopsis "Parse a floating point value from a string in Common Lisp") + (description + "This package exports the following function to parse floating-point +values from a string in Common Lisp.") + (home-page "https://github.com/soemraws/parse-float") + ;; TODO: Missing license? + (license license:public-domain)))) + +(define-public cl-parse-float + (sbcl-package->cl-source-package sbcl-parse-float)) + +(define-public ecl-parse-float + (sbcl-package->ecl-package sbcl-parse-float)) + +(define-public sbcl-ascii-strings + (let ((revision "1") + (changeset "5048480a61243e6f1b02884012c8f25cdbee6d97")) + (package + (name "sbcl-ascii-strings") + (version (string-append "0-" revision "." (string-take changeset 7))) + (source + (origin + (method hg-fetch) + (uri (hg-reference + (url "https://bitbucket.org/vityok/cl-string-match/") + (changeset changeset))) + (sha256 + (base32 + "01wn5qx562w43ssy92xlfgv79w7p0nv0wbl76mpmba131n9ziq2y")) + (file-name (git-file-name "cl-string-match" version)))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("babel" ,sbcl-babel))) + (arguments + `(#:asd-file "ascii-strings.asd")) + (synopsis "Operations on ASCII strings") + (description + "Operations on ASCII strings. Essentially this can be any kind of +single-byte encoded strings.") + (home-page "https://bitbucket.org/vityok/cl-string-match/") + (license license:bsd-3)))) + +(define-public cl-ascii-strings + (sbcl-package->cl-source-package sbcl-ascii-strings)) + +(define-public ecl-ascii-strings + (sbcl-package->ecl-package sbcl-ascii-strings)) + +(define-public sbcl-simple-scanf + (package + (inherit sbcl-ascii-strings) + (name "sbcl-simple-scanf") + (inputs + `(("alexandria" ,sbcl-alexandria) + ("iterate" ,sbcl-iterate) + ("proc-parse" ,sbcl-proc-parse) + ("parse-float" ,sbcl-parse-float))) + (arguments + `(#:asd-file "simple-scanf.asd")) + (synopsis "Simple scanf-like functionality implementation") + (description + "A simple scanf-like functionality implementation."))) + +(define-public cl-simple-scanf + (sbcl-package->cl-source-package sbcl-simple-scanf)) + +(define-public ecl-simple-scanf + (sbcl-package->ecl-package sbcl-simple-scanf)) + +(define-public sbcl-cl-string-match + (package + (inherit sbcl-ascii-strings) + (name "sbcl-cl-string-match") + (inputs + `(("alexandria" ,sbcl-alexandria) + ("ascii-strings" ,sbcl-ascii-strings) + ("yacc" ,sbcl-cl-yacc) + ("jpl-util" ,sbcl-jpl-util) + ("jpl-queues" ,sbcl-jpl-queues) + ("mgl-pax" ,sbcl-mgl-pax) + ("iterate" ,sbcl-iterate))) + ;; TODO: Tests are not evaluated properly. + (native-inputs + ;; For testing: + `(("lisp-unit" ,sbcl-lisp-unit) + ("simple-scanf" ,sbcl-simple-scanf))) + (arguments + `(#:tests? #f + #:asd-file "cl-string-match.asd")) + (synopsis "Portable, dependency-free set of utilities to manipulate strings in Common Lisp") + (description + "@command{cl-strings} is a small, portable, dependency-free set of +utilities that make it even easier to manipulate text in Common Lisp. It has +100% test coverage and works at least on sbcl, ecl, ccl, abcl and clisp."))) + +(define-public cl-string-match + (sbcl-package->cl-source-package sbcl-cl-string-match)) + +(define-public ecl-cl-string-match + (sbcl-package->ecl-package sbcl-cl-string-match)) + +(define-public sbcl-ptester + (package + (name "sbcl-ptester") + (version "20160929") + (source + (origin + (method url-fetch) + (uri (string-append "http://beta.quicklisp.org/archive/ptester/" + (date->string (string->date version "~Y~m~d") "~Y-~m-~d") + "/ptester-" + version + "-git.tgz")) + (sha256 + (base32 + "04rlq1zljhxc65pm31bah3sq3as24l0sdivz440s79qlnnyh13hz")))) + (build-system asdf-build-system/sbcl) + (home-page "http://quickdocs.org/ptester/") + (synopsis "Portable test harness package") + (description + "@command{ptester} is a portable testing framework based on Franz's +tester module.") + (license license:lgpl3+))) + +(define-public cl-ptester + (sbcl-package->cl-source-package sbcl-ptester)) + +(define-public ecl-ptester + (sbcl-package->ecl-package sbcl-ptester)) + +(define-public sbcl-puri + (package + (name "sbcl-puri") + (version "20180228") + (source + (origin + (method url-fetch) + (uri (string-append "http://beta.quicklisp.org/archive/puri/" + (date->string (string->date version "~Y~m~d") "~Y-~m-~d") + "/puri-" + version + "-git.tgz")) + (sha256 + (base32 + "1s4r5adrjy5asry45xbcbklxhdjydvf6n55z897nvyw33bigrnbz")))) + (build-system asdf-build-system/sbcl) + ;; REVIEW: Webiste down? + (native-inputs + `(("ptester" ,sbcl-ptester))) + (home-page "http://files.kpe.io/puri/") + (synopsis "Portable URI Library") + (description + "This is portable Universal Resource Identifier library for Common Lisp +programs. It parses URI according to the RFC 2396 specification") + (license license:lgpl3+))) + +(define-public cl-puri + (sbcl-package->cl-source-package sbcl-puri)) + +(define-public ecl-puri + (sbcl-package->ecl-package sbcl-puri)) + +(define-public sbcl-queues + (let ((commit "47d4da65e9ea20953b74aeeab7e89a831b66bc94")) + (package + (name "sbcl-queues") + (version (git-version "0.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/oconnore/queues") + (commit commit))) + (file-name (git-file-name "queues" version)) + (sha256 + (base32 + "0wdhfnzi4v6d97pggzj2aw55si94w4327br94jrmyvwf351wqjvv")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/oconnore/queues") + (synopsis "Common Lisp queue library") + (description + "This is a simple queue library for Common Lisp with features such as +non-consing thread safe queues and fibonacci priority queues.") + (license license:expat)))) + +(define-public cl-queues + (sbcl-package->cl-source-package sbcl-queues)) + +(define-public ecl-queues + (sbcl-package->ecl-package sbcl-queues)) + +(define-public sbcl-queues.simple-queue + (package + (inherit sbcl-queues) + (name "sbcl-queues.simple-queue") + (inputs + `(("sbcl-queues" ,sbcl-queues))) + (arguments + `(#:asd-file "queues.simple-queue.asd")) + (synopsis "Simple queue implementation") + (description + "This is a simple queue library for Common Lisp with features such as +non-consing thread safe queues and fibonacci priority queues.") + (license license:expat))) + +(define-public cl-queues.simple-queue + (sbcl-package->cl-source-package sbcl-queues.simple-queue)) + +(define-public ecl-queues.simple-queue + (sbcl-package->ecl-package sbcl-queues.simple-queue)) + +(define-public sbcl-queues.simple-cqueue + (package + (inherit sbcl-queues) + (name "sbcl-queues.simple-cqueue") + (inputs + `(("sbcl-queues" ,sbcl-queues) + ("sbcl-queues.simple-queue" ,sbcl-queues.simple-queue) + ("bordeaux-threads" ,sbcl-bordeaux-threads))) + (arguments + `(#:asd-file "queues.simple-cqueue.asd")) + (synopsis "Thread safe queue implementation") + (description + "This is a simple queue library for Common Lisp with features such as +non-consing thread safe queues and fibonacci priority queues.") + (license license:expat))) + +(define-public cl-queues.simple-cqueue + (sbcl-package->cl-source-package sbcl-queues.simple-cqueue)) + +(define-public ecl-queues.simple-cqueue + (sbcl-package->ecl-package sbcl-queues.simple-cqueue)) + +(define-public sbcl-queues.priority-queue + (package + (inherit sbcl-queues) + (name "sbcl-queues.priority-queue") + (inputs + `(("sbcl-queues" ,sbcl-queues))) + (arguments + `(#:asd-file "queues.priority-queue.asd")) + (synopsis "Priority queue (Fibonacci) implementation") + (description + "This is a simple queue library for Common Lisp with features such as +non-consing thread safe queues and fibonacci priority queues.") + (license license:expat))) + +(define-public cl-queues.priority-queue + (sbcl-package->cl-source-package sbcl-queues.priority-queue)) + +(define-public ecl-queues.priority-queue + (sbcl-package->ecl-package sbcl-queues.priority-queue)) + +(define-public sbcl-queues.priority-cqueue + (package + (inherit sbcl-queues) + (name "sbcl-queues.priority-cqueue") + (inputs + `(("sbcl-queues" ,sbcl-queues) + ("sbcl-queues.priority-queue" ,sbcl-queues.priority-queue) + ("bordeaux-threads" ,sbcl-bordeaux-threads))) + (arguments + `(#:asd-file "queues.priority-cqueue.asd")) + (synopsis "Thread safe fibonacci priority queue implementation") + (description + "This is a simple queue library for Common Lisp with features such as +non-consing thread safe queues and fibonacci priority queues.") + (license license:expat))) + +(define-public cl-queues.priority-cqueue + (sbcl-package->cl-source-package sbcl-queues.priority-cqueue)) + +(define-public ecl-queues.priority-cqueue + (sbcl-package->ecl-package sbcl-queues.priority-cqueue)) + +(define sbcl-cffi-bootstrap + (package + (name "sbcl-cffi-bootstrap") + (version "0.19.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/cffi/cffi/archive/v" + version ".tar.gz")) + (sha256 + (base32 "07bc3c1fbfx17wgrvx6bh9byilfzfwv5n597cfdllm0vzwvbmiyk")) + (file-name (string-append name "-" version ".tar.gz")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("libffi" ,libffi) + ("alexandria" ,sbcl-alexandria) + ("babel" ,sbcl-babel) + ("trivial-features" ,sbcl-trivial-features))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "libffi/libffi.lisp" + (("libffi.so.6" all) (string-append + (assoc-ref inputs "libffi") + "/lib/" all))) + (substitute* "toolchain/c-toolchain.lisp" + (("\"cc\"") (format #f "~S" (which "gcc"))))))) + #:asd-system-name "cffi" + #:tests? #f)) + (home-page "https://common-lisp.net/project/cffi/") + (synopsis "Common Foreign Function Interface for Common Lisp") + (description "The Common Foreign Function Interface (CFFI) +purports to be a portable foreign function interface for Common Lisp. +The CFFI library is composed of a Lisp-implementation-specific backend +in the CFFI-SYS package, and a portable frontend in the CFFI +package.") + (license license:expat))) + +(define-public sbcl-cffi-toolchain + (package + (inherit sbcl-cffi-bootstrap) + (name "sbcl-cffi-toolchain") + (inputs + `(("libffi" ,libffi) + ("sbcl-cffi" ,sbcl-cffi-bootstrap))) + (arguments + (substitute-keyword-arguments (package-arguments sbcl-cffi-bootstrap) + ((#:asd-system-name _) #f) + ((#:tests? _) #t))))) + +(define-public sbcl-cffi-libffi + (package + (inherit sbcl-cffi-toolchain) + (name "sbcl-cffi-libffi") + (inputs + `(("cffi" ,sbcl-cffi-bootstrap) + ("cffi-grovel" ,sbcl-cffi-grovel) + ("trivial-features" ,sbcl-trivial-features) + ("libffi" ,libffi))))) + +(define-public sbcl-cffi-grovel + (package + (inherit sbcl-cffi-toolchain) + (name "sbcl-cffi-grovel") + (inputs + `(("libffi" ,libffi) + ("cffi" ,sbcl-cffi-bootstrap) + ("cffi-toolchain" ,sbcl-cffi-toolchain) + ("alexandria" ,sbcl-alexandria))) + (arguments + (substitute-keyword-arguments (package-arguments sbcl-cffi-toolchain) + ((#:phases phases) + `(modify-phases ,phases + (add-after 'build 'install-headers + (lambda* (#:key outputs #:allow-other-keys) + (install-file "grovel/common.h" + (string-append + (assoc-ref outputs "out") + "/include/grovel")))))))))) + +(define-public sbcl-cffi + (package + (inherit sbcl-cffi-toolchain) + (name "sbcl-cffi") + (inputs (package-inputs sbcl-cffi-bootstrap)) + (native-inputs + `(("cffi-grovel" ,sbcl-cffi-grovel) + ("cffi-libffi" ,sbcl-cffi-libffi) + ("rt" ,sbcl-rt) + ("bordeaux-threads" ,sbcl-bordeaux-threads) + ,@(package-native-inputs sbcl-cffi-bootstrap))))) + +(define-public sbcl-cl-sqlite + (let ((commit "c738e66d4266ef63a1debc4ef4a1b871a068c112")) + (package + (name "sbcl-cl-sqlite") + (version (git-version "0.2" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dmitryvk/cl-sqlite") + (commit commit))) + (file-name (git-file-name "cl-sqlite" version)) + (sha256 + (base32 + "1ng45k1hdb84sqjryrfx93g66bsbybmpy301wd0fdybnc5jzr36q")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("iterate" ,sbcl-iterate) + ("cffi" ,sbcl-cffi) + ("sqlite" ,sqlite))) + (native-inputs + `(("fiveam" ,sbcl-fiveam) + ("bordeaux-threads" ,sbcl-bordeaux-threads))) + (arguments + `(#:tests? #f ; Upstream seems to have issues with tests: https://github.com/dmitryvk/cl-sqlite/issues/7 + #:asd-file "sqlite.asd" + #:asd-system-name "sqlite" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "sqlite-ffi.lisp" + (("libsqlite3" all) (string-append + (assoc-ref inputs "sqlite")"/lib/" all)))))))) + (home-page "https://common-lisp.net/project/cl-sqlite/") + (synopsis "Common Lisp binding for SQLite") + (description + "The @command{cl-sqlite} package is an interface to the SQLite embedded +relational database engine.") + (license license:public-domain)))) + +(define-public sbcl-parenscript + (let ((commit "061d8e286c81c3f45c84fb2b11ee7d83f590a8f8")) + (package + (name "sbcl-parenscript") + (version (git-version "2.6" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.common-lisp.net/parenscript/parenscript") + (commit commit))) + (file-name (git-file-name "parenscript" version)) + (sha256 + (base32 + "1kbhgsjbikc73m5cwdp4d4fdafyqcr1b7b630qjrziql0nh6mi3k")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("cl-ppcre" ,sbcl-cl-ppcre) + ("anaphora" ,sbcl-anaphora) + ("named-readtables" ,sbcl-named-readtables))) + (home-page "https://common-lisp.net/project/parenscript/") + (synopsis "Translator from a subset of Common Lisp to JavaScript") + (description + "Parenscript is a translator from an extended subset of Common Lisp to +JavaScript. Parenscript code can run almost identically on both the +browser (as JavaScript) and server (as Common Lisp). + +Parenscript code is treated the same way as Common Lisp code, making the full +power of Lisp macros available for JavaScript. This provides a web +development environment that is unmatched in its ability to reduce code +duplication and provide advanced meta-programming facilities to web +developers. + +At the same time, Parenscript is different from almost all other \"language +X\" to JavaScript translators in that it imposes almost no overhead: + +@itemize +@item No run-time dependencies: Any piece of Parenscript code is runnable +as-is. There are no JavaScript files to include. +@item Native types: Parenscript works entirely with native JavaScript data +types. There are no new types introduced, and object prototypes are not +touched. +@item Native calling convention: Any JavaScript code can be called without the +need for bindings. Likewise, Parenscript can be used to make efficient, +self-contained JavaScript libraries. +@item Readable code: Parenscript generates concise, formatted, idiomatic +JavaScript code. Identifier names are preserved. This enables seamless +debugging in tools like Firebug. +@item Efficiency: Parenscript introduces minimal overhead for advanced Common +Lisp features. The generated code is almost as fast as hand-written +JavaScript. +@end itemize\n") + (license license:bsd-3)))) + +(define-public cl-parenscript + (sbcl-package->cl-source-package sbcl-parenscript)) + +(define-public ecl-parenscript + (sbcl-package->ecl-package sbcl-parenscript)) + +(define-public sbcl-cl-json + (let ((commit "6dfebb9540bfc3cc33582d0c03c9ec27cb913e79")) + (package + (name "sbcl-cl-json") + (version (git-version "0.5" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hankhero/cl-json") + (commit commit))) + (file-name (git-file-name "cl-json" version)) + (sha256 + (base32 + "0fx3m3x3s5ji950yzpazz4s0img3l6b3d6l3jrfjv0lr702496lh")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (home-page "https://github.com/hankhero/cl-json") + (synopsis "JSON encoder and decoder for Common-Lisp") + (description + "@command{cl-json} provides an encoder of Lisp objects to JSON format +and a corresponding decoder of JSON data to Lisp objects. Both the encoder +and the decoder are highly customizable; at the same time, the default +settings ensure a very simple mode of operation, similar to that provided by +@command{yason} or @command{st-json}.") + (license license:expat)))) + +(define-public cl-json + (sbcl-package->cl-source-package sbcl-cl-json)) + +(define-public ecl-cl-json + (sbcl-package->ecl-package sbcl-cl-json)) + +(define-public sbcl-unix-opts + (package + (name "sbcl-unix-opts") + (version "0.1.7") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libre-man/unix-opts") + (commit version))) + (file-name (git-file-name "unix-opts" version)) + (sha256 + (base32 + "08djdi1ard09fijb7w9bdmhmwd98b1hzmcnjw9fqjiqa0g3b44rr")))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/hankhero/cl-json") + (synopsis "Unix-style command line options parser") + (description + "This is a minimalistic parser of command line options. The main +advantage of the library is the ability to concisely define command line +options once and then use this definition for parsing and extraction of +command line arguments, as well as printing description of command line +options (you get --help for free). This way you don't need to repeat +yourself. Also, @command{unix-opts} doesn't depend on anything and allows to +precisely control behavior of the parser via Common Lisp restarts.") + (license license:expat))) + +(define-public cl-unix-opts + (sbcl-package->cl-source-package sbcl-unix-opts)) + +(define-public ecl-unix-opts + (sbcl-package->ecl-package sbcl-unix-opts)) + +(define-public sbcl-trivial-garbage + (package + (name "sbcl-trivial-garbage") + (version "0.21") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/trivial-garbage/trivial-garbage/archive/v" + version ".tar.gz")) + (sha256 + (base32 "0b244nlszkrqawsnp568clnx32xmvjmbbagbz7625w9n0yq7396y")) + (file-name (string-append "trivial-garbage-" version ".tar.gz")))) + (build-system asdf-build-system/sbcl) + (native-inputs + `(("rt" ,sbcl-rt))) + (home-page "https://common-lisp.net/project/trivial-garbage/") + (synopsis "Portable GC-related APIs for Common Lisp") + (description "@command{trivial-garbage} provides a portable API to +finalizers, weak hash-tables and weak pointers on all major implementations of +the Common Lisp programming language.") + (license license:public-domain))) + +(define-public cl-trivial-garbage + (sbcl-package->cl-source-package sbcl-trivial-garbage)) + +(define-public ecl-trivial-garbage + (sbcl-package->ecl-package sbcl-trivial-garbage)) + +(define-public sbcl-closer-mop + (let ((commit "fac29ce90e3a46e1fc6cf182190e193526fa9dbc")) + (package + (name "sbcl-closer-mop") + (version (git-version "1.0.0" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pcostanza/closer-mop") + (commit commit))) + (sha256 + (base32 "0hvh77y869h8fg9di5snyg85fxq6fdh9gj1igmx1g6j6j5x915dl")) + (file-name (git-file-name "closer-mop" version )))) + (build-system asdf-build-system/sbcl) + (home-page "https://github.com/pcostanza/closer-mop") + (synopsis "Rectifies absent or incorrect CLOS MOP features") + (description "Closer to MOP is a compatibility layer that rectifies many +of the absent or incorrect CLOS MOP features across a broad range of Common +Lisp implementations.") + (license license:expat)))) + +(define-public cl-closer-mop + (sbcl-package->cl-source-package sbcl-closer-mop)) + +(define-public ecl-closer-mop + (sbcl-package->ecl-package sbcl-closer-mop)) + +(define sbcl-cl-cffi-gtk-boot0 + (let ((commit "29443c5aaca975709df8025c4649366d882033cb")) + (package + (name "sbcl-cl-cffi-gtk-boot0") + (version (git-version "0.11.2" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/Ferada/cl-cffi-gtk/") + (commit commit))) + (file-name (git-file-name "cl-cffi-gtk" version)) + (sha256 + (base32 + "0f6s92sf8xyzh1yksqx8bsy1sv0zmy0c13j3b8bavaba5hlxpxah")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("iterate" ,sbcl-iterate) + ("cffi" ,sbcl-cffi) + ("trivial-features" ,sbcl-trivial-features))) + (home-page "https://github.com/Ferada/cl-cffi-gtk/") + (synopsis "Common Lisp binding for GTK+3") + (description + "@command{cl-cffi-gtk} is a Lisp binding to GTK+ 3 (GIMP Toolkit) which +is a library for creating graphical user interfaces.") + (license license:lgpl3)))) + +(define-public sbcl-cl-cffi-gtk-glib + (package + (inherit sbcl-cl-cffi-gtk-boot0) + (name "sbcl-cl-cffi-gtk-glib") + (inputs + `(("glib" ,glib) + ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) + (arguments + `(#:asd-file "glib/cl-cffi-gtk-glib.asd" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "glib/glib.init.lisp" + (("libglib|libgthread" all) (string-append + (assoc-ref inputs "glib") "/lib/" all)))))))))) + +(define-public sbcl-cl-cffi-gtk-gobject + (package + (inherit sbcl-cl-cffi-gtk-boot0) + (name "sbcl-cl-cffi-gtk-gobject") + (inputs + `(("glib" ,glib) + ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib) + ("trivial-garbage" ,sbcl-trivial-garbage) + ("bordeaux-threads" ,sbcl-bordeaux-threads) + ("closer-mop" ,sbcl-closer-mop) + ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) + (arguments + `(#:asd-file "gobject/cl-cffi-gtk-gobject.asd" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "gobject/gobject.init.lisp" + (("libgobject" all) (string-append + (assoc-ref inputs "glib") "/lib/" all)))))))))) + +(define-public sbcl-cl-cffi-gtk-gio + (package + (inherit sbcl-cl-cffi-gtk-boot0) + (name "sbcl-cl-cffi-gtk-gio") + (inputs + `(("glib" ,glib) + ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib) + ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject) + ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) + (arguments + `(#:asd-file "gio/cl-cffi-gtk-gio.asd" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "gio/gio.init.lisp" + (("libgio" all) + (string-append + (assoc-ref inputs "glib") "/lib/" all)))))))))) + +(define-public sbcl-cl-cffi-gtk-cairo + (package + (inherit sbcl-cl-cffi-gtk-boot0) + (name "sbcl-cl-cffi-gtk-cairo") + (inputs + `(("cairo" ,cairo) + ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib) + ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) + (arguments + `(#:asd-file "cairo/cl-cffi-gtk-cairo.asd" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "cairo/cairo.init.lisp" + (("libcairo" all) + (string-append + (assoc-ref inputs "cairo") "/lib/" all)))))))))) + +(define-public sbcl-cl-cffi-gtk-pango + (package + (inherit sbcl-cl-cffi-gtk-boot0) + (name "sbcl-cl-cffi-gtk-pango") + (inputs + `(("pango" ,pango) + ("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib) + ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject) + ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo) + ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) + (arguments + `(#:asd-file "pango/cl-cffi-gtk-pango.asd" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "pango/pango.init.lisp" + (("libpango" all) + (string-append + (assoc-ref inputs "pango") "/lib/" all)))))))))) + +(define-public sbcl-cl-cffi-gtk-gdk-pixbuf + (package + (inherit sbcl-cl-cffi-gtk-boot0) + (name "sbcl-cl-cffi-gtk-gdk-pixbuf") + (inputs + `(("gdk-pixbuf" ,gdk-pixbuf) + ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject) + ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) + (arguments + `(#:asd-file "gdk-pixbuf/cl-cffi-gtk-gdk-pixbuf.asd" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "gdk-pixbuf/gdk-pixbuf.init.lisp" + (("libgdk_pixbuf" all) + (string-append + (assoc-ref inputs "gdk-pixbuf") "/lib/" all)))))))))) + +(define-public sbcl-cl-cffi-gtk-gdk + (package + (inherit sbcl-cl-cffi-gtk-boot0) + (name "sbcl-cl-cffi-gtk-gdk") + (inputs + `(("gtk" ,gtk+) + ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject) + ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio) + ("cl-cffi-gtk-gdk-pixbuf" ,sbcl-cl-cffi-gtk-gdk-pixbuf) + ("cl-cffi-gtk-cairo" ,sbcl-cl-cffi-gtk-cairo) + ("cl-cffi-gtk-pango" ,sbcl-cl-cffi-gtk-pango) + ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) + (arguments + `(#:asd-file "gdk/cl-cffi-gtk-gdk.asd" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "gdk/gdk.init.lisp" + (("libgdk" all) + (string-append + (assoc-ref inputs "gtk") "/lib/" all))) + (substitute* "gdk/gdk.package.lisp" + (("libgtk" all) + (string-append + (assoc-ref inputs "gtk") "/lib/" all)))))))))) + +(define-public sbcl-cl-cffi-gtk + (package + (inherit sbcl-cl-cffi-gtk-boot0) + (name "sbcl-cl-cffi-gtk") + (inputs + `(("cl-cffi-gtk-glib" ,sbcl-cl-cffi-gtk-glib) + ("cl-cffi-gtk-gobject" ,sbcl-cl-cffi-gtk-gobject) + ("cl-cffi-gtk-gio" ,sbcl-cl-cffi-gtk-gio) + ("cl-cffi-gtk-gdk" ,sbcl-cl-cffi-gtk-gdk) + ,@(package-inputs sbcl-cl-cffi-gtk-boot0))) + (native-inputs + `(("fiveam" ,sbcl-fiveam))) + (arguments + `(#:asd-file "gtk/cl-cffi-gtk.asd" + #:test-asd-file "test/cl-cffi-gtk-test.asd" + ;; TODO: Tests fail with memory fault. + ;; See https://github.com/Ferada/cl-cffi-gtk/issues/24. + #:tests? #f)))) + +(define-public sbcl-cl-webkit + (let ((commit "cd2a9008e0c152e54755e8a7f07b050fe36bab31")) + (package + (name "sbcl-cl-webkit") + (version (git-version "2.4" "1" commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/atlas-engineer/cl-webkit") + (commit commit))) + (file-name (git-file-name "cl-webkit" version)) + (sha256 + (base32 + "0f5lyn9i7xrn3g1bddga377mcbawkbxydijpg389q4n04gqj0vwf")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("cffi" ,sbcl-cffi) + ("cl-cffi-gtk" ,sbcl-cl-cffi-gtk) + ("webkitgtk" ,webkitgtk))) + (arguments + `(#:asd-file "webkit2/cl-webkit2.asd" + #:asd-system-name "cl-webkit2" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "webkit2/webkit2.init.lisp" + (("libwebkit2gtk" all) + (string-append + (assoc-ref inputs "webkitgtk") "/lib/" all)))))))) + (home-page "https://github.com/atlas-engineer/cl-webkit") + (synopsis "Binding to WebKitGTK+ for Common Lisp") + (description + "@command{cl-webkit} is a binding to WebKitGTK+ for Common Lisp, +currently targeting WebKit version 2. The WebKitGTK+ library adds web +browsing capabilities to an application, leveraging the full power of the +WebKit browsing engine.") + (license license:expat)))) + +(define-public sbcl-lparallel + (package + (name "sbcl-lparallel") + (version "2.8.4") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lmj/lparallel/") + (commit (string-append "lparallel-" version)))) + (file-name (git-file-name "lparallel" version)) + (sha256 + (base32 + "0g0aylrbbrqsz0ahmwhvnk4cmc2931fllbpcfgzsprwnqqd7vwq9")))) + (build-system asdf-build-system/sbcl) + (inputs + `(("alexandria" ,sbcl-alexandria) + ("bordeaux-threads" ,sbcl-bordeaux-threads) + ("trivial-garbage" ,sbcl-trivial-garbage))) + (home-page "https://lparallel.org/") + (synopsis "Parallelism for Common Lisp") + (description + "@command{lparallel} is a library for parallel programming in Common +Lisp, featuring: + +@itemize +@item a simple model of task submission with receiving queue, +@item constructs for expressing fine-grained parallelism, +@item asynchronous condition handling across thread boundaries, +@item parallel versions of map, reduce, sort, remove, and many others, +@item promises, futures, and delayed evaluation constructs, +@item computation trees for parallelizing interconnected tasks, +@item bounded and unbounded FIFO queues, +@item high and low priority tasks, +@item task killing by category, +@item integrated timeouts. +@end itemize\n") + (license license:expat))) + +(define-public cl-lparallel + (sbcl-package->cl-source-package sbcl-lparallel)) + +(define-public ecl-lparallel + (sbcl-package->ecl-package sbcl-lparallel)) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 7348719ede..73a17fb21b 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -763,14 +763,14 @@ invoking @command{notifymuch} from the post-new hook.") (define-public notmuch (package (name "notmuch") - (version "0.27") + (version "0.28") (source (origin (method url-fetch) (uri (string-append "https://notmuchmail.org/releases/notmuch-" version ".tar.gz")) (sha256 (base32 - "0xh8vq2sa7r07xb3n13drc6gdiqhcgl0pj0za5xj43qkiwpikls0")))) + "0dqarmjc8544m2w7bqrqmvsfy55fw82707z3lz9cql8nr777bjmc")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index 0df197c659..aa9c7478b7 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2659,7 +2659,7 @@ to BMP, JPEG or PNG image formats.") (define-public maxima (package (name "maxima") - (version "5.41.0") + (version "5.42.0") (source (origin (method url-fetch) @@ -2667,7 +2667,7 @@ to BMP, JPEG or PNG image formats.") version "-source/" name "-" version ".tar.gz")) (sha256 (base32 - "0x0n81z0s4pl8nwpf7ivlsbvsdphm9w42250g7qdkizl0132by6s")) + "0d5pdihvcbwb7r4i4qs5qqgsz46hxlq33qj8is053llrgn9ylpyn")) (patches (search-patches "maxima-defsystem-mkdir.patch")))) (build-system gnu-build-system) (inputs diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 1bd9972862..ac2ed81895 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -3568,7 +3568,7 @@ are a C compiler and glib. Full API documentation and examples are included.") ("fltk" ,fltk) ("libogg" ,libogg) ("libsamplerate" ,libsamplerate) - ("fluidsynth" ,fluidsynth) + ("fluidsynth" ,fluidsynth-1) ;XXX: try using 2.x when updating ("libvorbis" ,libvorbis) ("alsa-lib" ,alsa-lib) ("portaudio" ,portaudio) diff --git a/gnu/packages/patches/grub-check-error-efibootmgr.patch b/gnu/packages/patches/grub-check-error-efibootmgr.patch index b2fd160c9a..efeb20f213 100644 --- a/gnu/packages/patches/grub-check-error-efibootmgr.patch +++ b/gnu/packages/patches/grub-check-error-efibootmgr.patch @@ -160,7 +160,7 @@ index 5e4cdfd..690f180 100644 /* Try to make this image bootable using the EFI Boot Manager, if available. */ if (!efi_distributor || efi_distributor[0] == '\0') -@@ -1887,8 +1892,11 @@ main (int argc, char *argv[]) +@@ -1887,7 +1892,10 @@ main (int argc, char *argv[]) efidir_grub_dev->disk->name, (part ? ",": ""), (part ? : "")); grub_free (part); @@ -173,4 +173,25 @@ index 5e4cdfd..690f180 100644 + strerror (ret)); } break; + + +Below is a followup to the patch above: the uninitialized variable could lead +‘grub-install’ to error out when it shouldn’t (seen on an AArch64 box where +‘grub_install_remove_efi_entries_by_distributor’ didn't have any entry to +remove): + + grub-install: error: efibootmgr failed to register the boot entry: Unknown error 65535. + +See <http://lists.gnu.org/archive/html/bug-grub/2018-10/msg00006.html>. + +--- grub-2.02/grub-core/osdep/unix/platform.c 2018-10-17 22:21:53.015284846 +0200 ++++ grub-2.02/grub-core/osdep/unix/platform.c 2018-10-17 22:21:55.595271222 +0200 +@@ -85,7 +85,7 @@ grub_install_remove_efi_entries_by_distr + pid_t pid = grub_util_exec_pipe ((const char * []){ "efibootmgr", NULL }, &fd); + char *line = NULL; + size_t len = 0; +- int rc; ++ int rc = 0; + if (!pid) + { diff --git a/gnu/packages/patches/libgxps-CVE-2017-11590.patch b/gnu/packages/patches/libgxps-CVE-2017-11590.patch deleted file mode 100644 index 9caa79b6f0..0000000000 --- a/gnu/packages/patches/libgxps-CVE-2017-11590.patch +++ /dev/null @@ -1,48 +0,0 @@ -Fix CVE-2017-11590: - -https://bugzilla.gnome.org/show_bug.cgi?id=785479 -https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-11590 - -Patch copied from upstream source repository: - -https://git.gnome.org/browse/libgxps/commit/?id=9d5d292055250ed298f3b89dc332d6db4003a031 - -From 9d5d292055250ed298f3b89dc332d6db4003a031 Mon Sep 17 00:00:00 2001 -From: Marek Kasik <mkasik@redhat.com> -Date: Wed, 26 Jul 2017 16:23:37 +0200 -Subject: archive: Check for pathname being NULL before dereferencing - -Check whether "archive_entry_pathname ()" returns a non-NULL pathname -before using it to avoid a NULL pointer being dereferenced. - -https://bugzilla.gnome.org/show_bug.cgi?id=785479 ---- - libgxps/gxps-archive.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/libgxps/gxps-archive.c b/libgxps/gxps-archive.c -index acf8d7d..e763773 100644 ---- a/libgxps/gxps-archive.c -+++ b/libgxps/gxps-archive.c -@@ -257,6 +257,7 @@ gxps_archive_initable_init (GInitable *initable, - GXPSArchive *archive; - ZipArchive *zip; - struct archive_entry *entry; -+ const gchar *pathname; - - archive = GXPS_ARCHIVE (initable); - -@@ -281,7 +282,9 @@ gxps_archive_initable_init (GInitable *initable, - - while (gxps_zip_archive_iter_next (zip, &entry)) { - /* FIXME: We can ignore directories here */ -- g_hash_table_add (archive->entries, g_strdup (archive_entry_pathname (entry))); -+ pathname = archive_entry_pathname (entry); -+ if (pathname != NULL) -+ g_hash_table_add (archive->entries, g_strdup (pathname)); - archive_read_data_skip (zip->archive); - } - --- -cgit v0.12 - diff --git a/gnu/packages/patches/libssh-hostname-parser-bug.patch b/gnu/packages/patches/libssh-hostname-parser-bug.patch index 69f46cbdd6..de2336e86d 100644 --- a/gnu/packages/patches/libssh-hostname-parser-bug.patch +++ b/gnu/packages/patches/libssh-hostname-parser-bug.patch @@ -1,31 +1,17 @@ -Fix "Hostname" parsing in OpenSSH config files, as reported -at <https://red.libssh.org/issues/260>. - -From: Niels Ole Salscheider <niels_ole@salscheider-online.de> -Date: Mon, 8 May 2017 17:36:13 +0200 -Subject: [PATCH] Fix reading of the first parameter - -This is a fixup for 7b8b5eb4eac314a3a29be812bef0264c6611f6e7. -Previously, it would return as long as the parameter was _not_ seen -before. It also did not handle the case for the unsupported opcode (-1) +It does not handle the case for the unsupported opcode (-1) which would cause a segfault when accessing the "seen" array. ---- - src/config.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/config.c b/src/config.c -index 7c03b27..238a655 100644 +index c5313ec8..72e07639 100644 --- a/src/config.c +++ b/src/config.c -@@ -218,8 +218,9 @@ static int ssh_config_parse_line(ssh_session session, const char *line, +@@ -218,7 +218,8 @@ static int ssh_config_parse_line(ssh_session session, const char *line, } opcode = ssh_config_get_opcode(keyword); - if (*parsing == 1 && opcode != SOC_HOST) { -- if (seen[opcode] == 0) { + if (*parsing == 1 && opcode != SOC_HOST && + opcode > SOC_UNSUPPORTED && opcode < SOC_END) { -+ if (seen[opcode] == 1) { + if (seen[opcode] != 0) { return 0; } - seen[opcode] = 1; diff --git a/gnu/packages/patches/soundconverter-remove-gconf-dependency.patch b/gnu/packages/patches/soundconverter-remove-gconf-dependency.patch new file mode 100644 index 0000000000..f065b9a3d4 --- /dev/null +++ b/gnu/packages/patches/soundconverter-remove-gconf-dependency.patch @@ -0,0 +1,83 @@ +From: Sebastian Ramacher <sebastian@ramacher.at> +Date: Fri, 6 Apr 2018 13:25:35 +0200 +Subject: Only fetch profiles if GConf is still available + +--- + bin/soundconverter.py | 1 - + soundconverter/gstreamer.py | 44 ++++++++++++++++++++++++-------------------- + 2 files changed, 24 insertions(+), 21 deletions(-) + +diff --git a/bin/soundconverter.py b/bin/soundconverter.py +index 39055ce..5198443 100644 +--- a/bin/soundconverter.py ++++ b/bin/soundconverter.py +@@ -66,7 +66,6 @@ def _check_libs(): + import gi + gi.require_version('Gst', '1.0') + gi.require_version('Gtk', '3.0') +- gi.require_version('GConf', '2.0') + from gi.repository import GObject + # force GIL creation - see https://bugzilla.gnome.org/show_bug.cgi?id=710447 + import threading +diff --git a/soundconverter/gstreamer.py b/soundconverter/gstreamer.py +index 23aaa9b..211b052 100644 +--- a/soundconverter/gstreamer.py ++++ b/soundconverter/gstreamer.py +@@ -25,7 +25,7 @@ from urllib.parse import urlparse + from gettext import gettext as _ + + import gi +-from gi.repository import Gst, Gtk, GObject, GConf, Gio ++from gi.repository import Gst, Gtk, GObject, Gio + + from soundconverter.fileoperations import vfs_encode_filename, file_encode_filename + from soundconverter.fileoperations import unquote_filename, vfs_makedirs, vfs_unlink +@@ -66,25 +66,29 @@ _GCONF_PROFILE_LIST_PATH = "/system/gstreamer/1.0/audio/global/profile_list" + audio_profiles_list = [] + audio_profiles_dict = {} + +-_GCONF = GConf.Client.get_default() +-profiles = _GCONF.all_dirs(_GCONF_PROFILE_LIST_PATH) +-for name in profiles: +- if _GCONF.get_bool(_GCONF_PROFILE_PATH + name + "/active"): +- # get profile +- description = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/name") +- extension = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/extension") +- pipeline = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/pipeline") +- # check profile validity +- if not extension or not pipeline: +- continue +- if not description: +- description = extension +- if description in audio_profiles_dict: +- continue +- # store +- profile = description, extension, pipeline +- audio_profiles_list.append(profile) +- audio_profiles_dict[description] = profile ++try: ++ from gi.repository import GConf ++ _GCONF = GConf.Client.get_default() ++ profiles = _GCONF.all_dirs(_GCONF_PROFILE_LIST_PATH) ++ for name in profiles: ++ if _GCONF.get_bool(_GCONF_PROFILE_PATH + name + "/active"): ++ # get profile ++ description = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/name") ++ extension = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/extension") ++ pipeline = _GCONF.get_string(_GCONF_PROFILE_PATH + name + "/pipeline") ++ # check profile validity ++ if not extension or not pipeline: ++ continue ++ if not description: ++ description = extension ++ if description in audio_profiles_dict: ++ continue ++ # store ++ profile = description, extension, pipeline ++ audio_profiles_list.append(profile) ++ audio_profiles_dict[description] = profile ++except ImportError: ++ pass + + required_elements = ('decodebin', 'fakesink', 'audioconvert', 'typefind', 'audiorate') + for element in required_elements: diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 7bdf04cb49..db7a9f9d45 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -131,14 +131,14 @@ data as produced by digital cameras.") (define-public libgphoto2 (package (name "libgphoto2") - (version "2.5.18") + (version "2.5.19") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/gphoto/libgphoto/" version "/libgphoto2-" version ".tar.bz2")) (sha256 (base32 - "1v57ayp17j88bj79nl7rf4iyajbxx00kgb4l5k3kbv50gjfvh5sv")))) + "0qrcc6kajbfb237paxrl904vvwl7hd8mnqvjw00j6m5qwd93wlk2")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (inputs diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index c2987207f4..2b6a0647fd 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -10131,14 +10131,14 @@ functionality in the command line.") (define-public python-glances (package (name "python-glances") - (version "2.7.1") + (version "3.0.2") (source (origin (method url-fetch) (uri (pypi-uri "Glances" version)) (sha256 (base32 - "11jbq40g8alsbirnd4kiagznqg270247i0m8qhi48ldf2i5xppxg")))) + "09fxysfp1n16csqvzvawy74qm6a94nvwjf3vcf5gkqp4i6k4vjjy")))) (build-system python-build-system) (propagated-inputs `(("python-psutil" ,python-psutil))) diff --git a/gnu/packages/regex.scm b/gnu/packages/regex.scm index c9d9e8a359..c05d819d65 100644 --- a/gnu/packages/regex.scm +++ b/gnu/packages/regex.scm @@ -29,7 +29,7 @@ (define-public re2 (package (name "re2") - (version "2018-09-01") + (version "2018-10-01") (home-page "https://github.com/google/re2") (source (origin (method url-fetch) @@ -37,7 +37,7 @@ (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0hygr88hvy7if1i45m5r6x60zf73439j2fwzw7wwcw9gb01v690l")))) + "10fsxsj3yip34hp2zl5rw8h2x2lgnp83fwrh7m0qfd9m99qrf4x3")))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 089e4f63f9..816324b279 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -65,40 +65,36 @@ #:use-module (srfi srfi-1)) (define-public libssh - ;; This commit from the 'v0-7' branch contains 7 memory-management-related - ;; bug fixes that we'd rather have. - (let ((commit "239d0f75b5f909174c2ef7fb08d23bcfa6b20ba0") - (revision "0")) - (package - (name "libssh") - (version (git-version "0.7.5" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://git.libssh.org/projects/libssh.git") - (commit commit))) - (sha256 - (base32 - "01w72w1jsgs9ilj3n1gp6qkmdxr9n74i5h2nipi3x1vzm7bv8na1")) - (patches (search-patches "libssh-hostname-parser-bug.patch")) - (file-name (git-file-name name version)))) - (build-system cmake-build-system) - (outputs '("out" "debug")) - (arguments - '(#:configure-flags '("-DWITH_GCRYPT=ON") - - ;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite. - #:tests? #f)) - (inputs `(("zlib" ,zlib) - ("libgcrypt" ,libgcrypt))) - (synopsis "SSH client library") - (description - "libssh is a C library implementing the SSHv2 and SSHv1 protocol for -client and server implementations. With libssh, you can remotely execute -programs, transfer files, and use a secure and transparent tunnel for your -remote applications.") - (home-page "https://www.libssh.org") - (license license:lgpl2.1+)))) + (package + (name "libssh") + (version "0.7.6") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://git.libssh.org/projects/libssh.git") + (commit (string-append "libssh-" version)))) + (patches (search-patches "libssh-hostname-parser-bug.patch")) + (sha256 + (base32 + "0slwqa36mhyb6brdv2jvb9fxp7rvsv3ziv67kaxx615jxn52l5pa")) + (file-name (git-file-name name version)))) + (build-system cmake-build-system) + (outputs '("out" "debug")) + (arguments + '(#:configure-flags '("-DWITH_GCRYPT=ON") + + ;; TODO: Add 'CMockery' and '-DWITH_TESTING=ON' for the test suite. + #:tests? #f)) + (inputs `(("zlib" ,zlib) + ("libgcrypt" ,libgcrypt))) + (synopsis "SSH client library") + (description + "libssh is a C library implementing the SSHv2 and SSHv1 protocol for client +and server implementations. With libssh, you can remotely execute programs, +transfer files, and use a secure and transparent tunnel for your remote +applications.") + (home-page "https://www.libssh.org") + (license license:lgpl2.1+))) (define-public libssh2 (package diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index ccbdfc6f61..294d334423 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -4506,3 +4506,248 @@ including: It also ensures compatibility with the @code{media9} and @code{animate} packages.") (license license:lppl))) + +(define-public texlive-latex-ms + (package + (name "texlive-latex-ms") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "ms")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0m4wx3yjb5al1qsv995z8fii8xxy96mcfihbnlx43lpgayiwz35s")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/ms" + #:tex-format "latex")) + (home-page "https://ctan.org/pkg/ms") + (synopsis "Various LATEX packages by Martin Schröder") + (description + "A bundle of LATEX packages by Martin Schröder; the collection comprises: + +@itemize +@item @command{count1to}, make use of fixed TEX counters; +@item @command{everysel}, set commands to execute every time a font is selected; +@item @command{everyshi}, set commands to execute whenever a page is shipped out; +@item @command{multitoc}, typeset the table of contents in multiple columns; +@item @command{prelim2e}, mark typeset pages as preliminary; and +@item @command{ragged2e}, typeset ragged text and allow hyphenation. +@end itemize\n") + (license license:lppl1.3c+))) + +(define-public texlive-latex-needspace + (package + (name "texlive-latex-needspace") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (texlive-ref "latex" "needspace")) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0kw80f5jh4gdpa2ka815abza3gr5z8b929w0745vrlc59pl0017y")))) + (build-system texlive-build-system) + (arguments + '(#:tex-directory "latex/needspace" + #:tex-format "latex")) + (inputs + `(("texlive-latex-filecontents" ,texlive-latex-filecontents))) + (home-page "https://www.ctan.org/pkg/needspace") + (synopsis "Insert pagebreak if not enough space") + (description + "Provides commands to disable pagebreaking within a given vertical +space. If there is not enough space between the command and the bottom of the +page, a new page will be started.") + (license license:lppl))) + +(define-public texlive-latex-eukdate + (package + (name "texlive-latex-eukdate") + (version (number->string %texlive-revision)) + (source + (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/latex/eukdate")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "18xan116l8w47v560bkw6nbhkrml7g04xrlzk3jrpc7qsyf3n5fz")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/latex/eukdate"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "https://www.ctan.org/pkg/eukdate") + (synopsis "UK format dates, with weekday") + (description + "The package is used to change the format of @code{\\today}’s date, +including the weekday, e.g., \"Saturday, 26 June 2008\", the 'UK format', which +is preferred in many parts of the world, as distinct from that which is used in +@code{\\maketitle} of the article class, \"June 26, 2008\", the 'US format'.") + (license license:lppl))) + +(define-public texlive-generic-ulem + (package + (name "texlive-generic-ulem") + (version (number->string %texlive-revision)) + (source + (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/generic/ulem")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1rzdniqq9zk39w8ch8ylx3ywh2mj87s4ivchrsk2b8nx06jyn797")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/generic/ulem"))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs "source") target) + #t)))) + (home-page "https://www.ctan.org/pkg/ulem") + (synopsis "Underline text in TeX") + (description + "The package provides an @code{\\ul} (underline) command which will break +over line ends; this technique may be used to replace @code{\\em} (both in that +form and as the @code{\\emph} command), so as to make output look as if it comes +from a typewriter. The package also offers double and wavy underlining, and +striking out (line through words) and crossing out (/// over words).") + (license license:lppl1.3c+))) + +(define-public texlive-latex-pgf + (package + (name "texlive-latex-pgf") + (version (number->string %texlive-revision)) + (source + (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/latex/pgf")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1dq8p10pz8wn0vx412m7d7d5gj1syxly3yqdqvf7lv2xl8zndn5h")))) + (build-system trivial-build-system) + (native-inputs + `(("texlive-latex-pgf-generic" + ,(origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/generic/pgf")) + (revision %texlive-revision))) + (file-name (string-append "texlive-latex-pgf-generic" version "-checkout")) + (sha256 + (base32 + "0xkxw26sjzr5npjpzpr28yygwdbhzpdd0hsk80gjpidhcxmz393i")))))) + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((target-generic (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/generic/pgf")) + (target-latex (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/tex/latex/pgf"))) + (mkdir-p target-generic) + (mkdir-p target-latex) + (copy-recursively (assoc-ref %build-inputs "texlive-latex-pgf-generic") target-generic) + (copy-recursively (assoc-ref %build-inputs "source") target-latex) + #t)))) + (home-page "https://www.ctan.org/pkg/tikz") + (synopsis "Create PostScript and PDF graphics in TeX") + (description + "PGF is a macro package for creating graphics. It is platform- and +format-independent and works together with the most important TeX backend +drivers, including pdfTeX and dvips. It comes with a user-friendly syntax layer +called TikZ. + +Its usage is similar to pstricks and the standard picture environment. PGF +works with plain (pdf-)TeX, (pdf-)LaTeX, and ConTeXt. Unlike pstricks, it can +produce either PostScript or PDF output.") + (license license:lppl1.3c+))) + +(define-public texlive-latex-koma-script + (package + (name "texlive-latex-koma-script") + (version (number->string %texlive-revision)) + (source (origin + (method svn-fetch) + (uri (svn-reference + (url (string-append "svn://www.tug.org/texlive/tags/" + %texlive-tag "/Master/texmf-dist/" + "/tex/latex/koma-script")) + (revision %texlive-revision))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1g8qg796hc6s092islnybaxs115ldsqwp2vxkk3gpy6vh7wc9r50")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils) + (ice-9 match)) + #:builder + (begin + (use-modules (guix build utils) + (ice-9 match)) + (let ((root (string-append (assoc-ref %outputs "out") + "/share/texmf-dist/")) + (pkgs '(("source" . "tex/latex/koma-script")))) + (for-each (match-lambda + ((pkg . dir) + (let ((target (string-append root dir))) + (mkdir-p target) + (copy-recursively (assoc-ref %build-inputs pkg) + target)))) + pkgs) + #t)))) + (home-page "https://www.ctan.org/pkg/koma-script") + (synopsis "Bundle of versatile classes and packages") + (description + "The KOMA-Script bundle provides replacements for the article, report, and +book classes with emphasis on typography and versatility. There is also a +letter class. + +The bundle also offers: + +@itemize +@item a package for calculating type areas in the way laid down by the +typographer Jan Tschichold, +@item packages for easily changing and defining page styles, +@item a package scrdate for getting not only the current date but also the name +of the day, and +@item a package scrtime for getting the current time. +@end itemize + +All these packages may be used not only with KOMA-Script classes but also with +the standard classes. + +Since every package has its own version number, the version number quoted only +refers to the version of scrbook, scrreprt, scrartcl, scrlttr2 and +typearea (which are the main parts of the bundle).") + (license license:lppl1.3+))) diff --git a/gnu/packages/tmux.scm b/gnu/packages/tmux.scm index 1bc947844a..d8af54ce57 100644 --- a/gnu/packages/tmux.scm +++ b/gnu/packages/tmux.scm @@ -34,7 +34,7 @@ (define-public tmux (package (name "tmux") - (version "2.7") + (version "2.8") (source (origin (method url-fetch) (uri (string-append @@ -42,7 +42,7 @@ version "/tmux-" version ".tar.gz")) (sha256 (base32 - "0lnlhnafvi5700afr69g6gr62pblnd440jj0hxdbrxhk0c87vvcx")))) + "1fm22wva2znkcs5jczrnlxrpzsk2jlwdwy4dhzzyrbsgccsz6svz")))) (build-system gnu-build-system) (inputs `(("libevent" ,libevent) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 528d117e29..14a18c8c35 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -427,7 +427,7 @@ everything from small to very large projects with speed and efficiency.") (define-public libgit2 (package (name "libgit2") - (version "0.26.6") + (version "0.26.7") (source (origin (method url-fetch) (uri (string-append "https://github.com/libgit2/libgit2/" @@ -435,7 +435,7 @@ everything from small to very large projects with speed and efficiency.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0qjn1v5q282v8jih8rqjdqxr5v4n4manr0c8i3nnrf6sxd3xssbn")) + "1vy4dnbvhcq3pw8n8zz6clnsv2xnkrichl8k96w3lb6yyk0lln35")) (patches (search-patches "libgit2-mtime-0.patch")) ;; Remove bundled software. diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index ab57ee4b45..a6930abfda 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1268,7 +1268,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2018.09.18") + (version "2018.10.05") (source (origin (method url-fetch) (uri (string-append "https://yt-dl.org/downloads/" @@ -1276,7 +1276,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "0mlsdmddmyy3xaqy366k48xds14g17l81al3kglndjkbrrji63sb")))) + "1iq02kwxdgh07bf0w0fvbsjbdshs4kja35gy8m70ji9cj10l1mbw")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion diff --git a/gnu/packages/vulkan.scm b/gnu/packages/vulkan.scm index 2474d640d7..ff1088d2e1 100644 --- a/gnu/packages/vulkan.scm +++ b/gnu/packages/vulkan.scm @@ -163,7 +163,7 @@ interpretation of the specifications for these languages.") (define-public vulkan-headers (package (name "vulkan-headers") - (version "1.1.82.0") + (version "1.1.85.0") (source (origin (method url-fetch) @@ -172,7 +172,7 @@ interpretation of the specifications for these languages.") "archive/sdk-" version ".tar.gz")) (sha256 (base32 - "1rbra47f1dkw5bjzvm0k9s2f89c2x80j904ply4bxks7sl3xlwyz")))) + "166hqqb97kjg6h9vp8yxb1cq02i1kqaxvl693482gf8v21fl7ink")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; No tests. @@ -195,7 +195,7 @@ interpretation of the specifications for these languages.") "archive/sdk-" version ".tar.gz")) (sha256 (base32 - "032vfysb8mi19c2lx08vc6k9mbzxmiy17wp7a22vpgwwv69kxkc6")))) + "04d53ynlc0ww8r67hv4sxwg5sirjhpr1laaa9hc6j4niliw0166n")))) (build-system cmake-build-system) (arguments `(#:tests? #f ;FIXME: 23/39 tests fail. Try "tests/run_all_tests.sh". @@ -251,7 +251,7 @@ and the ICD.") "archive/sdk-" version ".tar.gz")) (sha256 (base32 - "175qhfg9lxxfm5zks6jxaybcxamwd9q5kvjq8ikf2dbmskgybr92")))) + "0r26px9rh09giddajlmafv21rx1la1y3bbnjgnpai8aw98wvq9mm")))) (build-system cmake-build-system) (inputs `(("glslang" ,glslang) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 7c58770de7..68d497e955 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -17,6 +17,7 @@ ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Pierre-Antoine Rouby <contact@parouby.fr> +;;; Copyright © 2018 Meiyo Peng <meiyo.peng@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -233,6 +234,46 @@ from scratch. i3 is primarily targeted at advanced users and developers.") (license license:bsd-3))) +(define-public i3blocks + (let ((commit "37f23805ff886639163fbef8aedba71c8071eff8") + (revision "1")) + (package + (name "i3blocks") + (version (string-append "1.4-" revision "." + (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vivien/i3blocks.git") + (commit commit))) + (sha256 + (base32 + "15rnrcajzyrmhlz1a21qqsjlj3dkib70806dlb386fliylc2kisb")) + (file-name (string-append name "-" version "-checkout")))) + (build-system gnu-build-system) + (arguments + `(#:make-flags (list "CC=gcc" (string-append "PREFIX=" %output)) + #:phases (modify-phases %standard-phases + (add-after 'unpack 'autogen + (lambda _ (invoke "sh" "autogen.sh"))) + (add-after 'install 'install-doc + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (man1 (string-append out "/share/man/man1"))) + (install-file "docs/i3blocks.1" man1) + #t)))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("pkg-config" ,pkg-config))) + (home-page "https://github.com/vivien/i3blocks") + (synopsis "Minimalist scheduler for status bar scripts") + (description "i3blocks executes your command lines and generates a +status line from their output. The generated line is meant to be displayed by +the i3 window manager through its i3bar component, as an alternative to +i3status.") + (license license:gpl3+)))) + (define-public perl-anyevent-i3 (package (name "perl-anyevent-i3") diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 1e8c02c02a..e038f97683 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -1,5 +1,5 @@ ;;; 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 © 2015 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com> @@ -996,7 +996,7 @@ as expected."))) (elogind-service) (dbus-service) - (ntp-service) + (service ntp-service-type) x11-socket-directory-service diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index c809b4a4a4..bfa6e297e6 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -53,6 +53,7 @@ static-networking-service-type) #:export (%facebook-host-aliases dhcp-client-service + dhcp-client-service-type dhcpd-service-type dhcpd-configuration @@ -202,9 +203,10 @@ fe80::1%lo0 apps.facebook.com\n") "-pf" #$pid-file ifaces)))) (and (zero? (cdr (waitpid pid))) (read-pid-file #$pid-file))))) - (stop #~(make-kill-destructor)))))) + (stop #~(make-kill-destructor)))) + isc-dhcp)) -(define* (dhcp-client-service #:key (dhcp isc-dhcp)) +(define* (dhcp-client-service #:key (dhcp isc-dhcp)) ;deprecated "Return a service that runs @var{dhcp}, a Dynamic Host Configuration Protocol (DHCP) client, on all the non-loopback network interfaces." (service dhcp-client-service-type dhcp)) @@ -295,7 +297,8 @@ Protocol (DHCP) client, on all the non-loopback network interfaces." ntp-configuration? (ntp ntp-configuration-ntp (default ntp)) - (servers ntp-configuration-servers) + (servers ntp-configuration-servers + (default %ntp-servers)) (allow-large-adjustment? ntp-allow-large-adjustment? (default #f))) @@ -368,9 +371,10 @@ restrict -6 ::1\n")) (description "Run the @command{ntpd}, the Network Time Protocol (NTP) daemon of the @uref{http://www.ntp.org, Network Time Foundation}. The daemon -will keep the system clock synchronized with that of the given servers."))) +will keep the system clock synchronized with that of the given servers.") + (default-value (ntp-configuration)))) -(define* (ntp-service #:key (ntp ntp) +(define* (ntp-service #:key (ntp ntp) ;deprecated (servers %ntp-servers) allow-large-adjustment?) "Return a service that runs the daemon from @var{ntp}, the @@ -1062,10 +1066,10 @@ networking.")))) #~("-u") #~()) #$@(if interface - #~(string-append "-i" #$interface) + #~((string-append "-i" #$interface)) #~()) #$@(if config-file - #~(string-append "-c" #$config-file) + #~((string-append "-c" #$config-file)) #~()) #$@extra-options) #:pid-file #$pid-file)) diff --git a/gnu/system/examples/bare-bones.tmpl b/gnu/system/examples/bare-bones.tmpl index b763258e52..889dcabe64 100644 --- a/gnu/system/examples/bare-bones.tmpl +++ b/gnu/system/examples/bare-bones.tmpl @@ -44,7 +44,7 @@ ;; Add services to the baseline: a DHCP client and ;; an SSH server. - (services (cons* (dhcp-client-service) + (services (cons* (service dhcp-client-service-type) (service openssh-service-type (openssh-configuration (port-number 2222))) diff --git a/gnu/system/examples/beaglebone-black.tmpl b/gnu/system/examples/beaglebone-black.tmpl index d1130c76b6..efef682e3a 100644 --- a/gnu/system/examples/beaglebone-black.tmpl +++ b/gnu/system/examples/beaglebone-black.tmpl @@ -45,7 +45,7 @@ ;; Globally-installed packages. (packages (cons* screen openssh %base-packages)) - (services (cons* (dhcp-client-service) + (services (cons* (service dhcp-client-service-type) ;; mingetty does not work on serial lines. ;; Use agetty with board-specific serial parameters. (agetty-service diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm index f800c3b546..63f544cec9 100644 --- a/gnu/system/shadow.scm +++ b/gnu/system/shadow.scm @@ -181,7 +181,7 @@ fi alias ls='ls -p --color=auto' alias ll='ls -l' alias grep='grep --color=auto'\n")) - (zlogin (plain-file "zlogin" "\ + (zprofile (plain-file "zprofile" "\ # Honor system-wide environment variables source /etc/profile\n")) (guile-wm (computed-file "guile-wm" copy-guile-wm)) @@ -197,7 +197,10 @@ set debug-file-directory ~/.guix-profile/lib/debug set auto-load safe-path /gnu/store/*/lib\n"))) `((".bash_profile" ,profile) (".bashrc" ,bashrc) - (".zlogin" ,zlogin) + ;; Zsh sources ~/.zprofile before ~/.zshrc, and it sources ~/.zlogin + ;; after ~/.zshrc. To avoid interfering with any customizations a user + ;; may have made in their ~/.zshrc, put this in .zprofile, not .zlogin. + (".zprofile" ,zprofile) (".nanorc" ,(plain-file "nanorc" "\ # Include all the syntax highlighting modules. include /run/current-system/profile/share/nano/*.nanorc\n")) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index f97581de33..896d4a8f88 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -673,7 +673,7 @@ non-ASCII names from /tmp.") (name-service-switch %mdns-host-lookup-nss) (services (cons* (avahi-service #:debug? #t) (dbus-service) - (dhcp-client-service) ;needed for multicast + (service dhcp-client-service-type) ;needed for multicast ;; Enable heavyweight debugging output. (modify-services (operating-system-user-services diff --git a/gnu/tests/databases.scm b/gnu/tests/databases.scm index 5c8ca85c13..e0544bbcd2 100644 --- a/gnu/tests/databases.scm +++ b/gnu/tests/databases.scm @@ -35,7 +35,7 @@ (define %memcached-os (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service memcached-service-type))) (define* (run-memcached-test #:optional (port 11211)) @@ -130,7 +130,7 @@ (operating-system (inherit (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service mongodb-service-type))) (packages (cons* mongodb %base-packages)))) diff --git a/gnu/tests/dict.scm b/gnu/tests/dict.scm index dd60ffd464..c50e3cd6da 100644 --- a/gnu/tests/dict.scm +++ b/gnu/tests/dict.scm @@ -34,7 +34,7 @@ (define %dicod-os (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service dicod-service-type (dicod-configuration (interfaces '("0.0.0.0")) diff --git a/gnu/tests/mail.scm b/gnu/tests/mail.scm index 5677969fac..33aa4d3437 100644 --- a/gnu/tests/mail.scm +++ b/gnu/tests/mail.scm @@ -36,7 +36,7 @@ (define %opensmtpd-os (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service opensmtpd-service-type (opensmtpd-configuration (config-file @@ -155,7 +155,7 @@ accept from any for local deliver to mbox (define %exim-os (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service mail-aliases-service-type '()) (service exim-service-type (exim-configuration @@ -283,7 +283,7 @@ acl_check_data: (define %dovecot-os (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (dovecot-service #:config (dovecot-configuration (disable-plaintext-auth? #f) diff --git a/gnu/tests/messaging.scm b/gnu/tests/messaging.scm index f5f99b9f56..36afb987af 100644 --- a/gnu/tests/messaging.scm +++ b/gnu/tests/messaging.scm @@ -35,7 +35,7 @@ "Run a test of an OS running XMPP-SERVICE, which writes its PID to PID-FILE." (define os (marionette-operating-system - (simple-operating-system (dhcp-client-service) + (simple-operating-system (service dhcp-client-service-type) xmpp-service) #:imported-modules '((gnu services herd)))) @@ -167,7 +167,7 @@ (define (run-bitlbee-test) (define os (marionette-operating-system - (simple-operating-system (dhcp-client-service) + (simple-operating-system (service dhcp-client-service-type) (service bitlbee-service-type (bitlbee-configuration (interface "0.0.0.0")))) diff --git a/gnu/tests/monitoring.scm b/gnu/tests/monitoring.scm index 67899987ce..3320a19a77 100644 --- a/gnu/tests/monitoring.scm +++ b/gnu/tests/monitoring.scm @@ -85,7 +85,7 @@ (define %prometheus-node-exporter-os (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service prometheus-node-exporter-service-type (prometheus-node-exporter-configuration)))) diff --git a/gnu/tests/networking.scm b/gnu/tests/networking.scm index ceba7f7d5d..9f12a4ae8d 100644 --- a/gnu/tests/networking.scm +++ b/gnu/tests/networking.scm @@ -39,7 +39,7 @@ (define %inetd-os ;; Operating system with 2 inetd services. (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service inetd-service-type (inetd-configuration (entries (list @@ -463,7 +463,7 @@ COMMIT (define os (marionette-operating-system (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service inetd-service-type (inetd-configuration (entries (list diff --git a/gnu/tests/nfs.scm b/gnu/tests/nfs.scm index 140f03779b..7ef9f1f7bf 100644 --- a/gnu/tests/nfs.scm +++ b/gnu/tests/nfs.scm @@ -55,7 +55,7 @@ (services (cons* (service rpcbind-service-type (rpcbind-configuration)) - (dhcp-client-service) + (service dhcp-client-service-type) %base-services)))) (define (run-nfs-test name socket) diff --git a/gnu/tests/rsync.scm b/gnu/tests/rsync.scm index a6f8fa2bd1..096580022f 100644 --- a/gnu/tests/rsync.scm +++ b/gnu/tests/rsync.scm @@ -111,7 +111,7 @@ PORT." ;; Return operating system under test. (let ((base-os (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service rsync-service-type)))) (operating-system (inherit base-os) diff --git a/gnu/tests/ssh.scm b/gnu/tests/ssh.scm index 2e40122add..e5cd439cdf 100644 --- a/gnu/tests/ssh.scm +++ b/gnu/tests/ssh.scm @@ -39,7 +39,7 @@ empty-password logins. When SFTP? is true, run an SFTP server test." (define os (marionette-operating-system - (simple-operating-system (dhcp-client-service) ssh-service) + (simple-operating-system (service dhcp-client-service-type) ssh-service) #:imported-modules '((gnu services herd) (guix combinators)))) (define vm diff --git a/gnu/tests/version-control.scm b/gnu/tests/version-control.scm index 4409b8a12b..230aa9edf9 100644 --- a/gnu/tests/version-control.scm +++ b/gnu/tests/version-control.scm @@ -92,7 +92,7 @@ ;; Operating system under test. (let ((base-os (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service cgit-service-type (cgit-configuration (nginx %cgit-configuration-nginx))) @@ -237,7 +237,7 @@ HTTP-PORT." (define %git-http-os (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service fcgiwrap-service-type) (service nginx-service-type %git-nginx-configuration) %test-repository-service)) @@ -328,7 +328,7 @@ HTTP-PORT." (define %gitolite-os (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service openssh-service-type) (service gitolite-service-type (gitolite-configuration diff --git a/gnu/tests/virtualization.scm b/gnu/tests/virtualization.scm index c2939355b2..fbdec20805 100644 --- a/gnu/tests/virtualization.scm +++ b/gnu/tests/virtualization.scm @@ -32,7 +32,7 @@ (define %libvirt-os (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (dbus-service) (polkit-service) (service libvirt-service-type))) diff --git a/gnu/tests/web.scm b/gnu/tests/web.scm index 2e209fee97..319655396a 100644 --- a/gnu/tests/web.scm +++ b/gnu/tests/web.scm @@ -125,7 +125,7 @@ HTTP-PORT." (define %httpd-os (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service httpd-service-type (httpd-configuration (config @@ -154,7 +154,7 @@ HTTP-PORT." (define %nginx-os ;; Operating system under test. (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service nginx-service-type (nginx-configuration (log-directory "/var/log/nginx") @@ -188,7 +188,7 @@ sub vcl_synth { (define %varnish-os (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) ;; Pretend to be a web server that serves %index.html-contents. (service varnish-service-type (varnish-configuration @@ -237,7 +237,7 @@ echo(\"Computed by php:\".((string)(2+3))); (define %php-fpm-os ;; Operating system under test. (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service php-fpm-service-type) (service nginx-service-type (nginx-configuration @@ -392,7 +392,7 @@ HTTP-PORT, along with php-fpm." (define %hpcguix-web-os (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service hpcguix-web-service-type (hpcguix-web-configuration (specs %hpcguix-web-specs))))) @@ -407,7 +407,7 @@ HTTP-PORT, along with php-fpm." (define %tailon-os ;; Operating system under test. (simple-operating-system - (dhcp-client-service) + (service dhcp-client-service-type) (service tailon-service-type (tailon-configuration (config-file diff --git a/guix/build-system/python.scm b/guix/build-system/python.scm index ffed837313..b753940bad 100644 --- a/guix/build-system/python.scm +++ b/guix/build-system/python.scm @@ -50,7 +50,7 @@ "Return a URI string for the Python package hosted on the Python Package Index (PyPI) corresponding to NAME and VERSION. EXTENSION is the file name extension, such as '.tar.gz'." - (string-append "https://pypi.io/packages/source/" + (string-append "https://pypi.org/packages/source/" (string-take name 1) "/" name "/" name "-" version extension)) diff --git a/guix/gexp.scm b/guix/gexp.scm index 770b79e012..f7def5862b 100644 --- a/guix/gexp.scm +++ b/guix/gexp.scm @@ -438,6 +438,14 @@ This is the declarative counterpart of 'gexp->file'." (base file-append-base) ;<package> | <derivation> | ... (suffix file-append-suffix)) ;list of strings +(define (write-file-append file port) + (match file + (($ <file-append> base suffix) + (format port "#<file-append ~s ~s>" base + (string-join suffix))))) + +(set-record-type-printer! <file-append> write-file-append) + (define (file-append base . suffix) "Return a <file-append> object that expands to the concatenation of BASE and SUFFIX." diff --git a/guix/import/pypi.scm b/guix/import/pypi.scm index 87b047bdac..3a20fc4b9b 100644 --- a/guix/import/pypi.scm +++ b/guix/import/pypi.scm @@ -330,7 +330,7 @@ VERSION, SOURCE-URL, HOME-PAGE, SYNOPSIS, DESCRIPTION, and LICENSE." (define (pypi-url? url) (or (string-prefix? "https://pypi.org/" url) (string-prefix? "https://pypi.python.org/" url) - (string-prefix? "https://pypi.io/packages" url))) + (string-prefix? "https://pypi.org/packages" url))) (let ((source-url (and=> (package-source package) origin-uri)) (fetch-method (and=> (package-source package) origin-method))) diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm index fb3c50521d..b7b4e22bbe 100644 --- a/guix/scripts/pack.scm +++ b/guix/scripts/pack.scm @@ -198,8 +198,11 @@ added to the pack." (with-directory-excursion %root (exit (zero? (apply system* "tar" - "-I" - (string-join '#+(compressor-command compressor)) + #+@(if (compressor-command compressor) + #~("-I" + (string-join + '#+(compressor-command compressor))) + #~()) "--format=gnu" ;; Avoid non-determinism in the archive. Use diff --git a/guix/tests.scm b/guix/tests.scm index 06e9f8da0b..bcf9b990e5 100644 --- a/guix/tests.scm +++ b/guix/tests.scm @@ -1,5 +1,5 @@ ;;; 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> ;;; ;;; This file is part of GNU Guix. ;;; @@ -17,6 +17,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (guix tests) + #:use-module ((guix config) #:select (%storedir %localstatedir)) #:use-module (guix store) #:use-module (guix derivations) #:use-module (guix packages) @@ -30,6 +31,7 @@ #:use-module (ice-9 binary-ports) #:use-module (web uri) #:export (open-connection-for-tests + with-external-store random-text random-bytevector file=? @@ -74,6 +76,39 @@ store))) +(define (call-with-external-store proc) + "Call PROC with an open connection to the external store or #f it there is +no external store to talk to." + (parameterize ((%daemon-socket-uri + (string-append %localstatedir + "/guix/daemon-socket/socket")) + (%store-prefix %storedir)) + (define store + (catch #t + (lambda () + (open-connection)) + (const #f))) + + (dynamic-wind + (const #t) + (lambda () + ;; Since we're using a different store we must clear the + ;; package-derivation cache. + (hash-clear! (@@ (guix packages) %derivation-cache)) + + (proc store)) + (lambda () + (when store + (close-connection store)))))) + +(define-syntax-rule (with-external-store store exp ...) + "Evaluate EXP with STORE bound to the external store rather than the +temporary test store, or #f if there is no external store to talk to. + +This is meant to be used for tests that need to build packages that would be +too expensive to build entirely in the test store." + (call-with-external-store (lambda (store) exp ...))) + (define (random-seed) (or (and=> (getenv "GUIX_TESTS_RANDOM_SEED") number->string) diff --git a/tests/guix-pack.sh b/tests/guix-pack.sh index bf367fa429..cd721a60e9 100644 --- a/tests/guix-pack.sh +++ b/tests/guix-pack.sh @@ -1,5 +1,6 @@ # GNU Guix --- Functional package management for GNU # Copyright © 2018 Chris Marusich <cmmarusich@gmail.com> +# Copyright © 2018 Ludovic Courtès <ludo@gnu.org> # # This file is part of GNU Guix. # @@ -28,26 +29,33 @@ fi guix pack --version -# FIXME: Starting from commit 66e9944e078cbb9e0d618377dd6df6e639640efa, -# '--bootstrap' is mostly ineffective since 'guix pack' produces derivations -# that refer to guile-sqlite3 and libgcrypt. For now we just skip the test. -exit 77 +# Starting from commit 66e9944e078cbb9e0d618377dd6df6e639640efa, 'guix pack' +# produces derivations that refer to guile-sqlite3 and libgcrypt. To make +# that relatively inexpensive, run the test in the user's global store if +# possible, on the grounds that binaries may already be there or can be built +# or downloaded inexpensively. -# Use --no-substitutes because we need to verify we can do this ourselves. -GUIX_BUILD_OPTIONS="--no-substitutes" -export GUIX_BUILD_OPTIONS +NIX_STORE_DIR="`guile -c '(use-modules (guix config))(display %storedir)'`" +localstatedir="`guile -c '(use-modules (guix config))(display %localstatedir)'`" +GUIX_DAEMON_SOCKET="$localstatedir/guix/daemon-socket/socket" +export NIX_STORE_DIR GUIX_DAEMON_SOCKET + +if ! guile -c '(use-modules (guix)) (exit (false-if-exception (open-connection)))' +then + exit 77 +fi # Build a tarball with no compression. -guix pack --compression=none --bootstrap guile-bootstrap +guix pack --compression=none guile-bootstrap # Build a tarball (with compression). Check that '-e' works as well. -out1="`guix pack --bootstrap guile-bootstrap`" -out2="`guix pack --bootstrap -e '(@ (gnu packages bootstrap) %bootstrap-guile)'`" +out1="`guix pack guile-bootstrap`" +out2="`guix pack -e '(@ (gnu packages bootstrap) %bootstrap-guile)'`" test -n "$out1" test "$out1" = "$out2" # Build a tarball with a symlink. -the_pack="`guix pack --bootstrap -S /opt/gnu/bin=bin guile-bootstrap`" +the_pack="`guix pack -S /opt/gnu/bin=bin guile-bootstrap`" # Try to extract it. Note: we cannot test whether /opt/gnu/bin/guile itself # exists because /opt/gnu/bin may be an absolute symlink to a store item that diff --git a/tests/guix-system.sh b/tests/guix-system.sh index a129efdfcb..23d2da4903 100644 --- a/tests/guix-system.sh +++ b/tests/guix-system.sh @@ -153,8 +153,8 @@ cat > "$tmpfile" <<EOF (operating-system $OS_BASE - (services (cons* (dhcp-client-service) - (dhcp-client-service) ;twice! + (services (cons* (service dhcp-client-service-type) + (service dhcp-client-service-type) ;twice! %base-services))) EOF diff --git a/tests/pack.scm b/tests/pack.scm index c57c6848ff..7f867894c2 100644 --- a/tests/pack.scm +++ b/tests/pack.scm @@ -29,15 +29,12 @@ #:use-module (gnu packages bootstrap) #:use-module (srfi srfi-64)) -(define %store - (open-connection-for-tests)) - ;; Globally disable grafts because they can trigger early builds. (%graft? #f) -(define-syntax-rule (test-assertm name exp) +(define-syntax-rule (test-assertm name store exp) (test-assert name - (run-with-store %store exp + (run-with-store store exp #:guile-for-build (%guile-for-build)))) (define %gzip-compressor @@ -51,37 +48,43 @@ (test-begin "pack") -;; FIXME: The following test would rebuild the world (and likely fail) as a -;; consequence of commit c45477d2a1a651485feede20fe0f3d15aec48b39 (and related -;; changes) that made guile-sqlite3 a dependency of the derivation. -;; See <https://bugs.gnu.org/32184>. -(test-skip 1) +;; The following test needs guile-sqlite3, libgcrypt, etc. as a consequence of +;; commit c45477d2a1a651485feede20fe0f3d15aec48b39 and related changes. Thus, +;; run it on the user's store, if it's available, on the grounds that these +;; dependencies may be already there, or we can get substitutes or build them +;; quite inexpensively; see <https://bugs.gnu.org/32184>. -(test-assertm "self-contained-tarball" - (mlet* %store-monad - ((profile (profile-derivation (packages->manifest - (list %bootstrap-guile)) - #:hooks '() - #:locales? #f)) - (tarball (self-contained-tarball "pack" profile - #:symlinks '(("/bin/Guile" - -> "bin/guile")) - #:compressor %gzip-compressor - #:archiver %tar-bootstrap)) - (check (gexp->derivation - "check-tarball" - #~(let ((bin (string-append "." #$profile "/bin"))) - (setenv "PATH" - (string-append #$%tar-bootstrap "/bin")) - (system* "tar" "xvf" #$tarball) - (mkdir #$output) - (exit - (and (file-exists? (string-append bin "/guile")) - (string=? (string-append #$%bootstrap-guile "/bin") - (readlink bin)) - (string=? (string-append ".." #$profile - "/bin/guile") - (readlink "bin/Guile")))))))) - (built-derivations (list check)))) +(with-external-store store + (unless store (tests-skip 1)) + (test-assertm "self-contained-tarball" store + (mlet* %store-monad + ((profile (profile-derivation (packages->manifest + (list %bootstrap-guile)) + #:hooks '() + #:locales? #f)) + (tarball (self-contained-tarball "pack" profile + #:symlinks '(("/bin/Guile" + -> "bin/guile")) + #:compressor %gzip-compressor + #:archiver %tar-bootstrap)) + (check (gexp->derivation + "check-tarball" + #~(let ((bin (string-append "." #$profile "/bin"))) + (setenv "PATH" + (string-append #$%tar-bootstrap "/bin")) + (system* "tar" "xvf" #$tarball) + (mkdir #$output) + (exit + (and (file-exists? (string-append bin "/guile")) + (string=? (string-append #$%bootstrap-guile "/bin") + (readlink bin)) + (string=? (string-append ".." #$profile + "/bin/guile") + (readlink "bin/Guile")))))))) + (built-derivations (list check))))) (test-end) + +;; Local Variables: +;; eval: (put 'test-assertm 'scheme-indent-function 2) +;; End: diff --git a/tests/pypi.scm b/tests/pypi.scm index 616ec191f5..6daa44a6e7 100644 --- a/tests/pypi.scm +++ b/tests/pypi.scm @@ -81,7 +81,7 @@ baz > 13.37") (dummy-package "foo" (source (dummy-origin (uri - "https://pypi.io/packages/source/p/psutil/psutil-4.3.0.tar.gz")))))) + "https://pypi.org/packages/source/p/psutil/psutil-4.3.0.tar.gz")))))) (test-equal "guix-package->pypi-name, new URL style" "certbot" |