diff options
author | Leo Famulari <leo@famulari.name> | 2016-07-22 18:57:40 -0400 |
---|---|---|
committer | Leo Famulari <leo@famulari.name> | 2016-07-22 18:58:31 -0400 |
commit | d227260d2f7833b6bdc55b8e3792378626ef3b69 (patch) | |
tree | 26d47d5d8ee8efb102323bca215429a8f8fe1095 | |
parent | d778fa5ff6f4a860919eaf13db3f84cfc68cbee8 (diff) | |
parent | 26ad4adb5568c6ff370f446431b079520fb09615 (diff) |
Merge branch 'master' into core-updates
Resolved conflicts:
* gnu/packages/scheme.scm: Conflict in import of (guix licenses). On master,
"#:hide (openssl)" was used. On core-updates, "#:select (some licenses)" was
used. The latter won the conflict.
* gnu/packages/version-control.scm (git)[arguments]: Whitespace conflict
in 'install-shell-completion.
89 files changed, 1437 insertions, 818 deletions
diff --git a/build-aux/build-self.scm b/build-aux/build-self.scm index b78f3cb437..59028305e7 100644 --- a/build-aux/build-self.scm +++ b/build-aux/build-self.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2014, 2016 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -19,7 +19,9 @@ (define-module (build-self) #:use-module (gnu) #:use-module (guix) + #:use-module (guix config) #:use-module (srfi srfi-1) + #:use-module (srfi srfi-19) #:export (build)) ;;; Commentary: @@ -44,6 +46,18 @@ (define libgcrypt (first (find-best-packages-by-name "libgcrypt" #f))) +(define zlib + (first (find-best-packages-by-name "zlib" #f))) + +(define gzip + (first (find-best-packages-by-name "gzip" #f))) + +(define bzip2 + (first (find-best-packages-by-name "bzip2" #f))) + +(define xz + (first (find-best-packages-by-name "xz" #f))) + (define guile-json (first (find-best-packages-by-name "guile-json" #f))) @@ -57,12 +71,33 @@ (lambda (file) (string-append (dirname file) "/..")))) + +(define (date-version-string) + "Return the current date and hour in UTC timezone, for use as a poor +person's version identifier." + ;; XXX: Replace with a Git commit id. + (date->string (current-date 0) "~Y~m~d.~H")) + ;; The procedure below is our return value. -(define* (build source #:key verbose? +(define* (build source + #:key verbose? (version (date-version-string)) #:allow-other-keys #:rest rest) "Return a derivation that unpacks SOURCE into STORE and compiles Scheme files." + ;; The '%xxxdir' variables were added to (guix config) in July 2016 so we + ;; cannot assume that they are defined. Try to guess their value when + ;; they're undefined (XXX: we get an incorrect guess when environment + ;; variables such as 'NIX_STATE_DIR' are defined!). + (define storedir + (if (defined? '%storedir) %storedir %store-directory)) + (define localstatedir + (if (defined? '%localstatedir) %localstatedir (dirname %state-directory))) + (define sysconfdir + (if (defined? '%sysconfdir) %sysconfdir (dirname %config-directory))) + (define sbindir + (if (defined? '%sbindir) %sbindir (dirname %guix-register-program))) + (define builder #~(begin (use-modules (guix build pull)) @@ -73,12 +108,28 @@ files." (build-guix #$output #$source + #:system #$%system + #:storedir #$storedir + #:localstatedir #$localstatedir + #:sysconfdir #$sysconfdir + #:sbindir #$sbindir + + #:package-name #$%guix-package-name + #:package-version #$version + #:bug-report-address #$%guix-bug-report-address + #:home-page-url #$%guix-home-page-url + + #:libgcrypt #$libgcrypt + #:zlib #$zlib + #:gzip #$gzip + #:bzip2 #$bzip2 + #:xz #$xz + ;; XXX: This is not perfect, enabling VERBOSE? means ;; building a different derivation. #:debug-port (if #$verbose? (current-error-port) - (%make-void-port "w")) - #:gcrypt #$libgcrypt))) + (%make-void-port "w"))))) (gexp->derivation "guix-latest" builder #:modules '((guix build pull) diff --git a/doc/contributing.texi b/doc/contributing.texi index 208c6af5e8..dc554d2c76 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -323,6 +323,12 @@ related to the hardware---e.g., use of different instruction set extensions---or to the operating system kernel---e.g., reliance on @code{uname} or @file{/proc} files. +@item +When writing documentation, please use gender-neutral wording when +referring to people, such as +@uref{https://en.wikipedia.org/wiki/Singular_they, singular +``they''@comma{} ``their''@comma{} ``them''}, and so forth. + @end enumerate When posting a patch to the mailing list, use @samp{[PATCH] @dots{}} as diff --git a/doc/guix.texi b/doc/guix.texi index 318e6cb5d9..0d6739adc3 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2387,7 +2387,7 @@ package looks like this: (base32 "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i")))) (build-system gnu-build-system) - (arguments `(#:configure-flags '("--enable-silent-rules"))) + (arguments '(#:configure-flags '("--enable-silent-rules"))) (inputs `(("gawk" ,gawk))) (synopsis "Hello, GNU world: An example GNU package") (description "Guess what GNU Hello prints!") @@ -2452,12 +2452,44 @@ The @code{arguments} field specifies options for the build system @var{gnu-build-system} as a request run @file{configure} with the @code{--enable-silent-rules} flag. +@cindex quote +@cindex quoting +@findex ' +@findex quote +What about these quote (@code{'}) characters? They are Scheme syntax to +introduce a literal list; @code{'} is synonymous with @code{quote}. +@xref{Expression Syntax, quoting,, guile, GNU Guile Reference Manual}, +for details. Here the value of the @code{arguments} field is a list of +arguments passed to the build system down the road, as with @code{apply} +(@pxref{Fly Evaluation, @code{apply},, guile, GNU Guile Reference +Manual}). + +The hash-colon (@code{#:}) sequence defines a Scheme @dfn{keyword} +(@pxref{Keywords,,, guile, GNU Guile Reference Manual}), and +@code{#:configure-flags} is a keyword used to pass a keyword argument +to the build system (@pxref{Coding With Keywords,,, guile, GNU Guile +Reference Manual}). + @item The @code{inputs} field specifies inputs to the build process---i.e., build-time or run-time dependencies of the package. Here, we define an input called @code{"gawk"} whose value is that of the @var{gawk} variable; @var{gawk} is itself bound to a @code{<package>} object. +@cindex backquote (quasiquote) +@findex ` +@findex quasiquote +@cindex comma (unquote) +@findex , +@findex unquote +@findex ,@@ +@findex unquote-splicing +Again, @code{`} (a backquote, synonymous with @code{quasiquote}) allows +us to introduce a literal list in the @code{inputs} field, while +@code{,} (a comma, synonymous with @code{unquote}) allows us to insert a +value in that list (@pxref{Expression Syntax, unquote,, guile, GNU Guile +Reference Manual}). + Note that GCC, Coreutils, Bash, and other essential tools do not need to be specified as inputs here. Instead, @var{gnu-build-system} takes care of ensuring that they are present (@pxref{Build Systems}). @@ -5633,6 +5665,20 @@ archive}), the daemon may download substitutes from it: guix-daemon --substitute-urls=http://example.org:8080 @end example +As a bonus, @command{guix publish} also serves as a content-addressed +mirror for source files referenced in @code{origin} records +(@pxref{origin Reference}). For instance, assuming @command{guix +publish} is running on @code{example.org}, the following URL returns the +raw @file{hello-2.10.tar.gz} file with the given SHA256 hash +(represented in @code{nix-base32} format, @pxref{Invoking guix hash}): + +@example +http://example.org/file/hello-2.10.tar.gz/sha256/0ssi1@dots{}ndq1i +@end example + +Obviously, these URLs only work for files that are in the store; in +other cases, they return 404 (``Not Found''). + The following options are available: @table @code diff --git a/gnu/local.mk b/gnu/local.mk index 29e1e84ae0..65834897dc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -166,6 +166,7 @@ GNU_SYSTEM_MODULES = \ %D%/packages/gv.scm \ %D%/packages/gxmessage.scm \ %D%/packages/haskell.scm \ + %D%/packages/hexedit.scm \ %D%/packages/hugs.scm \ %D%/packages/hurd.scm \ %D%/packages/ibus.scm \ diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index 1d08be9e13..a7c4892b6b 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -346,8 +346,8 @@ login, passwd, su, groupadd, and useradd.") (version "1.08") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/mingetty/mingetty-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/mingetty/mingetty/" + version "/mingetty-" version ".tar.gz")) (sha256 (base32 "05yxrp44ky2kg6qknk1ih0kvwkgbn9fbz77r3vci7agslh5wjm8g")))) @@ -440,8 +440,8 @@ ONC RPC numbers.") (version "0.7.1") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/netcat/netcat-" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/netcat/netcat/" version + "/netcat-" version ".tar.bz2")) (sha256 (base32 "1frjcdkhkpzk0f84hx6hmw5l0ynpmji8vcbaxg8h5k2svyxz0nmm")))) @@ -705,7 +705,8 @@ by bandwidth they use.") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/clusterssh/" - "clusterssh-" version ".tar.gz")) + "1.%20ClusterSSH%20Series%203/" version + "/clusterssh-" version ".tar.gz")) (sha256 (base32 "1bwggpvaj2al5blg1ynapviv2kpydffpzq2zkhi81najnvzc1rr7")))) @@ -1112,8 +1113,8 @@ system is under heavy load.") (version "1.2.0") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/detox/detox-" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/detox/detox/" version + "/detox-" version ".tar.bz2")) (sha256 (base32 "1y6vvjqsg54kl49cry73jbfhr04s7wjs779vrr9zrq6kww7dkymb")))) diff --git a/gnu/packages/audacity.scm b/gnu/packages/audacity.scm index 9eae6aa1aa..0f9554deba 100644 --- a/gnu/packages/audacity.scm +++ b/gnu/packages/audacity.scm @@ -42,9 +42,8 @@ (source (origin (method url-fetch) - (uri - (string-append - "mirror://sourceforge/audacity/audacity-minsrc-" version ".tar.xz")) + (uri (string-append "mirror://sourceforge/audacity/audacity/" version + "/audacity-minsrc-" version ".tar.xz")) (sha256 (base32 "1cs2w3fwqylpqmfwkvlgdx5lhclpckfil7pqibl37qlbnf4qvndh")) (patches (search-patches "audacity-fix-ffmpeg-binding.patch")))) diff --git a/gnu/packages/audio.scm b/gnu/packages/audio.scm index 144d7321b6..27565479a0 100644 --- a/gnu/packages/audio.scm +++ b/gnu/packages/audio.scm @@ -75,8 +75,8 @@ (version "2.1.2") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/alsamodular/ams-" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/alsamodular/alsamodular" + "/" version "/ams-" version ".tar.bz2")) (sha256 (base32 "1azbrhpfk4nnybr7kgmc7w6al6xnzppg853vas8gmkh185kk11l0")))) @@ -766,8 +766,8 @@ also play midifiles using a Soundfont.") (version "2.7") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/faac/faad2-" version ".zip")) + (uri (string-append "mirror://sourceforge/faac/faad2-src/faad2-" + version "/faad2-" version ".zip")) (sha256 (base32 "16f3l16c00sg0wkrkm3vzv0gy3g97x309vw788igs0cap2x1ak3z")))) @@ -868,7 +868,7 @@ patches that can be used with softsynths such as Timidity and WildMidi.") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/guitarix/guitarix2-" + "mirror://sourceforge/guitarix/guitarix/guitarix2-" version ".tar.xz")) (sha256 (base32 @@ -1230,8 +1230,8 @@ connections between them.") (version "3.1.0") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/bs2b/libbs2b-" version ".tar.lzma")) + (uri (string-append "mirror://sourceforge/bs2b/libbs2b/" version + "/libbs2b-" version ".tar.lzma")) (sha256 (base32 "1mcc4gjkmphczjybnsrip3gq1f974knzys7x49bv197xk3fn8wdr")))) @@ -1253,10 +1253,8 @@ essential distortions.") (version "0.28") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/liblo/liblo-" - version - ".tar.gz")) + (uri (string-append "mirror://sourceforge/liblo/liblo/" version + "/liblo-" version ".tar.gz")) (sha256 (base32 "02drgnpirvl2ihvzgsmn02agr5sj3vipzzw9vma56qlkgfvak56s")))) @@ -1709,9 +1707,9 @@ Suil currently supports every combination of Gtk 2, Qt 4, and X11.") (version "2.14.0") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/timidity/TiMidity++-" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/timidity/TiMidity++" + "/TiMidity++-" version + "/TiMidity++-" version ".tar.bz2")) (sha256 (base32 "0xk41w4qbk23z1fvqdyfblbz10mmxsllw0svxzjw5sa9y11vczzr")))) @@ -1871,7 +1869,7 @@ encode and decode wavpack files.") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/project/modplug-xmms/" + "mirror://sourceforge/modplug-xmms/" name "/" version "/" name "-" version ".tar.gz")) (sha256 (base32 @@ -1892,7 +1890,7 @@ surround and reverb.") (version "4.3.10") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/xmp/libxmp/" + (uri (string-append "mirror://sourceforge/xmp/libxmp/" version "/" name "-" version ".tar.gz")) (sha256 (base32 @@ -1912,7 +1910,7 @@ Scream Tracker 3 (S3M), Fast Tracker II (XM), and Impulse Tracker (IT).") (version "4.0.10") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/xmp/xmp/" + (uri (string-append "mirror://sourceforge/xmp/xmp/" version "/" name "-" version ".tar.gz")) (sha256 (base32 @@ -1972,8 +1970,8 @@ control functionality, or just for playing around with the sound effects.") (version "14.4.2") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/sox/sox-" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/sox/sox/" version "/" + name "-" version ".tar.bz2")) (sha256 (base32 "170lx90r1nlnb2j6lg00524iwvqy72p48vii4xc5prrh8dnrb9l1")))) @@ -2035,8 +2033,8 @@ conversion. It may be used, for example, to resample PCM-encoded audio.") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/twolame/twolame-" version ".tar.gz")) + (uri (string-append "mirror://sourceforge/twolame/twolame/" version + "/twolame-" version ".tar.gz")) (sha256 (base32 "0ahiqqng5pidwhj1wzph4vxxgxxgcfa3gl0gywipzx2ii7s35wwq")))) (build-system gnu-build-system) @@ -2102,8 +2100,8 @@ interface.") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/qsynth/qsynth-" version ".tar.gz")) + (uri (string-append "mirror://sourceforge/qsynth/qsynth/" version + "/qsynth-" version ".tar.gz")) (sha256 (base32 "034p6mbwrjnxd9b6h20cidxi4ilkk3cgpjp154j0jzjs1ipf7x2h")))) (build-system gnu-build-system) diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 1cbf85ff6c..5cd92b8150 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -3124,7 +3124,7 @@ BAM and Wiggle files in both transcript-coordinate and genomic-coordinate.") (method url-fetch) (uri (string-append "mirror://sourceforge/rseqc/" - version "/RSeQC-" version ".tar.gz")) + "RSeQC-" version ".tar.gz")) (sha256 (base32 "15ly0254yi032qzkdplg00q144qfdsd986gh62829rl5bkxhj330")) (modules '((guix build utils))) @@ -3235,7 +3235,7 @@ to the user's query of interest.") (origin (method url-fetch) (uri - (string-append "mirror://sourceforge/samtools/" + (string-append "mirror://sourceforge/samtools/samtools/" version "/samtools-" version ".tar.bz2")) (sha256 (base32 @@ -3295,7 +3295,7 @@ viewer.") (origin (method url-fetch) (uri - (string-append "mirror://sourceforge/samtools/" + (string-append "mirror://sourceforge/samtools/samtools/" version "/samtools-" version ".tar.bz2")) (sha256 (base32 "1m33xsfwz0s8qi45lylagfllqg7fphf4dr0780rsvw75av9wk06h")))) @@ -4022,9 +4022,8 @@ sequences.") (version "1.4.6-p2") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/subread/subread-" - version "-source.tar.gz")) + (uri (string-append "mirror://sourceforge/subread/subread-" + version "/subread-" version "-source.tar.gz")) (sha256 (base32 "06sv9mpcsdj6p68y15d6gi70lca3lxmzk0dn61hg0kfsa7rxmsr3")))) diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm index 882f9cc7c0..fd8f4e80e3 100644 --- a/gnu/packages/boost.scm +++ b/gnu/packages/boost.scm @@ -38,7 +38,7 @@ (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/boost/boost_" + "mirror://sourceforge/boost/boost/" version "/boost_" (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version) ".tar.bz2")) (sha256 diff --git a/gnu/packages/cdrom.scm b/gnu/packages/cdrom.scm index 2dd84a2a17..4263cdebb7 100644 --- a/gnu/packages/cdrom.scm +++ b/gnu/packages/cdrom.scm @@ -51,8 +51,8 @@ (version "1.3.2") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/libcddb/libcddb-" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/libcddb/libcddb/" version + "/libcddb-" version ".tar.bz2")) (sha256 (base32 "0fr21a7vprdyy1bq6s99m0x420c9jm5fipsd63pqv8qyfkhhxkim")))) diff --git a/gnu/packages/certs.scm b/gnu/packages/certs.scm index dd7d339794..f5a4372d5c 100644 --- a/gnu/packages/certs.scm +++ b/gnu/packages/certs.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,7 +25,6 @@ #:use-module (guix build-system gnu) #:use-module (guix build-system trivial) #:use-module (gnu packages) - #:use-module (gnu packages gnuzilla) #:use-module (gnu packages python) #:use-module (gnu packages perl) #:use-module (gnu packages tls)) @@ -71,8 +71,20 @@ (home-page "http://pkgs.fedoraproject.org/cgit/ca-certificates.git/"))) (define-public nss-certs - (package (inherit nss) ; to reuse the source, version and some metadata + (package (name "nss-certs") + (version "3.23") + (source (origin + (method url-fetch) + (uri (let ((version-with-underscores + (string-join (string-split version #\.) "_"))) + (string-append + "https://ftp.mozilla.org/pub/mozilla.org/security/nss/" + "releases/NSS_" version-with-underscores "_RTM/src/" + "nss-" version ".tar.gz"))) + (sha256 + (base32 + "1kqidv91icq96m9m8zx50n7px08km2l88458rkgyjwcn3kiq7cwl")))) (build-system gnu-build-system) (outputs '("out")) (native-inputs @@ -123,5 +135,7 @@ '(set-paths install-locale unpack))))) (synopsis "CA certificates from Mozilla") (description - "This package provides certificates for Certification Authorities (CA) -taken from the NSS package and thus ultimately from the Mozilla project."))) + "This package provides certificates for Certification Authorities (CA) +taken from the NSS package and thus ultimately from the Mozilla project.") + (home-page "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS") + (license license:mpl2.0))) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index c3efd15e44..233e803431 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -287,8 +287,8 @@ stack traces.") (version "1.12") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/ltp/lcov-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/ltp/Coverage%20Analysis" + "/LCOV-" version "/lcov-" version ".tar.gz")) (sha256 (base32 "19wfifdpxxivhq9adbphanjfga9bg9spms9v7c3589wndjff8x5l")))) diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm index af3bba1f61..01b32a2ac3 100644 --- a/gnu/packages/compression.scm +++ b/gnu/packages/compression.scm @@ -634,7 +634,8 @@ time for compression ratio.") (version "4.3") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/squashfs/" + (uri (string-append "mirror://sourceforge/squashfs/squashfs/" + "squashfs" version "/" "squashfs" version ".tar.gz")) (sha256 (base32 diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index c055315321..2865ff1494 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -306,8 +306,8 @@ device-specific programs to convert and print many types of files.") (version "3.16.3") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/hplip/" - "hplip-" version ".tar.gz")) + (uri (string-append "mirror://sourceforge/hplip/hplip/" version + "/hplip-" version ".tar.gz")) (sha256 (base32 "1501qdnkjp1ybgagy5188fmf6cgmj5555ygjl3543nlbwcp31lj2")))) diff --git a/gnu/packages/djvu.scm b/gnu/packages/djvu.scm index 47a76169f6..e739df3772 100644 --- a/gnu/packages/djvu.scm +++ b/gnu/packages/djvu.scm @@ -28,8 +28,8 @@ (version "3.5.27") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/djvu/djvulibre-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/djvu/DjVuLibre/" + version "/djvulibre-" version ".tar.gz")) (sha256 (base32 "0psh3zl9dj4n4r3lx25390nx34xz0bg0ql48zdskhq354ljni5p6")))) diff --git a/gnu/packages/docbook.scm b/gnu/packages/docbook.scm index b8a8ba69dc..3d18d459bd 100644 --- a/gnu/packages/docbook.scm +++ b/gnu/packages/docbook.scm @@ -135,8 +135,8 @@ by no means limited to these applications.) This package provides XML DTDs.") (version "1.78.1") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/docbook/docbook-xsl-" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/docbook/docbook-xsl/" + version "/docbook-xsl-" version ".tar.bz2")) (sha256 (base32 "0rxl013ncmz1n6ymk2idvx3hix9pdabk8xn01cpcv32wmfb753y9")))) @@ -176,7 +176,8 @@ by no means limited to these applications.) This package provides XML DTDs.") (version "0.3.5") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/dblatex/dblatex-" + (uri (string-append "mirror://sourceforge/dblatex/dblatex/" + "dblatex-" version "/dblatex-" version ".tar.bz2")) (sha256 (base32 diff --git a/gnu/packages/documentation.scm b/gnu/packages/documentation.scm index 8302cc49cc..72af708dbd 100644 --- a/gnu/packages/documentation.scm +++ b/gnu/packages/documentation.scm @@ -43,8 +43,8 @@ (version "8.6.9") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/asciidoc/asciidoc-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/asciidoc/asciidoc/" + version "/asciidoc-" version ".tar.gz")) (sha256 (base32 "1w71nk527lq504njmaf0vzr93pgahkgzzxzglrq6bay8cw2rvnvq")))) @@ -126,8 +126,8 @@ or Java class files.") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/scrollkeeper/scrollkeeper-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/scrollkeeper/scrollkeeper/" + version "/scrollkeeper-" version ".tar.gz")) (sha256 (base32 "1bfxwxc1ngh11v36z899sz9qam366r050fhkyb5adv65lb1x62sa")))) (build-system gnu-build-system) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index a8187f8f85..6289bea7af 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -270,7 +270,7 @@ Libraries with some extra bells and whistles.") (define-public enlightenment (package (name "enlightenment") - (version "0.21.0") + (version "0.21.1") (source (origin (method url-fetch) (uri @@ -278,7 +278,7 @@ Libraries with some extra bells and whistles.") name "/" name "-" version ".tar.xz")) (sha256 (base32 - "0p85dmk9ysbf9y7vlc92z7495mh9l860xj3s8pspy9mscv3dnwg9")))) + "119sxrgrz163c01yx0q9n2jpmmbv0a58akmz0c2z4xy37f1m02rx")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--enable-mount-eeze"))) diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm index e3f8d80c02..d0c164eff4 100644 --- a/gnu/packages/flashing-tools.scm +++ b/gnu/packages/flashing-tools.scm @@ -114,8 +114,8 @@ technique (ISP).") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/dfu-programmer/dfu-programmer-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/dfu-programmer/dfu-programmer/" + version "/dfu-programmer-" version ".tar.gz")) (sha256 (base32 "15gr99y1z9vbvhrkd25zqhnzhg6zjmaam3vfjzf2mazd39mx7d0x")) diff --git a/gnu/packages/fonts.scm b/gnu/packages/fonts.scm index 3faeb2ebd8..9b2281ad20 100644 --- a/gnu/packages/fonts.scm +++ b/gnu/packages/fonts.scm @@ -129,7 +129,7 @@ TrueType (TTF) files.") (version "2.35") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/dejavu/" + (uri (string-append "mirror://sourceforge/dejavu/dejavu/" version "/dejavu-fonts-ttf-" version ".tar.bz2")) (sha256 @@ -386,7 +386,7 @@ The Liberation Fonts are sponsored by Red Hat.") (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/project/terminus-font/terminus-font-" + "mirror://sourceforge/terminus-font/terminus-font-" version "/terminus-font-" version @@ -476,7 +476,8 @@ text in Simplified Chinese, Traditional Chinese, Japanese, and Korean.") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/wqy/wqy-zenhei-" + "mirror://sourceforge/wqy/wqy-zenhei/" version + "%20%28Fighting-state%20RC1%29/wqy-zenhei-" version ".tar.gz")) (file-name (string-append "wqy-zenhei-" version ".tar.gz")) (sha256 diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index 38068008ca..9ddbaec2f2 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -397,8 +397,8 @@ and returns a sequence of positioned glyphids from the font.") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/potrace/potrace-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/potrace/" version + "/potrace-" version ".tar.gz")) (sha256 (base32 "115p2vgyq7p2mf4nidk2x3aa341nvv2v8ml056vbji36df5l6lk2")))) diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm index b11285ab54..7067a714e7 100644 --- a/gnu/packages/game-development.scm +++ b/gnu/packages/game-development.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2015, 2016 David Thompson <davet@gnu.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -342,6 +343,58 @@ etc.") (home-page "http://liballeg.org") (license license:giftware))) +(define-public allegro + (package + (name "allegro") + (version "5.2.0") + (source (origin + (method url-fetch) + (uri (string-append "http://download.gna.org/allegro/allegro/" + version "/allegro-" version ".tar.gz")) + (sha256 + (base32 + "1mwzgzc4nb5k5zkbq7yrc6hg63yxq3wk69lmjag1h19x8b6njnmg")))) + (build-system cmake-build-system) + (arguments `(#:tests? #f)) ; there are no tests + (inputs + ;; FIXME: Add the following optional inputs: xinput2, opensl, dumb + `(("flac" ,flac) + ("freetype" ,freetype) + ("glu" ,glu) + ("gtk" ,gtk+-2) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libtheora" ,libtheora) + ("libvorbis" ,libvorbis) + ("libxcursor" ,libxcursor) + ("libxinerama" ,libxinerama) + ("libxrandr" ,libxrandr) + ("mesa" ,mesa) + ("openal" ,openal) + ("physfs" ,physfs) + ("zlib" ,zlib))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (synopsis "Game programming library") + (description "Allegro is a library mainly aimed at video game and +multimedia programming. It handles common, low-level tasks such as creating +windows, accepting user input, loading data, drawing images, playing sounds, +etc.") + (home-page "http://liballeg.org") + (license license:bsd-3))) + +(define-public allegro-5.0 + (package (inherit allegro) + (name "allegro") + (version "5.0.11") + (source (origin + (method url-fetch) + (uri (string-append "http://download.gna.org/allegro/allegro/" + version "/allegro-" version ".tar.gz")) + (sha256 + (base32 + "0cd51qrh97jrr0xdmnivqgwljpmizg8pixsgvc4blqqlaz4i9zj9")))))) + (define-public aseprite (package (name "aseprite") diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm index 731e243f46..3b193eb21c 100644 --- a/gnu/packages/games.scm +++ b/gnu/packages/games.scm @@ -1024,14 +1024,16 @@ falling, themeable graphics and sounds, and replays.") (define-public wesnoth (package (name "wesnoth") - (version "1.12.5") + (version "1.12.6") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/wesnoth/" + (uri (string-append "mirror://sourceforge/wesnoth/wesnoth-" + (version-major+minor version) "/wesnoth-" + version "/" name "-" version ".tar.bz2")) (sha256 (base32 - "07d8ms9ayswg2g530p0zwmz3d77zv68l6nmc718iq9sbv90av6jr")))) + "0kifp6g1dsr16m6ngjq2hx19h851fqg326ps3krnhpyix963h3x5")))) (build-system cmake-build-system) (arguments '(#:tests? #f ; no check target diff --git a/gnu/packages/ghostscript.scm b/gnu/packages/ghostscript.scm index ae00eea1dc..417f47e79a 100644 --- a/gnu/packages/ghostscript.scm +++ b/gnu/packages/ghostscript.scm @@ -41,8 +41,8 @@ (version "2.6") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/lcms/lcms2-" version ".tar.gz")) + (uri (string-append "mirror://sourceforge/lcms/lcms/" version + "/lcms2-" version ".tar.gz")) (sha256 (base32 "1c8lgq8gfs3nyplvbx9k8wzfj6r2bqi3f611vb1m8z3476454wji")))) (build-system gnu-build-system) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 7fa79bbde3..f36d15a9b9 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -80,7 +80,7 @@ as ASCII text.") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/project/freeglut/freeglut/" + "mirror://sourceforge/freeglut/freeglut/" version "/freeglut-" version ".tar.gz")) (sha256 (base32 @@ -121,7 +121,7 @@ the X-Consortium license.") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/project/ftgl/FTGL%20Source/2.1.3~rc5/" + "mirror://sourceforge/ftgl/FTGL%20Source/2.1.3~rc5/" "ftgl-" version ".tar.gz")) (sha256 (base32 @@ -358,10 +358,8 @@ glxgears, glxheads, and glxinfo.") (version "1.11.0") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/glew/glew-" - version - ".tgz")) + (uri (string-append "mirror://sourceforge/glew/glew/" version + "/glew-" version ".tgz")) (sha256 (base32 "1mhkllxz49l1x680dmzrv2i82qjrq017sykah3xc90f2d8qcxfv9")) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 9335005150..318a04d403 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -788,7 +788,7 @@ the API.") (version "1.2.0") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/project/gtkglext/gtkglext/" + (uri (string-append "mirror://sourceforge/gtkglext/gtkglext/" version "/gtkglext-" version ".tar.gz")) (sha256 (base32 "1ya4d2j2aacr9ii5zj4ac95fjpdvlm2rg79mgnk7yvl1dcy3y1z5")) diff --git a/gnu/packages/gnucash.scm b/gnu/packages/gnucash.scm index eaa84ccc32..bdef0b163b 100644 --- a/gnu/packages/gnucash.scm +++ b/gnu/packages/gnucash.scm @@ -46,8 +46,8 @@ (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/gnucash/gnucash-" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/gnucash/gnucash%20%28stable%29/" + version "/gnucash-" version ".tar.bz2")) (sha256 (base32 "0x84f07p30pwhriamv8ifljgw755cj87rc12jy1xddf47spyj7rp")) diff --git a/gnu/packages/graphviz.scm b/gnu/packages/graphviz.scm index e4b9094632..610bd16beb 100644 --- a/gnu/packages/graphviz.scm +++ b/gnu/packages/graphviz.scm @@ -119,8 +119,8 @@ interfaces for other technical domains.") (version "0.7.6") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/gts/gts-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/gts/gts/" version + "/gts-" version ".tar.gz")) (sha256 (base32 "07mqx09jxh8cv9753y2d2jsv7wp8vjmrd7zcfpbrddz3wc9kx705")))) diff --git a/gnu/packages/hexedit.scm b/gnu/packages/hexedit.scm new file mode 100644 index 0000000000..d2aaec306b --- /dev/null +++ b/gnu/packages/hexedit.scm @@ -0,0 +1,46 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages hexedit) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (gnu packages ncurses) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public hexedit + (package + (name "hexedit") + (version "1.2.13") + (source (origin + (method url-fetch) + (uri (string-append "http://rigaux.org/" + name "-" version ".src.tgz")) + (sha256 + (base32 + "1mwdp1ikk64cqmagnrrps5jkn3li3n47maiqh2qc1xbp1ains4ka")))) + (build-system gnu-build-system) + (arguments '(#:tests? #f)) ; no check target + (inputs `(("ncurses" ,ncurses))) + (synopsis "View and edit files or devices in hexadecimal or ASCII") + (description "hexedit shows a file both in ASCII and in hexadecimal. The +file can be a device as the file is read a piece at a time. You can modify +the file and search through it.") + (home-page "http://rigaux.org/hexedit.html") + (license license:gpl2+))) diff --git a/gnu/packages/image.scm b/gnu/packages/image.scm index 0ab3f60c5e..188d142710 100644 --- a/gnu/packages/image.scm +++ b/gnu/packages/image.scm @@ -332,8 +332,8 @@ work.") (origin (method url-fetch) (uri - (string-append "mirror://sourceforge/openjpeg.mirror/" name "-" - version ".tar.gz")) + (string-append "mirror://sourceforge/openjpeg.mirror/" version "/" + name "-" version ".tar.gz")) (sha256 (base32 "00zzm303zvv4ijzancrsb1cqbph3pgz0nky92k9qx3fq9y0vnchj")) (patches (search-patches "openjpeg-use-after-free-fix.patch" @@ -369,8 +369,8 @@ error-resilience, a Java-viewer for j2k-images, ...") (origin (method url-fetch) (uri - (string-append "mirror://sourceforge/openjpeg.mirror/" name "-" - version ".tar.gz")) + (string-append "mirror://sourceforge/openjpeg.mirror/" version "/" + name "-" version ".tar.gz")) (sha256 (base32 "1c2xc3nl2mg511b63rk7hrckmy14681p1m44mzw3n1fyqnjm0b0z")) (patches (search-patches "openjpeg-use-after-free-fix.patch" @@ -384,8 +384,8 @@ error-resilience, a Java-viewer for j2k-images, ...") (origin (method url-fetch) (uri - (string-append "mirror://sourceforge/openjpeg.mirror/" name "-" - version ".tar.gz")) + (string-append "mirror://sourceforge/openjpeg.mirror/" version "/" + name "-" version ".tar.gz")) (sha256 (base32 "11waq9w215zvzxrpv40afyd18qf79mxc28fda80bm3ax98cpppqm")))))) @@ -396,8 +396,7 @@ error-resilience, a Java-viewer for j2k-images, ...") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/giflib/giflib-" - (first (string-split version #\.)) - ".x/giflib-" version ".tar.bz2")) + version ".tar.bz2")) (sha256 (base32 "1md83dip8rf29y40cm5r7nn19705f54iraz6545zhwa6y8zyq9yz")))) @@ -443,7 +442,8 @@ compose, and analyze GIF images.") (version "4.1.4") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/giflib/libungif-" + (uri (string-append "mirror://sourceforge/giflib/libungif-4.x/" + "libungif-" version "/libungif-" version ".tar.bz2")) (sha256 (base32 @@ -463,8 +463,8 @@ compose, and analyze GIF images.") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/enlightenment/imlib2-" - version ".tar.bz2")) + "mirror://sourceforge/enlightenment/imlib2-src/" version + "/imlib2-" version ".tar.bz2")) (sha256 (base32 "08809xxk2555yj6glixzw9a0x3x8cx55imd89kj3r0h152bn8a3x")))) @@ -663,8 +663,8 @@ channels.") (version "2.0.3") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/libmng/" - name "-" version ".tar.xz")) + (uri (string-append "mirror://sourceforge/libmng/libmng-devel/" + version "/" name "-" version ".tar.xz")) (sha256 (base32 "1lvxnpds0vcf0lil6ia2036ghqlbl740c4d2sz0q5g6l93fjyija")))) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 753fb7726c..2d50ad84fa 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -30,6 +30,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages certs) #:use-module (gnu packages cpio) #:use-module (gnu packages cups) #:use-module (gnu packages compression) @@ -262,7 +263,8 @@ build process and its dependencies, whereas Make uses Makefile format.") #:modules ((guix build utils) (guix build gnu-build-system) (ice-9 popen) - (ice-9 rdelim)) + (ice-9 rdelim) + (srfi srfi-19)) #:configure-flags (let* ((gcjdir (assoc-ref %build-inputs "gcj")) @@ -281,111 +283,108 @@ build process and its dependencies, whereas Make uses Makefile format.") ,(string-append "--with-jdk-home=" jdk) ,(string-append "--with-java=" jdk "/bin/java"))) #:phases - (alist-replace - 'unpack - (lambda* (#:key source inputs #:allow-other-keys) - (and (zero? (system* "tar" "xvf" source)) - (begin - (chdir (string-append "icedtea6-" ,version)) - (mkdir "openjdk.src") - (with-directory-excursion "openjdk.src" - (copy-file (assoc-ref inputs "openjdk6-src") - "openjdk6-src.tar.xz") - (zero? (system* "tar" "xvf" "openjdk6-src.tar.xz")))))) - (alist-cons-after - 'unpack 'patch-patches - (lambda _ - ;; shebang in patches so that they apply cleanly - (substitute* '("patches/jtreg-jrunscript.patch" - "patches/hotspot/hs23/drop_unlicensed_test.patch") - (("#!/bin/sh") (string-append "#!" (which "sh")))) + (modify-phases %standard-phases + (replace 'unpack + (lambda* (#:key source inputs #:allow-other-keys) + (and (zero? (system* "tar" "xvf" source)) + (begin + (chdir (string-append "icedtea6-" ,version)) + (mkdir "openjdk.src") + (with-directory-excursion "openjdk.src" + (copy-file (assoc-ref inputs "openjdk6-src") + "openjdk6-src.tar.xz") + (zero? (system* "tar" "xvf" "openjdk6-src.tar.xz"))))))) + (add-after 'unpack 'patch-patches + (lambda _ + ;; shebang in patches so that they apply cleanly + (substitute* '("patches/jtreg-jrunscript.patch" + "patches/hotspot/hs23/drop_unlicensed_test.patch") + (("#!/bin/sh") (string-append "#!" (which "sh")))) - ;; fix path to alsa header in patch - (substitute* "patches/openjdk/6799141-split_out_versions.patch" - (("ALSA_INCLUDE=/usr/include/alsa/version.h") - (string-append "ALSA_INCLUDE=" - (assoc-ref %build-inputs "alsa-lib") - "/include/alsa/version.h")))) - (alist-cons-after - 'unpack 'patch-paths - (lambda _ - ;; buildtree.make generates shell scripts, so we need to replace - ;; the generated shebang - (substitute* '("openjdk.src/hotspot/make/linux/makefiles/buildtree.make") - (("/bin/sh") (which "bash"))) + ;; fix path to alsa header in patch + (substitute* "patches/openjdk/6799141-split_out_versions.patch" + (("ALSA_INCLUDE=/usr/include/alsa/version.h") + (string-append "ALSA_INCLUDE=" + (assoc-ref %build-inputs "alsa-lib") + "/include/alsa/version.h"))))) + (add-after 'unpack 'patch-paths + (lambda _ + ;; buildtree.make generates shell scripts, so we need to replace + ;; the generated shebang + (substitute* '("openjdk.src/hotspot/make/linux/makefiles/buildtree.make") + (("/bin/sh") (which "bash"))) - (let ((corebin (string-append - (assoc-ref %build-inputs "coreutils") "/bin/")) - (binbin (string-append - (assoc-ref %build-inputs "binutils") "/bin/")) - (grepbin (string-append - (assoc-ref %build-inputs "grep") "/bin/"))) - (substitute* '("openjdk.src/jdk/make/common/shared/Defs-linux.gmk" - "openjdk.src/corba/make/common/shared/Defs-linux.gmk") - (("UNIXCOMMAND_PATH = /bin/") - (string-append "UNIXCOMMAND_PATH = " corebin)) - (("USRBIN_PATH = /usr/bin/") - (string-append "USRBIN_PATH = " corebin)) - (("DEVTOOLS_PATH *= */usr/bin/") - (string-append "DEVTOOLS_PATH = " corebin)) - (("COMPILER_PATH *= */usr/bin/") - (string-append "COMPILER_PATH = " - (assoc-ref %build-inputs "gcc") "/bin/")) - (("DEF_OBJCOPY *=.*objcopy") - (string-append "DEF_OBJCOPY = " (which "objcopy")))) + (let ((corebin (string-append + (assoc-ref %build-inputs "coreutils") "/bin/")) + (binbin (string-append + (assoc-ref %build-inputs "binutils") "/bin/")) + (grepbin (string-append + (assoc-ref %build-inputs "grep") "/bin/"))) + (substitute* '("openjdk.src/jdk/make/common/shared/Defs-linux.gmk" + "openjdk.src/corba/make/common/shared/Defs-linux.gmk") + (("UNIXCOMMAND_PATH = /bin/") + (string-append "UNIXCOMMAND_PATH = " corebin)) + (("USRBIN_PATH = /usr/bin/") + (string-append "USRBIN_PATH = " corebin)) + (("DEVTOOLS_PATH *= */usr/bin/") + (string-append "DEVTOOLS_PATH = " corebin)) + (("COMPILER_PATH *= */usr/bin/") + (string-append "COMPILER_PATH = " + (assoc-ref %build-inputs "gcc") "/bin/")) + (("DEF_OBJCOPY *=.*objcopy") + (string-append "DEF_OBJCOPY = " (which "objcopy")))) - ;; fix hard-coded utility paths - (substitute* '("openjdk.src/jdk/make/common/shared/Defs-utils.gmk" - "openjdk.src/corba/make/common/shared/Defs-utils.gmk") - (("ECHO *=.*echo") - (string-append "ECHO = " (which "echo"))) - (("^GREP *=.*grep") - (string-append "GREP = " (which "grep"))) - (("EGREP *=.*egrep") - (string-append "EGREP = " (which "egrep"))) - (("CPIO *=.*cpio") - (string-append "CPIO = " (which "cpio"))) - (("READELF *=.*readelf") - (string-append "READELF = " (which "readelf"))) - (("^ *AR *=.*ar") - (string-append "AR = " (which "ar"))) - (("^ *TAR *=.*tar") - (string-append "TAR = " (which "tar"))) - (("AS *=.*as") - (string-append "AS = " (which "as"))) - (("LD *=.*ld") - (string-append "LD = " (which "ld"))) - (("STRIP *=.*strip") - (string-append "STRIP = " (which "strip"))) - (("NM *=.*nm") - (string-append "NM = " (which "nm"))) - (("^SH *=.*sh") - (string-append "SH = " (which "bash"))) - (("^FIND *=.*find") - (string-append "FIND = " (which "find"))) - (("LDD *=.*ldd") - (string-append "LDD = " (which "ldd"))) - (("NAWK *=.*(n|g)awk") - (string-append "NAWK = " (which "gawk"))) - (("XARGS *=.*xargs") - (string-append "XARGS = " (which "xargs"))) - (("UNZIP *=.*unzip") - (string-append "UNZIP = " (which "unzip"))) - (("ZIPEXE *=.*zip") - (string-append "ZIPEXE = " (which "zip"))) - (("SED *=.*sed") - (string-append "SED = " (which "sed")))) + ;; fix hard-coded utility paths + (substitute* '("openjdk.src/jdk/make/common/shared/Defs-utils.gmk" + "openjdk.src/corba/make/common/shared/Defs-utils.gmk") + (("ECHO *=.*echo") + (string-append "ECHO = " (which "echo"))) + (("^GREP *=.*grep") + (string-append "GREP = " (which "grep"))) + (("EGREP *=.*egrep") + (string-append "EGREP = " (which "egrep"))) + (("CPIO *=.*cpio") + (string-append "CPIO = " (which "cpio"))) + (("READELF *=.*readelf") + (string-append "READELF = " (which "readelf"))) + (("^ *AR *=.*ar") + (string-append "AR = " (which "ar"))) + (("^ *TAR *=.*tar") + (string-append "TAR = " (which "tar"))) + (("AS *=.*as") + (string-append "AS = " (which "as"))) + (("LD *=.*ld") + (string-append "LD = " (which "ld"))) + (("STRIP *=.*strip") + (string-append "STRIP = " (which "strip"))) + (("NM *=.*nm") + (string-append "NM = " (which "nm"))) + (("^SH *=.*sh") + (string-append "SH = " (which "bash"))) + (("^FIND *=.*find") + (string-append "FIND = " (which "find"))) + (("LDD *=.*ldd") + (string-append "LDD = " (which "ldd"))) + (("NAWK *=.*(n|g)awk") + (string-append "NAWK = " (which "gawk"))) + (("XARGS *=.*xargs") + (string-append "XARGS = " (which "xargs"))) + (("UNZIP *=.*unzip") + (string-append "UNZIP = " (which "unzip"))) + (("ZIPEXE *=.*zip") + (string-append "ZIPEXE = " (which "zip"))) + (("SED *=.*sed") + (string-append "SED = " (which "sed")))) - ;; Some of these timestamps cause problems as they are more than - ;; 10 years ago, failing the build process. - (substitute* - "openjdk.src/jdk/src/share/classes/java/util/CurrencyData.properties" - (("AZ=AZM;2005-12-31-20-00-00;AZN") "AZ=AZN") - (("MZ=MZM;2006-06-30-22-00-00;MZN") "MZ=MZN") - (("RO=ROL;2005-06-30-21-00-00;RON") "RO=RON") - (("TR=TRL;2004-12-31-22-00-00;TRY") "TR=TRY")))) - (alist-cons-before - 'configure 'set-additional-paths + ;; Some of these timestamps cause problems as they are more than + ;; 10 years ago, failing the build process. + (substitute* + "openjdk.src/jdk/src/share/classes/java/util/CurrencyData.properties" + (("AZ=AZM;2005-12-31-20-00-00;AZN") "AZ=AZN") + (("MZ=MZM;2006-06-30-22-00-00;MZN") "MZ=MZN") + (("RO=ROL;2005-06-30-21-00-00;RON") "RO=RON") + (("TR=TRL;2004-12-31-22-00-00;TRY") "TR=TRY"))))) + (add-before 'configure 'set-additional-paths (lambda* (#:key inputs #:allow-other-keys) (let* ((gcjdir (assoc-ref %build-inputs "gcj")) (gcjlib (string-append gcjdir "/lib")) @@ -412,125 +411,159 @@ build process and its dependencies, whereas Make uses Makefile format.") "/include")) (setenv "ALT_FREETYPE_LIB_PATH" (string-append (assoc-ref %build-inputs "freetype") - "/lib")))) - (alist-cons-before - 'check 'fix-test-framework - (lambda _ - ;; Fix PATH in test environment - (substitute* "src/jtreg/com/sun/javatest/regtest/Main.java" - (("PATH=/bin:/usr/bin") - (string-append "PATH=" (getenv "PATH")))) - (substitute* "src/jtreg/com/sun/javatest/util/SysEnv.java" - (("/usr/bin/env") (which "env"))) - #t) - (alist-cons-before - 'check 'fix-hotspot-tests - (lambda _ - (with-directory-excursion "openjdk.src/hotspot/test/" - (substitute* "jprt.config" - (("PATH=\"\\$\\{path4sdk\\}\"") - (string-append "PATH=" (getenv "PATH"))) - (("make=/usr/bin/make") - (string-append "make=" (which "make")))) - (substitute* '("runtime/6626217/Test6626217.sh" - "runtime/7110720/Test7110720.sh") - (("/bin/rm") (which "rm")) - (("/bin/cp") (which "cp")) - (("/bin/mv") (which "mv")))) - #t) - (alist-cons-before - 'check 'fix-jdk-tests - (lambda _ - (with-directory-excursion "openjdk.src/jdk/test/" - (substitute* "com/sun/jdi/JdbReadTwiceTest.sh" - (("/bin/pwd") (which "pwd"))) - (substitute* "com/sun/jdi/ShellScaffold.sh" - (("/bin/kill") (which "kill"))) - (substitute* "start-Xvfb.sh" - ;;(("/usr/bin/X11/Xvfb") (which "Xvfb")) - (("/usr/bin/nohup") (which "nohup"))) - (substitute* "javax/security/auth/Subject/doAs/Test.sh" - (("/bin/rm") (which "rm"))) - (substitute* "tools/launcher/MultipleJRE.sh" - (("echo \"#!/bin/sh\"") - (string-append "echo \"#!" (which "rm") "\"")) - (("/usr/bin/zip") (which "zip"))) - (substitute* "com/sun/jdi/OnThrowTest.java" - (("#!/bin/sh") (string-append "#!" (which "sh")))) - (substitute* "java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java" - (("/usr/bin/uptime") (which "uptime"))) - (substitute* "java/lang/ProcessBuilder/Basic.java" - (("/usr/bin/env") (which "env")) - (("/bin/false") (which "false")) - (("/bin/true") (which "true")) - (("/bin/cp") (which "cp")) - (("/bin/sh") (which "sh"))) - (substitute* "java/lang/ProcessBuilder/FeelingLucky.java" - (("/bin/sh") (which "sh"))) - (substitute* "java/lang/ProcessBuilder/Zombies.java" - (("/usr/bin/perl") (which "perl")) - (("/bin/ps") (which "ps")) - (("/bin/true") (which "true"))) - (substitute* "java/lang/Runtime/exec/ConcurrentRead.java" - (("/usr/bin/tee") (which "tee"))) - (substitute* "java/lang/Runtime/exec/ExecWithDir.java" - (("/bin/true") (which "true"))) - (substitute* "java/lang/Runtime/exec/ExecWithInput.java" - (("/bin/cat") (which "cat"))) - (substitute* "java/lang/Runtime/exec/ExitValue.java" - (("/bin/sh") (which "sh")) - (("/bin/true") (which "true")) - (("/bin/kill") (which "kill"))) - (substitute* "java/lang/Runtime/exec/LotsOfDestroys.java" - (("/usr/bin/echo") (which "echo"))) - (substitute* "java/lang/Runtime/exec/LotsOfOutput.java" - (("/usr/bin/cat") (which "cat"))) - (substitute* "java/lang/Runtime/exec/SleepyCat.java" - (("/bin/cat") (which "cat")) - (("/bin/sleep") (which "sleep")) - (("/bin/sh") (which "sh"))) - (substitute* "java/lang/Runtime/exec/StreamsSurviveDestroy.java" - (("/bin/cat") (which "cat"))) - (substitute* "java/rmi/activation/CommandEnvironment/SetChildEnv.java" - (("/bin/chmod") (which "chmod"))) - (substitute* "java/util/zip/ZipFile/Assortment.java" - (("/bin/sh") (which "sh")))) - #t) - (alist-replace - 'check - (lambda _ - ;; The "make check-*" targets always return zero, so we need to - ;; check for errors in the associated log files to determine - ;; whether any tests have failed. - (use-modules (ice-9 rdelim)) - (let* ((error-pattern (make-regexp "^(Error|FAILED):.*")) - (checker (lambda (port) - (let loop () - (let ((line (read-line port))) - (cond - ((eof-object? line) #t) - ((regexp-exec error-pattern line) #f) - (else (loop))))))) - (run-test (lambda (test) - (system* "make" test) - (call-with-input-file - (string-append "test/" test ".log") - checker)))) - (or #t ; skip tests - (and (run-test "check-hotspot") - (run-test "check-langtools") - (run-test "check-jdk"))))) - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - (let ((doc (string-append (assoc-ref outputs "doc") - "/share/doc/icedtea")) - (jre (assoc-ref outputs "out")) - (jdk (assoc-ref outputs "jdk"))) - (copy-recursively "openjdk.build/docs" doc) - (copy-recursively "openjdk.build/j2re-image" jre) - (copy-recursively "openjdk.build/j2sdk-image" jdk))) - %standard-phases))))))))))) + "/lib"))))) + (add-before 'check 'fix-test-framework + (lambda _ + ;; Fix PATH in test environment + (substitute* "src/jtreg/com/sun/javatest/regtest/Main.java" + (("PATH=/bin:/usr/bin") + (string-append "PATH=" (getenv "PATH")))) + (substitute* "src/jtreg/com/sun/javatest/util/SysEnv.java" + (("/usr/bin/env") (which "env"))) + #t)) + (add-before 'check 'fix-hotspot-tests + (lambda _ + (with-directory-excursion "openjdk.src/hotspot/test/" + (substitute* "jprt.config" + (("PATH=\"\\$\\{path4sdk\\}\"") + (string-append "PATH=" (getenv "PATH"))) + (("make=/usr/bin/make") + (string-append "make=" (which "make")))) + (substitute* '("runtime/6626217/Test6626217.sh" + "runtime/7110720/Test7110720.sh") + (("/bin/rm") (which "rm")) + (("/bin/cp") (which "cp")) + (("/bin/mv") (which "mv")))) + #t)) + (add-before 'check 'fix-jdk-tests + (lambda _ + (with-directory-excursion "openjdk.src/jdk/test/" + (substitute* "com/sun/jdi/JdbReadTwiceTest.sh" + (("/bin/pwd") (which "pwd"))) + (substitute* "com/sun/jdi/ShellScaffold.sh" + (("/bin/kill") (which "kill"))) + (substitute* "start-Xvfb.sh" + ;;(("/usr/bin/X11/Xvfb") (which "Xvfb")) + (("/usr/bin/nohup") (which "nohup"))) + (substitute* "javax/security/auth/Subject/doAs/Test.sh" + (("/bin/rm") (which "rm"))) + (substitute* "tools/launcher/MultipleJRE.sh" + (("echo \"#!/bin/sh\"") + (string-append "echo \"#!" (which "rm") "\"")) + (("/usr/bin/zip") (which "zip"))) + (substitute* "com/sun/jdi/OnThrowTest.java" + (("#!/bin/sh") (string-append "#!" (which "sh")))) + (substitute* "java/lang/management/OperatingSystemMXBean/GetSystemLoadAverage.java" + (("/usr/bin/uptime") (which "uptime"))) + (substitute* "java/lang/ProcessBuilder/Basic.java" + (("/usr/bin/env") (which "env")) + (("/bin/false") (which "false")) + (("/bin/true") (which "true")) + (("/bin/cp") (which "cp")) + (("/bin/sh") (which "sh"))) + (substitute* "java/lang/ProcessBuilder/FeelingLucky.java" + (("/bin/sh") (which "sh"))) + (substitute* "java/lang/ProcessBuilder/Zombies.java" + (("/usr/bin/perl") (which "perl")) + (("/bin/ps") (which "ps")) + (("/bin/true") (which "true"))) + (substitute* "java/lang/Runtime/exec/ConcurrentRead.java" + (("/usr/bin/tee") (which "tee"))) + (substitute* "java/lang/Runtime/exec/ExecWithDir.java" + (("/bin/true") (which "true"))) + (substitute* "java/lang/Runtime/exec/ExecWithInput.java" + (("/bin/cat") (which "cat"))) + (substitute* "java/lang/Runtime/exec/ExitValue.java" + (("/bin/sh") (which "sh")) + (("/bin/true") (which "true")) + (("/bin/kill") (which "kill"))) + (substitute* "java/lang/Runtime/exec/LotsOfDestroys.java" + (("/usr/bin/echo") (which "echo"))) + (substitute* "java/lang/Runtime/exec/LotsOfOutput.java" + (("/usr/bin/cat") (which "cat"))) + (substitute* "java/lang/Runtime/exec/SleepyCat.java" + (("/bin/cat") (which "cat")) + (("/bin/sleep") (which "sleep")) + (("/bin/sh") (which "sh"))) + (substitute* "java/lang/Runtime/exec/StreamsSurviveDestroy.java" + (("/bin/cat") (which "cat"))) + (substitute* "java/rmi/activation/CommandEnvironment/SetChildEnv.java" + (("/bin/chmod") (which "chmod"))) + (substitute* "java/util/zip/ZipFile/Assortment.java" + (("/bin/sh") (which "sh")))) + #t)) + (replace 'check + (lambda _ + ;; The "make check-*" targets always return zero, so we need to + ;; check for errors in the associated log files to determine + ;; whether any tests have failed. + (use-modules (ice-9 rdelim)) + (let* ((error-pattern (make-regexp "^(Error|FAILED):.*")) + (checker (lambda (port) + (let loop () + (let ((line (read-line port))) + (cond + ((eof-object? line) #t) + ((regexp-exec error-pattern line) #f) + (else (loop))))))) + (run-test (lambda (test) + (system* "make" test) + (call-with-input-file + (string-append "test/" test ".log") + checker)))) + (or #t ; skip tests + (and (run-test "check-hotspot") + (run-test "check-langtools") + (run-test "check-jdk")))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((doc (string-append (assoc-ref outputs "doc") + "/share/doc/icedtea")) + (jre (assoc-ref outputs "out")) + (jdk (assoc-ref outputs "jdk"))) + (copy-recursively "openjdk.build/docs" doc) + (copy-recursively "openjdk.build/j2re-image" jre) + (copy-recursively "openjdk.build/j2sdk-image" jdk)))) + ;; By default IcedTea only generates an empty keystore. In order to + ;; be able to use certificates in Java programs we need to generate a + ;; keystore from a set of certificates. For convenience we use the + ;; certificates from the nss-certs package. + (add-after 'install 'install-keystore + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((keystore "cacerts") + (certs-dir (string-append (assoc-ref inputs "nss-certs") + "/etc/ssl/certs")) + (keytool (string-append (assoc-ref outputs "jdk") + "/bin/keytool"))) + (define (import-cert cert) + (format #t "Importing certificate ~a\n" (basename cert)) + (let* ((port (open-pipe* OPEN_WRITE keytool + "-import" + "-alias" (basename cert) + "-keystore" keystore + "-storepass" "changeit" + "-file" cert))) + (display "yes\n" port) + (when (not (zero? (status:exit-val (close-pipe port)))) + (error "failed to import" cert)))) + + ;; This is necessary because the certificate directory contains + ;; files with non-ASCII characters in their names. + (setlocale LC_ALL "en_US.utf8") + (setenv "LC_ALL" "en_US.utf8") + + (for-each import-cert (find-files certs-dir "\\.pem$")) + (mkdir-p (string-append (assoc-ref outputs "out") + "/lib/security")) + (mkdir-p (string-append (assoc-ref outputs "jdk") + "/jre/lib/security")) + (install-file keystore + (string-append (assoc-ref outputs "out") + "/lib/security")) + (install-file keystore + (string-append (assoc-ref outputs "jdk") + "/jre/lib/security")) + #t)))))) (native-inputs `(("ant" ,ant) ("alsa-lib" ,alsa-lib) @@ -553,6 +586,7 @@ build process and its dependencies, whereas Make uses Makefile format.") ("libxslt" ,libxslt) ;for xsltproc ("mit-krb5" ,mit-krb5) ("nss" ,nss) + ("nss-certs" ,nss-certs) ("libx11" ,libx11) ("libxcomposite" ,libxcomposite) ("libxt" ,libxt) @@ -798,6 +832,9 @@ build process and its dependencies, whereas Make uses Makefile format.") (delete 'patch-paths) (delete 'set-additional-paths) (delete 'patch-patches) + ;; FIXME: This phase is needed but fails with this version of + ;; IcedTea. + (delete 'install-keystore) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let ((doc (string-append (assoc-ref outputs "doc") diff --git a/gnu/packages/libreoffice.scm b/gnu/packages/libreoffice.scm index 18606f96a1..8f4a6c9f61 100644 --- a/gnu/packages/libreoffice.scm +++ b/gnu/packages/libreoffice.scm @@ -127,7 +127,7 @@ CSV, CSS and XML.") (origin (method url-fetch) (uri (string-append "mirror://sourceforge/libwpd/" name "/" name "-" - version ".tar.xz")) + version "/" name "-" version ".tar.xz")) (sha256 (base32 "03ygxyb0vfjv8raif5q62sl33b54wkr5rzgadb8slijm6k281wpn")))) (build-system gnu-build-system) @@ -158,8 +158,8 @@ spreadsheets and presentations.") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/libwpd/" name "/" name "-" - version ".tar.xz")) + (uri (string-append "mirror://sourceforge/" name "/" name "/" + name "-" version "/" name "-" version ".tar.xz")) (sha256 (base32 "0b6krzr6kxzm89g6bapn805kdayq70hn16n5b5wfs2lwrf0ag2wx")))) (build-system gnu-build-system) @@ -220,8 +220,8 @@ ZVR (simple compressed text format).") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/libwpg/" name "/" name "-" - version ".tar.xz")) + (uri (string-append "mirror://sourceforge/" name "/" name "/" + name "-" version "/" name "-" version ".tar.xz")) (sha256 (base32 "097jx8a638fwwfrzf6v29r1yhc34rq9526py7wf0ck2z4fcr2w3g")))) (build-system gnu-build-system) @@ -576,8 +576,8 @@ text documents, vector drawings, presentations and spreadsheets.") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/" name "/" name "/" - name "-" version ".tar.xz")) + (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" + version "/" name "-" version ".tar.xz")) (sha256 (base32 "1vx9h419fcfcs0yj071hsg9d2qvkacgca6052m8hv3h743cdmzil")))) (build-system gnu-build-system) @@ -607,7 +607,7 @@ spreadsheet documents.") (origin (method url-fetch) (uri (string-append "mirror://sourceforge/" name "/" name "/" - name "-" version ".tar.xz")) + name "-" version "/" name "-" version ".tar.xz")) (sha256 (base32 "0nlrdk7di015l0sk0ivjdqs86zdcvf73p9z9s9ry5glyhrknzxjk")))) (build-system gnu-build-system) @@ -635,7 +635,7 @@ Works word processor file format.") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/" name "/" + (uri (string-append "mirror://sourceforge/" name "/Hunspell/" version "/" name "-" version ".tar.gz")) (sha256 (base32 "0v14ff9s37vkh45diaddndcrj0hmn67arh8xh8k79q9c1vgc1cm7")))) @@ -655,7 +655,8 @@ word compounding or character encoding.") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/hunspell/" + (uri (string-append "mirror://sourceforge/hunspell/Hyphen/" + (version-major+minor version) "/" name "-" version ".tar.gz")) (sha256 (base32 "01ap9pr6zzzbp4ky0vy7i1983fwyqy27pl0ld55s30fdxka3ciih")))) @@ -676,7 +677,7 @@ patterns, which are pre-processed by a perl script.") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/hunspell/" + (uri (string-append "mirror://sourceforge/hunspell/MyThes/" version "/" name "-" version ".tar.gz")) (sha256 (base32 "0prh19wy1c74kmzkkavm9qslk99gz8h8wmjvwzjc6lf8v2az708y")))) diff --git a/gnu/packages/libusb.scm b/gnu/packages/libusb.scm index 1f659c7594..0071f4f119 100644 --- a/gnu/packages/libusb.scm +++ b/gnu/packages/libusb.scm @@ -138,7 +138,7 @@ version of libusb to run with newer libusb.") (version "1.1.11") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/libmtp/" version + (uri (string-append "mirror://sourceforge/libmtp/libmtp/" version "/libmtp-" version ".tar.gz")) (sha256 (base32 @@ -174,7 +174,7 @@ proposed for standardization.") (version "1.3.10") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/gmtp/" version + (uri (string-append "mirror://sourceforge/gmtp/gMTP-" version "/gmtp-" version ".tar.gz")) (sha256 (base32 diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 5ce6007b40..7c5a9ef976 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -723,7 +723,8 @@ from the e2fsprogs package. It is meant to be used in initrds.") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/extundelete/" - version "/extundelete-" version ".tar.bz2")) + "extundelete/" version "/extundelete-" + version ".tar.bz2")) (sha256 (base32 "1x0r7ylxlp9lbj3d7sqf6j2a222dwy2nfpff05jd6mkh4ihxvyd1")))) @@ -777,8 +778,8 @@ images more compressible.") (version "4.7") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/strace/strace-" - version ".tar.xz")) + (uri (string-append "mirror://sourceforge/strace/strace/" version + "/strace-" version ".tar.xz")) (sha256 (base32 "158iwk0pl2mfw93m1843xb7a2zb8p6lh0qim07rca6f1ff4dk764")))) @@ -1114,8 +1115,8 @@ Linux-based operating systems.") (version "1.5") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/bridge/bridge-utils-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/bridge/bridge/" + "bridge-utils-" version ".tar.gz")) (sha256 (base32 "12367cwqmi0yqphi6j8rkx97q8hw52yq2fx4k0xfclkcizxybya2")))) @@ -2096,7 +2097,7 @@ thanks to the use of namespaces.") (version "9.45") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/" name "/" + (uri (string-append "mirror://sourceforge/" name "/" name "/" name "-" version ".tar.gz")) (sha256 (base32 @@ -2149,8 +2150,8 @@ WLAN, Bluetooth and mobile broadband.") (version "1.7") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/acpiclient/" - name "-" version ".tar.gz")) + (uri (string-append "mirror://sourceforge/acpiclient/acpiclient/" + version "/" name "-" version ".tar.gz")) (sha256 (base32 "01ahldvf0gc29dmbd5zi4rrnrw2i1ajnf30sx2vyaski3jv099fp")))) @@ -2290,7 +2291,7 @@ protocol in question.") (version "0.5.4") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/libavc1394/" + (uri (string-append "mirror://sourceforge/libavc1394/libavc1394/" name "-" version ".tar.gz")) (sha256 (base32 @@ -2676,7 +2677,7 @@ feature, and a laptop with an accelerometer. It has no effect on SSDs.") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/thinkfan/" - version "/thinkfan-" version ".tar.gz")) + "/thinkfan-" version ".tar.gz")) (sha256 (base32 "0nz4c48f0i0dljpk5y33c188dnnwg8gz82s4grfl8l64jr4n675n")) diff --git a/gnu/packages/lirc.scm b/gnu/packages/lirc.scm index 6b1eee3ef2..e3f60e33e2 100644 --- a/gnu/packages/lirc.scm +++ b/gnu/packages/lirc.scm @@ -35,8 +35,8 @@ (version "0.9.4") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/lirc/lirc-" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/lirc/LIRC/" version + "/lirc-" version ".tar.bz2")) (sha256 (base32 "1l2xzhnm4hrla51ik09hcafki0y8wnww7svfm7j63zbl2rssc66x")) diff --git a/gnu/packages/lxde.scm b/gnu/packages/lxde.scm index c00400ca70..dedaaee27b 100644 --- a/gnu/packages/lxde.scm +++ b/gnu/packages/lxde.scm @@ -36,7 +36,7 @@ (version "1.2.4") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/project/pcmanfm/" + (uri (string-append "mirror://sourceforge/pcmanfm/" "PCManFM%20%2B%20Libfm%20%28tarball%20release" "%29/LibFM/" name "-" version ".tar.xz")) (sha256 @@ -75,7 +75,7 @@ libFM file management library."))) (version "0.6.2") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/project/lxde/" + (uri (string-append "mirror://sourceforge/lxde/" "LXAppearance/" name "-" version ".tar.xz")) (sha256 (base32 @@ -96,7 +96,7 @@ able to change themes, icons, and fonts used by GTK+ applications.") (version "0.3.1") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/project/lxde/LXRandR" + (uri (string-append "mirror://sourceforge/lxde/LXRandR" "%20%28monitor%20config%20tool%29/LXRandR%20" (version-major+minor version) ".x/" name "-" version ".tar.xz")) @@ -122,7 +122,7 @@ or external monitor.") (version "0.1.7") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/project/lxde/LXTask" + (uri (string-append "mirror://sourceforge/lxde/LXTask" "%20%28task%20manager%29/LXTask%20" (version-major+minor version) ".x/" name "-" version ".tar.xz")) @@ -146,7 +146,7 @@ toolkit. It allows users to monitor and control of running processes.") (version "0.2.0") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/project/lxde/LXTerminal" + (uri (string-append "mirror://sourceforge/lxde/LXTerminal" "%20%28terminal%20emulator%29/LXTerminal%20" version "/" name "-" version ".tar.gz")) (sha256 @@ -171,7 +171,7 @@ performance, all instances of the terminal are sharing a single process.") (version "1.0.1") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/project/lxde/" name "/" + (uri (string-append "mirror://sourceforge/lxde/" name "/" (version-major+minor version) "/" name "-" version ".tar.xz")) (sha256 @@ -193,7 +193,7 @@ speed up the access to freedesktop.org defined application menus.") (version "1.2.4") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/project/" name "/" + (uri (string-append "mirror://sourceforge/" name "/" "PCManFM%20%2B%20Libfm%20%28tarball%20release" "%29/PCManFM/" name "-" version ".tar.xz")) (sha256 diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index a36fd5ff70..f99c16b405 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -678,14 +678,15 @@ which can add many functionalities to the base client.") (define-public msmtp (package (name "msmtp") - (version "1.6.4") + (version "1.6.5") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/msmtp/msmtp-" version ".tar.xz")) - (sha256 (base32 - "1kfihblm769s4hv8iah5mqynqd6hfwlyz5rcg2v423a4llic0jcv")))) + (uri (string-append "mirror://sourceforge/msmtp/msmtp/" version + "/msmtp-" version ".tar.xz")) + (sha256 + (base32 + "01jh9ba49bih8zsh40myw6qq1ll210q1vw0jg865vrn7jc3dd83n")))) (build-system gnu-build-system) (inputs `(("libidn" ,libidn) @@ -811,7 +812,7 @@ facilities for checking incoming mail.") (define-public dovecot (package (name "dovecot") - (version "2.2.19") + (version "2.2.25") (source (origin (method url-fetch) @@ -819,7 +820,7 @@ facilities for checking incoming mail.") (version-major+minor version) "/" name "-" version ".tar.gz")) (sha256 (base32 - "17sf5aancad4pg1vx1606k99389wg76blpqzmnmxlz4hklzix7km")))) + "0rwn5wc5b8j9fzqcjggdgpzmb77myrf4ra294z1gg5v3hhng7nfq")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm index b8ec213d8b..ad7d0e22ee 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2016 Roel Janssen <roel@gnu.org> ;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org> ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; ;;; This file is part of GNU Guix. ;;; @@ -35,7 +36,6 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix download) - #:use-module (guix svn-download) #:use-module (guix utils) #:use-module (guix build utils) #:use-module (guix build-system cmake) @@ -380,35 +380,40 @@ singular value problems.") "See LICENSE in the distribution.")))) (define-public gnuplot - (package - (name "gnuplot") - (version "5.0.2") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/gnuplot/gnuplot/" - version "/gnuplot-" version ".tar.gz")) - (sha256 - (base32 - "146qn414z96c7cc42a1kb9a4kpjc2q2hfdwk44kjjvgmfp9k2ass")))) - (build-system gnu-build-system) - (inputs `(("readline" ,readline) - ("cairo" ,cairo) - ("pango" ,pango) - ("gd" ,gd))) - (native-inputs `(("pkg-config" ,pkg-config) - ("texlive" ,texlive-minimal))) - (home-page "http://www.gnuplot.info") - (synopsis "Command-line driven graphing utility") - (description "Gnuplot is a portable command-line driven graphing + ;; Gnuplot version 5.0.4 was updated in-place, resulting in a hash mismatch. + ;; This can be removed at the next version update. + (let ((upstream-version "5.0.4") + (guix-revision "1")) + (package + (name "gnuplot") + (version (string-append upstream-version "-" guix-revision)) + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/gnuplot/gnuplot/" + upstream-version "/gnuplot-" + upstream-version ".tar.gz")) + (sha256 + (base32 + "07n3w12dkcxjnhsvsliaqnkhajhi818v6q8mkpmpbplbf92vh70m")))) + (build-system gnu-build-system) + (inputs `(("readline" ,readline) + ("cairo" ,cairo) + ("pango" ,pango) + ("gd" ,gd))) + (native-inputs `(("pkg-config" ,pkg-config) + ("texlive" ,texlive-minimal))) + (home-page "http://www.gnuplot.info") + (synopsis "Command-line driven graphing utility") + (description "Gnuplot is a portable command-line driven graphing utility. It was originally created to allow scientists and students to visualize mathematical functions and data interactively, but has grown to support many non-interactive uses such as web scripting. It is also used as a plotting engine by third-party applications like Octave.") - ;; X11 Style with the additional restriction that derived works may only be - ;; distributed as patches to the original. - (license (license:fsf-free - "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright")))) + ;; X11 Style with the additional restriction that derived works may only be + ;; distributed as patches to the original. + (license (license:fsf-free + "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright"))))) (define-public hdf5 (package @@ -797,7 +802,7 @@ ASCII text files using Gmsh's own scripting language.") (define-public petsc (package (name "petsc") - (version "3.6.2") + (version "3.7.2") (source (origin (method url-fetch) @@ -805,7 +810,7 @@ ASCII text files using Gmsh's own scripting language.") (uri (string-append "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/" "petsc-lite-" version ".tar.gz")) (sha256 - (base32 "13h0m5f9xsdpps4lsp59iz2m7zkapwavq2zfkfvs3ab6sndla0l9")))) + (base32 "0jfrq6rd4zagw1iimz05m2w91k0jvz3qbik1lk8pqcxw3rvdqk5d")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2) @@ -829,33 +834,34 @@ ASCII text files using Gmsh's own scripting language.") ,(string-append "--with-superlu-lib=" (assoc-ref %build-inputs "superlu") "/lib/libsuperlu.a")) #:phases - (alist-replace - 'configure - ;; PETSc's configure script is actually a python script, so we can't - ;; run it with bash. - (lambda* (#:key outputs (configure-flags '()) - #:allow-other-keys) - (let* ((prefix (assoc-ref outputs "out")) - (flags `(,(string-append "--prefix=" prefix) - ,@configure-flags))) - (format #t "build directory: ~s~%" (getcwd)) - (format #t "configure flags: ~s~%" flags) - (zero? (apply system* "./configure" flags)))) - (alist-cons-after - 'configure 'clean-local-references - ;; Try to keep build directory names from leaking into compiled code - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (substitute* (find-files "." "^petsc(conf|machineinfo).h$") - (((getcwd)) out)))) - (alist-cons-after - 'install 'clean-install + (modify-phases %standard-phases + (replace 'configure + ;; PETSc's configure script is actually a python script, so we can't + ;; run it with bash. + (lambda* (#:key outputs (configure-flags '()) + #:allow-other-keys) + (let* ((prefix (assoc-ref outputs "out")) + (flags `(,(string-append "--prefix=" prefix) + ,@configure-flags))) + (format #t "build directory: ~s~%" (getcwd)) + (format #t "configure flags: ~s~%" flags) + (zero? (apply system* "./configure" flags))))) + (add-after 'configure 'clean-local-references + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* (find-files "." "^petsc(conf|machineinfo).h$") + ;; Prevent build directory from leaking into compiled code + (((getcwd)) out) + ;; Scrub timestamp for reproducibility + ((".*Libraries compiled on.*") "")) + #t))) + (add-after 'install 'clean-install ;; Try to keep installed files from leaking build directory names. (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) + (let ((out (assoc-ref outputs "out"))) (substitute* (map (lambda (file) (string-append out "/lib/petsc/conf/" file)) - '("petscvariables" "PETScConfig.cmake")) + '("petscvariables")) (((getcwd)) out)) ;; Make compiler references point to the store (substitute* (string-append out "/lib/petsc/conf/petscvariables") @@ -868,9 +874,10 @@ ASCII text files using Gmsh's own scripting language.") (delete-file f)))) '("configure.log" "make.log" "gmake.log" "test.log" "error.log" "RDict.db" + "PETScBuildInternal.cmake" ;; Once installed, should uninstall with Guix - "uninstall.py")))) - %standard-phases))))) + "uninstall.py")) + #t)))))) (home-page "http://www.mcs.anl.gov/petsc") (synopsis "Library to solve PDEs") (description "PETSc, pronounced PET-see (the S is silent), is a suite of @@ -921,7 +928,7 @@ scientific applications modeled by partial differential equations.") (define-public slepc (package (name "slepc") - (version "3.6.2") + (version "3.7.1") (source (origin (method url-fetch) @@ -930,7 +937,7 @@ scientific applications modeled by partial differential equations.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1pv5iqz2kc8sj49zsabyz4arnfpana8mjrhq31vzgk16xldk3d1a")))) + "1hijlmrvxvfqslnx8yydzw5xqbsn1yy02g32w0hln1z3cgr1c0k7")))) (build-system gnu-build-system) (native-inputs `(("python" ,python-2))) @@ -946,8 +953,7 @@ scientific applications modeled by partial differential equations.") (assoc-ref %build-inputs "arpack") "/lib")) #:phases (modify-phases %standard-phases - (replace - 'configure + (replace 'configure ;; configure is a python script, so we can't run it with bash. (lambda* (#:key inputs outputs (configure-flags '()) #:allow-other-keys) @@ -959,8 +965,7 @@ scientific applications modeled by partial differential equations.") (setenv "SLEPC_DIR" (getcwd)) (setenv "PETSC_DIR" (assoc-ref inputs "petsc")) (zero? (apply system* "./configure" flags))))) - (add-after - 'install 'delete-doc + (add-after 'install 'delete-doc ;; TODO: SLEPc installs HTML documentation alongside headers in ;; $out/include. We'd like to move them to share/doc, but delete ;; them for now, as they are incomplete and installing the complete @@ -968,8 +973,7 @@ scientific applications modeled by partial differential equations.") (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out"))) (for-each delete-file (find-files out "\\.html$"))))) - (add-after - 'install 'clean-install + (add-after 'install 'clean-install ;; Clean up unnecessary build logs from installation. (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -1208,74 +1212,56 @@ porting.") (define-public superlu (package (name "superlu") - (version "4.3") + (version "5.2.1") (source (origin (method url-fetch) (uri (string-append "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/" "superlu_" version ".tar.gz")) (sha256 - (base32 "10b785s9s4x0m9q7ihap09275pq4km3k2hk76jiwdfdr5qr2168n")))) - (build-system gnu-build-system) + (base32 "0qzlb7cd608q62kyppd0a8c65l03vrwqql6gsm465rky23b6dyr8")) + (modules '((guix build utils))) + (snippet + ;; Replace the non-free implementation of MC64 with a stub adapted + ;; from Debian + '(begin + (use-modules (ice-9 regex) + (ice-9 rdelim)) + (call-with-output-file "SRC/mc64ad.c" + (lambda (port) + (display " +#include <stdio.h> +#include <stdlib.h> +void mc64id_(int *a) { + fprintf (stderr, \"SuperLU: non-free MC64 not available. Aborting.\\n\"); + abort (); +} +void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g, + int *h, int *i, int *j, int *k, double *l, int *m, int *n) { + fprintf (stderr, \"SuperLU: non-free MC64 not available. Aborting.\\n\"); + abort (); +}\n" port))) + ;; Remove the corresponding license verbiage. MC64 license follows + ;; a "------" line separator. + (with-atomic-file-replacement "License.txt" + (let ((rx (make-regexp "-{8}"))) + (lambda (in out) + (let loop () + (let ((line (read-line in 'concat))) + (unless (regexp-exec rx line) + (display line out) + (loop))))))))))) + (build-system cmake-build-system) (native-inputs `(("tcsh" ,tcsh))) (inputs - `(("lapack" ,lapack) + `(("blas" ,openblas) ("gfortran" ,gfortran))) (arguments - `(#:parallel-build? #f - #:tests? #f ;tests are run as part of `make all` - #:phases - (alist-replace - 'configure - (lambda* (#:key inputs outputs #:allow-other-keys) - (call-with-output-file "make.inc" - (lambda (port) - (format port " -PLAT = -SuperLUroot = ~a -SUPERLULIB = ~a/lib/libsuperlu.a -TMGLIB = libtmglib.a -BLASDEF = -DUSE_VENDOR_BLAS -BLASLIB = -L~a/lib -lblas -LIBS = $(SUPERLULIB) $(BLASLIB) -ARCH = ar -ARCHFLAGS = cr -RANLIB = ranlib -CC = gcc -PIC = -fPIC -CFLAGS = -O3 -DPRNTlevel=0 $(PIC) -NOOPTS = -O0 $(PIC) -FORTRAN = gfortran -FFLAGS = -O2 $(PIC) -LOADER = $(CC) -CDEFS = -DAdd_" - (getcwd) - (assoc-ref outputs "out") - (assoc-ref inputs "lapack"))))) - (alist-cons-before - 'build 'create-install-directories - (lambda* (#:key outputs #:allow-other-keys) - (for-each - (lambda (dir) - (mkdir-p (string-append (assoc-ref outputs "out") - "/" dir))) - '("lib" "include"))) - (alist-replace - 'install - (lambda* (#:key outputs #:allow-other-keys) - ;; Library is placed in lib during the build phase. Copy over - ;; headers to include. - (let* ((out (assoc-ref outputs "out")) - (incdir (string-append out "/include"))) - (for-each (lambda (file) - (let ((base (basename file))) - (format #t "installing `~a' to `~a'~%" - base incdir) - (copy-file file - (string-append incdir "/" base)))) - (find-files "SRC" ".*\\.h$")))) - %standard-phases))))) + `(#:configure-flags '("-Denable_blaslib:BOOL=NO" ;do not use internal cblas + "-DTPL_BLAS_LIBRARIES=openblas" + "-DBUILD_SHARED_LIBS:BOOL=YES" + "-DCMAKE_INSTALL_LIBDIR=lib"))) (home-page "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/") (synopsis "Supernodal direct solver for sparse linear systems") (description @@ -1285,7 +1271,9 @@ The library is written in C and is callable from either C or Fortran. The library routines perform an LU decomposition with partial pivoting and triangular system solves through forward and back substitution. The library also provides threshold-based ILU factorization preconditioners.") - (license license:bsd-3))) + (license (list license:bsd-3 + license:gpl2+ ;EXAMPLE/*fgmr.c + (license:fsf-free "file://SRC/colamd.h"))))) (define-public superlu-dist (package @@ -1298,6 +1286,30 @@ also provides threshold-based ILU factorization preconditioners.") "superlu_dist_" version ".tar.gz")) (sha256 (base32 "1hnak09yxxp026blq8zhrl7685yip16svwngh1wysqxf8z48vzfj")) + (modules '((guix build utils))) + (snippet + ;; Replace the non-free implementation of MC64 with a stub + '(begin + (use-modules (ice-9 regex) + (ice-9 rdelim)) + (call-with-output-file "SRC/mc64ad.c" + (lambda (port) + (display " +#include <stdio.h> +#include <stdlib.h> +void mc64id_(int *a) { + fprintf (stderr, \"SuperLU_DIST: non-free MC64 not available. Aborting.\\n\"); + abort (); +} +void mc64ad_ (int *a, int *b, int *c, int *d, int *e, double *f, int *g, + int *h, int *i, int *j, int *k, double *l, int *m, int *n) { + fprintf (stderr, \"SuperLU_DIST: non-free MC64 not available. Aborting.\\n\"); + abort (); +}\n" port))) + (delete-file "SRC/mc64ad.f.bak") + (substitute* "SRC/util.c" ;adjust default algorithm + (("RowPerm[[:blank:]]*=[[:blank:]]*LargeDiag") + "RowPerm = NOROWPERM")))) (patches (search-patches "superlu-dist-scotchmetis.patch")))) (build-system gnu-build-system) (native-inputs @@ -1791,29 +1803,36 @@ associated functions (eg. contiguous and non-contiguous submatrix views).") "1cdpjxb0fz5f28y5qrqgpw53s7qi8s2v3al9lfdldqxngb21vpx8")))))) (define-public muparser - (package - (name "muparser") - (version "2.2.5") - (source - (origin - (method svn-fetch) - (uri (svn-reference - (url "http://muparser.googlecode.com/svn/trunk/") - (revision 34))) - (sha256 - (base32 - "1d6bdbhx9zj3srwj3m7c9hvr18gnx1fx43h6d25my7q85gicpcwn")))) - (build-system gnu-build-system) - (arguments - `(#:configure-flags '("--enable-samples=no") - #:tests? #f)) ;no "check" target - (home-page "http://muparser.beltoforion.de/") - (synopsis "Fast parser library for mathematical expressions") - (description - "muParser is an extensible high performance math parser library. It is -based on transforming an expression into a bytecode and precalculating -constant parts of it.") - (license license:expat))) + ;; When switching download sites, muparser re-issued a 2.2.5 release with a + ;; different hash. In order to make `guix package --upgrade` work correctly, + ;; we set a Guix packaging revision. + ;; When the next version of muparser is released, we can remove + ;; UPSTREAM-VERSION and REVISION and use the plain VERSION. + (let ((upstream-version "2.2.5") + (revision "2")) + (package + (name "muparser") + (version (string-append upstream-version "-" revision)) + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/beltoforion/muparser/archive/v" + upstream-version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0277qsi5l23jsck1vhn383bmvc2n9l4a1dl5r9bf7hvjv9ayyrh6")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--enable-samples=no") + #:tests? #f)) ;no "check" target + (home-page "http://muparser.beltoforion.de/") + (synopsis "Fast parser library for mathematical expressions") + (description + "muParser is an extensible high performance math parser library. It is +based on transforming an expression into a bytecode and precalculating constant +parts of it.") + (license license:expat)))) (define-public openblas (package @@ -2006,8 +2025,8 @@ packages.") (version "3.10.2") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/math-atlas/atlas" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/math-atlas/Stable/" + version "/atlas" version ".tar.bz2")) (sha256 (base32 "0bqh4bdnjdyww4mcpg6kn0x7338mfqbdgysn97dzrwwb26di7ars")))) @@ -2136,8 +2155,8 @@ Failure to do so will result in a library with poor performance.") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/ogl-math/glm-" - version ".zip")) + (uri (string-append "mirror://sourceforge/ogl-math/glm-" version + "/glm-" version ".zip")) (sha256 (base32 "1cnjmi033a16a95v6xfkr1bvfmkd26hzdjka8j1819hgn5b1nr8l")))) @@ -2355,9 +2374,8 @@ FLANN is written in C++ and contains bindings for C, Octave and Python.") (source (origin (method url-fetch) - (uri - (string-append - "mirror://sourceforge/w-calc/wcalc-" version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/w-calc/Wcalc/" version "/" + "wcalc-" version ".tar.bz2")) (sha256 (base32 "1vi8dl6rccqiq1apmpwawyg2ywx6a1ic1d3cvkf2hlwk1z11fb0f")))) @@ -2381,8 +2399,8 @@ evaluates expressions using the standard order of operations.") (version "3.6") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/xaos/xaos-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/xaos/XaoS/" version + "/xaos-" version ".tar.gz")) (sha256 (base32 "15cd1cx1dyygw6g2nhjqq3bsfdj8sj8m4va9n75i0f3ryww3x7wq")))) @@ -2524,7 +2542,7 @@ structured and unstructured grid problems."))) (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/matio/" version "/" + (uri (string-append "mirror://sourceforge/matio/matio/" version "/" "matio-" version ".tar.gz")) (sha256 (base32 @@ -2538,3 +2556,25 @@ structured and unstructured grid problems."))) (description "Matio is a library for reading and writing MAT files. It supports compressed MAT files, as well as newer (version 7.3) MAT files.") (license license:bsd-2))) + +(define-public libhilbert + (package + (name "libhilbert") + (version "0.2-1") + (source + (origin + (method url-fetch) + (uri (string-append "http://web.cs.dal.ca/~chamilto/hilbert/" + "libhilbert-" version ".tar.gz")) + (sha256 + (base32 + "0v48x8405dj95gjn2saja4bzhw86d6zl6d3dg8h7dzac2qr97s34")))) + (build-system gnu-build-system) + (home-page "http://web.cs.dal.ca/~chamilto/hilbert") + (synopsis "Hilbert indices for multidimensional data") + (description "The libhilbert library can efficiently calculate Hilbert +curves and order-preserving representations of Hilbert curve indices that use +the same amount of space as the original point representation. This is useful +when using the Gilbert curve as a space filling curve through a +high-dimensional space where not all demensions have the same cardinality.") + (license license:lgpl2.1+))) diff --git a/gnu/packages/mcrypt.scm b/gnu/packages/mcrypt.scm index 7ac0b92d81..fb5529382e 100644 --- a/gnu/packages/mcrypt.scm +++ b/gnu/packages/mcrypt.scm @@ -33,8 +33,8 @@ (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/mcrypt/mcrypt-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/mcrypt/MCrypt/" + version "/" name "-" version ".tar.gz")) (sha256 (base32 "161031n1w9pb4yzz9i47szc12a4mwpcpvyxnvafsik2l9s2aliai")) @@ -66,8 +66,8 @@ them.") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/mcrypt/libmcrypt-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/mcrypt/Libmcrypt/" version + "/libmcrypt-" version ".tar.gz")) (sha256 (base32 "0gipgb939vy9m66d3k8il98rvvwczyaw2ixr8yn6icds9c3nrsz4")))) @@ -89,9 +89,8 @@ XTEA, 3WAY, TWOFISH, BLOWFISH, ARCFOUR, WAKE and more.") (source (origin (method url-fetch) - - (uri (string-append "mirror://sourceforge/mhash/mhash-" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/mhash/mhash/" version + "/mhash-" version ".tar.bz2")) (sha256 (base32 "1w7yiljan8gf1ibiypi6hm3r363imm3sxl1j8hapjdq3m591qljn")) diff --git a/gnu/packages/mp3.scm b/gnu/packages/mp3.scm index 8451f0ac9f..37407cdc17 100644 --- a/gnu/packages/mp3.scm +++ b/gnu/packages/mp3.scm @@ -290,8 +290,8 @@ This package contains the binary.") (version "1.22.4") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/mpg123/mpg123-" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/mpg123/mpg123/" version + "/mpg123-" version ".tar.bz2")) (sha256 (base32 "1lj0xv0b6sgqsbhx10dg60cnzgz98i76gxy51kqh11hka0pf0sah")))) @@ -314,7 +314,7 @@ command-line tool as well as a C library, libmpg123.") (version "0.3.1") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/mpg321/" + (uri (string-append "mirror://sourceforge/mpg321/mpg321/" version "/mpg321-" version ".tar.gz")) (sha256 (base32 diff --git a/gnu/packages/mpi.scm b/gnu/packages/mpi.scm index 262330ecd7..68937a26f5 100644 --- a/gnu/packages/mpi.scm +++ b/gnu/packages/mpi.scm @@ -98,16 +98,16 @@ bind processes, and much more.") (define-public openmpi (package (name "openmpi") - (version "1.10.1") + (version "1.10.3") (source (origin (method url-fetch) - (uri (string-append "http://www.open-mpi.org/software/ompi/v" + (uri (string-append "https://www.open-mpi.org/software/ompi/v" (version-major+minor version) "/downloads/openmpi-" version ".tar.bz2")) (sha256 (base32 - "14p4px9a3qzjc22lnl6braxrcrmd9rgmy7fh4qpanawn2pgfq6br")))) + "0k95ri9f8kzx5vhzrdbzn59rn2324fs4a96w5v8jy20j8dkbp13l")))) (build-system gnu-build-system) (inputs `(("hwloc" ,hwloc) @@ -128,7 +128,20 @@ bind processes, and much more.") ,(string-append "--with-valgrind=" (assoc-ref %build-inputs "valgrind")) ,(string-append "--with-hwloc=" - (assoc-ref %build-inputs "hwloc"))))) + (assoc-ref %build-inputs "hwloc"))) + #:phases (modify-phases %standard-phases + (add-before 'build 'scrub-timestamps ;reproducibility + (lambda _ + (substitute* '("ompi/tools/ompi_info/param.c" + "orte/tools/orte-info/param.c" + "oshmem/tools/oshmem_info/param.c") + ((".*(Built|Configured) on.*") "")) + #t)) + (add-after 'install 'remove-logs ;reproducibility + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (for-each delete-file (find-files out "config.log")) + #t)))))) (home-page "http://www.open-mpi.org") (synopsis "MPI-2 implementation") (description diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 91ba4be97b..5d73790e51 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -694,8 +694,8 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.") (source (origin (method url-fetch) (uri - (string-append "mirror://sourceforge/synthv1/synthv1-" - version ".tar.gz")) + (string-append "mirror://sourceforge/synthv1/synthv1/" version + "/synthv1-" version ".tar.gz")) (sha256 (base32 "0h5zja78phf9705i9g54zh61iczb24iv7rxhljyms30sjgajig1y")))) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 9e4f7bb010..b92ad0a36a 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -232,7 +232,8 @@ Ethernet devices.") (version "1.1.0") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/ifstatus/ifstatus-v" + (uri (string-append "mirror://sourceforge/ifstatus/ifstatus/" + "ifstatus%20v" version "/ifstatus-v" version ".tar.gz")) (sha256 (base32 @@ -271,8 +272,8 @@ intended as a substitute for the PPPStatus and EthStatus projects.") (version "0.7.4") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/nload/nload-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/nload/nload/" version + "/nload-" version ".tar.gz")) (sha256 (base32 "1rb9skch2kgqzigf19x8bzk211jdfjfdkrcvaqyj89jy2pkm3h61")))) diff --git a/gnu/packages/ocr.scm b/gnu/packages/ocr.scm index 0d5fbcdc29..2e205ddd34 100644 --- a/gnu/packages/ocr.scm +++ b/gnu/packages/ocr.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,10 +22,8 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) - #:use-module (gnu packages autotools) #:use-module (gnu packages compression) - #:use-module (gnu packages image) - #:use-module (gnu packages pkg-config)) + #:use-module (gnu packages image)) (define-public ocrad (package @@ -50,39 +49,24 @@ it produces text in 8-bit or UTF-8 formats.") (define-public tesseract-ocr (package (name "tesseract-ocr") - (version "3.02.02") + (version "3.04.01") (source (origin (method url-fetch) (uri (string-append - "https://tesseract-ocr.googlecode.com/files/tesseract-ocr-" + "https://github.com/tesseract-ocr/tesseract/archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 - (base32 "0g81m9y4iydp7kgr56mlkvjdwpp3mb01q385yhdnyvra7z5kkk96")) - (modules '((guix build utils))) - ;; Leptonica added a pkg-config file in the meanwhile. - (snippet - '(substitute* "tesseract.pc.in" - (("^# Requires: lept ## .*") - "Requires: lept\n"))))) + (base32 "0snwd8as5i8vx7zkimpd2yg898jl96zf90r65a9w615f2hdkxxjp")))) (build-system gnu-build-system) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) - ("libtool" ,libtool))) - (propagated-inputs + (inputs `(("leptonica" ,leptonica))) (arguments - '(#:phases - (modify-phases %standard-phases - (add-after - 'unpack 'autogen - (lambda _ - (zero? (system* "sh" "autogen.sh"))))) - #:configure-flags + '(#:configure-flags (let ((leptonica (assoc-ref %build-inputs "leptonica"))) (list (string-append "LIBLEPT_HEADERSDIR=" leptonica "/include"))))) - (home-page "https://code.google.com/p/tesseract-ocr/") + (home-page "https://github.com/tesseract-ocr") (synopsis "Optical character recognition engine") (description "Tesseract is an optical character recognition (OCR) engine with very diff --git a/gnu/packages/onc-rpc.scm b/gnu/packages/onc-rpc.scm index 8861b0e8db..d9b2f9dda0 100644 --- a/gnu/packages/onc-rpc.scm +++ b/gnu/packages/onc-rpc.scm @@ -28,7 +28,7 @@ (version "0.2.4") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/libtirpc/" + (uri (string-append "mirror://sourceforge/libtirpc/libtirpc/" version "/libtirpc-" version ".tar.bz2")) (sha256 diff --git a/gnu/packages/password-utils.scm b/gnu/packages/password-utils.scm index 1579821385..a03214ae6d 100644 --- a/gnu/packages/password-utils.scm +++ b/gnu/packages/password-utils.scm @@ -53,8 +53,8 @@ (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/pwgen/pwgen-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/pwgen/pwgen/" version + "/pwgen-" version ".tar.gz")) (sha256 (base32 "0mhmw700kkh238fzivcwnwi94bj9f3h36yfh3k3j2v19b0zmjx7b")))) (build-system gnu-build-system) diff --git a/gnu/packages/pdf.scm b/gnu/packages/pdf.scm index 36c538c165..dd7a0b0af5 100644 --- a/gnu/packages/pdf.scm +++ b/gnu/packages/pdf.scm @@ -418,8 +418,8 @@ interaction.") (version "0.9.3") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/podofo/podofo-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/podofo/podofo/" version + "/podofo-" version ".tar.gz")) (sha256 (base32 "1n12lbq9x15vqn7dc0hsccp56l5jdff1xrhvlfqlbklxx0qiw9pc")))) @@ -509,8 +509,8 @@ and examining the file structure (pdfshow).") (version "5.1.3") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/qpdf/qpdf-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/qpdf/qpdf/" version + "/qpdf-" version ".tar.gz")) (sha256 (base32 "1lq1v7xghvl6p4hgrwbps3a13ad6lh4ib3myimb83hxgsgd4n5nm")) (modules '((guix build utils))) @@ -561,8 +561,8 @@ program capable of converting PDF into other formats.") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/xournal/xournal-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/xournal/xournal/" version + "/xournal-" version ".tar.gz")) (sha256 (base32 "0c7gjcqhygiyp0ypaipdaxgkbivg6q45vhsj8v5jsi9nh6iqff13")))) diff --git a/gnu/packages/perl.scm b/gnu/packages/perl.scm index 9f298ac960..959513f988 100644 --- a/gnu/packages/perl.scm +++ b/gnu/packages/perl.scm @@ -6094,8 +6094,8 @@ as exceptions to standard program flow.") (version "20160302") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/perltidy/Perl-Tidy-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/perltidy/" version + "/Perl-Tidy-" version ".tar.gz")) (sha256 (base32 "19yw63yh5s3pq7k3nkw6nsamg5b8vvwyhgbizslgxg0mqgc4xl3d")))) diff --git a/gnu/packages/photo.scm b/gnu/packages/photo.scm index 38bd9c3ed9..8eb5337b6a 100644 --- a/gnu/packages/photo.scm +++ b/gnu/packages/photo.scm @@ -73,8 +73,8 @@ cameras (CRW/CR2, NEF, RAF, DNG, and others).") (version "0.6.21") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/libexif/libexif-" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/libexif/libexif/" + version "/libexif-" version ".tar.bz2")) (sha256 (base32 "06nlsibr3ylfwp28w8f5466l6drgrnydgxrm4jmxzrmk5svaxk8n")))) @@ -92,8 +92,8 @@ data as produced by digital cameras.") (version "2.5.2") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/gphoto/libgphoto2-" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/gphoto/libgphoto/" + version "/libgphoto2-" version ".tar.bz2")) (sha256 (base32 "0f1818l1vs5fbmrihzyv3qasddbqi3r01jik5crrxddwalsi2bd3")))) @@ -122,8 +122,8 @@ from digital cameras.") (version "2.5.2") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/gphoto/gphoto2-" - version ".tar.bz2")) + (uri (string-append "mirror://sourceforge/gphoto/gphoto/" version + "/gphoto2-" version ".tar.bz2")) (sha256 (base32 "16c8k1cxfypg7v5h8xi87grclw7a5ayaamn548ys3zkj727r5fcf")))) diff --git a/gnu/packages/popt.scm b/gnu/packages/popt.scm index e940df1590..3200873d58 100644 --- a/gnu/packages/popt.scm +++ b/gnu/packages/popt.scm @@ -32,7 +32,8 @@ (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/argtable/argtable" + "mirror://sourceforge/argtable/argtable/" + "argtable-" version "/argtable" (string-join (string-split version #\.) "-") ".tar.gz")) (sha256 diff --git a/gnu/packages/protobuf.scm b/gnu/packages/protobuf.scm index 03d1edcee7..86c418bb05 100644 --- a/gnu/packages/protobuf.scm +++ b/gnu/packages/protobuf.scm @@ -1,5 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016 Daniel Pimentel <d4n1@d4n1.org> +;;; Copyright © 2016 Leo Famulari <leo@famulari.name> ;;; ;;; This file is part of GNU Guix. ;;; @@ -20,9 +22,12 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system gnu) + #:use-module (guix build-system python) #:use-module ((guix licenses) #:select (bsd-3)) - #:use-module (gnu packages compression)) + #:use-module (gnu packages compression) + #:use-module (gnu packages gcc) + #:use-module (gnu packages python)) (define-public protobuf (package @@ -44,3 +49,30 @@ yet extensible format. Google uses Protocol Buffers for almost all of its internal RPC protocols and file formats.") (license bsd-3))) + +(define-public python-protobuf + (package + (name "python-protobuf") + (version "3.0.0b4") + (source + (origin + (method url-fetch) + (uri (pypi-uri "protobuf" version)) + (sha256 + (base32 + "18zvvn8cgbcwi85ws2ny0k4qp33wd525spsb8sxvrj325mbx9cpk")))) + (build-system python-build-system) + (inputs + `(("python-six" ,python-six))) + (home-page "https://github.com/google/protobuf") + (synopsis "Protocol buffers is a data interchange format") + (description + "Protocol buffers are a language-neutral, platform-neutral extensible +mechanism for serializing structured data.") + (license bsd-3) + (properties `((python2-variant . ,(delay python2-protobuf)))))) + +(define-public python2-protobuf + (package (inherit (package-with-python2 + (strip-python2-variant python-protobuf))) + (native-inputs `(("python2-setuptools" ,python2-setuptools))))) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 717a81e59f..00f7803897 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -1394,8 +1394,8 @@ syntax.") (version "2.3.4") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/scons/scons-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/scons/scons/" version + "/scons-" version ".tar.gz")) (sha256 (base32 "0hdlci43wjz8maryj83mz04ir6rwcdrrzpd7cpzvdlzycqhdfmsb")))) @@ -3039,7 +3039,7 @@ writing C extensions for Python as easy as Python itself.") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/numpy" + (uri (string-append "mirror://sourceforge/numpy/NumPy/" version "/numpy-" version ".tar.gz")) (sha256 (base32 @@ -3202,7 +3202,8 @@ association studies (GWAS) on extremely large data sets.") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/pyparsing" + (uri (string-append "mirror://sourceforge/pyparsing/pyparsing" + "/pyparsing-" version "/pyparsing-" version ".tar.gz")) (sha256 (base32 @@ -3323,7 +3324,8 @@ transcendental functions).") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/matplotlib" + (uri (string-append "mirror://sourceforge/matplotlib/matplotlib" + "/matplotlib-" version "/matplotlib-" version ".tar.gz")) (sha256 (base32 @@ -3533,7 +3535,8 @@ functions.") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/scipy" +; http://downloads.sourceforge.net/project/scipy/scipy/0.16.1/scipy-0.16.1.tar.gz + (uri (string-append "mirror://sourceforge/scipy/scipy/" version "/scipy-" version ".tar.xz")) (sha256 (base32 @@ -4912,7 +4915,8 @@ as possible in order to be comprehensible and easily extensible.") (version "0.14") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/python-xlib/" + (uri (string-append "mirror://sourceforge/python-xlib/python-xlib" + "/" version "/" "python-xlib-" version ".tar.gz")) (sha256 (base32 @@ -8738,7 +8742,7 @@ the same purpose: to provide Python bindings for libmagic.") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/s3tools/" + (uri (string-append "mirror://sourceforge/s3tools/s3cmd/" version "/" "s3cmd-" version ".tar.gz")) (sha256 (base32 @@ -9763,3 +9767,36 @@ characters, mouse support, and auto suggestions.") (native-inputs `(("python2-setuptools" ,python2-setuptools) ,@(package-native-inputs base)))))) + +(define-public ptpython + (package + (name "ptpython") + (version "0.34") + (source (origin + (method url-fetch) + (uri (pypi-uri "ptpython" version)) + (sha256 + (base32 + "1mmbiyzf0n8hm7z2a562x7w5cbl6jc0zsk6vp40q1z4cyblv1k13")))) + (build-system python-build-system) + (inputs + `(("python-docopt" ,python-docopt) + ("python-jedi" ,python-jedi) + ("python-prompt-toolkit" ,python-prompt-toolkit) + ("python-pygments" ,python-pygments) + ("python-setuptools" ,python-setuptools))) + (home-page "https://github.com/jonathanslenders/ptpython") + (synopsis "Python Read-Eval-Print-Loop with nice IDE-like features") + (description + "ptpython is a Python read-eval-print loop with IDE-like features. +It supports syntax highlighting, multiline editing, autocompletion, mouse, +color schemes, bracketed paste, Vi and Emacs keybindings, Chinese characters +etc.") + (license bsd-3) + (properties `((python2-variant . ,(delay ptpython-2)))))) + +(define-public ptpython-2 + (let ((base (package-with-python2 (strip-python2-variant ptpython)))) + (package + (inherit base) + (name "ptpython2")))) diff --git a/gnu/packages/rdesktop.scm b/gnu/packages/rdesktop.scm index 39a45c5878..e40852b4ec 100644 --- a/gnu/packages/rdesktop.scm +++ b/gnu/packages/rdesktop.scm @@ -31,8 +31,8 @@ (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/rdesktop/rdesktop-" - version ".tar.gz")) + "mirror://sourceforge/" name "/" name "/" version "/" + name "-" version ".tar.gz")) (sha256 (base32 "1r7c1rjmw2xzq8fw0scyb453gy9z19774z1z8ldmzzsfndb03cl8")))) diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm index 1e00e6bb9d..373b6f37b3 100644 --- a/gnu/packages/scheme.scm +++ b/gnu/packages/scheme.scm @@ -54,6 +54,8 @@ #:use-module (gnu packages fontutils) #:use-module (gnu packages image) #:use-module (gnu packages xorg) + #:use-module (gnu packages tls) + #:use-module (gnu packages gl) #:use-module (ice-9 match)) (define (mit-scheme-source-directory system version) @@ -414,57 +416,94 @@ implementation techniques and as an expository tool.") (build-system gnu-build-system) (arguments '(#:phases - (let* ((gui-libs - (lambda (inputs) - (define (lib input) - (string-append (assoc-ref inputs input) "/lib")) - - (list (lib "glib") - (lib "cairo") - (lib "pango") - (lib "libjpeg") - (lib "gtk") - (lib "gdk-pixbuf") - (lib "fontconfig") - (lib "sqlite"))))) ;to build the doc - (alist-cons-before - 'configure 'pre-configure - (lambda* (#:key inputs #:allow-other-keys) - (chdir "src") - - ;; The GUI libs are dynamically opened through the FFI, so they - ;; must be in the loader's search path. - (setenv "LD_LIBRARY_PATH" (string-join (gui-libs inputs) ":"))) - (alist-cons-after - 'unpack 'patch-/bin/sh - (lambda _ - (substitute* "collects/racket/system.rkt" - (("/bin/sh") (which "sh")))) - (alist-cons-after - 'install 'wrap-programs - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out"))) - (define (wrap prog) - (wrap-program prog - `("LD_LIBRARY_PATH" ":" prefix - ,(gui-libs inputs)))) - - (with-directory-excursion (string-append out "/bin") - (for-each wrap - (list "gracket" "drracket" "slideshow" "mred")) - #t))) - %standard-phases)))) + (alist-cons-before + 'configure 'pre-configure + (lambda* (#:key inputs #:allow-other-keys) + ;; Patch dynamically loaded libraries with their absolute paths. + (let* ((library-path (search-path-as-string->list + (getenv "LIBRARY_PATH"))) + (find-so (lambda (soname) + (search-path + library-path + (format #f "~a.so" soname)))) + (patch-ffi-libs (lambda (file libs) + (for-each + (lambda (lib) + (substitute* file + (((format #f "\"~a\"" lib)) + (format #f "\"~a\"" (find-so lib))))) + libs)))) + (substitute* "collects/db/private/sqlite3/ffi.rkt" + (("ffi-lib sqlite-so") + (format #f "ffi-lib \"~a\"" (find-so "libsqlite3")))) + (substitute* "collects/openssl/libssl.rkt" + (("ffi-lib libssl-so") + (format #f "ffi-lib \"~a\"" (find-so "libssl")))) + (substitute* "collects/openssl/libcrypto.rkt" + (("ffi-lib libcrypto-so") + (format #f "ffi-lib \"~a\"" (find-so "libcrypto")))) + (substitute* "share/pkgs/math-lib/math/private/bigfloat/gmp.rkt" + (("ffi-lib libgmp-so") + (format #f "ffi-lib \"~a\"" (find-so "libgmp")))) + (substitute* "share/pkgs/math-lib/math/private/bigfloat/mpfr.rkt" + (("ffi-lib libmpfr-so") + (format #f "ffi-lib \"~a\"" (find-so "libmpfr")))) + (for-each + (lambda (x) (apply patch-ffi-libs x)) + '(("share/pkgs/draw-lib/racket/draw/unsafe/cairo-lib.rkt" + ("libfontconfig" "libcairo")) + ("share/pkgs/draw-lib/racket/draw/unsafe/glib.rkt" + ("libglib-2.0" "libgmodule-2.0" "libgobject-2.0")) + ("share/pkgs/draw-lib/racket/draw/unsafe/jpeg.rkt" + ("libjpeg")) + ("share/pkgs/draw-lib/racket/draw/unsafe/pango.rkt" + ("libpango-1.0" "libpangocairo-1.0")) + ("share/pkgs/draw-lib/racket/draw/unsafe/png.rkt" + ("libpng")) + ("share/pkgs/db-lib/db/private/odbc/ffi.rkt" + ("libodbc")) + ("share/pkgs/gui-lib/mred/private/wx/gtk/x11.rkt" + ("libX11")) + ("share/pkgs/gui-lib/mred/private/wx/gtk/gsettings.rkt" + ("libgio-2.0")) + ("share/pkgs/gui-lib/mred/private/wx/gtk/gtk3.rkt" + ("libgdk-3" "libgtk-3")) + ("share/pkgs/gui-lib/mred/private/wx/gtk/unique.rkt" + ("libunique-1.0")) + ("share/pkgs/gui-lib/mred/private/wx/gtk/utils.rkt" + ("libgdk-x11-2.0" "libgdk_pixbuf-2.0" "libgtk-x11-2.0")) + ("share/pkgs/gui-lib/mred/private/wx/gtk/gl-context.rkt" + ("libGL")) + ("share/pkgs/sgl/gl.rkt" + ("libGL" "libGLU"))))) + (chdir "src")) + (alist-cons-after + 'unpack 'patch-/bin/sh + (lambda _ + (substitute* "collects/racket/system.rkt" + (("/bin/sh") (which "sh")))) + %standard-phases)) #:tests? #f ; XXX: how to run them? )) - (inputs `(("libffi" ,libffi) - ("glib" ,glib) ; for DrRacket - ("cairo" ,cairo) - ("pango" ,pango) - ("libjpeg" ,libjpeg-8) - ("fontconfig" ,fontconfig) - ("gdk-pixbuf" ,gdk-pixbuf) - ("gtk" ,gtk+-2) - ("sqlite" ,sqlite))) ;needed to build the doc + (inputs + `(("libffi" ,libffi) + ;; Hardcode dynamically loaded libraries for better functionality. + ;; sqlite and libraries for `racket/draw' are needed to build the doc. + ("cairo" ,cairo) + ("fontconfig" ,fontconfig) + ("glib" ,glib) + ("glu" ,glu) + ("gmp" ,gmp) + ("gtk+" ,gtk+) ; propagates gdk-pixbuf+svg + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libx11" ,libx11) + ("mesa" ,mesa) + ("mpfr" ,mpfr) + ("openssl" ,openssl) + ("pango" ,pango) + ("sqlite" ,sqlite) + ("unixodbc" ,unixodbc))) (home-page "http://racket-lang.org") (synopsis "Implementation of Scheme and related languages") (description diff --git a/gnu/packages/screen.scm b/gnu/packages/screen.scm index e3f97f4b68..8c900821be 100644 --- a/gnu/packages/screen.scm +++ b/gnu/packages/screen.scm @@ -70,8 +70,8 @@ view to show two terminals at once.") (version "0.9") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/dtach/dtach-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/" name "/" name "/" + version "/" name "-" version ".tar.gz")) (sha256 (base32 "1wwj2hlngi8qn2pisvhyfxxs8gyqjlgrrv5lz91w8ly54dlzvs9j")))) diff --git a/gnu/packages/slim.scm b/gnu/packages/slim.scm index dfb37a94bc..2328a1aacf 100644 --- a/gnu/packages/slim.scm +++ b/gnu/packages/slim.scm @@ -40,7 +40,7 @@ (method url-fetch) ;; Used to be available from download.berlios.de. (uri (string-append - "mirror://sourceforge/project/slim.berlios/slim-" + "mirror://sourceforge/slim.berlios/slim-" version ".tar.gz")) (sha256 (base32 "1pqhk22jb4aja4hkrm7rjgbgzjyh7i4zswdgf5nw862l2znzxpi1")) diff --git a/gnu/packages/swig.scm b/gnu/packages/swig.scm index 6a66a71f1b..1e4de427b9 100644 --- a/gnu/packages/swig.scm +++ b/gnu/packages/swig.scm @@ -35,8 +35,9 @@ (version "3.0.5") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/swig/swig-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/" name "/" name "/" + name "-" version "/" + name "-" version ".tar.gz")) (sha256 (base32 "0g1a69vrqxgsnr1wkx851ljn73a2x3jqzxa66s2l3w0kyblbjk4z")))) diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index 993842339b..4cd94299df 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -227,8 +227,8 @@ interfaces (GUIs) in the Tcl language.") (version "1.18") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/" name "/" - name "-" version ".tar.gz")) + (uri (string-append "mirror://sourceforge/" name "/" name "/" + version "/" name "-" version ".tar.gz")) (sha256 (base32 "05dmrk9qsryah2n17z6z85dj9l9lfyvnsd7faw0p9bs1pp5pwrkj")))) @@ -252,8 +252,8 @@ utility functions and modules all written in high-level Tcl.") (version "3.2") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/" name "/" - name "-" version ".tar.gz")) + (uri (string-append "mirror://sourceforge/" name "/TclXML/" + version "/" name "-" version ".tar.gz")) (sha256 (base32 "0ffb4aw63inig3aql33g4pk0kjk14dv238anp1scwjdjh1k6n4gl")) diff --git a/gnu/packages/tex.scm b/gnu/packages/tex.scm index 2600b6f20d..bbbaf43c82 100644 --- a/gnu/packages/tex.scm +++ b/gnu/packages/tex.scm @@ -64,9 +64,9 @@ (define texlive-texmf-src (origin (method url-fetch) - (uri "ftp://tug.org/historic/systems/texlive/2016/texlive-20160523-texmf.tar.xz") + (uri "ftp://tug.org/historic/systems/texlive/2016/texlive-20160523b-texmf.tar.xz") (sha256 (base32 - "0mfp6kq1p2ys5ni9czx9xl0xh264axri25vqw37yzk8jn3py9l08")))) + "1dv8vgfzpczqw82hv9g7a8djhhyzywljmrarlcyy6g2qi5q51glr")))) (define texlive-bin (package @@ -75,9 +75,9 @@ (source (origin (method url-fetch) - (uri "ftp://tug.org/historic/systems/texlive/2016/texlive-20160523-source.tar.xz") + (uri "ftp://tug.org/historic/systems/texlive/2016/texlive-20160523b-source.tar.xz") (sha256 (base32 - "07kb8rsw8d42wy3fj1qgqj26y92spx1lbhx6z73wwdb3msnvh4i9")))) + "1v91vahxlxkdra0qz3f132vvx5d9cx2jy84yl1hkch0agyj2rcx8")))) (build-system gnu-build-system) (inputs `(("texlive-extra-src" ,texlive-extra-src) @@ -167,8 +167,8 @@ that are free software, including support for many languages around the world. This package contains the binaries.") - (license (license:fsf-free "http://tug.org/texlive/copying.html")) - (home-page "http://www.tug.org/texlive/"))) + (license (license:fsf-free "https://www.tug.org/texlive/copying.html")) + (home-page "https://www.tug.org/texlive/"))) (define texlive-texmf (package @@ -234,8 +234,8 @@ that are free software, including support for many languages around the world. This package contains the complete tree of texmf-dist data.") - (license (license:fsf-free "http://tug.org/texlive/copying.html")) - (home-page "http://www.tug.org/texlive/"))) + (license (license:fsf-free "https://www.tug.org/texlive/copying.html")) + (home-page "https://www.tug.org/texlive/"))) (define-public texlive (package @@ -296,8 +296,8 @@ that are free software, including support for many languages around the world. This package contains the complete TeX Live distribution.") - (license (license:fsf-free "http://tug.org/texlive/copying.html")) - (home-page "http://www.tug.org/texlive/"))) + (license (license:fsf-free "https://www.tug.org/texlive/copying.html")) + (home-page "https://www.tug.org/texlive/"))) ;; texlive-texmf-minimal is a pruned, small version of the texlive tree, diff --git a/gnu/packages/textutils.scm b/gnu/packages/textutils.scm index ebcf4b9a1f..c4479fbde9 100644 --- a/gnu/packages/textutils.scm +++ b/gnu/packages/textutils.scm @@ -343,7 +343,7 @@ runs Word\".") (method url-fetch) (uri (string-append - "mirror://sourceforge/project/utfcpp/utf8cpp_2x/Release%20" + "mirror://sourceforge/utfcpp/utf8cpp_2x/Release%20" version "/utf8_v" (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version) ".zip")) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index ec7f9e8a3c..705275242b 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -94,12 +94,13 @@ `(#:tests? #f ; no test target #:python ,python-2 ; Python 3 apparently not yet supported, see ; https://answers.launchpad.net/bzr/+question/229048 - #:phases (alist-cons-after - 'unpack 'fix-mandir - (lambda _ - (substitute* "setup.py" - (("man/man1") "share/man/man1"))) - %standard-phases))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-mandir + (lambda _ + (substitute* "setup.py" + (("man/man1") "share/man/man1")) + #t))))) (home-page "https://gnu.org/software/bazaar") (synopsis "Version control system supporting both distributed and centralized workflows") (description @@ -491,19 +492,19 @@ will work.") '(#:tests? #f ; no tests #:make-flags (list (string-append "prefix=" (assoc-ref %outputs "out"))) - #:phases (alist-cons-after - 'unpack 'reset-shFlags-link - (lambda* (#:key inputs #:allow-other-keys) - ;; The link points to a file in the shFlags submodule. - ;; Redirect it to point to our system shFlags. - (let ((shflags (assoc-ref inputs "shflags"))) - (begin - (delete-file "gitflow-shFlags") - (symlink (string-append shflags "/src/shflags") - "gitflow-shFlags")))) - (alist-delete - 'configure - (alist-delete 'build %standard-phases))))) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'reset-shFlags-link + (lambda* (#:key inputs #:allow-other-keys) + ;; The link points to a file in the shFlags submodule. + ;; Redirect it to point to our system shFlags. + (let ((shflags (assoc-ref inputs "shflags"))) + (begin + (delete-file "gitflow-shFlags") + (symlink (string-append shflags "/src/shflags") + "gitflow-shFlags"))))) + (delete 'configure) + (delete 'build)))) (home-page "http://nvie.com/posts/a-successful-git-branching-model/") (synopsis "Git extensions for Vincent Driessen's branching model") (description @@ -686,48 +687,45 @@ property manipulation.") (version "1.8.16") (source (origin (method url-fetch) - (uri (string-append "http://archive.apache.org/dist/subversion/" + (uri (string-append "https://archive.apache.org/dist/subversion/" "subversion-" version ".tar.bz2")) (sha256 (base32 "0imkxn25n6sbcgfldrx4z29npjprb1lxjm5fb89q4297161nx3zi")))) (build-system gnu-build-system) (arguments - '(#:phases (alist-cons-after - 'configure 'patch-libtool-wrapper-ls - (lambda* (#:key inputs #:allow-other-keys) - ;; This substitution allows tests svnauthz_tests and - ;; svnlook_tests to pass. These tests execute svnauthz and - ;; svnlook through their libtool wrapper scripts from svn - ;; hooks, whose empty environments cause "ls: command not - ;; found" errors. It would be nice if this fix ultimately - ;; made its way into libtool. - (let ((coreutils (assoc-ref inputs "coreutils"))) - (substitute* "libtool" - (("\\\\`ls") (string-append "\\`" coreutils "/bin/ls"))))) - (alist-cons-after - 'install 'install-perl-bindings - (lambda* (#:key outputs #:allow-other-keys) - ;; Follow the instructions from - ;; 'subversion/bindings/swig/INSTALL'. - (let ((out (assoc-ref outputs "out"))) - (and (zero? (system* "make" "swig-pl-lib")) - ;; FIXME: Test failures. - ;; (zero? (system* "make" "check-swig-pl")) - (zero? (system* "make" "install-swig-pl-lib")) + '(#:phases + (modify-phases %standard-phases + (add-after 'configure 'patch-libtool-wrapper-ls + (lambda* (#:key inputs #:allow-other-keys) + ;; This substitution allows tests svnauthz_tests and svnlook_tests + ;; to pass. These tests execute svnauthz and svnlook through + ;; their libtool wrapper scripts from svn hooks, whose empty + ;; environments cause "ls: command not found" errors. It would be + ;; nice if this fix ultimately made its way into libtool. + (let ((coreutils (assoc-ref inputs "coreutils"))) + (substitute* "libtool" + (("\\\\`ls") (string-append "\\`" coreutils "/bin/ls")))))) + (add-after 'install 'install-perl-bindings + (lambda* (#:key outputs #:allow-other-keys) + ;; Follow the instructions from 'subversion/bindings/swig/INSTALL'. + (let ((out (assoc-ref outputs "out"))) + (and (zero? (system* "make" "swig-pl-lib")) + ;; FIXME: Test failures. + ;; (zero? (system* "make" "check-swig-pl")) + (zero? (system* "make" "install-swig-pl-lib")) - ;; Set the right installation prefix. - (with-directory-excursion - "subversion/bindings/swig/perl/native" - (and (zero? - (system* "perl" "Makefile.PL" - (string-append "PREFIX=" out))) - (zero? - (system* "make" "install" - (string-append "OTHERLDFLAGS=" - "-Wl,-rpath=" - out "/lib")))))))) - %standard-phases)))) + ;; Set the right installation prefix. + (with-directory-excursion + "subversion/bindings/swig/perl/native" + (and (zero? + (system* "perl" "Makefile.PL" + (string-append "PREFIX=" out))) + (zero? + (system* "make" "install" + (string-append "OTHERLDFLAGS=" + "-Wl,-rpath=" + out "/lib")))))))))))) (native-inputs `(("pkg-config" ,pkg-config) ;; For the Perl bindings. @@ -740,7 +738,7 @@ property manipulation.") ("python" ,python-2) ; incompatible with Python 3 (print syntax) ("sqlite" ,sqlite) ("zlib" ,zlib))) - (home-page "http://subversion.apache.org/") + (home-page "https://subversion.apache.org/") (synopsis "Revision control system") (description "Subversion exists to be universally recognized and adopted as a @@ -902,23 +900,23 @@ large, complex patch files.") "cssc-missing-include.patch")))) (build-system gnu-build-system) (arguments - `(#:phases (alist-cons-before - 'check 'precheck - (lambda _ - (begin - (substitute* "tests/common/test-common" - (("/bin/pwd") (which "pwd"))) + `(#:phases + (modify-phases %standard-phases + (add-before 'check 'precheck + (lambda _ + (begin + (substitute* "tests/common/test-common" + (("/bin/pwd") (which "pwd"))) - (substitute* "tests/prt/all-512.sh" - (("/bin/sh") (which "sh"))) + (substitute* "tests/prt/all-512.sh" + (("/bin/sh") (which "sh"))) - ;; XXX: This test has no hope of passing until there is a "nogroup" - ;; entry (or at least some group to which the guix builder does - ;; not belong) in the /etc/group file of the build environment. - ;; Currently we do not have such a group. Disable this test for now. - (substitute* "tests/Makefile" - (("test-delta ") "")))) - %standard-phases))) + ;; XXX: This test has no hope of passing until there is a "nogroup" + ;; entry (or at least some group to which the guix builder does + ;; not belong) in the /etc/group file of the build environment. + ;; Currently we do not have such a group. Disable this test for now. + (substitute* "tests/Makefile" + (("test-delta ") "")))))))) ;; These are needed for the tests (native-inputs `(("git" ,git) ("cvs" ,cvs))) @@ -937,8 +935,8 @@ accessed and migrated on modern systems.") (version "4.24") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/aegis/aegis-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/aegis/aegis/" version + "/aegis-" version ".tar.gz")) (sha256 (base32 "18s86ssarfmc4l17gbpzybca29m5wa37cbaimdji8czlcry3mcjl")) @@ -971,39 +969,37 @@ accessed and migrated on modern systems.") "--sharedstatedir=/var/com/aegis") #:parallel-build? #f ; There are some nasty racy rules in the Makefile. #:phases - (alist-cons-before - 'configure 'pre-conf - (lambda _ - (substitute* (append '("configure" - "etc/check-tar-gz.sh" - "etc/patches.sh" - "etc/test.sh" - "script/aexver.in" - "script/aebisect.in" - "script/aeintegratq.in" - "script/tkaegis.in" - "script/test_funcs.in" - "web/eg_oss_templ.sh" - "web/webiface.html" - "libaegis/getpw_cache.cc") - (find-files "test" "\\.sh")) - (("/bin/sh") (which "sh"))) - (setenv "SH" (which "sh"))) - (alist-replace - 'check - (lambda _ - (let ((home (string-append (getcwd) "/my-new-home"))) - ;; Some tests need to write to $HOME. - (mkdir home) - (setenv "HOME" home) + (modify-phases %standard-phases + (add-before 'configure 'pre-conf + (lambda _ + (substitute* (append '("configure" + "etc/check-tar-gz.sh" + "etc/patches.sh" + "etc/test.sh" + "script/aexver.in" + "script/aebisect.in" + "script/aeintegratq.in" + "script/tkaegis.in" + "script/test_funcs.in" + "web/eg_oss_templ.sh" + "web/webiface.html" + "libaegis/getpw_cache.cc") + (find-files "test" "\\.sh")) + (("/bin/sh") (which "sh"))) + (setenv "SH" (which "sh")))) + (replace 'check + (lambda _ + (let ((home (string-append (getcwd) "/my-new-home"))) + ;; Some tests need to write to $HOME. + (mkdir home) + (setenv "HOME" home) - ;; This test assumes that flex has been symlinked to "lex". - (substitute* "test/00/t0011a.sh" - (("type lex") "type flex")) + ;; This test assumes that flex has been symlinked to "lex". + (substitute* "test/00/t0011a.sh" + (("type lex") "type flex")) - ;; The author decided to call the check rule "sure". - (zero? (system* "make" "sure")))) - %standard-phases)))) + ;; The author decided to call the check rule "sure". + (zero? (system* "make" "sure")))))))) (home-page "http://aegis.sourceforge.net") (synopsis "Project change supervisor") (description "Aegis is a project change supervisor, and performs some of diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index dfce444d9e..948ab5ac8a 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -90,8 +90,8 @@ (version "1.4rc5") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/aa-project/" - name "-" version ".tar.gz")) + (uri (string-append "mirror://sourceforge/aa-project/aa-lib/" + version "/" name "-" version ".tar.gz")) (sha256 (base32 "1vkh19gb76agvh4h87ysbrgy82hrw88lnsvhynjf4vng629dmpgv")))) @@ -308,7 +308,8 @@ streams.") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/libdv/libdv-" version ".tar.gz")) + "mirror://sourceforge/" name "/" name "/" + version "/" name "-" version ".tar.gz")) (sha256 (base32 "1fl96f2xh2slkv1i1ix7kqk576a0ak1d33cylm0mbhm96d0761d3")))) @@ -1094,8 +1095,8 @@ for use with HTML5 video.") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/avidemux/avidemux_" - version ".tar.gz")) + "mirror://sourceforge/" name "/" name "/" version "/" + name "_" version ".tar.gz")) (sha256 (base32 "0nz52yih8sff53inndkh2dba759xjzsh4b8xjww419lcpk0qp6kn")) diff --git a/gnu/packages/w3m.scm b/gnu/packages/w3m.scm index 42141fb04d..e7dd583c11 100644 --- a/gnu/packages/w3m.scm +++ b/gnu/packages/w3m.scm @@ -37,8 +37,9 @@ (version "0.5.3") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/w3m/w3m-" - version ".tar.gz")) + (uri (string-append "mirror://sourceforge/" name "/" name "/" + name "-" version "/" + name "-" version ".tar.gz")) (sha256 (base32 "1qx9f0kprf92r1wxl3sacykla0g04qsi0idypzz24b7xy9ix5579")) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index ea1a30ad26..bbe33db32b 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -636,7 +636,8 @@ of people.") (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/quvi/libquvi-scripts-" version ".tar.xz")) + "mirror://sourceforge/quvi/" (version-major+minor version) "/" + name "/" name "-" version ".tar.xz")) (sha256 (base32 "0d0giry6bb57pnidymvdl7i5x9bq3ljk3g4bs294hcr5mj3cq0kw")))) (build-system gnu-build-system) @@ -654,7 +655,8 @@ parse media stream properties.") (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/quvi/libquvi-" version ".tar.xz")) + "mirror://sourceforge/quvi/" (version-major+minor version) "/" name "/" + name "-" version ".tar.xz")) (sha256 (base32 "00x9gbmzc5cns0gnfag0hsphcr3cb33vbbb9s7ppvvd6bxz2z1mm")))) (build-system gnu-build-system) @@ -687,7 +689,8 @@ URLs and extracting their actual media files.") (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/quvi/quvi-" version ".tar.xz")) + "mirror://sourceforge/" name "/" (version-major+minor version) + "/" name "/" name "-" version ".tar.xz")) (sha256 (base32 "09lhl6dv5zpryasx7yjslfrcdcqlsbwapvd5lg7w6sm5x5n3k8ci")))) (build-system gnu-build-system) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 790c74bbfd..2cc9f44cdc 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -336,7 +336,7 @@ drags, snap-to-border support, and virtual desktops.") (synopsis "Small and fast window manager") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/fluxbox/" + (uri (string-append "mirror://sourceforge/fluxbox/fluxbox/" version "/fluxbox-" version ".tar.xz")) (sha256 (base32 diff --git a/gnu/packages/wxwidgets.scm b/gnu/packages/wxwidgets.scm index 3231e3d48d..c9eb1780d6 100644 --- a/gnu/packages/wxwidgets.scm +++ b/gnu/packages/wxwidgets.scm @@ -88,8 +88,8 @@ and many other languages.") (source (origin (method url-fetch) - (uri (string-append - "mirror://sourceforge/wxwindows/wxGTK-" version ".tar.gz")) + (uri (string-append "mirror://sourceforge/wxwindows/" version + "/wxWidgets-" version ".tar.bz2")) (sha256 (base32 "1gjs9vfga60mk4j4ngiwsk9h6c7j22pw26m3asxr1jwvqbr8kkqk")))) (inputs diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 44d82dac60..f611518e86 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -108,7 +108,8 @@ program.") (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/" name "/" name "-" version ".tar.gz")) + "mirror://sourceforge/" name "/" name "/" version "/" + name "-" version ".tar.gz")) (sha256 (base32 "0ibcf46rldnv0r424qcnai1fa5iq3lm5q5rdd7snsi5sb78gmixp")))) @@ -584,8 +585,8 @@ X Window System.") (source (origin (method url-fetch) (uri (string-append - "mirror://sourceforge/libxosd/xosd-" - version ".tar.gz")) + "mirror://sourceforge/libxosd/libxosd/xosd-" version "/" + name "-" version ".tar.gz")) (sha256 (base32 "025m7ha89q29swkc7s38knnbn8ysl24g2h5s7imfxflm91psj7sg")))) diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm index d1597e96ea..81e0934889 100644 --- a/gnu/packages/xiph.scm +++ b/gnu/packages/xiph.scm @@ -300,7 +300,7 @@ ogginfo, to obtain information (tags, bitrate, length, etc.) about (define opus (package (name "opus") - (version "1.1.2") + (version "1.1.3") (source (origin (method url-fetch) (uri (string-append @@ -308,7 +308,7 @@ ogginfo, to obtain information (tags, bitrate, length, etc.) about ".tar.gz")) (sha256 (base32 - "1z87x5c5x951lhnm70iqr2gqn15wns5cqsw8nnkvl48jwdw00a8f")))) + "0cxnd7pjxbgh6l3cbzsw29phpr5cq28fikfhjlp1hc3y5s0gxdjq")))) (build-system gnu-build-system) (synopsis "Versatile audio codec") (description diff --git a/gnu/packages/xml.scm b/gnu/packages/xml.scm index fb0d07d8cf..6a8fff54cd 100644 --- a/gnu/packages/xml.scm +++ b/gnu/packages/xml.scm @@ -656,7 +656,8 @@ UTF-8 and UTF-16 encoding.") (version "2.6.2") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/tinyxml/tinyxml_" + (uri (string-append "mirror://sourceforge/tinyxml/tinyxml/" + version "/tinyxml_" (string-join (string-split version #\.) "_") ".tar.gz")) (sha256 diff --git a/gnu/services/avahi.scm b/gnu/services/avahi.scm index 562005c22c..807cc05a22 100644 --- a/gnu/services/avahi.scm +++ b/gnu/services/avahi.scm @@ -26,7 +26,8 @@ #:use-module (gnu packages admin) #:use-module (guix records) #:use-module (guix gexp) - #:export (avahi-service + #:export (avahi-configuration + avahi-service avahi-service-type)) ;;; Commentary: diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 805ba7d12c..4474ce7996 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -94,11 +94,17 @@ guix-publish-configuration? guix-publish-service guix-publish-service-type + + gpm-configuration + gpm-configuration? gpm-service-type gpm-service urandom-seed-service-type urandom-seed-service + + rngd-configuration + rngd-configuration? rngd-service-type rngd-service pam-limits-service-type diff --git a/gnu/services/databases.scm b/gnu/services/databases.scm index e136d1e00b..86847f8c50 100644 --- a/gnu/services/databases.scm +++ b/gnu/services/databases.scm @@ -27,9 +27,15 @@ #:use-module (guix records) #:use-module (guix gexp) #:use-module (ice-9 match) - #:export (postgresql-service + #:export (postgresql-configuration + postgresql-configuration? + postgresql-service + postgresql-service-type + mysql-service - mysql-configuration)) + mysql-service-type + mysql-configuration + mysql-configuration?)) ;;; Commentary: ;;; diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm index 6ef13568ef..690561cccd 100644 --- a/gnu/services/dbus.scm +++ b/gnu/services/dbus.scm @@ -27,7 +27,9 @@ #:use-module (guix records) #:use-module (srfi srfi-1) #:use-module (ice-9 match) - #:export (dbus-root-service-type + #:export (dbus-configuration + dbus-configuration? + dbus-root-service-type dbus-service)) ;;; diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 86214a73bf..bf21707bfe 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -45,18 +45,47 @@ #:use-module (guix gexp) #:use-module (srfi srfi-1) #:use-module (ice-9 match) - #:export (upower-service + #:export (upower-configuration + upower-configuration? + upower-service + upower-service-type + + udisks-configuration + udisks-configuration? udisks-service + udisks-service-type + colord-service + geoclue-application + geoclue-configuration + geoclue-configuration? %standard-geoclue-applications geoclue-service + geoclue-service-type + bluetooth-service + + polkit-configuration + polkit-configuration? polkit-service + polkit-service-type + elogind-configuration + elogind-configuration? elogind-service + elogind-service-type + + gnome-desktop-configuration + gnome-desktop-configuration? gnome-desktop-service + gnome-desktop-service-type + + xfce-desktop-configuration + xfce-desktop-configuration? xfce-desktop-service + xfce-desktop-service-type + %desktop-services)) ;;; Commentary: diff --git a/gnu/services/dict.scm b/gnu/services/dict.scm index 9c06d5713a..b06922c911 100644 --- a/gnu/services/dict.scm +++ b/gnu/services/dict.scm @@ -30,6 +30,7 @@ #:use-module (srfi srfi-26) #:use-module (ice-9 match) #:export (dicod-service + dicod-service-type dicod-configuration dicod-database %dicod-database:gcide)) diff --git a/gnu/services/lirc.scm b/gnu/services/lirc.scm index 069084abf6..e95f54280d 100644 --- a/gnu/services/lirc.scm +++ b/gnu/services/lirc.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 Alex Kost <alezost@gmail.com> -;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,7 +24,10 @@ #:use-module (guix gexp) #:use-module (guix records) #:use-module (ice-9 match) - #:export (lirc-service)) + #:export (lirc-configuration + lirc-configuation? + lirc-service + lirc-service-type)) ;;; Commentary: ;;; diff --git a/gnu/services/mail.scm b/gnu/services/mail.scm index 4bd1b96b56..c252d669de 100644 --- a/gnu/services/mail.scm +++ b/gnu/services/mail.scm @@ -37,6 +37,7 @@ dovecot-configuration-error? dovecot-service + dovecot-service-type dovecot-configuration opaque-dovecot-configuration diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm index a77ed3bb80..71f49a03a5 100644 --- a/gnu/services/networking.scm +++ b/gnu/services/networking.scm @@ -39,13 +39,28 @@ #:use-module (srfi srfi-26) #:use-module (ice-9 match) #:export (%facebook-host-aliases + static-networking static-networking-service + static-networking-service-type dhcp-client-service %ntp-servers + + ntp-configuration + ntp-configuration? ntp-service + ntp-service-type + + tor-configuration + tor-configuration? tor-hidden-service tor-service + tor-service-type + + bitlbee-configuration + bitlbee-configuration? bitlbee-service + bitlbee-service-type + wicd-service network-manager-service connman-service)) diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm index 743b5e3805..9a7ea0fb46 100644 --- a/gnu/services/ssh.scm +++ b/gnu/services/ssh.scm @@ -25,7 +25,10 @@ #:use-module (guix gexp) #:use-module (guix records) #:use-module (srfi srfi-26) - #:export (lsh-service + #:export (lsh-configuration + lsh-configuration? + lsh-service + lsh-service-type dropbear-configuration dropbear-configuration? diff --git a/gnu/services/web.scm b/gnu/services/web.scm index 72ef7d4050..d86aab50b5 100644 --- a/gnu/services/web.scm +++ b/gnu/services/web.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2015 David Thompson <davet@gnu.org> -;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> ;;; ;;; This file is part of GNU Guix. @@ -27,7 +27,10 @@ #:use-module (guix records) #:use-module (guix gexp) #:use-module (ice-9 match) - #:export (nginx-service)) + #:export (nginx-configuration + nginx-configuration? + nginx-service + nginx-service-type)) ;;; Commentary: ;;; diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm index 44d12a7e77..905c88ff66 100644 --- a/gnu/services/xorg.scm +++ b/gnu/services/xorg.scm @@ -48,6 +48,8 @@ slim-service-type slim-service + screen-locker + screen-locker? screen-locker-service-type screen-locker-service)) diff --git a/guix/build/download.scm b/guix/build/download.scm index 103e784bb1..307258be92 100644 --- a/guix/build/download.scm +++ b/guix/build/download.scm @@ -737,7 +737,7 @@ or #f." (append-map (lambda (make-url) (filter-map (match-lambda ((hash-algo . hash) - (string->uri (make-url hash-algo hash)))) + (string->uri (make-url file hash-algo hash)))) hashes)) content-addressed-mirrors)) diff --git a/guix/build/pull.scm b/guix/build/pull.scm index 4ddb12ac04..ccf1868516 100644 --- a/guix/build/pull.scm +++ b/guix/build/pull.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2013, 2014, 2016 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; ;;; This file is part of GNU Guix. @@ -36,7 +36,17 @@ ;;; Code: (define* (build-guix out source - #:key gcrypt + #:key + system + storedir localstatedir sysconfdir sbindir + + (package-name "GNU Guix") + (package-version "0") + (bug-report-address "bug-guix@gnu.org") + (home-page-url "https://gnu.org/s/guix") + + libgcrypt zlib gzip bzip2 xz + (debug-port (%make-void-port "w")) (log-port (current-error-port))) "Build and install Guix in directory OUT using SOURCE, a directory @@ -55,13 +65,26 @@ containing the source code. Write any debugging output to DEBUG-PORT." (copy-file "guix.scm" (string-append out "/guix.scm")) (copy-file "gnu.scm" (string-append out "/gnu.scm")) - ;; Add a fake (guix config) module to allow the other modules to be - ;; compiled. The user's (guix config) is the one that will be used. + ;; Instantiate a (guix config) module that preserves the original + ;; settings. (copy-file "guix/config.scm.in" (string-append out "/guix/config.scm")) (substitute* (string-append out "/guix/config.scm") - (("@LIBGCRYPT@") - (string-append gcrypt "/lib/libgcrypt"))) + (("@PACKAGE_NAME@") package-name) + (("@PACKAGE_VERSION@") package-version) + (("@PACKAGE_BUGREPORT@") bug-report-address) + (("@PACKAGE_URL@") home-page-url) + (("@storedir@") storedir) + (("@guix_localstatedir@") localstatedir) + (("@guix_sysconfdir@") sysconfdir) + (("@guix_sbindir@") sbindir) + (("@guix_system@") system) + (("@LIBGCRYPT@") (string-append libgcrypt "/lib/libgcrypt")) + (("@LIBZ@") (string-append zlib "/lib/libz")) + (("@GZIP@") (string-append gzip "/bin/gzip")) + (("@BZIP2@") (string-append bzip2 "/bin/bzip2")) + (("@XZ@") (string-append xz "/bin/xz")) + (("@NIX_INSTANTIATE@") "")) ;remnants from the past ;; Augment the search path so Scheme code can be compiled. (set! %load-path (cons out %load-path)) @@ -119,10 +142,6 @@ containing the source code. Write any debugging output to DEBUG-PORT." (set! completed (+ 1 completed)))) files)))) - ;; Remove the "fake" (guix config). - (delete-file (string-append out "/guix/config.scm")) - (delete-file (string-append out "/guix/config.go")) - (newline) #t) diff --git a/guix/config.scm.in b/guix/config.scm.in index 6d42cf233c..8f2c4abd8e 100644 --- a/guix/config.scm.in +++ b/guix/config.scm.in @@ -21,10 +21,17 @@ %guix-version %guix-bug-report-address %guix-home-page-url + + %storedir + %localstatedir + %sysconfdir + %sbindir + %store-directory %state-directory %config-directory %guix-register-program + %system %libgcrypt %libz @@ -35,7 +42,8 @@ ;;; Commentary: ;;; -;;; Compile-time configuration of Guix. +;;; Compile-time configuration of Guix. When adding a substitution variable +;;; here, make sure to equip (guix scripts pull) to substitute it. ;;; ;;; Code: @@ -51,21 +59,36 @@ (define %guix-home-page-url "@PACKAGE_URL@") +(define %storedir + "@storedir@") + +(define %localstatedir + "@guix_localstatedir@") + +(define %sysconfdir + "@guix_sysconfdir@") + +(define %sbindir + "@guix_sbindir@") + (define %store-directory (or (and=> (getenv "NIX_STORE_DIR") canonicalize-path) - "@storedir@")) + %storedir)) (define %state-directory ;; This must match `NIX_STATE_DIR' as defined in `nix/local.mk'. - (or (getenv "NIX_STATE_DIR") "@guix_localstatedir@/guix")) + (or (getenv "NIX_STATE_DIR") + (string-append %localstatedir "/guix"))) (define %config-directory ;; This must match `GUIX_CONFIGURATION_DIRECTORY' as defined in `nix/local.mk'. - (or (getenv "GUIX_CONFIGURATION_DIRECTORY") "@guix_sysconfdir@/guix")) + (or (getenv "GUIX_CONFIGURATION_DIRECTORY") + (string-append %sysconfdir "/guix"))) (define %guix-register-program ;; The 'guix-register' program. - (or (getenv "GUIX_REGISTER") "@guix_sbindir@/guix-register")) + (or (getenv "GUIX_REGISTER") + (string-append %sbindir "/guix-register"))) (define %system "@guix_system@") diff --git a/guix/derivations.scm b/guix/derivations.scm index 76593f373b..7f74ed6c77 100644 --- a/guix/derivations.scm +++ b/guix/derivations.scm @@ -73,6 +73,7 @@ derivation-name derivation-output-names fixed-output-derivation? + fixed-output-path offloadable-derivation? substitutable-derivation? substitution-oracle @@ -676,7 +677,11 @@ the derivation called NAME with hash HASH." name (string-append name "-" output)))) -(define (fixed-output-path output hash-algo hash recursive? name) +(define* (fixed-output-path name hash + #:key + (output "out") + (hash-algo 'sha256) + (recursive? #t)) "Return an output path for the fixed output OUTPUT defined by HASH of type HASH-ALGO, of the derivation NAME. RECURSIVE? has the same meaning as for 'add-to-store'." @@ -736,12 +741,14 @@ output should not be used." (outputs (map (match-lambda ((output-name . ($ <derivation-output> _ algo hash rec?)) - (let ((path (if hash - (fixed-output-path output-name - algo hash - rec? name) - (output-path output-name - drv-hash name)))) + (let ((path + (if hash + (fixed-output-path name hash + #:hash-algo algo + #:output output-name + #:recursive? rec?) + (output-path output-name + drv-hash name)))) (cons output-name (make-derivation-output path algo hash rec?))))) diff --git a/guix/download.scm b/guix/download.scm index bcb043ba80..8f38a4f552 100644 --- a/guix/download.scm +++ b/guix/download.scm @@ -232,10 +232,10 @@ (define %content-addressed-mirrors ;; List of content-addressed mirrors. Each mirror is represented as a - ;; procedure that takes an algorithm (symbol) and a hash (bytevector), and - ;; returns a URL or #f. + ;; procedure that takes a file name, an algorithm (symbol) and a hash + ;; (bytevector), and returns a URL or #f. ;; TODO: Add more. - '(list (lambda (algo hash) + '(list (lambda (file algo hash) ;; 'tarballs.nixos.org' supports several algorithms. (string-append "http://tarballs.nixos.org/" (symbol->string algo) "/" diff --git a/guix/scripts/publish.scm b/guix/scripts/publish.scm index 3baceaf645..2ca2aeebe3 100644 --- a/guix/scripts/publish.scm +++ b/guix/scripts/publish.scm @@ -31,6 +31,7 @@ #:use-module (srfi srfi-9 gnu) #:use-module (srfi srfi-19) #:use-module (srfi srfi-26) + #:use-module (srfi srfi-34) #:use-module (srfi srfi-37) #:use-module (web http) #:use-module (web request) @@ -49,6 +50,7 @@ #:use-module (guix zlib) #:use-module (guix ui) #:use-module (guix scripts) + #:use-module ((guix build utils) #:select (dump-port)) #:export (guix-publish)) (define (show-help) @@ -308,6 +310,25 @@ appropriate duration." store-path) (not-found request)))) +(define (render-content-addressed-file store request + name algo hash) + "Return the content of the result of the fixed-output derivation NAME that +has the given HASH of type ALGO." + ;; TODO: Support other hash algorithms. + (if (and (eq? algo 'sha256) (= 32 (bytevector-length hash))) + (let ((item (fixed-output-path name hash + #:hash-algo algo + #:recursive? #f))) + (if (valid-path? store item) + (values `((content-type . (application/octet-stream + (charset . "ISO-8859-1")))) + ;; XXX: We're not returning the actual contents, deferring + ;; instead to 'http-write'. This is a hack to work around + ;; <http://bugs.gnu.org/21093>. + item) + (not-found request))) + (not-found request))) + (define extract-narinfo-hash (let ((regexp (make-regexp "^([a-df-np-sv-z0-9]{32}).narinfo$"))) (lambda (str) @@ -398,6 +419,34 @@ blocking." (swallow-zlib-error (close-port port)) (values))))) + (('application/octet-stream . _) + ;; Send a raw file in a separate thread. + (call-with-new-thread + (lambda () + (catch 'system-error + (lambda () + (call-with-input-file (utf8->string body) + (lambda (input) + (let* ((size (stat:size (stat input))) + (headers (alist-cons 'content-length size + (alist-delete 'content-length + (response-headers response) + eq?))) + (response (write-response (set-field response + (response-headers) + headers) + client)) + (output (response-port response))) + (dump-port input output) + (close-port output) + (values))))) + (lambda args + ;; If the file was GC'd behind our back, that's fine. Likewise if + ;; the client closes the connection. + (unless (memv (system-error-errno args) + (list ENOENT EPIPE ECONNRESET)) + (apply throw args)) + (values)))))) (_ ;; Handle other responses sequentially. (%http-write server client response body)))) @@ -418,7 +467,7 @@ blocking." (format #t "~a ~a~%" (request-method request) (uri-path (request-uri request))) - (if (get-request? request) ; reject POST, PUT, etc. + (if (get-request? request) ;reject POST, PUT, etc. (match (request-path-components request) ;; /nix-cache-info (("nix-cache-info") @@ -450,6 +499,14 @@ blocking." (_ %default-gzip-compression))) (not-found request))) + + ;; /nar/file/NAME/sha256/HASH + (("file" name "sha256" hash) + (guard (c ((invalid-base32-character? c) + (not-found request))) + (let ((hash (nix-base32-string->bytevector hash))) + (render-content-addressed-file store request + name 'sha256 hash)))) (_ (not-found request))) (not-found request)))) diff --git a/tests/guix-system.sh b/tests/guix-system.sh index d9e1679ae7..77d4e28999 100644 --- a/tests/guix-system.sh +++ b/tests/guix-system.sh @@ -1,5 +1,5 @@ # GNU Guix --- Functional package management for GNU -# Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> +# Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> # # This file is part of GNU Guix. # @@ -139,7 +139,7 @@ if guix system build "$tmpfile" 2> "$errorfile" then exit 1 else - grep "service 'buggy!'.*'does-not-exist'.*undefined" "$errorfile" + grep "service 'buggy!'.*'does-not-exist'.*not provided" "$errorfile" fi # Reporting inconsistent user accounts. diff --git a/tests/publish.scm b/tests/publish.scm index 9bf181f1fc..0ba33487bd 100644 --- a/tests/publish.scm +++ b/tests/publish.scm @@ -26,6 +26,8 @@ #:use-module (guix utils) #:use-module (guix hash) #:use-module (guix store) + #:use-module (guix derivations) + #:use-module (guix gexp) #:use-module (guix base32) #:use-module (guix base64) #:use-module ((guix records) #:select (recutils->alist)) @@ -210,4 +212,36 @@ References: ~%" (display "This file is not a valid store item." port))) (response-code (http-get (publish-uri (string-append "/nar/invalid")))))) +(test-equal "/file/NAME/sha256/HASH" + "Hello, Guix world!" + (let* ((data "Hello, Guix world!") + (hash (call-with-input-string data port-sha256)) + (drv (run-with-store %store + (gexp->derivation "the-file.txt" + #~(call-with-output-file #$output + (lambda (port) + (display #$data port))) + #:hash-algo 'sha256 + #:hash hash))) + (out (build-derivations %store (list drv)))) + (utf8->string + (http-get-body + (publish-uri + (string-append "/file/the-file.txt/sha256/" + (bytevector->nix-base32-string hash))))))) + +(test-equal "/file/NAME/sha256/INVALID-NIX-BASE32-STRING" + 404 + (let ((uri (publish-uri + "/file/the-file.txt/sha256/not-a-nix-base32-string"))) + (response-code (http-get uri)))) + +(test-equal "/file/NAME/sha256/INVALID-HASH" + 404 + (let ((uri (publish-uri + (string-append "/file/the-file.txt/sha256/" + (bytevector->nix-base32-string + (call-with-input-string "" port-sha256)))))) + (response-code (http-get uri)))) + (test-end "publish") |