diff options
author | Mark H Weaver <mhw@netris.org> | 2018-05-24 02:34:08 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2018-05-24 02:34:08 -0400 |
commit | 9d10a63402e3c3dcda288b9370d04568dfa20ea6 (patch) | |
tree | 12705e0e3752f73d309a0387bb75674e83d33062 | |
parent | 4935701a4a31212e0cf1b2375832fb7ecd3d8809 (diff) | |
parent | 11c237f54e4de5916e204aba574ab15f7818a3f5 (diff) |
Merge branch 'master' into core-updates
30 files changed, 738 insertions, 162 deletions
diff --git a/gnu/build/vm.scm b/gnu/build/vm.scm index 527b4c495d..989b74f4f1 100644 --- a/gnu/build/vm.scm +++ b/gnu/build/vm.scm @@ -265,7 +265,8 @@ actual /dev name based on DEVICE." #:key label uuid) "Create an ext-family file system of TYPE on PARTITION. If LABEL is true, use that as the volume name. If UUID is true, use it as the partition UUID." - (format #t "creating ~a partition...\n" type) + (format #t "creating ~a partition... ~@[label: ~s~] ~@[uuid: ~s~]\n" + type label (and uuid (uuid->string uuid))) (apply invoke (string-append "mkfs." type) "-F" partition `(,@(if label diff --git a/gnu/local.mk b/gnu/local.mk index 7b8ddad838..aef0b521cc 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -226,7 +226,6 @@ GNU_SYSTEM_MODULES = \ %D%/packages/image-processing.scm \ %D%/packages/image-viewers.scm \ %D%/packages/imagemagick.scm \ - %D%/packages/indent.scm \ %D%/packages/inklingreader.scm \ %D%/packages/inkscape.scm \ %D%/packages/irc.scm \ diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm index 674301a30d..105c01e235 100644 --- a/gnu/packages/bioinformatics.scm +++ b/gnu/packages/bioinformatics.scm @@ -11634,6 +11634,9 @@ Browser.") "filter_non_conversion" "bam2nuc" "bismark2summary"))) + (substitute* "bismark2report" + (("\\$RealBin/bismark_sitrep") + (string-append share "/bismark_sitrep"))) (mkdir-p share) (mkdir-p docdir) (mkdir-p bin) @@ -11642,10 +11645,6 @@ Browser.") (for-each (lambda (file) (install-file file docdir)) docs) (copy-recursively "Docs/Images" (string-append docdir "/Images")) - - (substitute* "bismark2report" - (("\\$RealBin/bismark_sitrep") - (string-append share "/bismark_sitrep"))) (copy-recursively "bismark_sitrep" (string-append share "/bismark_sitrep")) @@ -13008,7 +13007,7 @@ methylation and segmentation.") (define-public pigx-scrnaseq (package (name "pigx-scrnaseq") - (version "0.0.3") + (version "0.0.4") (source (origin (method url-fetch) (uri (string-append "https://github.com/BIMSBbioinfo/pigx_scrnaseq/" @@ -13016,7 +13015,7 @@ methylation and segmentation.") "/pigx_scrnaseq-" version ".tar.gz")) (sha256 (base32 - "12qdq0nj1wdkyighdxj6924bmbpd1a0b3gam6w64l4hiqrv5sijz")))) + "1pvjm6f3mascprs65vflggwwg5v925knvgal7k7a6nnlmw5qndrf")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index e9fa866411..06b1cab82c 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -29,6 +29,7 @@ #:use-module (guix download) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (guix build-system emacs) #:use-module (gnu packages) #:use-module (gnu packages backup) #:use-module (gnu packages compression) @@ -154,3 +155,20 @@ and workspaces that can be used in the compiler environment of your choice.") license:bsd-2 ; cmlibarchive license:expat ; cmjsoncpp is dual MIT/public domain license:public-domain)))) ; cmlibarchive/archive_getdate.c + +(define-public emacs-cmake-mode + (package + (inherit cmake) + (name "emacs-cmake-mode") + (build-system emacs-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'chdir-elisp + ;; Elisp directory is not in root of the source. + (lambda _ + (chdir "Auxiliary")))))) + (synopsis "Emacs major mode for editing Cmake expressions") + (description "@code{cmakeos-mode} provides an Emacs major mode for editing +Cmake files. It supports syntax highlighting, indenting and refilling of +comments."))) diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm index d636945176..edf0f98aca 100644 --- a/gnu/packages/code.scm +++ b/gnu/packages/code.scm @@ -7,6 +7,10 @@ ;;; Copyright © 2017, 2018 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Andy Wingo <wingo@igalia.com> ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com> +;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com> +;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> +;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -529,3 +533,118 @@ produce colored output.") output is a graphviz-dot file, a Gexf-XML file or a list of the deepest independent targets.") (license license:expat))) + +(define-public uncrustify + (package + (name "uncrustify") + (version "0.67") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/uncrustify/uncrustify/archive/" + "uncrustify-" version ".zip")) + (sha256 + (base32 + "0n13kq0nsm35fxhdp0f275n4x0w88hdv3bdjy0hgvv42x0dx5zyp")))) + (build-system cmake-build-system) + (native-inputs + `(("unzip" ,unzip))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'unpack-etc + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Configuration samples are not installed by default. + (let* ((output (assoc-ref outputs "out")) + (etcdir (string-append output "/etc"))) + (for-each (lambda (l) + (install-file l etcdir)) + (find-files "etc" "\\.cfg$"))) + #t))))) + (home-page "http://uncrustify.sourceforge.net/") + (synopsis "Code formatter for C and other related languages") + (description + "Beautify source code in many languages of the C family (C, C++, C#, +Objective@tie{}C, D, Java, Pawn, and Vala). Features: +@itemize +@item Indent and align code. +@item Reformat comments (a little bit). +@item Fix inter-character spacing. +@item Add or remove parens / braces. +@item Supports embedded SQL @code{EXEC SQL} stuff. +@item Highly configurable - More than 600 configurable options. +@end itemize\n") + (license license:gpl2+))) + +(define-public astyle + (package + (name "astyle") + (version "2.05") + (source + (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/astyle/astyle/astyle%20" + version "/astyle_" version "_linux.tar.gz")) + (sha256 + (base32 + "0f9sh9kq5ajp1yz133h00fr9235p1m698x7n3h7zbrhjiwgynd6s")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;no tests + #:make-flags (list (string-append "prefix=" %output) + "INSTALL=install" + "all") + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda _ (chdir "build/gcc") #t)) + (add-after 'install 'install-libs + (lambda* (#:key outputs #:allow-other-keys) + ;; Libraries are not installed by default + (let* ((output (assoc-ref outputs "out")) + (libdir (string-append output "/lib"))) + (begin + (mkdir-p libdir) + (for-each (lambda (l) + (copy-file + l (string-append libdir "/" (basename l)))) + (find-files "bin" "lib*")))) + #t))))) + (home-page "http://astyle.sourceforge.net/") + (synopsis "Source code indenter, formatter, and beautifier") + (description + "Artistic Style is a source code indenter, formatter, and beautifier for +the C, C++, C++/CLI, Objective‑C, C#, and Java programming languages.") + (license license:lgpl3+))) + +(define-public indent + (package + (name "indent") + (version "2.2.10") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/indent/indent-" version + ".tar.gz")) + (sha256 (base32 + "0f9655vqdvfwbxvs1gpa7py8k1z71aqh8hp73f65vazwbfz436wa")))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'fix-docdir + (lambda _ + ;; Although indent uses a modern autoconf in which docdir + ;; defaults to PREFIX/share/doc, the doc/Makefile.am + ;; overrides this to be in PREFIX/doc. Fix this. + (substitute* "doc/Makefile.in" + (("^docdir = .*$") "docdir = @docdir@\n")) + #t))))) + (synopsis "Code reformatter") + (description + "Indent is a program that makes source code easier to read by +reformatting it in a consistent style. It can change the style to one of +several different styles such as GNU, BSD or K&R. It has some flexibility to +deal with incomplete or malformed syntax. GNU indent offers several +extensions over the standard utility.") + (license license:gpl3+) + (home-page "https://www.gnu.org/software/indent/"))) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 7ad1802f3c..e998e9981e 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -30,7 +30,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages gcc) #:use-module (gnu packages m4) - #:use-module (gnu packages indent) + #:use-module (gnu packages code) #:use-module (gnu packages file) #:use-module (gnu packages gawk) #:use-module (gnu packages bison) diff --git a/gnu/packages/connman.scm b/gnu/packages/connman.scm index 7e87cd8968..55dd4a632b 100644 --- a/gnu/packages/connman.scm +++ b/gnu/packages/connman.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> ;;; Copyright © 2017 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> -;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,7 +43,7 @@ (define-public connman (package (name "connman") - (version "1.35") + (version "1.36") (source (origin (method url-fetch) @@ -51,7 +51,7 @@ name "-" version ".tar.xz")) (sha256 (base32 - "1apj5j25kj7v1bsfv3nh54aiq873nfrsjfbj85p5qm3ihfwxxmv6")))) + "0x00dq5c2frz06md3g5y0jh5kbcj2hrfl5qjcqga8gs4ri0xp2f7")))) (build-system gnu-build-system) (arguments `(#:configure-flags diff --git a/gnu/packages/cran.scm b/gnu/packages/cran.scm index d0f99aaeca..d4ec2e9d23 100644 --- a/gnu/packages/cran.scm +++ b/gnu/packages/cran.scm @@ -3974,3 +3974,55 @@ including the ability to summarize or get a high-level view of code, determining dependencies between variables, code improvement suggestions.") ;; Any version of the GPL (license (list license:gpl2+ license:gpl3+)))) + +(define-public r-rappdirs + (package + (name "r-rappdirs") + (version "0.3.1") + (source + (origin + (method url-fetch) + (uri (cran-uri "rappdirs" version)) + (sha256 + (base32 + "0ji6sg3bdn5gazkq14xmmcq7jnbsyxw4lzmmbgv6526j2vn93n1g")))) + (build-system r-build-system) + (home-page "https://cran.r-project.org/web/packages/rappdirs/") + (synopsis "Determine where to save data, caches, and logs") + (description + "This package provides an easy way to determine which directories on the +user's computer should be used to save data, caches and logs. It is a port of +Python's @url{https://github.com/ActiveState/appdirs,Appdirs} to R.") + (license license:expat))) + +(define-public r-learnr + (package + (name "r-learnr") + (version "0.9.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "learnr" version)) + (sha256 + (base32 + "1z04c1djg7ghsl7p9ypc6k5m7snahnmjy10xmrzqfayx1wkfkn9n")))) + (build-system r-build-system) + (propagated-inputs + `(("r-evaluate" ,r-evaluate) + ("r-htmltools" ,r-htmltools) + ("r-htmlwidgets" ,r-htmlwidgets) + ("r-jsonlite" ,r-jsonlite) + ("r-knitr" ,r-knitr) + ("r-markdown" ,r-markdown) + ("r-rappdirs" ,r-rappdirs) + ("r-rmarkdown" ,r-rmarkdown) + ("r-rprojroot" ,r-rprojroot) + ("r-shiny" ,r-shiny) + ("r-withr" ,r-withr))) + (home-page "https://rstudio.github.io/learnr/") + (synopsis "Interactive tutorials for R") + (description + "This package provides tools to create interactive tutorials using R +Markdown. Use a combination of narrative, figures, videos, exercises, and +quizzes to create self-paced tutorials for learning about R and R packages.") + (license license:asl2.0))) diff --git a/gnu/packages/debug.scm b/gnu/packages/debug.scm index 2ff26aebae..7cb162918a 100644 --- a/gnu/packages/debug.scm +++ b/gnu/packages/debug.scm @@ -31,7 +31,7 @@ #:use-module (gnu packages bash) #:use-module (gnu packages flex) #:use-module (gnu packages golang) - #:use-module (gnu packages indent) + #:use-module (gnu packages code) #:use-module (gnu packages llvm) #:use-module (gnu packages perl) #:use-module (gnu packages pretty-print) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 322f884e17..9c759510a8 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -34,6 +34,7 @@ ;;; Copyright © 2017, 2018 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2018 Sohom Bhattacharjee <soham.bhattacharjee15@gmail.com> ;;; Copyright © 2018 Mathieu Lirzin <mthl@gnu.org> +;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -10480,3 +10481,56 @@ Dumb Jump performs best with The Silver Searcher @command{ag} or ripgrep "This package provides an Emacs minor mode for highlighting device tree files.") (license license:gpl3+)))) + +(define-public emacs-daemons + (package + (name "emacs-daemons") + (version "1.2.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/cbowdon/daemons.el") + (commit version))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "00ijgm22ck76gw0x79krl05yy0m8a502yfakazfy5xhpn1zi6ab7")))) + (build-system emacs-build-system) + (home-page "https://github.com/cbowdon/daemons.el") + (synopsis "Emacs UI for managing init system services") + (description + "This is an Emacs mode to give you a UI for managing init system +daemons (services) for those getting tired of typing out @code{sudo service +my_thing reload} all the time. It offers a consistent UI over different init +systems.") + (license license:gpl3+))) + +(define-public emacs-esh-autosuggest + (package + (name "emacs-esh-autosuggest") + (version "2.0.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dieggsy/esh-autosuggest") + (commit version))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "116pdjgpjy9b0psm5kzwkwy7dq8vn0p6dy75dl1zsy2xrjf1iqdw")))) + (build-system emacs-build-system) + (propagated-inputs `(("emacs-company" ,emacs-company))) + (home-page "https://github.com/dieggsy/esh-autosuggest") + (synopsis "Fish-like autosuggestions in Eshell") + (description + "This package assumes you use something other than company for eshell +completion (e.g. @code{eshell-pcomplete}, @code{completion-at-point}, +@code{helm-esh-pcomplete}). @code{company-mode} is used solely as a mechanism +for history autosuggestions. + +Unless you're using @code{use-package}'s hook keyword, you can enable the +autosuggestions with: +@code{(add-hook 'eshell-mode-hook #'esh-autosuggest-mode)}") + (license license:gpl3+))) diff --git a/gnu/packages/flex.scm b/gnu/packages/flex.scm index b09ac0bb89..29c5c92766 100644 --- a/gnu/packages/flex.scm +++ b/gnu/packages/flex.scm @@ -26,7 +26,7 @@ #:use-module (gnu packages m4) #:use-module (gnu packages man) #:use-module (gnu packages bison) - #:use-module (gnu packages indent) + #:use-module (gnu packages code) #:use-module (srfi srfi-1)) (define-public flex diff --git a/gnu/packages/geo.scm b/gnu/packages/geo.scm index 75ed83f8a4..fd5929ed3a 100644 --- a/gnu/packages/geo.scm +++ b/gnu/packages/geo.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net> ;;; Copyright © 2018 Joshua Sierles, Nextjournal <joshua@nextjournal.com> +;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu> ;;; ;;; This file is part of GNU Guix. ;;; @@ -43,6 +44,8 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages icu4c) + #:use-module (gnu packages pcre) + #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) #:use-module (gnu packages statistics) @@ -612,3 +615,148 @@ spatial data and models on top of static maps from various online sources (e.g Google Maps and Stamen Maps). It includes tools common to those tasks, including functions for geolocation and routing.") (license license:gpl2))) + +(define-public gdal + (package + (name "gdal") + (version "2.2.4") + (source (origin + (method url-fetch) + (uri (string-append + "http://download.osgeo.org/gdal/" version "/gdal-" + version ".tar.gz")) + (sha256 + (base32 + "1951f7b69x3d1vic0rmq92q8f4bj3hbxnxmj5jl0cc3zg0isgmdr")) + (modules '((guix build utils))) + (snippet + `(begin + ;; TODO: frmts contains a lot more bundled code. + (for-each delete-file-recursively + ;; bundled code + '("frmts/png/libpng" + "frmts/gif/giflib" + "frmts/jpeg/libjpeg" + "frmts/jpeg/libjpeg12" + "frmts/gtiff/libtiff" + "frmts/gtiff/libgeotiff" + "frmts/zlib" + "ogr/ogrsf_frmts/geojson/libjson")))))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:configure-flags + (let-syntax ((with (syntax-rules () + ((_ option input) + (string-append option "=" + (assoc-ref %build-inputs input)))))) + (list + ;; TODO: --with-pcidsk, --with-pcraster + (with "--with-freexl" "freexl") + (with "--with-libjson-c" "json-c") + (with "--with-png" "libpng") + (with "--with-webp" "libwebp") + (with "--with-gif" "giflib") + (with "--with-jpeg" "libjpeg") + (with "--with-libtiff" "libtiff") + (with "--with-geotiff" "libgeotiff") + (with "--with-libz" "zlib") + "--with-pcre")) + #:phases + (modify-phases %standard-phases + (add-before 'build 'fix-path + (lambda _ + (substitute* "frmts/mrf/mrf_band.cpp" + (("\"../zlib/zlib.h\"") "<zlib.h>"))))))) + (inputs + `(("freexl" ,freexl) + ("geos" ,geos) + ("giflib" ,giflib) + ("json-c" ,json-c) + ("libgeotiff" ,libgeotiff) + ("libjpeg-turbo" ,libjpeg-turbo) + ("libpng" ,libpng) + ("libtiff" ,libtiff) + ("libwebp" ,libwebp) + ("pcre" ,pcre) + ("zlib" ,zlib))) + (home-page "http://www.gdal.org/") + (synopsis "Raster and vector geospatial data format library") + (description "GDAL is a translator library for raster and vector geospatial +data formats. As a library, it presents a single raster abstract data model +and single vector abstract data model to the calling application for all +supported formats. It also comes with a variety of useful command line +utilities for data translation and processing.") + (license (list + ;; general license + license:expat + ;; frmts/gtiff/tif_float.c, frmts/pcraster/libcsf, + ;; ogr/ogrsf_frmts/dxf/intronurbs.cpp, frmts/pdf/pdfdataset.cpp + ;; frmts/mrf/ + license:bsd-3 + ;; frmts/hdf4/hdf-eos/* + ;; similar to the expat license, but without guarantee exclusion + (license:non-copyleft "file://frmts/hdf4/hdf-eos/README") + ;; frmts/grib/degrib/ + license:public-domain ; with guarantee exclusion + ;; port/cpl_minizip* + ;; Some bsd-inspired license + (license:non-copyleft "file://port/LICENCE_minizip") + ;; alg/internal_libqhull + ;; Some 5-clause license + (license:non-copyleft "file://alg/internal_libqhull/COPYING.txt") + ;; frmts/mrf/libLERC + license:asl2.0)))) + +(define-public postgis + (package + (name "postgis") + (version "2.4.4") + (source (origin + (method url-fetch) + (uri (string-append "https://download.osgeo.org/postgis/source/postgis-" + version ".tar.gz")) + (sha256 + (base32 + "1hm8migjb53cymp4qvg1h20yqllmy9f7x0awv5450391i6syyqq6")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:make-flags + (list (string-append "datadir=" (assoc-ref %outputs "out") "/share") + (string-append "docdir="(assoc-ref %outputs "out") "/share/doc") + (string-append "pkglibdir="(assoc-ref %outputs "out") "/lib") + (string-append "bindir=" (assoc-ref %outputs "out") "/bin")) + #:phases + (modify-phases %standard-phases + (add-before 'build 'fix-install-path + (lambda* (#:key outputs #:allow-other-keys) + (substitute* '("raster/loader/Makefile" "raster/scripts/python/Makefile") + (("\\$\\(DESTDIR\\)\\$\\(PGSQL_BINDIR\\)") + (string-append (assoc-ref outputs "out") "/bin")))))))) + (inputs + `(("gdal" ,gdal) + ("geos" ,geos) + ("libxml2" ,libxml2) + ("pcre" ,pcre) + ("postgresql" ,postgresql) + ("proj.4" ,proj.4))) + (native-inputs + `(("perl" ,perl) + ("pkg-config" ,pkg-config))) + (home-page "https://postgis.net") + (synopsis "Spatial database extender for PostgreSQL") + (description "PostGIS is a spatial database extender for PostgreSQL +object-relational database. It adds support for geographic objects allowing +location queries to be run in SQL.") + (license (list + ;; General license + license:gpl2+ + ;; loader/dbfopen, safileio.*, shapefil.h, shpopen.c + license:expat + ;; loader/getopt.* + license:public-domain + ;; doc/xsl + license:bsd-3 ; files only say "BSD" + ;; doc + license:cc-by-sa3.0)))) diff --git a/gnu/packages/gimp.scm b/gnu/packages/gimp.scm index f2e020b560..08b2d2a43f 100644 --- a/gnu/packages/gimp.scm +++ b/gnu/packages/gimp.scm @@ -1,6 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2016, 2018 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Leo Famulari <leo@famulari.name> @@ -196,7 +196,18 @@ that is extensible via a plugin system.") `(#:tests? #f ;no tests #:phases (modify-phases %standard-phases - (delete 'configure) + ;; FIXME: The gegl package only installs "gegl-0.4.pc", but + ;; "gimp-2.0.pc" requires "gegl-0.3.pc", so we just copy it. + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (mkdir-p "tmppkgconfig") + (copy-file (string-append (assoc-ref inputs "gegl") + "/lib/pkgconfig/gegl-0.4.pc") + "tmppkgconfig/gegl-0.3.pc") + (setenv "PKG_CONFIG_PATH" + (string-append "tmppkgconfig:" + (or (getenv "PKG_CONFIG_PATH") ""))) + #t)) (add-after 'unpack 'set-prefix (lambda* (#:key outputs #:allow-other-keys) ;; gimptool-2.0 does not allow us to install to any target @@ -215,6 +226,7 @@ that is extensible via a plugin system.") ("gimp" ,gimp) ;; needed by gimp-2.0.pc ("gdk-pixbuf" ,gdk-pixbuf) + ("gegl" ,gegl) ("cairo" ,cairo) ("glib" ,glib) ;; needed by gimpui-2.0.pc diff --git a/gnu/packages/golang.scm b/gnu/packages/golang.scm index fe6dfbe1c8..7b09f56853 100644 --- a/gnu/packages/golang.scm +++ b/gnu/packages/golang.scm @@ -10,6 +10,7 @@ ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2018 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2018 Tomáš Čech <sleep_walker@gnu.org> +;;; Copyright © 2018 Pierre-Antoine Rouby <pierre-antoine.rouby@inria.fr> ;;; ;;; This file is part of GNU Guix. ;;; @@ -1300,3 +1301,173 @@ support functions for dealing with terminals, as commonly found on UNIX systems.") (home-page "https://go.googlesource.com/crypto/") (license license:bsd-3)))) + +(define-public go-github-com-burntsushi-toml + (let ((commit + "a368813c5e648fee92e5f6c30e3944ff9d5e8895") + (revision "0")) + (package + (name "go-github-com-burntsushi-toml") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BurntSushi/toml.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1sjxs2lwc8jpln80s4rlzp7nprbcljhy5mz4rf9995gq93wqnym5")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/BurntSushi/toml")) + (home-page "https://github.com/BurntSushi/toml") + (synopsis "Toml parser and encoder for Go") + (description "This package is toml parser and encoder for Go. The +interface is similar to Go's standard library @code{json} and @code{xml} +package.") + (license license:expat)))) + +(define-public go-github-com-getsentry-raven-go + (let ((commit + "dffeb57df75d6a911f00232155194e43d79d38d7") + (revision "0")) + (package + (name "go-github-com-getsentry-raven-go") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/getsentry/raven-go.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "13sb9rvl3369m7fah3ss9g0hwky259snqfn8gmbr0h5zvp651lja")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/getsentry/raven-go")) + (home-page + "https://github.com/getsentry/raven-go") + (synopsis "Sentry client in Go") + (description "This package is Go client API for the Sentry event/error +logging system.") + (license license:bsd-3)))) + +(define-public go-github-com-hashicorp-go-version + (let ((commit + "03c5bf6be031b6dd45afec16b1cf94fc8938bc77") + (revision "0")) + (package + (name "go-github-com-hashicorp-go-version") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/hashicorp/go-version.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0sjq57gpfznaqdrbyb2p0bn90g9h661cvr0jrk6ngags4pbw14ik")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/hashicorp/go-version")) + (home-page + "https://github.com/hashicorp/go-version") + (synopsis "Go library for parsing and verifying versions and version +constraints") + (description "This package is a library for parsing versions and version +constraints, and verifying versions against a set of constraints. It can sort +a collection of versions properly, handles prerelease/beta versions, can +increment versions.") + (license license:mpl2.0)))) + +(define-public go-github-com-jpillora-backoff + (let ((commit + "06c7a16c845dc8e0bf575fafeeca0f5462f5eb4d") + (revision "0")) + (package + (name "go-github-com-jpillora-backoff") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/jpillora/backoff.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0xhvxr7bm47czdc5hy3kl508z3y4j91i2jm7vg774i52zych6k4l")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/jpillora/backoff")) + (home-page "https://github.com/jpillora/backoff") + (synopsis "Simple exponential backoff counter in Go") + (description "This package is a simple exponential backoff counter in +Go.") + (license license:expat)))) + +(define-public go-github-com-stretchr-testify + (let ((commit + "b1f989447a57594c728884458a39abf3a73447f7") + (revision "0")) + (package + (name "go-github-com-stretchr-testify") + (version (git-version "1.1.4" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/stretchr/testify.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0p0gkqzh2p8r5g0rxm885ljl7ghih7h7hx9w562imx5ka0vdgixv")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/stretchr/testify")) + (home-page "https://github.com/stretchr/testify") + (synopsis "Go helper library for tests and invariant checking") + (description "This package provide many tools for testifying that your +code will behave as you intend. + +Features include: +@itemize +@item Easy assertions +@item Mocking +@item HTTP response trapping +@item Testing suite interfaces and functions. +@end itemize") + (license license:expat)))) + +(define-public go-github-com-tevino-abool + (let ((commit + "3c25f2fe7cd0ef3eabefce1d90efd69a65d35b12") + (revision "0")) + (package + (name "go-github-com-tevino-abool") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/tevino/abool.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1wxqrclxk93q0aj15z596dx2y57x9nkhi64nbrr5cxnhxn8vwixm")))) + (build-system go-build-system) + (arguments + '(#:import-path "github.com/tevino/abool")) + (home-page "https://github.com/tevino/abool") + (synopsis "Atomic boolean library for Go code") + (description "This package is atomic boolean library for Go code, +optimized for performance yet simple to use.") + (license license:expat)))) diff --git a/gnu/packages/indent.scm b/gnu/packages/indent.scm deleted file mode 100644 index 3465d63c01..0000000000 --- a/gnu/packages/indent.scm +++ /dev/null @@ -1,58 +0,0 @@ -;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013 Andreas Enge <andreas@enge.fr> -;;; Copyright © 2014 Mark H Weaver <mhw@netris.org> -;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> -;;; -;;; 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 indent) - #:use-module (gnu packages) - #:use-module ((guix licenses) #:prefix license:) - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system gnu)) - -(define-public indent - (package - (name "indent") - (version "2.2.10") - (source (origin - (method url-fetch) - (uri (string-append "mirror://gnu/indent/indent-" version - ".tar.gz")) - (sha256 (base32 - "0f9655vqdvfwbxvs1gpa7py8k1z71aqh8hp73f65vazwbfz436wa")))) - (build-system gnu-build-system) - (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'fix-docdir - (lambda _ - ;; Although indent uses a modern autoconf in which docdir - ;; defaults to PREFIX/share/doc, the doc/Makefile.am - ;; overrides this to be in PREFIX/doc. Fix this. - (substitute* "doc/Makefile.in" - (("^docdir = .*$") "docdir = @docdir@\n")) - #t))))) - (synopsis "Code reformatter") - (description - "Indent is a program that makes source code easier to read by -reformatting it in a consistent style. It can change the style to one of -several different styles such as GNU, BSD or K&R. It has some flexibility to -deal with incomplete or malformed syntax. GNU indent offers several -extensions over the standard utility.") - (license license:gpl3+) - (home-page "https://www.gnu.org/software/indent/"))) diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e922b6a5f8..31d598d438 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -394,8 +394,8 @@ It has been modified to remove all non-free binary blobs.") ;; supports qemu "virt" machine and possibly a large number of ARM boards. ;; See : https://wiki.debian.org/DebianKernel/ARMMP. -(define %linux-libre-version "4.16.10") -(define %linux-libre-hash "028xl0jj7wibd8v93r1r0vnw5iifin46p6ghd9m3w095lailqlsi") +(define %linux-libre-version "4.16.11") +(define %linux-libre-hash "0dc6kwpzncg2a8haf081i5si4ry9y3x6m39bjblbx9c809hdls6g") (define-public linux-libre (make-linux-libre %linux-libre-version @@ -403,8 +403,8 @@ It has been modified to remove all non-free binary blobs.") %linux-compatible-systems #:configuration-file kernel-config)) -(define %linux-libre-4.14-version "4.14.42") -(define %linux-libre-4.14-hash "12vjzb5g1abg5d5w6z65n1ixw7c3y9f5zwx3gd3854dgnynbq708") +(define %linux-libre-4.14-version "4.14.43") +(define %linux-libre-4.14-hash "0mqgxp0001j11m5s82s7j4398443zx474a5kpzql7cqf3aljfybm") (define-public linux-libre-4.14 (make-linux-libre %linux-libre-4.14-version @@ -413,8 +413,8 @@ It has been modified to remove all non-free binary blobs.") #:configuration-file kernel-config)) (define-public linux-libre-4.9 - (make-linux-libre "4.9.101" - "1s8zpl3dnz0nrg0by6hnss5z20iwlcwdg5x4251w0l9la81p05v5" + (make-linux-libre "4.9.102" + "1y32rc2zi2is4yl184i1vbbvc7gvkyr15r325g2syascxqzxarn0" %intel-compatible-systems #:configuration-file kernel-config)) @@ -670,14 +670,14 @@ by Robert Shea and Robert Anton Wilson.") (define-public procps (package (name "procps") - (version "3.3.14") + (version "3.3.15") (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/procps-ng/Production/" "procps-ng-" version ".tar.xz")) (sha256 (base32 - "0v3j6rkzzscqds37i105cxx3q4dk04rsgpqfd5p7hzcvk59h5njy")))) + "0r84kwa5fl0sjdashcn4vh7hgfm7ahdcysig3mcjvpmkzi7p9g8h")))) (build-system gnu-build-system) (arguments '(#:modules ((guix build utils) diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm index 04bcf56238..b55d9eb3c5 100644 --- a/gnu/packages/mail.scm +++ b/gnu/packages/mail.scm @@ -259,14 +259,14 @@ aliasing facilities to work just as they would on normal mail.") (define-public mutt (package (name "mutt") - (version "1.9.5") + (version "1.10.0") (source (origin (method url-fetch) (uri (string-append "https://bitbucket.org/mutt/mutt/downloads/" "mutt-" version ".tar.gz")) (sha256 (base32 - "0lsp72lm3cw490x7lhzia7h8f591bab2mr7qpscaj22fmrj7wqdz")) + "0nskymwr2cdapxlfv0ysz3bjwhb4kcvl5a3c39237k7r1vwva582")) (patches (search-patches "mutt-store-references.patch")))) (build-system gnu-build-system) (inputs diff --git a/gnu/packages/mes.scm b/gnu/packages/mes.scm index d2ce394a03..a8a19854de 100644 --- a/gnu/packages/mes.scm +++ b/gnu/packages/mes.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> +;;; Copyright © 2017,2018 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr> ;;; @@ -56,11 +56,24 @@ extensive examples, including parsers for the Javascript and C99 languages.") (home-page "https://savannah.nongnu.org/projects/nyacc") (license (list gpl3+ lgpl3+)))) +(define-public nyacc-for-mes + (package + (inherit nyacc) + (version "0.80.42") + (source (origin + (method url-fetch) + (uri (string-append "https://gitlab.com/janneke/nyacc" + "/-/archive/v" version + "/nyacc-" version ".tar.gz")) + (sha256 + (base32 + "0c8c8kxir0h2d4nxr131xbkfs7c80haipmkp2g6677sh14wn0b3y")))))) + (define-public mes (let ((triplet "i686-unknown-linux-gnu")) (package (name "mes") - (version "0.13") + (version "0.14") (source (origin (method url-fetch) (uri (string-append "https://gitlab.com/janneke/mes" @@ -68,12 +81,12 @@ extensive examples, including parsers for the Javascript and C99 languages.") "/mes-" version ".tar.gz")) (sha256 (base32 - "0db4f32rak839ff3n7ywkkng9672457pd2pvvgvcsyndqmmdsqw0")))) + "1i23jk61iibjza2s3lka56ry4ma424g2fyk8pjd5bd1dyjd0yrzf")))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (propagated-inputs `(("mescc-tools" ,mescc-tools) - ("nyacc" ,nyacc))) + ("nyacc" ,nyacc-for-mes))) (native-inputs `(("guile" ,guile-2.2) ,@(if (not (string-prefix? "i686-linux" (or (%current-target-system) @@ -85,7 +98,9 @@ extensive examples, including parsers for the Javascript and C99 languages.") '()) ("perl" ,perl))) ;build-aux/gitlog-to-changelog (arguments - `(#:phases + `(#:make-flags (list + (string-append "PREFIX=" (assoc-ref %outputs "out"))) + #:phases (modify-phases %standard-phases (add-before 'install 'generate-changelog (lambda _ @@ -107,7 +122,7 @@ Guile-] Scheme interpreter prototype in C and a Nyacc-based C compiler in (define-public mescc-tools (package (name "mescc-tools") - (version "0.3") + (version "0.4") (source (origin (method url-fetch) (uri (string-append @@ -117,13 +132,18 @@ Guile-] Scheme interpreter prototype in C and a Nyacc-based C compiler in (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "04lvyyp7isamgddrnfpi92lgqdflzdzx5kc2x8fxmgsjisy0dgr4")))) + "1iwc8xqwzdaqckb4jkkisljrgn8ii4bl7dzk1l2kpv98hsyq9vi1")))) (build-system gnu-build-system) + (supported-systems '("i686-linux" "x86_64-linux")) (arguments `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out"))) #:test-target "test" #:phases (modify-phases %standard-phases - (delete 'configure)))) + (delete 'configure) + (add-after 'install 'install-2 + (lambda _ + (let ((out (assoc-ref %outputs "out"))) + (copy-file "bin/blood-elf" (string-append out "/bin/blood-elf")))))))) (synopsis "Tools for the full source bootstrapping process") (description "Mescc-tools is a collection of tools for use in a full source diff --git a/gnu/packages/parallel.scm b/gnu/packages/parallel.scm index 1dfafac4e7..716b433443 100644 --- a/gnu/packages/parallel.scm +++ b/gnu/packages/parallel.scm @@ -47,7 +47,7 @@ (define-public parallel (package (name "parallel") - (version "20180422") + (version "20180522") (source (origin (method url-fetch) @@ -55,7 +55,7 @@ version ".tar.bz2")) (sha256 (base32 - "0xsfpbxwgd4197gra981iv0nmjfk58c0d88dxx6dh6yrqz523klx")))) + "1khcz9pm7rjnq4gw8pn30k1d40x337a204dxj4y4qijpx8m7w0gb")))) (build-system gnu-build-system) (arguments `(#:phases diff --git a/gnu/packages/patches/libusb-for-axoloti.patch b/gnu/packages/patches/libusb-for-axoloti.patch index 76a45e801d..fb94c489b0 100644 --- a/gnu/packages/patches/libusb-for-axoloti.patch +++ b/gnu/packages/patches/libusb-for-axoloti.patch @@ -1,8 +1,8 @@ -diff -rpu4 libusb-1.0.22.orig/libusb/descriptor.c libusb-1.0.22/libusb/descriptor.c ---- libusb-1.0.22.orig/libusb/descriptor.c 2018-03-17 08:23:37.000000000 +0100 -+++ libusb-1.0.22/libusb/descriptor.c 2018-03-29 10:36:09.968429473 +0200 -@@ -1173,9 +1173,9 @@ int API_EXPORTED libusb_get_string_descr - if (tbuf[1] != LIBUSB_DT_STRING) +diff --git a/libusb/descriptor.c b/libusb/descriptor.c +index 74d6de5..0b0e314 100644 +--- a/libusb/descriptor.c ++++ b/libusb/descriptor.c +@@ -1174,7 +1174,7 @@ int API_EXPORTED libusb_get_string_descriptor_ascii(libusb_device_handle *dev_ha return LIBUSB_ERROR_IO; if (tbuf[0] > r) @@ -11,4 +11,6 @@ diff -rpu4 libusb-1.0.22.orig/libusb/descriptor.c libusb-1.0.22/libusb/descripto di = 0; for (si = 2; si < tbuf[0]; si += 2) { - if (di >= (length - 1)) +-- +2.17.0 + diff --git a/gnu/packages/pretty-print.scm b/gnu/packages/pretty-print.scm index d1485082e3..ad429854a2 100644 --- a/gnu/packages/pretty-print.scm +++ b/gnu/packages/pretty-print.scm @@ -1,5 +1,4 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> @@ -283,44 +282,3 @@ seen in a terminal.") TeX, SVG, BBCode and terminal escape sequences with colored syntax highlighting. Language definitions and color themes are customizable.") (license gpl3+))) - -(define-public astyle - (package - (name "astyle") - (version "2.05") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://sourceforge/astyle/astyle/astyle%20" - version "/astyle_" version "_linux.tar.gz")) - (sha256 - (base32 - "0f9sh9kq5ajp1yz133h00fr9235p1m698x7n3h7zbrhjiwgynd6s")))) - (build-system gnu-build-system) - (arguments - `(#:tests? #f ;no tests - #:make-flags (list (string-append "prefix=" %output) - "INSTALL=install" - "all") - #:phases - (modify-phases %standard-phases - (replace 'configure - (lambda _ (chdir "build/gcc") #t)) - (add-after 'install 'install-libs - (lambda* (#:key outputs #:allow-other-keys) - ;; Libraries are not installed by default - (let* ((output (assoc-ref outputs "out")) - (libdir (string-append output "/lib"))) - (begin - (mkdir-p libdir) - (for-each (lambda (l) - (copy-file - l (string-append libdir "/" (basename l)))) - (find-files "bin" "lib*")))) - #t))))) - (home-page "http://astyle.sourceforge.net/") - (synopsis "Source code indenter, formatter, and beautifier") - (description - "Artistic Style is a source code indenter, formatter, and beautifier for -the C, C++, C++/CLI, Objective‑C, C#, and Java programming languages.") - (license lgpl3+))) diff --git a/gnu/packages/tor.scm b/gnu/packages/tor.scm index 795c105f61..b18673b81b 100644 --- a/gnu/packages/tor.scm +++ b/gnu/packages/tor.scm @@ -47,14 +47,14 @@ (define-public tor (package (name "tor") - (version "0.3.2.10") + (version "0.3.3.6") (source (origin (method url-fetch) (uri (string-append "https://dist.torproject.org/tor-" version ".tar.gz")) (sha256 (base32 - "1vnb2wkcmm8rnz0fqi3k7arl60mpycs8rjn8hvbgv56g3p1pgpv0")))) + "1drk2h8zd05xrfpx7xn77pcxz0hs4nrq6figw56qk5gkvgv5kg4r")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list "--enable-gcc-hardening" diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index b436818246..9ad4f3faca 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -729,13 +729,13 @@ allowing to handle large objects with a small memory footprint.") (define-public python-gitpython (package (name "python-gitpython") - (version "2.1.9") + (version "2.1.10") (source (origin (method url-fetch) (uri (pypi-uri "GitPython" version)) (sha256 (base32 - "0a9in1jfv9ssxhckl6sasw45bhm762y2r5ikgb2pk2g8yqdc6z64")))) + "00bk48s5szh296r7zyvdpv3sd7q9j2cb9sqdc9diwcjayrf082xn")))) (build-system python-build-system) (arguments `(#:tests? #f ;XXX: Tests can only be run within the GitPython repository. diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 0477793076..52003ce856 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -379,7 +379,7 @@ and creating Matroska files from other media files (@code{mkvmerge}).") (define-public x265 (package (name "x265") - (version "2.6") + (version "2.7") (source (origin (method url-fetch) @@ -387,7 +387,7 @@ and creating Matroska files from other media files (@code{mkvmerge}).") "x265_" version ".tar.gz")) (sha256 (base32 - "1gyd94jkwdii9308m07nymsbxrmrcl81c0j8i10zhslr2mj07w0v")) + "18llni1m8kfvdwy5bp950z6gyd0nijmvi3hzd6gd8vpy5yk5zrym")) (modules '((guix build utils))) (snippet '(begin (delete-file-recursively "source/compat/getopt") @@ -395,7 +395,7 @@ and creating Matroska files from other media files (@code{mkvmerge}).") (build-system cmake-build-system) (arguments `(#:tests? #f ; tests are skipped if cpu-optimized code isn't built - ;; Currently the source code doesn't check for aarch64 + ;; Currently the source code doesn't check for aarch64. ,@(if (string-prefix? "aarch64" (or (%current-target-system) (%current-system))) '(#:configure-flags '("-DENABLE_PIC=TRUE")) '()) @@ -2073,7 +2073,7 @@ making @dfn{screencasts}.") (define-public simplescreenrecorder (package (name "simplescreenrecorder") - (version "0.3.10") + (version "0.3.11") (source (origin (method url-fetch) @@ -2082,14 +2082,14 @@ making @dfn{screencasts}.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "02rl9yyx3hlz9fqvgzv7ipmvx2qahj7ws5wx2m7zs3lssq3qag3g")))) + "0l6irdadqpajvv0dj3ngs1231n559l0y1pykhs2h7526qm4w7xal")))) (build-system cmake-build-system) ;; Although libx11, libxfixes, libxext are listed as build dependencies in ;; README.md, the program builds and functions properly without them. ;; As a result, they are omitted. Please add them back if problems appear. (inputs `(("alsa-lib" ,alsa-lib) - ("ffmpeg" ,ffmpeg-3.4) + ("ffmpeg" ,ffmpeg) ("glu" ,glu) ("jack" ,jack-1) ("libxi" ,libxi) diff --git a/gnu/packages/web.scm b/gnu/packages/web.scm index e42a7d06c7..e03231347a 100644 --- a/gnu/packages/web.scm +++ b/gnu/packages/web.scm @@ -4900,7 +4900,7 @@ tools like SSH (Secure Shell) to reach the outside world.") (define-public stunnel (package (name "stunnel") - (version "5.44") + (version "5.45") (source (origin (method url-fetch) @@ -4908,7 +4908,7 @@ tools like SSH (Secure Shell) to reach the outside world.") version ".tar.gz")) (sha256 (base32 - "1692y69wl7j6yjgnrrzclgzb34bxsaxjzl1dfy47vms7pdfk42lr")))) + "1qrfb418skdcm7b3v30ixng1ng907f4rfv54zvgz8jwakf1l90jl")))) (build-system gnu-build-system) (inputs `(("openssl" ,openssl))) (arguments diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm index 66ee355131..0bc007e80b 100644 --- a/gnu/packages/xdisorg.scm +++ b/gnu/packages/xdisorg.scm @@ -950,7 +950,7 @@ the X.Org X Server version 1.7 and later (X11R7.5 or later).") (define-public redshift (package (name "redshift") - (version "1.11") + (version "1.12") (source (origin (method url-fetch) @@ -960,7 +960,7 @@ the X.Org X Server version 1.7 and later (X11R7.5 or later).") "/redshift-" version ".tar.xz")) (sha256 (base32 - "0ngkwj7rg8nfk806w0sg443w6wjr91xdc0zisqfm5h2i77wm1qqh")))) + "1fi27b73x85qqar526dbd33av7mahca2ykaqwr7siqiw1qqcby6j")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -970,7 +970,7 @@ the X.Org X Server version 1.7 and later (X11R7.5 or later).") ("libx11" ,libx11) ("libxcb" ,libxcb) ("libxxf86vm" ,libxxf86vm) - ("glib" ,glib))) ;for Geoclue2 support + ("glib" ,glib))) ; for Geoclue2 support (home-page "https://github.com/jonls/redshift") (synopsis "Adjust the color temperature of your screen") (description diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm index e0cb59c009..d73ebfd8d3 100644 --- a/gnu/system/linux-initrd.scm +++ b/gnu/system/linux-initrd.scm @@ -283,7 +283,7 @@ FILE-SYSTEMS." (define virtio-modules ;; Modules for Linux para-virtualized devices, for use in QEMU guests. '("virtio_pci" "virtio_balloon" "virtio_blk" "virtio_net" - "virtio_console")) + "virtio_console" "virtio-rng")) `("ahci" ;for SATA controllers "usb-storage" "uas" ;for the installation image etc. diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm index 09a11af863..eb73b5ca7a 100644 --- a/gnu/system/vm.scm +++ b/gnu/system/vm.scm @@ -752,6 +752,10 @@ with the host. When FULL-BOOT? is true, return an image that does a complete boot sequence, bootloaded included; thus, make a disk image that contains everything the bootloader refers to: OS kernel, initrd, bootloader data, etc." + (define root-uuid + ;; Use a fixed UUID to improve determinism. + (operating-system-uuid os 'dce)) + (mlet* %store-monad ((os-drv (operating-system-derivation os)) (bootcfg (operating-system-bootcfg os))) ;; XXX: When FULL-BOOT? is true, we end up creating an image that contains @@ -763,6 +767,7 @@ bootloader refers to: OS kernel, initrd, bootloader data, etc." #:bootloader (bootloader-configuration-bootloader (operating-system-bootloader os)) #:disk-image-size disk-image-size + #:file-system-uuid root-uuid #:inputs (if full-boot? `(("bootcfg" ,bootcfg)) '()) diff --git a/guix/records.scm b/guix/records.scm index c02395f2ae..c71cfcfe32 100644 --- a/guix/records.scm +++ b/guix/records.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -52,13 +52,45 @@ ((weird _ ...) ;weird! (syntax-violation name "invalid field specifier" #'weird))))) +(define (print-record-abi-mismatch-error port key args + default-printer) + (match args + ((rtd . _) + ;; The source file where this exception is thrown must be recompiled. + (format port "ERROR: ~a: record ABI mismatch; recompilation needed" + rtd)))) + +(set-exception-printer! 'record-abi-mismatch-error + print-record-abi-mismatch-error) + +(define (current-abi-identifier type) + "Return an identifier unhygienically derived from TYPE for use as its +\"current ABI\" variable." + (let ((type-name (syntax->datum type))) + (datum->syntax + type + (string->symbol + (string-append "% " (symbol->string type-name) + " abi-cookie"))))) + +(define (abi-check type cookie) + "Return syntax that checks that the current \"application binary +interface\" (ABI) for TYPE is equal to COOKIE." + (with-syntax ((current-abi (current-abi-identifier type))) + #`(unless (eq? current-abi #,cookie) + (throw 'record-abi-mismatch-error #,type)))) + (define-syntax make-syntactic-constructor (syntax-rules () "Make the syntactic constructor NAME for TYPE, that calls CTOR, and expects all of EXPECTED fields to be initialized. DEFAULTS is the list of FIELD/DEFAULT-VALUE tuples, THUNKED is the list of identifiers of thunked -fields, and DELAYED is the list of identifiers of delayed fields." +fields, and DELAYED is the list of identifiers of delayed fields. + +ABI-COOKIE is the cookie (an integer) against which to check the run-time ABI +of TYPE matches the expansion-time ABI." ((_ type name ctor (expected ...) + #:abi-cookie abi-cookie #:thunked thunked #:delayed delayed #:innate innate @@ -130,6 +162,7 @@ fields, and DELAYED is the list of identifiers of delayed fields." (syntax-case s (inherit expected ...) ((_ (inherit orig-record) (field value) (... ...)) #`(let* #,(field-bindings #'((field value) (... ...))) + #,(abi-check #'type abi-cookie) #,(record-inheritance #'orig-record #'((field value) (... ...))))) ((_ (field value) (... ...)) @@ -144,6 +177,7 @@ fields, and DELAYED is the list of identifiers of delayed fields." (cond ((lset= eq? fields '(expected ...)) #`(let* #,(field-bindings #'((field value) (... ...))) + #,(abi-check #'type abi-cookie) (ctor #,@(map field-value '(expected ...))))) ((pair? (lset-difference eq? fields '(expected ...))) @@ -270,6 +304,16 @@ inherited." ;; The real value of that field is a promise, so force it. (force (real-get x))))))) + (define (compute-abi-cookie field-specs) + ;; Compute an "ABI cookie" for the given FIELD-SPECS. We use + ;; 'string-hash' because that's a better hash function that 'hash' on a + ;; list of symbols. + (syntax-case field-specs () + (((field get properties ...) ...) + (string-hash (object->string + (syntax->datum #'((field properties ...) ...))) + most-positive-fixnum)))) + (syntax-case s () ((_ type syntactic-ctor ctor pred (field get properties ...) ...) @@ -278,7 +322,8 @@ inherited." (delayed (filter-map delayed-field? field-spec)) (innate (filter-map innate-field? field-spec)) (defaults (filter-map field-default-value - #'((field properties ...) ...)))) + #'((field properties ...) ...))) + (cookie (compute-abi-cookie field-spec))) (with-syntax (((field-spec* ...) (map field-spec->srfi-9 field-spec)) ((thunked-field-accessor ...) @@ -298,10 +343,13 @@ inherited." (ctor field ...) pred field-spec* ...) + (define #,(current-abi-identifier #'type) + #,cookie) thunked-field-accessor ... delayed-field-accessor ... (make-syntactic-constructor type syntactic-ctor ctor (field ...) + #:abi-cookie #,cookie #:thunked #,thunked #:delayed #,delayed #:innate #,innate diff --git a/tests/records.scm b/tests/records.scm index d6d27bb96a..80e08a9a5f 100644 --- a/tests/records.scm +++ b/tests/records.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2018 Ludovic Courtès <ludo@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -288,6 +288,34 @@ (and (string-match "extra.*initializer.*baz" message) (eq? proc 'foo))))) +(test-assert "ABI checks" + (let ((module (test-module))) + (eval '(begin + (define-record-type* <foo> foo make-foo + foo? + (bar foo-bar (default 42))) + + (define (make-me-a-record) (foo))) + module) + (unless (eval '(foo? (make-me-a-record)) module) + (error "what?" (eval '(make-me-a-record) module))) + + ;; Redefine <foo> with an additional field. + (eval '(define-record-type* <foo> foo make-foo + foo? + (baz foo-baz) + (bar foo-bar (default 42))) + module) + + ;; Now 'make-me-a-record' is out of sync because it does an + ;; 'allocate-struct' that corresponds to the previous definition of <foo>. + (catch 'record-abi-mismatch-error + (lambda () + (eval '(foo? (make-me-a-record)) module) + #f) + (lambda (key rtd . _) + (eq? rtd (eval '<foo> module)))))) + (test-equal "recutils->alist" '((("Name" . "foo") ("Version" . "0.1") |