diff options
33 files changed, 449 insertions, 296 deletions
diff --git a/Makefile.am b/Makefile.am index e35bdac306..a178d53cb5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -194,6 +194,7 @@ MODULES += \ guix/import/crate.scm \ guix/import/gem.scm \ guix/import/github.scm \ + guix/import/gnome.scm \ guix/import/json.scm \ guix/import/pypi.scm \ guix/import/stackage.scm \ @@ -1,42 +1,42 @@ -*- mode: org -*- -[[http://www.gnu.org/software/guix/][GNU Guix]] (IPA: /ɡiːks/) is a purely functional package manager, and -associated free software distribution, for the [[http://www.gnu.org/gnu/gnu.html][GNU system]]. In addition +[[https://www.gnu.org/software/guix/][GNU Guix]] (IPA: /ɡiːks/) is a purely functional package manager, and +associated free software distribution, for the [[https://www.gnu.org/gnu/gnu.html][GNU system]]. In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. -It provides [[http://www.gnu.org/software/guile/][Guile]] Scheme APIs, including a high-level embedded +It provides [[https://www.gnu.org/software/guile/][Guile]] Scheme APIs, including a high-level embedded domain-specific languages (EDSLs) to describe how packages are to be built and composed. A user-land free software distribution for GNU/Linux comes as part of Guix. -Guix is based on the [[http://nixos.org/nix/][Nix]] package manager. +Guix is based on the [[https://nixos.org/nix/][Nix]] package manager. * Requirements GNU Guix currently depends on the following packages: - - [[http://gnu.org/software/guile/][GNU Guile 2.2.x or 2.0.x]], version 2.0.9 or later - - [[http://gnupg.org/][GNU libgcrypt]] - - [[http://www.gnu.org/software/make/][GNU Make]] - - optionally [[http://savannah.nongnu.org/projects/guile-json/][Guile-JSON]], for the 'guix import pypi' command - - optionally [[http://www.gnutls.org][GnuTLS]] compiled with guile support enabled, for HTTPS support + - [[https://gnu.org/software/guile/][GNU Guile 2.2.x or 2.0.x]], version 2.0.9 or later + - [[https://gnupg.org/][GNU libgcrypt]] + - [[https://www.gnu.org/software/make/][GNU Make]] + - optionally [[https://savannah.nongnu.org/projects/guile-json/][Guile-JSON]], for the 'guix import pypi' command + - optionally [[https://www.gnutls.org][GnuTLS]] compiled with guile support enabled, for HTTPS support in the 'guix download' command. Note that 'guix import pypi' requires this functionality. Unless `--disable-daemon' was passed, the following packages are needed: - - [[http://sqlite.org/][SQLite 3]] + - [[https://sqlite.org/][SQLite 3]] - [[http://www.bzip.org][libbz2]] - - [[http://gcc.gnu.org][GCC's g++]] + - [[https://gcc.gnu.org][GCC's g++]] When `--disable-daemon' was passed, you instead need the following: - - [[http://nixos.org/nix/][Nix]] + - [[https://nixos.org/nix/][Nix]] * Installation @@ -44,7 +44,7 @@ See the manual for the installation instructions, either by running info -f doc/guix.info "Installation" -or by checking the [[http://www.gnu.org/software/guix/manual/guix.html#Installation][web copy of the manual]]. +or by checking the [[https://www.gnu.org/software/guix/manual/guix.html#Installation][web copy of the manual]]. For information on installation from a Git checkout, please see the section "Building from Git" in the manual. @@ -109,7 +109,7 @@ Join #guix on irc.freenode.net. * Guix & Nix -GNU Guix is based on [[http://nixos.org/nix/][the Nix package manager]]. It implements the same +GNU Guix is based on [[https://nixos.org/nix/][the Nix package manager]]. It implements the same package deployment paradigm, and in fact it reuses some of its code. Yet, different engineering decisions were made for Guix, as described below. @@ -132,7 +132,7 @@ the store. Guix produces such derivations, which are then interpreted by the daemon to perform the build. Thus, Guix derivations can use derivations produced by Nix (and vice versa). -With Nix and the [[http://nixos.org/nixpkgs][Nixpkgs]] distribution, package composition happens at +With Nix and the [[https://nixos.org/nixpkgs][Nixpkgs]] distribution, package composition happens at the Nix language level, but builders are usually written in Bash. Conversely, Guix encourages the use of Scheme for both package composition and builders. Likewise, the core functionality of Nix is @@ -141,13 +141,13 @@ but exposes all the API as Scheme. * Related software - - [[http://nixos.org][Nix, Nixpkgs, and NixOS]], functional package manager and associated + - [[https://nixos.org][Nix, Nixpkgs, and NixOS]], functional package manager and associated software distribution, are the inspiration of Guix - - [[http://www.gnu.org/software/stow/][GNU Stow]] builds around the idea of one directory per prefix, and a + - [[https://www.gnu.org/software/stow/][GNU Stow]] builds around the idea of one directory per prefix, and a symlink tree to create user environments - - [[http://www.pvv.ntnu.no/~arnej/store/storedoc_6.html][STORE]] shares the same idea + - [[https://www.pvv.ntnu.no/~arnej/store/storedoc_6.html][STORE]] shares the same idea - [[https://live.gnome.org/OSTree/][GNOME's OSTree]] allows bootable system images to be built from a specified set of packages - - The [[http://www.gnu.org/s/gsrc/][GNU Source Release Collection]] (GSRC) is a user-land software + - The [[https://www.gnu.org/s/gsrc/][GNU Source Release Collection]] (GSRC) is a user-land software distribution; unlike Guix, it relies on core tools available on the host system diff --git a/doc/guix.texi b/doc/guix.texi index 0462a64190..fff3fbd5fd 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -15414,6 +15414,10 @@ added specifications. @item @code{port} (default: @code{8081}) Port number used by the HTTP server. +@item --listen=@var{host} +Listen on the network interface for @var{host}. The default is to +accept connections from localhost. + @item @code{specifications} (default: @code{#~'()}) A gexp (@pxref{G-Expressions}) that evaluates to a list of specifications, where a specification is an association list diff --git a/gnu/local.mk b/gnu/local.mk index 0991fe5ff2..0afda9ff25 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -552,7 +552,6 @@ dist_patch_DATA = \ %D%/packages/patches/ceph-disable-unittest-throttle.patch \ %D%/packages/patches/ceph-skip-collect-sys-info-test.patch \ %D%/packages/patches/ceph-skip-unittest_blockdev.patch \ - %D%/packages/patches/python-acme-dont-use-openssl-rand.patch \ %D%/packages/patches/chicken-CVE-2017-6949.patch \ %D%/packages/patches/chicken-CVE-2017-11343.patch \ %D%/packages/patches/chmlib-inttypes.patch \ @@ -587,7 +586,6 @@ dist_patch_DATA = \ %D%/packages/patches/doc++-segfault-fix.patch \ %D%/packages/patches/doxygen-test.patch \ %D%/packages/patches/dvd+rw-tools-add-include.patch \ - %D%/packages/patches/e2fsprogs-32bit-quota-warnings.patch \ %D%/packages/patches/elfutils-tests-ptrace.patch \ %D%/packages/patches/elixir-disable-failing-tests.patch \ %D%/packages/patches/einstein-build.patch \ @@ -615,7 +613,6 @@ dist_patch_DATA = \ %D%/packages/patches/flint-ldconfig.patch \ %D%/packages/patches/fltk-shared-lib-defines.patch \ %D%/packages/patches/fltk-xfont-on-demand.patch \ - %D%/packages/patches/fontforge-svg-modtime.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8560.patch \ %D%/packages/patches/freeimage-CVE-2015-0852.patch \ @@ -808,7 +805,6 @@ dist_patch_DATA = \ %D%/packages/patches/libtirpc-CVE-2017-8779.patch \ %D%/packages/patches/libtorrent-rasterbar-boost-compat.patch \ %D%/packages/patches/libtool-skip-tests2.patch \ - %D%/packages/patches/libunwind-CVE-2015-3239.patch \ %D%/packages/patches/libunistring-gnulib-multi-core.patch \ %D%/packages/patches/libusb-0.1-disable-tests.patch \ %D%/packages/patches/libvpx-CVE-2016-2818.patch \ diff --git a/gnu/packages/ci.scm b/gnu/packages/ci.scm index 78d6e9514f..a6057a76e2 100644 --- a/gnu/packages/ci.scm +++ b/gnu/packages/ci.scm @@ -187,8 +187,8 @@ their dependencies.") (license l:gpl3+)))) (define-public cuirass - (let ((commit "87ad259dba7de38b6e3ab954cd7b2f655358d877") - (revision "8")) + (let ((commit "2a4d493e28100b8eca7d23300dd872c9f99e1f16") + (revision "9")) (package (name "cuirass") (version (string-append "0.0.1-" revision "." (string-take commit 7))) @@ -200,7 +200,7 @@ their dependencies.") (file-name (string-append name "-" version)) (sha256 (base32 - "127pvbxbh6b6ar43cdgia9qpzzpldq4wm3igsxb1ycxfsdqnjrnz")))) + "0hi7x25ya8wydrfj9jd9zb351mw8pgxxxwgxxdn5kds7qvhxr26v")))) (build-system gnu-build-system) (arguments '(#:modules ((guix build utils) diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm index 8a9f625dc5..91209376cd 100644 --- a/gnu/packages/electronics.scm +++ b/gnu/packages/electronics.scm @@ -242,9 +242,10 @@ format support.") `(("boost" ,boost) ("glib" ,glib) ("glibmm" ,glibmm) - ("qt" ,qt) ("libsigrok" ,libsigrok) - ("libsigrokdecode" ,libsigrokdecode))) + ("libsigrokdecode" ,libsigrokdecode) + ("qtbase" ,qtbase) + ("qtsvg" ,qtsvg))) (build-system cmake-build-system) (home-page "http://www.sigrok.org/wiki/PulseView") (synopsis "Qt based logic analyzer, oscilloscope and MSO GUI for sigrok") diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm index de75bd8beb..323cfab6f4 100644 --- a/gnu/packages/fontutils.scm +++ b/gnu/packages/fontutils.scm @@ -396,7 +396,7 @@ and returns a sequence of positioned glyphids from the font.") (define-public potrace (package (name "potrace") - (version "1.14") + (version "1.15") (source (origin (method url-fetch) @@ -404,7 +404,7 @@ and returns a sequence of positioned glyphids from the font.") "/potrace-" version ".tar.gz")) (sha256 (base32 - "0znr9i0ljb818qiwm22zw63g11a4v08gc5xkh0wbdp6g259vcwnv")))) + "17ajildjp14shsy339xarh1lw1p0k60la08ahl638a73mh23kcx9")))) (build-system gnu-build-system) (native-inputs `(("ghostscript" ,ghostscript))) ;for tests (inputs `(("zlib" ,zlib))) @@ -498,26 +498,14 @@ definitions.") (define-public fontforge (package (name "fontforge") - (version "20160404") + (version "20170731") (source (origin (method url-fetch) (uri (string-append "https://github.com/fontforge/fontforge/releases/download/" - version "/fontforge-dist-" version ".tar.gz")) + version "/fontforge-dist-" version ".tar.xz")) (sha256 (base32 - "1kavnhbkzc1hk6f39fynq9s0haama81ddrbld4b5x60d0dbaawvc")) - (modules '((guix build utils))) - (snippet - '(begin - ;; Make builds bit-reproducible by using fixed date strings. - (substitute* "configure" - (("^FONTFORGE_MODTIME=.*$") - "FONTFORGE_MODTIME=\"1459819518L\"\n") - (("^FONTFORGE_MODTIME_STR=.*$") - "FONTFORGE_MODTIME_STR=\"20:25 CDT 4-Apr-2016\"\n") - (("^FONTFORGE_VERSIONDATE=.*$") - "FONTFORGE_VERSIONDATE=\"20160404\"\n")))) - (patches (list (search-patch "fontforge-svg-modtime.patch"))))) + "08l8h3yvk4v7652jvmd3ls7nf5miybkx2fmkf1mpwwfixpxxw2l4")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -541,20 +529,11 @@ definitions.") ("libxml2" ,libxml2) ("pango" ,pango) ("potrace" ,potrace) - ("python" ,python) + ("python" ,python-wrapper) ("zlib" ,zlib))) (arguments - '(#:tests? #f - #:phases + '(#:phases (modify-phases %standard-phases - (add-after 'build 'build-contrib - (lambda* (#:key outputs #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin"))) - (and (zero? (system* "make" "-Ccontrib/fonttools" - "CC=gcc" "showttf")) - (begin (install-file "contrib/fonttools/showttf" bin) - #t))))) (add-after 'install 'set-library-path (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out")) @@ -576,4 +555,4 @@ definitions.") opentype fonts. You can save fonts in many different outline formats, and generate bitmaps.") (license license:gpl3+) - (home-page "http://fontforge.org/"))) + (home-page "https://fontforge.github.io/en-US/"))) diff --git a/gnu/packages/ftp.scm b/gnu/packages/ftp.scm index ab8828ed85..ba9e130f57 100644 --- a/gnu/packages/ftp.scm +++ b/gnu/packages/ftp.scm @@ -46,7 +46,7 @@ (define-public lftp (package (name "lftp") - (version "4.8.1") + (version "4.8.2") (source (origin (method url-fetch) ;; See https://lftp.tech/get.html for mirrors. @@ -58,7 +58,7 @@ "ftp/lftp/lftp-" version ".tar.xz"))) (sha256 (base32 - "09vvwn5w3n8ahx57b7n6qvg1abnw9w7mm4d8p381pliab6jxlw77")))) + "176d90amkm1klwjpfpzdsvmjnyri8f74bv4fpip8app0fs25p1sw")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index a4e5d83f51..d5f9f1f092 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -5302,7 +5302,7 @@ providing graphical log-ins and managing local and remote displays.") (define-public libgtop (package (name "libgtop") - (version "2.36.0") + (version "2.38.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -5310,7 +5310,7 @@ providing graphical log-ins and managing local and remote displays.") name "-" version ".tar.xz")) (sha256 (base32 - "0ax17c7nplghxgsf8zl92nmhkbnggj62wwzl7nq00aqb2m6f7gqk")))) + "04mnxgzyb26wqk6qij4iw8cxwl82r8pcsna5dg8vz2j3pdi0wv2g")))) (build-system gnu-build-system) (native-inputs `(("gobject-introspection" ,gobject-introspection) diff --git a/gnu/packages/gnupg.scm b/gnu/packages/gnupg.scm index c6af5caa49..ffad57ef5e 100644 --- a/gnu/packages/gnupg.scm +++ b/gnu/packages/gnupg.scm @@ -7,7 +7,7 @@ ;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015, 2016 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2016 Christopher Allan Webber <cwebber@dustycloud.org> -;;; Copyright © 2016 ng0 <ng0@we.make.ritual.n0.is> +;;; Copyright © 2016, 2017 ng0 <ng0@infotropique.org> ;;; Copyright © 2016 Christopher Baines <mail@cbaines.net> ;;; Copyright © 2016 Mike Gerwitz <mtg@gnu.org> ;;; Copyright © 2016 Troy Sankey <sankeytms@gmail.com> @@ -822,3 +822,31 @@ qualities. To reconstruct a secret key, you re-enter those bytes (whether by hand, OCR, QR code, or the like) and paperkey can use them to transform your existing public key into a secret key.") (license license:gpl2+))) + +(define-public gpa + (package + (name "gpa") + (version "0.9.10") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnupg/gpa/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "09xphbi2456qynwqq5n0yh0zdmdi2ggrj3wk4hsyh5lrzlvcrff3")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("gnupg" ,gnupg) + ("gpgme" ,gpgme) + ("libassuan" ,libassuan) + ("libgpg-error" ,libgpg-error) + ("gtk+-2" ,gtk+-2))) + (home-page "https://gnupg.org/software/gpa/") + (synopsis "Graphical user interface for GnuPG") + (description + "GPA, the GNU Privacy Assistant, is a graphical user interface for +@uref{https://gnupg.org, GnuPG}. It can be used to encrypt, decrypt, and sign +files, to verify signatures, and to manage the private and public keys.") + (license license:gpl3+))) diff --git a/gnu/packages/libunwind.scm b/gnu/packages/libunwind.scm index cda83b2bc0..e747d37787 100644 --- a/gnu/packages/libunwind.scm +++ b/gnu/packages/libunwind.scm @@ -27,18 +27,18 @@ (define-public libunwind (package (name "libunwind") - (version "1.1") + (version "1.2.1") (source (origin (method url-fetch) (uri (string-append "mirror://savannah/libunwind/libunwind-" version ".tar.gz")) (sha256 (base32 - "16nhx2pahh9d62mvszc88q226q5lwjankij276fxwrm8wb50zzlx")) - (patches (search-patches "libunwind-CVE-2015-3239.patch")))) + "1jsslwkilwrsj959dc8b479qildawz67r8m4lzxm7glcwa8cngiz")))) (build-system gnu-build-system) (arguments - ;; FIXME: As of glibc 2.17, we get 3 out of 34 test failures. + ;; FIXME: As of glibc 2.25, we get 1 out of 34 test failures (2 are + ;; expected to fail). ;; Report them upstream. '(#:tests? #f)) (home-page "http://www.nongnu.org/libunwind") diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index dd83964ad4..46434b35c8 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -693,17 +693,16 @@ slabtop, and skill.") (define-public e2fsprogs (package (name "e2fsprogs") - (version "1.43.5") + (version "1.43.6") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/people/tytso/" name "/v" version "/" name "-" version ".tar.xz")) - (patches (search-patches "e2fsprogs-32bit-quota-warnings.patch")) (sha256 (base32 - "05ssjpmy0fpv2ik6ibm1f47wr6794nf0q50r581vygrqvsd3s7r6")))) + "00ilv65dzcgiap435j89xk86shf7rrav3wsik7cahy789qijdcn9")))) (build-system gnu-build-system) (inputs `(("util-linux" ,util-linux))) (native-inputs `(("pkg-config" ,pkg-config) @@ -1566,16 +1565,16 @@ devices. It replaces @code{iwconfig}, which is deprecated.") (define-public powertop (package (name "powertop") - (version "2.8") + (version "2.9") (source (origin (method url-fetch) (uri (string-append - "https://01.org/sites/default/files/downloads/powertop/powertop-" + "https://01.org/sites/default/files/downloads/powertop/powertop-v" version ".tar.gz")) (sha256 (base32 - "0nlwazxbnn0k6q5f5b09wdhw0f194lpzkp3l7vxansqhfczmcyx8")))) + "0l4jjlf05li2mc6g8nrss3h435wjhmnqd8m7v3kha3x0x7cbfzxa")))) (build-system gnu-build-system) (arguments '(#:phases @@ -2369,11 +2368,16 @@ country-specific regulations for the wireless spectrum.") ("flex" ,flex) ("bison" ,bison) ("which" ,which))) + (outputs '("lib" ;avoid perl in closure + "out")) (arguments `(#:tests? #f ; no 'check' target #:make-flags (list (string-append "PREFIX=" %output) - (string-append "ETCDIR=" %output "/etc") - (string-append "MANDIR=" %output "/share/man")) + (string-append "ETCDIR=" (assoc-ref %outputs "lib") "/etc") + (string-append "INCLUDEDIR=" + (assoc-ref %outputs "lib") "/include") + (string-append "MANDIR=" %output "/share/man") + (string-append "LIBDIR=" (assoc-ref %outputs "lib") "/lib")) #:phases (modify-phases %standard-phases (delete 'configure) @@ -2462,7 +2466,7 @@ SMBus access.") (base32 "1siplsfgvcxamyqf44h71jx6jdfmvhfm7mh0y1q8ps4zs6pj2zwh")))) (build-system gnu-build-system) - (inputs `(("lm-sensors" ,lm-sensors) + (inputs `(("lm-sensors" ,lm-sensors "lib") ("gtk" ,gtk+-2))) (native-inputs `(("pkg-config" ,pkg-config))) (arguments @@ -3159,7 +3163,7 @@ and copy/paste text in the console and in xterm.") (define-public btrfs-progs (package (name "btrfs-progs") - (version "4.13") + (version "4.13.1") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/linux/kernel/" @@ -3167,7 +3171,7 @@ and copy/paste text in the console and in xterm.") "btrfs-progs-v" version ".tar.xz")) (sha256 (base32 - "17m67jm29phfvkmd72lxb1z9nymn9a9pqnja8zfb1mvflsqwbz3m")))) + "1clavvrlkswgicqsm2yfsxqw04lsn8dra0db84jqm6j2apz80kz0")))) (build-system gnu-build-system) (outputs '("out" "static")) ; static versions of the binaries in "out" @@ -3195,8 +3199,9 @@ and copy/paste text in the console and in xterm.") ("libblkid:static" ,util-linux "static") ("libuuid" ,util-linux) ("libuuid:static" ,util-linux "static") + ("lzo" ,lzo) ("zlib" ,zlib) - ("lzo" ,lzo))) + ("zstd" ,zstd))) (native-inputs `(("pkg-config" ,pkg-config) ("asciidoc" ,asciidoc) ("xmlto" ,xmlto) diff --git a/gnu/packages/lxqt.scm b/gnu/packages/lxqt.scm index a2c95674d9..a73a875594 100644 --- a/gnu/packages/lxqt.scm +++ b/gnu/packages/lxqt.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com> ;;; Copyright © 2016 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2017 ng0 <ng0@infotropique.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,7 @@ #:use-module (guix utils) #:use-module (guix build-system cmake) #:use-module (gnu packages) + #:use-module (gnu packages glib) #:use-module (gnu packages kde-frameworks) #:use-module (gnu packages pkg-config) #:use-module (gnu packages qt)) @@ -188,3 +190,31 @@ desktop environment.") (description "lxqt-session provides the standard session manager for the LXQt desktop environment.") (license lgpl2.1+))) + +(define-public lxqt-build-tools + (package + (name "lxqt-build-tools") + (version "0.4.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/lxde/lxqt-build-tools/releases/" + "download/" version "/" name "-" version ".tar.xz")) + (file-name (string-append name "-" version ".tar.xz")) + (sha256 + (base32 + "1llbrjbgabxlq933a8cpg03b3mdmvd8983csnd4f7vrcj51nv0xh")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f)) ;No tests + (native-inputs + `(("pkg-config" ,pkg-config) + ("glib" ,glib))) + (inputs + `(("qtbase" ,qtbase))) + (synopsis "LXQt Build tools") + (description + "Lxqt-build-tools is providing several tools needed to build LXQt +itself as well as other components maintained by the LXQt project.") + (home-page "http://lxqt.org") + (license lgpl2.1+))) diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index a3821d8b9e..d895715c2b 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -677,7 +677,9 @@ Sega Master System/Mark III, Sega Genesis/Mega Drive, BBC Micro (("SHELL=/bin/sh") "SHELL=sh") ;; When checking the fontforge version do not consider the ;; version string that's part of the directory. - (("head -n") "tail -n")) + (("head -n") "tail -n") + ;; Also allow for SOURCE_DATE_EPOCH = 0 in fontforge. + (("20110222") "19700101")) (setenv "out" "www") (setenv "conf" "www") #t)) diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index 959aa55a76..f77eab4799 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> ;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> -;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il> ;;; ;;; This file is part of GNU Guix. ;;; @@ -98,14 +98,14 @@ computers over a network.") (define-public openntpd (package (name "openntpd") - (version "6.1p1") + (version "6.2p2") (source (origin (method url-fetch) (uri (string-append "mirror://openbsd/OpenNTPD/" name "-" version ".tar.gz")) (sha256 (base32 - "1ykx9ga76k5m54h7k5x4ds2clxsyfniss5vmf88pxnrip5bx6if8")))) + "1chghbh1bnwhxdgkqki51w94nwvlyj1a9q8716r4v2h0gc9s822q")))) (build-system gnu-build-system) (home-page "http://www.openntpd.org/") (synopsis "NTP client and server by the OpenBSD Project") diff --git a/gnu/packages/patches/e2fsprogs-32bit-quota-warnings.patch b/gnu/packages/patches/e2fsprogs-32bit-quota-warnings.patch deleted file mode 100644 index e7a96a2ac0..0000000000 --- a/gnu/packages/patches/e2fsprogs-32bit-quota-warnings.patch +++ /dev/null @@ -1,46 +0,0 @@ -Fix a test failure on 32-bit platforms. - -Patch copied from upstream source repository: - -https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git/commit/?id=9e31a5696c4b699bf000a07b86601c1fb91c0493 - -diff --git a/lib/support/mkquota.c b/lib/support/mkquota.c -index 00f3a40..931a839 100644 ---- a/lib/support/mkquota.c -+++ b/lib/support/mkquota.c -@@ -50,11 +50,13 @@ static void print_dquot(const char *desc, struct dquot *dq) - { - if (desc) - fprintf(stderr, "%s: ", desc); -- fprintf(stderr, "%u %ld:%ld:%ld %ld:%ld:%ld\n", -- dq->dq_id, dq->dq_dqb.dqb_curspace, -- dq->dq_dqb.dqb_bsoftlimit, dq->dq_dqb.dqb_bhardlimit, -- dq->dq_dqb.dqb_curinodes, -- dq->dq_dqb.dqb_isoftlimit, dq->dq_dqb.dqb_ihardlimit); -+ fprintf(stderr, "%u %lld:%lld:%lld %lld:%lld:%lld\n", -+ dq->dq_id, (long long) dq->dq_dqb.dqb_curspace, -+ (long long) dq->dq_dqb.dqb_bsoftlimit, -+ (long long) dq->dq_dqb.dqb_bhardlimit, -+ (long long) dq->dq_dqb.dqb_curinodes, -+ (long long) dq->dq_dqb.dqb_isoftlimit, -+ (long long) dq->dq_dqb.dqb_ihardlimit); - } - #else - static void print_dquot(const char *desc EXT2FS_ATTR((unused)), -@@ -524,11 +526,11 @@ static int scan_dquots_callback(struct dquot *dquot, void *cb_data) - dq->dq_dqb.dqb_curinodes != dquot->dq_dqb.dqb_curinodes) { - scan_data->usage_is_inconsistent = 1; - fprintf(stderr, "[QUOTA WARNING] Usage inconsistent for ID %u:" -- "actual (%ld, %ld) != expected (%ld, %ld)\n", -- dq->dq_id, dq->dq_dqb.dqb_curspace, -- dq->dq_dqb.dqb_curinodes, -- dquot->dq_dqb.dqb_curspace, -- dquot->dq_dqb.dqb_curinodes); -+ "actual (%lld, %lld) != expected (%lld, %lld)\n", -+ dq->dq_id, (long long) dq->dq_dqb.dqb_curspace, -+ (long long) dq->dq_dqb.dqb_curinodes, -+ (long long) dquot->dq_dqb.dqb_curspace, -+ (long long) dquot->dq_dqb.dqb_curinodes); - } - - if (scan_data->update_limits) { diff --git a/gnu/packages/patches/fontforge-svg-modtime.patch b/gnu/packages/patches/fontforge-svg-modtime.patch deleted file mode 100644 index fd960ae610..0000000000 --- a/gnu/packages/patches/fontforge-svg-modtime.patch +++ /dev/null @@ -1,35 +0,0 @@ -Propagate source font modification time to svg during conversion. Similar to -what upstream commit 95a470e941d9a20fbdaca51334e8b6b9d93cfae4 did for TTF -files. - -Submitted upstream at http://github.com/fontforge/fontforge/pull/2696 - ---- a/fontforge/svg.c -+++ b/fontforge/svg.c -@@ -27,7 +27,6 @@ - #include "fontforgevw.h" - #include <unistd.h> - #include <math.h> --#include <time.h> - #include <locale.h> - #include <utype.h> - #include <chardata.h> -@@ -62,7 +61,6 @@ static int svg_outfontheader(FILE *file, SplineFont *sf,int layer) { - BlueData bd; - char *hash, *hasv, ch; - int minu, maxu, i; -- time_t now; - const char *author = GetAuthor(); - - memset(&info,0,sizeof(info)); -@@ -78,9 +76,8 @@ static int svg_outfontheader(FILE *file, SplineFont *sf,int layer) { - fprintf( file, "\n-->\n" ); - } - fprintf( file, "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\">\n" ); -- time(&now); - fprintf( file, "<metadata>\nCreated by FontForge %d at %s", -- FONTFORGE_VERSIONDATE_RAW, ctime(&now) ); -+ FONTFORGE_VERSIONDATE_RAW, ctime((time_t*)&sf->modificationtime) ); - if ( author!=NULL ) - fprintf(file," By %s\n", author); - else diff --git a/gnu/packages/patches/libunwind-CVE-2015-3239.patch b/gnu/packages/patches/libunwind-CVE-2015-3239.patch deleted file mode 100644 index 3f11ac7337..0000000000 --- a/gnu/packages/patches/libunwind-CVE-2015-3239.patch +++ /dev/null @@ -1,17 +0,0 @@ -Copied from Fedora. - -https://bugzilla.redhat.com/show_bug.cgi?id=1232265 -http://pkgs.fedoraproject.org/cgit/libunwind.git/tree/libunwind-1.1-fix-CVE-2015-3239.patch - -diff -up libunwind-1.1/include/dwarf_i.h.CVE20153239 libunwind-1.1/include/dwarf_i.h ---- libunwind-1.1/include/dwarf_i.h.CVE20153239 2015-07-10 13:38:36.404996748 -0400 -+++ libunwind-1.1/include/dwarf_i.h 2015-07-10 13:39:25.050707613 -0400 -@@ -20,7 +20,7 @@ - extern const uint8_t dwarf_to_unw_regnum_map[DWARF_REGNUM_MAP_LENGTH]; - /* REG is evaluated multiple times; it better be side-effects free! */ - # define dwarf_to_unw_regnum(reg) \ -- (((reg) <= DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0) -+ (((reg) < DWARF_REGNUM_MAP_LENGTH) ? dwarf_to_unw_regnum_map[reg] : 0) - #endif - - #ifdef UNW_LOCAL_ONLY diff --git a/gnu/packages/patches/python-acme-dont-use-openssl-rand.patch b/gnu/packages/patches/python-acme-dont-use-openssl-rand.patch deleted file mode 100644 index 78920629c0..0000000000 --- a/gnu/packages/patches/python-acme-dont-use-openssl-rand.patch +++ /dev/null @@ -1,28 +0,0 @@ -Fix build with PyOpenSSL > 17.2.0. - -See <https://github.com/certbot/certbot/issues/5111>. - -Patch copied from upstream source repository: -https://github.com/certbot/certbot/commit/f6be07da74c664b57ac8c053585f919c79f9af44 - -diff --git a/acme/crypto_util.py b/acme/crypto_util.py -index de15284c03..b8fba03488 100644 ---- a/acme/crypto_util.py -+++ b/acme/crypto_util.py -@@ -2,6 +2,7 @@ - import binascii - import contextlib - import logging -+import os - import re - import socket - import sys -@@ -243,7 +244,7 @@ def gen_ss_cert(key, domains, not_before=None, - """ - assert domains, "Must provide one or more hostnames for the cert." - cert = OpenSSL.crypto.X509() -- cert.set_serial_number(int(binascii.hexlify(OpenSSL.rand.bytes(16)), 16)) -+ cert.set_serial_number(int(binascii.hexlify(os.urandom(16)), 16)) - cert.set_version(2) - - extensions = [ diff --git a/gnu/packages/samba.scm b/gnu/packages/samba.scm index 85579b0c0f..392f9a3500 100644 --- a/gnu/packages/samba.scm +++ b/gnu/packages/samba.scm @@ -34,6 +34,7 @@ #:use-module (gnu packages crypto) #:use-module (gnu packages cups) #:use-module (gnu packages databases) + #:use-module (gnu packages docbook) #:use-module (gnu packages tls) #:use-module (gnu packages popt) #:use-module (gnu packages pkg-config) @@ -42,7 +43,8 @@ #:use-module (gnu packages kerberos) #:use-module (gnu packages linux) #:use-module (gnu packages perl) - #:use-module (gnu packages python)) + #:use-module (gnu packages python) + #:use-module (gnu packages xml)) (define-public cifs-utils (package @@ -159,8 +161,19 @@ anywhere.") "0pap686cl0j5c9v1v09krpqdk416x3851fbcap5ysp1zajrfw7aq")))) (build-system gnu-build-system) (arguments - '(#:phases + `(#:phases (modify-phases %standard-phases + (add-before 'configure 'locate-docbook-stylesheets + (lambda* (#:key inputs #:allow-other-keys) + ;; XXX for some reason XML_CATALOG_FILES is not respected. + (substitute* '("buildtools/wafsamba/samba_conftests.py" + "buildtools/wafsamba/wafsamba.py" + "docs-xml/xslt/man.xsl") + (("http://docbook.sourceforge.net/release/xsl/current/") + (string-append (assoc-ref inputs "docbook-xsl") + "/xml/xsl/docbook-xsl-" + ,(package-version docbook-xsl) "/"))) + #t)) (replace 'configure ;; samba uses a custom configuration script that runs waf. (lambda* (#:key outputs #:allow-other-keys) @@ -203,7 +216,9 @@ anywhere.") ("tevent" ,tevent) ("tdb" ,tdb))) (native-inputs - `(("perl" ,perl) + `(("docbook-xsl" ,docbook-xsl) ;for generating manpages + ("xsltproc" ,libxslt) ;ditto + ("perl" ,perl) ("pkg-config" ,pkg-config) ("python" ,python-2))) ; incompatible with Python 3 (home-page "https://www.samba.org/") diff --git a/gnu/packages/tcl.scm b/gnu/packages/tcl.scm index a4129e0899..4dca0b0c39 100644 --- a/gnu/packages/tcl.scm +++ b/gnu/packages/tcl.scm @@ -248,6 +248,51 @@ interfaces (GUIs) in the Tcl language.") utility functions and modules all written in high-level Tcl.") (license (package-license tcl)))) +(define-public tklib + (package + (name "tklib") + (version "0.6") + (source (origin + (method url-fetch) + (uri (string-append "https://core.tcl.tk/tklib/tarball/tklib-" + version ".tar.gz?uuid=tklib-0-6")) + (sha256 + (base32 + "03y0bzgwbh7nnyqkh8n00bbkq2fyblq39s3bdb6mawna0bbn0wwg")))) + (build-system gnu-build-system) + (native-inputs + `(("tcl" ,tcl))) + (propagated-inputs + `(("tcllib" ,tcllib) + ("tk" ,tk))) ; for "wish" + (native-search-paths + (list (search-path-specification + (variable "TCLLIBPATH") + (separator " ") + (files (list (string-append "lib/tklib" version)))))) + (home-page "https://www.tcl.tk/software/tklib/") + (synopsis "Tk utility modules for Tcl") + (description "Tklib is a collection of common utility functions and +modules for Tk, all written in high-level Tcl. Examples of provided widgets: +@enumerate +@item @code{chatwidget} +@item @code{datefield} +@item @code{tooltip} +@item @code{cursor} +@item @code{ipentry} +@item @code{tablelist} +@item @code{history} +@item @code{tkpiechart} +@item @code{ico} +@item @code{crosshair} +@item @code{ntext} +@item @code{plotchart} +@item @code{ctext} +@item @code{autosscroll} +@item @code{canvas} +@end enumerate") + (license (package-license tcl)))) + (define-public tclxml (package (name "tclxml") diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index add371ffa3..3251c102b0 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -486,14 +486,13 @@ netcat implementation that supports TLS.") (package (name "python-acme") ;; Remember to update the hash of certbot when updating python-acme. - (version "0.18.1") + (version "0.18.2") (source (origin (method url-fetch) (uri (pypi-uri "acme" version)) - (patches (search-patches "python-acme-dont-use-openssl-rand.patch")) (sha256 (base32 - "0ry6vhfkhds28sg232hngwfnkqihsxv9r8w92c6nz45r7w56qk0y")))) + "1xiy8m7501g5l9kpdmyvyz72nfnl72l19qkrf76fyvby7adzm3ki")))) (build-system python-build-system) (arguments `(#:phases @@ -541,7 +540,7 @@ netcat implementation that supports TLS.") (uri (pypi-uri name version)) (sha256 (base32 - "0k3bqfkjxyg0qivs4a6iz6gyqx8li4hgn8m268r72lxgq46ay2mf")))) + "16lw4n7kwnkvh9sz2f97c7ad1wwp33mg5fc332lpy5n17zpfc8h1")))) (build-system python-build-system) (arguments `(,@(substitute-keyword-arguments (package-arguments python-acme) diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm index 78e142b298..38756f06c2 100644 --- a/gnu/packages/version-control.scm +++ b/gnu/packages/version-control.scm @@ -124,14 +124,14 @@ as well as the classic centralized workflow.") (name "git") ;; XXX When updating Git, check if the special 'git:src' input to cgit needs ;; to be updated as well. - (version "2.14.1") + (version "2.14.2") (source (origin (method url-fetch) (uri (string-append "mirror://kernel.org/software/scm/git/git-" version ".tar.xz")) (sha256 (base32 - "1iic3wiihxp3l3k6d4z886v3869c3dzgddjxnd5124wy1rnlqwkg")))) + "18f70gfzwqd210806hmf94blcd7yv5h9ka6xqkpd2jhijqwp5sah")))) (build-system gnu-build-system) (native-inputs `(("native-perl" ,perl) @@ -145,7 +145,7 @@ as well as the classic centralized workflow.") (sha256 (base32 - "1whlsiicayalym4hkf01zdiqpw37gdf7c52gw9ki7bv2x3hf3g3y")))))) + "1z05a7hxxndyby3dbj3gaw91sjwmky5d1yph96jmj0fhx78m1lvd")))))) (inputs `(("curl" ,curl) ("expat" ,expat) diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index 8b7e1bda53..c72e9a452c 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -168,14 +168,14 @@ commands would.") (define-public i3-wm (package (name "i3-wm") - (version "4.14") + (version "4.14.1") (source (origin (method url-fetch) (uri (string-append "https://i3wm.org/downloads/i3-" version ".tar.bz2")) (sha256 (base32 - "1mm5jazwv4dz3k8vl1lfrcw86agpws5k9lmav1ly51qvmzivsfmf")))) + "1cazmfbbx6n8c81h6x6pdayq3mxs2ml3adz165z8vapkc72kl1nh")))) (build-system gnu-build-system) (arguments `(#:make-flags diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 0178ee1db7..9255622ca2 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -13,6 +13,7 @@ ;;; Copyright © 2016, 2017 John Darrington <jmd@gnu.org> ;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com> ;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com> +;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -39,10 +40,12 @@ #:use-module (guix build-system python) #:use-module (guix utils) #:use-module (gnu packages) + #:use-module (gnu packages anthy) #:use-module (gnu packages autotools) #:use-module (gnu packages bison) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages emacs) #:use-module (gnu packages flex) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) @@ -54,6 +57,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages libbsd) + #:use-module (gnu packages libedit) #:use-module (gnu packages linux) #:use-module (gnu packages llvm) #:use-module (gnu packages m4) @@ -62,6 +66,7 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages python) + #:use-module (gnu packages qt) #:use-module (gnu packages spice) #:use-module (gnu packages video) #:use-module (gnu packages xiph) @@ -5982,3 +5987,96 @@ disconnect from these programs and reconnect from the same or another machine, without losing any state. It can also be used to forward full desktops from X11 servers, Windows, or macOS.") (license license:gpl2+))) + +(define-public uim + (package + (name "uim") + (version "1.8.6") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/uim/uim/releases/download/uim-" + version "/uim-" version ".tar.bz2")) + (sha256 + (base32 + "0pr3rfqpxha8p6cxzdjsxbbmmr76riklzw36f68phd1zqw1sh7kv")))) + (build-system gnu-build-system) + (inputs + `(("anthy" ,anthy) + ("libedit" ,libedit) + ("libxft" ,libxft) + ("m17n-lib" ,m17n-lib))) + (native-inputs + `(("emacs" ,emacs-minimal) + ("intltool" ,intltool) + ("pkg-config" ,pkg-config))) + (arguments + `(#:modules ((guix build gnu-build-system) + (guix build utils) + (guix build emacs-utils)) + #:imported-modules (,@%gnu-build-system-modules + (guix build emacs-utils)) + #:configure-flags + (list "--with-anthy-utf8" + (string-append "--with-lispdir=" %output + "/share/emacs/site-lisp/guix.d") + ;; Set proper runpath + (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib")) + #:phases + (modify-phases %standard-phases + ;; Set path of uim-el-agent and uim-el-helper-agent executables + (add-after 'configure 'configure-uim-el + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "emacs/uim-var.el" + (("\"(uim-el-agent|uim-el-helper-agent)\"" _ executable) + (string-append "\"" (assoc-ref outputs "out") + "/bin/" executable "\""))) + #t)) + ;; Generate emacs autoloads for uim.el + (add-after 'install 'make-autoloads + (lambda* (#:key outputs #:allow-other-keys) + (emacs-generate-autoloads + ,name (string-append (assoc-ref outputs "out") + "/share/emacs/site-lisp")) + #t))))) + (home-page "https://github.com/uim/uim") + (synopsis "Multilingual input method framework") + (description "Uim is a multilingual input method library and environment. +It provides a simple, easily extensible and high code-quality input method +development platform, and useful input method environment for users of desktop +and embedded platforms.") + (license (list license:lgpl2.1+ ; scm/py.scm, pixmaps/*.{svg,png} (see pixmaps/README) + license:gpl2+ ; scm/pinyin-big5.scm + license:gpl3+ ; scm/elatin-rules.cm + license:public-domain ; scm/input-parse.scm, scm/match.scm + ;; gtk2/toolbar/eggtrayicon.{ch}, + ;; qt3/chardict/kseparator.{cpp,h}, + ;; qt3/pref/kseparator.{cpp,h} + license:lgpl2.0+ + ;; pixmaps/*.{svg,png} (see pixmaps/README), + ;; all other files + license:bsd-3)))) + +(define-public uim-gtk + (package + (inherit uim) + (name "uim-gtk") + (inputs + `(("gtk" ,gtk+) + ("gtk" ,gtk+-2) + ,@(package-inputs uim))) + (synopsis "Multilingual input method framework (GTK+ support)"))) + +(define-public uim-qt + (package + (inherit uim) + (name "uim-qt") + (inputs + `(("qt" ,qt-4) + ,@(package-inputs uim))) + (arguments + (substitute-keyword-arguments (package-arguments uim) + ((#:configure-flags configure-flags) + (append configure-flags (list "--with-qt4-immodule" + "--with-qt4"))))) + (synopsis "Multilingual input method framework (Qt support)"))) diff --git a/gnu/services/cuirass.scm b/gnu/services/cuirass.scm index 2ad5952202..c5e9fcbb22 100644 --- a/gnu/services/cuirass.scm +++ b/gnu/services/cuirass.scm @@ -2,6 +2,7 @@ ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org> ;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org> ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com> +;;; Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -61,6 +62,8 @@ (default "/var/run/cuirass/cuirass.db")) (port cuirass-configuration-port ;integer (port) (default 8081)) + (host cuirass-configuration-host ;string + (default "localhost")) (specifications cuirass-configuration-specifications) ;gexp that evaluates to specification-alist (use-substitutes? cuirass-configuration-use-substitutes? ;boolean @@ -84,6 +87,7 @@ (interval (cuirass-configuration-interval config)) (database (cuirass-configuration-database config)) (port (cuirass-configuration-port config)) + (host (cuirass-configuration-host config)) (specs (cuirass-configuration-specifications config)) (use-substitutes? (cuirass-configuration-use-substitutes? config)) (one-shot? (cuirass-configuration-one-shot? config)) @@ -100,6 +104,7 @@ #$(scheme-file "cuirass-specs.scm" specs) "--database" #$database "--port" #$(number->string port) + "--listen" #$host "--interval" #$(number->string interval) #$@(if use-substitutes? '("--use-substitutes") '()) #$@(if one-shot? '("--one-shot") '()) diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm index 959da31a60..1bc7a70277 100644 --- a/gnu/tests/base.scm +++ b/gnu/tests/base.scm @@ -544,11 +544,11 @@ in a loop. See <http://bugs.gnu.org/26931>.") (>= gid 100)))) ;; Last, the job that uses a command; allows us to test whether - ;; $PATH is sane. (Note that 'marionette-eval' stringifies objects - ;; that don't have a read syntax, hence the string.) + ;; $PATH is sane. (test-equal "root's job with command" - "#<eof>" - (wait-for-file "/root/witness-touch" marionette)) + "" + (wait-for-file "/root/witness-touch" marionette + #:read '(@ (ice-9 rdelim) read-string))) (test-end) (exit (= (test-runner-fail-count (test-runner-current)) 0))))) diff --git a/gnu/tests/install.scm b/gnu/tests/install.scm index 49743860e5..d0cc08f431 100644 --- a/gnu/tests/install.scm +++ b/gnu/tests/install.scm @@ -127,7 +127,11 @@ "Return a variant of OS where ROOTS are registered as GC roots." (operating-system (inherit os) - (services (cons (service gc-root-service-type roots) + + ;; We use this procedure for the installation OS, which already defines GC + ;; roots. Add ROOTS to those. + (services (cons (simple-service 'extra-root + gc-root-service-type roots) (operating-system-user-services os))))) diff --git a/guix/build-system/meson.scm b/guix/build-system/meson.scm index d66ec760a4..d7754e460a 100644 --- a/guix/build-system/meson.scm +++ b/guix/build-system/meson.scm @@ -67,7 +67,7 @@ #:key source inputs native-inputs outputs system target (meson (default-meson)) (ninja (default-ninja)) - (glib-or-gtk #f) + (glib-or-gtk? #f) #:allow-other-keys #:rest arguments) "Return a bag for NAME." diff --git a/guix/gnu-maintenance.scm b/guix/gnu-maintenance.scm index 796c2d6569..0de36f2f71 100644 --- a/guix/gnu-maintenance.scm +++ b/guix/gnu-maintenance.scm @@ -61,7 +61,6 @@ %gnu-updater %gnu-ftp-updater - %gnome-updater %kde-updater %xorg-updater %kernel.org-updater)) @@ -512,6 +511,9 @@ list available from %GNU-FILE-LIST-URI over HTTP(S)." (values name+version #f) (values (match:substring match 1) (match:substring match 2))))) +(define gnome-package? + (url-prefix-predicate "mirror://gnome/")) + (define (pure-gnu-package? package) "Return true if PACKAGE is a non-Emacs and non-GNOME GNU package. This excludes AucTeX, for instance, whose releases are now uploaded to @@ -522,70 +524,9 @@ releases are on gnu.org." (not (gnome-package? package)) (gnu-package? package))) -(define (url-prefix-predicate prefix) - "Return a predicate that returns true when passed a package where one of its -source URLs starts with PREFIX." - (lambda (package) - (define matching-uri? - (match-lambda - ((? string? uri) - (string-prefix? prefix uri)) - (_ - #f))) - - (match (package-source package) - ((? origin? origin) - (match (origin-uri origin) - ((? matching-uri?) #t) - (_ #f))) - (_ #f)))) - (define gnu-hosted? (url-prefix-predicate "mirror://gnu/")) -(define gnome-package? - (url-prefix-predicate "mirror://gnome/")) - -(define (latest-gnome-release package) - "Return the latest release of PACKAGE, the name of a GNOME package." - (define %not-dot - (char-set-complement (char-set #\.))) - - (define (even-minor-version? version) - (match (string-tokenize version %not-dot) - (((= string->number major) (= string->number minor) . rest) - (and minor (even? minor))) - (_ - #t))) ;cross fingers - - (define (even-numbered? file) - ;; Return true if FILE somehow denotes an even-numbered file name. The - ;; trick here is that we want this to match both directories such as - ;; "3.18.6" and actual file names such as "gtk+-3.18.6.tar.bz2". - (let-values (((name version) (package-name->name+version file))) - (even-minor-version? (or version name)))) - - (define upstream-name - ;; Some packages like "NetworkManager" have camel-case names. - (package-upstream-name package)) - - (false-if-ftp-error - (latest-ftp-release upstream-name - #:server "ftp.gnome.org" - #:directory (string-append "/pub/gnome/sources/" - upstream-name) - - - ;; <https://www.gnome.org/gnome-3/source/> explains - ;; that odd minor version numbers represent development - ;; releases, which we are usually not interested in. - #:keep-file? even-numbered? - - ;; ftp.gnome.org provides no signatures, only - ;; checksums. - #:file->signature (const #f)))) - - (define (latest-kde-release package) "Return the latest release of PACKAGE, the name of an KDE.org package." (let ((uri (string->uri (origin-uri (package-source package))))) @@ -642,13 +583,6 @@ source URLs starts with PREFIX." (pure-gnu-package? package)))) (latest latest-release*))) -(define %gnome-updater - (upstream-updater - (name 'gnome) - (description "Updater for GNOME packages") - (pred gnome-package?) - (latest latest-gnome-release))) - (define %kde-updater (upstream-updater (name 'kde) diff --git a/guix/http-client.scm b/guix/http-client.scm index 853bba4fe3..59788c1f38 100644 --- a/guix/http-client.scm +++ b/guix/http-client.scm @@ -321,7 +321,9 @@ Raise an '&http-get-error' condition if downloading fails." ;; Update the cache and return an input port. (guard (c ((http-get-error? c) (if (= 304 (http-get-error-code c)) ;"Not Modified" - cache-port + (begin + (utime file) ;update FILE's mtime + cache-port) (raise c)))) (let ((port (http-fetch uri #:text? text? #:headers headers))) diff --git a/guix/import/gnome.scm b/guix/import/gnome.scm new file mode 100644 index 0000000000..1ade63e1af --- /dev/null +++ b/guix/import/gnome.scm @@ -0,0 +1,112 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2017 Ludovic Courtès <ludo@gnu.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 (guix import gnome) + #:use-module (guix upstream) + #:use-module (guix utils) + #:use-module (guix packages) + #:use-module (guix http-client) + #:use-module (json) + #:use-module (srfi srfi-1) + #:use-module (srfi srfi-11) + #:use-module (srfi srfi-34) + #:use-module (web uri) + #:use-module (ice-9 match) + #:export (%gnome-updater)) + +;;; Commentary: +;;; +;;; This package provides not an actual importer but simply an updater for +;;; GNOME packages. It grabs package meta-data from 'cache.json' files +;;; available on ftp.gnome.org. +;;; +;;; Code: + +(define (jsonish->upstream-source name jsonish) + "Return an <upstream-source> object for package NAME, using JSONISH as the +source for metadata." + (match jsonish + ((version . dictionary) + (upstream-source + (package name) + (version version) + (urls (filter-map (lambda (extension) + (match (hash-ref dictionary extension) + (#f + #f) + ((? string? relative-url) + (string-append "mirror://gnome/sources/" + name "/" relative-url)))) + '("tar.lz" "tar.xz" "tar.bz2" "tar.gz"))))))) + +(define (latest-gnome-release package) + "Return the latest release of PACKAGE, a GNOME package, or #f if it could +not be determined." + (define %not-dot + (char-set-complement (char-set #\.))) + + (define (even-minor-version? version) + (match (string-tokenize version %not-dot) + (((= string->number major) (= string->number minor) . rest) + (and minor (even? minor))) + (_ + #t))) ;cross fingers + + (define upstream-name + ;; Some packages like "NetworkManager" have camel-case names. + (package-upstream-name package)) + + (guard (c ((http-get-error? c) + (if (= 404 (http-get-error-code c)) + #f + (raise c)))) + (let* ((port (http-fetch/cached + (string->uri (string-append + "https://ftp.gnome.org/pub/gnome/sources/" + upstream-name "/cache.json")) + + ;; ftp.gnome.org supports 'if-Modified-Since', so the local + ;; cache can expire early. + #:ttl (* 60 10))) + (json (json->scm port))) + (close-port port) + (match json + ((4 (? hash-table? releases) _ ...) + (let* ((releases (hash-ref releases upstream-name)) + (latest (hash-fold (lambda (key value result) + (cond ((even-minor-version? key) + (match result + (#f + (cons key value)) + ((newest . _) + (if (version>? key newest) + (cons key value) + result)))) + (else + result))) + #f + releases))) + (and latest + (jsonish->upstream-source upstream-name latest)))))))) + +(define %gnome-updater + (upstream-updater + (name 'gnome) + (description "Updater for GNOME packages") + (pred (url-prefix-predicate "mirror://gnome/")) + (latest latest-gnome-release))) diff --git a/guix/upstream.scm b/guix/upstream.scm index 5083e6b805..6ad52ac960 100644 --- a/guix/upstream.scm +++ b/guix/upstream.scm @@ -45,6 +45,7 @@ upstream-source-signature-urls upstream-source-archive-types + url-prefix-predicate coalesce-sources upstream-updater @@ -81,6 +82,24 @@ (signature-urls upstream-source-signature-urls ;#f | list of strings (default #f))) +(define (url-prefix-predicate prefix) + "Return a predicate that returns true when passed a package where one of its +source URLs starts with PREFIX." + (lambda (package) + (define matching-uri? + (match-lambda + ((? string? uri) + (string-prefix? prefix uri)) + (_ + #f))) + + (match (package-source package) + ((? origin? origin) + (match (origin-uri origin) + ((? matching-uri?) #t) + (_ #f))) + (_ #f)))) + (define (upstream-source-archive-types release) "Return the available types of archives for RELEASE---a list of strings such as \"gz\" or \"xz\"." |