From 6870216758eba3a5a9772dbf2ce050e4691de0a3 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 11 Jul 2015 02:45:29 -0400 Subject: gnu: gnome-terminal: Move dconf to propagated-inputs. * gnu/packages/gnome.scm (gnome-terminal): Move dconf from inputs to propagated-inputs. --- gnu/packages/gnome.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 597b53e2c4..d669d5eb3c 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2090,11 +2090,12 @@ floating in an ocean using only your brain and a little bit of luck.") ("desktop-file-utils" ,desktop-file-utils) ("intltool" ,intltool) ("itstool" ,itstool))) + (propagated-inputs + `(("dconf" ,dconf))) (inputs `(("gtk+" ,gtk+) ("vte" ,vte) ("gnutls" ,gnutls) - ("dconf" ,dconf) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("util-linux" ,util-linux) ("vala" ,vala))) -- cgit v1.2.3 From d43002f64599fb80294d4c00e3a682a2776c885c Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sat, 11 Jul 2015 11:45:34 +0200 Subject: install: Add iproute2 to the installation image. Fixes . Reported by . * gnu/system/install.scm (installation-os)[packages]: Add IPROUTE2. --- gnu/system/install.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 6f4116ef9b..3d0b151fb8 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -342,7 +342,7 @@ Use Alt-F2 for documentation. parted ddrescue grub ;mostly so xrefs to its manual work cryptsetup - wireless-tools iw wpa-supplicant-light + wireless-tools iw wpa-supplicant-light iproute2 ;; XXX: We used to have GNU fdisk here, but as of version ;; 2.0.0a, that pulls Guile 1.8, which takes unreasonable ;; space; furthermore util-linux's fdisk is already -- cgit v1.2.3 From a60cd281d1a93fad4764d043e219b4edcdfa6c53 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 11 Jul 2015 04:23:46 -0400 Subject: gnu: ntp: Update to 4.2.8p3; use system libevent. * gnu/packages/ntp.scm (ntp): Update to 4.2.8p3. [source]: Add snippet to remove bundled copy of libevent. [inputs]: Add libevent. [arguments]: Add 'disable-network-test' phase. --- gnu/packages/ntp.scm | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/ntp.scm b/gnu/packages/ntp.scm index d4a12e37c9..e2b43e91d7 100644 --- a/gnu/packages/ntp.scm +++ b/gnu/packages/ntp.scm @@ -24,6 +24,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages pkg-config) #:use-module (gnu packages tls) + #:use-module (gnu packages libevent) #:use-module ((guix licenses) #:prefix l:) #:use-module (guix packages) #:use-module (guix utils) @@ -34,7 +35,7 @@ (define-public ntp (package (name "ntp") - (version "4.2.8p2") + (version "4.2.8p3") (source (origin (method url-fetch) (uri (string-append @@ -43,17 +44,39 @@ "/ntp-" version ".tar.gz")) (sha256 (base32 - "0ccv9kh5asxpk7bjn73vwrqimbkbfl743bgx0km47bfajl7bqs8d")))) + "13zkzcvjm5kbxl4xbcmaq07slplhmpkgahzcqnqlba3cxpra9341")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Remove the bundled copy of libevent, but we must keep + ;; sntp/libevent/build-aux since configure.ac contains + ;; AC_CONFIG_AUX_DIR([sntp/libevent/build-aux]) + (rename-file "sntp/libevent/build-aux" + "sntp/libevent:build-aux") + (delete-file-recursively "sntp/libevent") + (mkdir "sntp/libevent") + (rename-file "sntp/libevent:build-aux" + "sntp/libevent/build-aux") + #t)))) (native-inputs `(("which" ,which) ("pkg-config" ,pkg-config))) (inputs `(("openssl" ,openssl) + ("libevent" ,libevent) ;; Build with POSIX capabilities support on GNU/Linux. This allows 'ntpd' ;; to run as non-root (when invoked with '-u'.) ,@(if (string-suffix? "-linux" (or (%current-target-system) (%current-system))) `(("libcap" ,libcap)) '()))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'disable-network-test + (lambda _ + (substitute* "tests/libntp/Makefile.in" + (("test-decodenetnum\\$\\(EXEEXT\\) ") "")) + #t))))) (build-system gnu-build-system) (synopsis "Real time clock synchonization system") (description "NTP is a system designed to synchronize the clocks of -- cgit v1.2.3 From e52ecc74c92f440561ed0da895c1882537e498fc Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Thu, 9 Jul 2015 12:35:24 -0400 Subject: gnu: openssl: Update to 1.0.2d. * gnu/packages/tls.scm (openssl): Update to 1.0.2d. --- gnu/packages/tls.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm index 9cd47cd449..3d0000e3fa 100644 --- a/gnu/packages/tls.scm +++ b/gnu/packages/tls.scm @@ -178,14 +178,14 @@ required structures.") (define-public openssl (package (name "openssl") - (version "1.0.2c") + (version "1.0.2d") (source (origin (method url-fetch) (uri (string-append "ftp://ftp.openssl.org/source/openssl-" version ".tar.gz")) (sha256 (base32 - "10vasdg52qiyqvgbp14n9z7ghglmhzvag9qpiz2nfqssycvvlf00")) + "1j58r7rdj9fz2lanir8ajbx4bspb5jnm5ikl6dq8lql5fx43c737")) (patches (list (search-patch "openssl-runpath.patch"))))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) -- cgit v1.2.3 From f8facc18eddbcf31700214fe224cbbf3add6fede Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 11 Jul 2015 16:38:33 -0400 Subject: install: Fix variable reference to iproute2 package. This is a followup to commit d43002f64599fb80294d4c00e3a682a2776c885c. * gnu/system/install.scm (installation-os)[packages]: Refer to IPROUTE instead of IPROUTE2. --- gnu/system/install.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/system/install.scm b/gnu/system/install.scm index 3d0b151fb8..359d1265e5 100644 --- a/gnu/system/install.scm +++ b/gnu/system/install.scm @@ -342,7 +342,7 @@ Use Alt-F2 for documentation. parted ddrescue grub ;mostly so xrefs to its manual work cryptsetup - wireless-tools iw wpa-supplicant-light iproute2 + wireless-tools iw wpa-supplicant-light iproute ;; XXX: We used to have GNU fdisk here, but as of version ;; 2.0.0a, that pulls Guile 1.8, which takes unreasonable ;; space; furthermore util-linux's fdisk is already -- cgit v1.2.3 From 087a4e9c43983f6e4996e9cd59ff7bb3d973f505 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 11 Jul 2015 18:38:44 -0400 Subject: gnu: openssh: Update to 6.9p1. * gnu/packages/ssh.scm (openssh): Update to 6.9p1. [source]: Use http mirrors. Add mirror from Erlangen. --- gnu/packages/ssh.scm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm index 0a1a841922..bf2e8896d6 100644 --- a/gnu/packages/ssh.scm +++ b/gnu/packages/ssh.scm @@ -122,16 +122,18 @@ a server that supports the SSH-2 protocol.") (define-public openssh (package (name "openssh") - (version "6.8p1") + (version "6.9p1") (source (origin (method url-fetch) (uri (let ((tail (string-append name "-" version ".tar.gz"))) - (list (string-append "ftp://ftp.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/" + (list (string-append "http://openbsd.cs.fau.de/pub/OpenBSD/OpenSSH/portable/" tail) - (string-append "ftp://ftp2.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/" + (string-append "http://ftp.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/" + tail) + (string-append "http://ftp2.fr.openbsd.org/pub/OpenBSD/OpenSSH/portable/" tail)))) (sha256 (base32 - "03hnrqvjq6ghg1mp3gkarfxh6g3x1n1vjrzpbc5lh9717vklrxiz")))) + "1zkci5nbpb4frmzj2vr3kv9j47x2h72kvybcpr0d8mzk73sls1vf")))) (build-system gnu-build-system) (inputs `(("groff" ,groff) ("openssl" ,openssl) -- cgit v1.2.3 From c7bdc6bb7dbab065d07f887db37909081e1703f5 Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Sat, 11 Jul 2015 19:02:58 -0400 Subject: gnu: polkit: Update to 0.113. * gnu/packages/polkit.scm (polkit): Update to 0.113. --- gnu/packages/polkit.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/polkit.scm b/gnu/packages/polkit.scm index be7302ed49..172b0e128d 100644 --- a/gnu/packages/polkit.scm +++ b/gnu/packages/polkit.scm @@ -35,7 +35,7 @@ (define-public polkit (package (name "polkit") - (version "0.112") + (version "0.113") (source (origin (method url-fetch) (uri (string-append @@ -43,7 +43,7 @@ name "-" version ".tar.gz")) (sha256 (base32 - "1xkary7yirdcjdva950nqyhmsz48qhrdsr78zciahj27p8yg95fn")) + "109w86kfqrgz83g9ivggplmgc77rz8kx8646izvm2jb57h4rbh71")) (patches (list (search-patch "polkit-drop-test.patch"))))) (build-system gnu-build-system) (inputs -- cgit v1.2.3 From fd83aa000c111f457528deb3a87d0f9e920e5801 Mon Sep 17 00:00:00 2001 From: Claes Wallin Date: Thu, 9 Jul 2015 00:28:34 +0200 Subject: gnu: pumpa: Update to 0.9.1. * gnu/packages/pumpio.scm (pumpa): Update to 0.9.1. Change URL. Signed-off-by: Mathieu Lirzin --- gnu/packages/pumpio.scm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/pumpio.scm b/gnu/packages/pumpio.scm index 4a6375f3f2..22c631edf9 100644 --- a/gnu/packages/pumpio.scm +++ b/gnu/packages/pumpio.scm @@ -30,15 +30,15 @@ (define-public pumpa (package (name "pumpa") - (version "0.9") + (version "0.9.1") (source (origin (method git-fetch) ; no source tarballs (uri (git-reference - (url "https://gitorious.org/pumpa/pumpa.git") + (url "git://pumpa.branchable.com/") (commit (string-append "v" version)))) (sha256 (base32 - "0v55xq17wnc9mvpmrm5r3rjrsg9npnjv1lznbz8ppk77ba8pwimy")))) + "14s0m46yqph8bs5rjpmiq42f020j9l3mygan2zj93z6qzypwd07f")))) (build-system gnu-build-system) (arguments '(#:phases (alist-replace -- cgit v1.2.3 From 4e2bd414f8bba17f2f160629e94853997e76cd89 Mon Sep 17 00:00:00 2001 From: Claes Wallin Date: Thu, 25 Jun 2015 12:00:06 +0200 Subject: gnu: Add skalibs. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/package/skarnet.scm (skalibs): New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. Signed-off-by: Ludovic Courtès --- gnu-system.am | 1 + gnu/packages/skarnet.scm | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 gnu/packages/skarnet.scm (limited to 'gnu') diff --git a/gnu-system.am b/gnu-system.am index d6369b5ddd..27f8923314 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -272,6 +272,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/search.scm \ gnu/packages/serveez.scm \ gnu/packages/shishi.scm \ + gnu/packages/skarnet.scm \ gnu/packages/skribilo.scm \ gnu/packages/slang.scm \ gnu/packages/slim.scm \ diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm new file mode 100644 index 0000000000..41ffb83ad9 --- /dev/null +++ b/gnu/packages/skarnet.scm @@ -0,0 +1,49 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Claes Wallin +;;; +;;; 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 . + +(define-module (gnu packages skarnet) + #:use-module (gnu packages) + #:use-module (guix licenses) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu)) + +(define-public skalibs + (package + (name "skalibs") + (version "2.3.5.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://skarnet.org/software/skalibs/skalibs-" + version ".tar.gz")) + (sha256 + (base32 + "1m31wph4qr4mqgv51nzwd9nw0x5vmpkcxr48i216wn3dpy3mvxwy")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags '("--enable-force-devr") ; do not analyze /dev/random + #:tests? #f)) ; no tests exist + (home-page "http://skarnet.org/software/skalibs/") + (synopsis "Platform abstraction libraries for skarnet.org software") + (description + "This package provides lightweight C libraries isolating the developer +from portability issues, providing a unified systems API on all platforms, +including primitive data types, cryptography, and POSIX concepts like sockets +and file system operations. It is used by all skarnet.org software.") + (license isc))) -- cgit v1.2.3 From e662d6448138eaa275c8d25297cd494ad47c8426 Mon Sep 17 00:00:00 2001 From: Claes Wallin Date: Thu, 25 Jun 2015 14:47:41 +0200 Subject: gnu: Add execline. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/package/skarnet.scm (execline): New variable. Signed-off-by: Ludovic Courtès --- gnu/packages/skarnet.scm | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm index 41ffb83ad9..e1518feeb4 100644 --- a/gnu/packages/skarnet.scm +++ b/gnu/packages/skarnet.scm @@ -47,3 +47,46 @@ from portability issues, providing a unified systems API on all platforms, including primitive data types, cryptography, and POSIX concepts like sockets and file system operations. It is used by all skarnet.org software.") (license isc))) + +(define-public execline + (package + (name "execline") + (version "2.1.2.2") + (source + (origin + (method url-fetch) + (uri (string-append "http://skarnet.org/software/execline/execline-" + version ".tar.gz")) + (sha256 + (base32 + "01pckac5zijf6icrhwicbmq92yq68gfkf1yl03rr2v4q3cn8r85f")))) + (build-system gnu-build-system) + (inputs `(("skalibs" ,skalibs))) + (arguments + '(#:configure-flags (list + (string-append "--with-lib=" + (assoc-ref %build-inputs "skalibs") + "/lib/skalibs") + (string-append "--with-sysdeps=" + (assoc-ref %build-inputs "skalibs") + "/lib/skalibs/sysdeps")) + #:phases (modify-phases %standard-phases + (add-after + 'install 'post-install + (lambda* (#:key inputs outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (bin (string-append out "/bin"))) + (wrap-program (string-append bin "/execlineb") + `("PATH" ":" prefix (,bin))))))) + #:tests? #f)) ; No tests exist. + (home-page "http://skarnet.org/software/execline/") + (license isc) + (synopsis "Non-interactive shell-like language with minimal overhead") + (description + "Execline is a (non-interactive) scripting language, separated into a +parser (execlineb) and a set of commands meant to execute one another in a +chain-execution fashion, storing the whole script in the argument array. +It features conditional loops, getopt-style option handling, file name +globbing, redirection and other shell concepts, expressed as discrete commands +rather than in special syntax, minimizing runtime footprint and +complexity."))) -- cgit v1.2.3 From 98b385d15bbaa66785490337259577969cc355dc Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Sun, 12 Jul 2015 23:09:44 +0200 Subject: gnu: Add 'libstdc++-doc'. * gnu/packages/gcc.scm (make-libstdc++-doc): New procedure. (libstdc++-doc-4.9, libstdc++-doc-5.1): New variables. --- gnu/packages/gcc.scm | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 39e99c1228..d2fe122f62 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -27,6 +27,10 @@ #:use-module (gnu packages compression) #:use-module (gnu packages multiprecision) #:use-module (gnu packages texinfo) + #:use-module (gnu packages doxygen) + #:use-module (gnu packages xml) + #:use-module (gnu packages docbook) + #:use-module (gnu packages graphviz) #:use-module (gnu packages elf) #:use-module (gnu packages perl) #:use-module (guix packages) @@ -548,6 +552,65 @@ using compilers other than GCC." (define-public gcc-objc++-4.8 (custom-gcc gcc-4.8 "gcc-objc++" '("obj-c++"))) +(define (make-libstdc++-doc gcc) + "Return a package with the libstdc++ documentation for GCC." + (package + (inherit gcc) + (name "libstdc++-doc") + (version (package-version gcc)) + (synopsis "GNU libstdc++ documentation") + (outputs '("out")) + (native-inputs `(("doxygen" ,doxygen) + ("texinfo" ,texinfo) + ("libxml2" ,libxml2) + ("libxslt" ,libxslt) + ("docbook-xml" ,docbook-xml) + ("docbook-xsl" ,docbook-xsl) + ("graphviz" ,graphviz))) ;for 'dot', invoked by 'doxygen' + (inputs '()) + (propagated-inputs '()) + (arguments + '(#:out-of-source? #t + #:tests? #f ;it's just documentation + #:phases (modify-phases %standard-phases + (add-before 'configure 'chdir + (lambda _ + (chdir "libstdc++-v3"))) + (add-before 'configure 'set-xsl-directory + (lambda* (#:key inputs #:allow-other-keys) + (let ((docbook (assoc-ref inputs "docbook-xsl"))) + (substitute* (find-files "doc" + "^Makefile\\.in$") + (("@XSL_STYLE_DIR@") + (string-append + docbook "/xml/xsl/" + (string-drop + docbook + (+ 34 + (string-length + (%store-directory)))))))))) + (replace 'build + (lambda _ + ;; XXX: There's also a 'doc-info' target, but it + ;; relies on docbook2X, which itself relies on + ;; DocBook 4.1.2, which is not really usable + ;; (lacks a catalog.xml.) + (zero? (system* "make" + "doc-html" + "doc-man")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (zero? (system* "make" + "doc-install-html" + "doc-install-man")))))))))) + +(define-public libstdc++-doc-4.9 + (make-libstdc++-doc gcc-4.9)) + +(define-public libstdc++-doc-5.1 + (make-libstdc++-doc gcc-5.1)) + (define-public isl (package (name "isl") -- cgit v1.2.3 From f0afb0c86f3763655f7c1173a8cd5deb7ce3d6f8 Mon Sep 17 00:00:00 2001 From: David Hashe Date: Thu, 9 Jul 2015 23:43:56 -0500 Subject: gnu: Add rhythmbox. * gnu/packages/gnome.scm (rhythmbox): New variable. --- gnu/packages/gnome.scm | 86 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index d669d5eb3c..879c27e86a 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -2915,3 +2915,89 @@ which can read a large number of file formats.") ;; to be used and distributed together with GStreamer and Totem. See ;; file://COPYING in the source distribution for details. (license license:gpl2+))) + +(define-public rhythmbox + (package + (name "rhythmbox") + (version "3.2.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor version) "/" + name "-" version ".tar.xz")) + (sha256 + (base32 + "0f3radhlji7rxl760yl2vm49fvfslympxrpm8497acbmbd7wlhxz")))) + (build-system glib-or-gtk-build-system) + (arguments + `(#:configure-flags + (list "--enable-lirc" + "--enable-python" + "--enable-vala" + "--with-brasero" + "--with-gudev" + "--with-libsecret") + #:phases + (modify-phases %standard-phases + (add-after + 'install 'wrap-rhythmbox + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH")) + (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")) + (grl-plugin-path (getenv "GRL_PLUGIN_PATH"))) + (wrap-program (string-append out "/bin/rhythmbox") + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)) + `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)) + `("GRL_PLUGIN_PATH" ":" prefix (,grl-plugin-path)))) + #t))))) + (propagated-inputs + `(("dconf" ,dconf))) + (native-inputs + `(("intltool" ,intltool) + ("glib" ,glib "bin") + ("gobject-introspection" ,gobject-introspection) + ("desktop-file-utils" ,desktop-file-utils) + ("pkg-config" ,pkg-config))) + (inputs + `(("json-glib" ,json-glib) + ("tdb" ,tdb) + ("gnome-desktop" ,gnome-desktop) + ("python" ,python) + ("python-pygobject" ,python2-pygobject) + ("vala" ,vala) + ("gmime" ,gmime) + ("nettle" ,nettle) + ("itstool" ,itstool) + ("adwaita-icon-theme" ,adwaita-icon-theme) + ("grilo" ,grilo) + ("grilo-plugins" ,grilo-plugins) + ("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base) + ("gst-plugins-good" ,gst-plugins-good) + ("eudev" ,eudev) + ("totem-pl-parser" ,totem-pl-parser) + ;;("libmtp" ,libmtp) FIXME: Not detected + ("libsecret" ,libsecret) + ("libsoup" ,libsoup) + ("libnotify" ,libnotify) + ("libpeas" ,libpeas) + ("lirc" ,lirc) + ;; TODO: clutter* only used by visualizer plugin, which also requires mx + ;;("clutter" ,clutter) + ;;("clutter-gtk" ,clutter-gtk) + ;;("clutter-gst" ,clutter-gst) + ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) + ("atk" ,atk) + ("pango" ,pango) + ("gtk+" ,gtk+) + ;; TODO: + ;; * libgpod + ;; * mx + ;; * webkit + ("brasero" ,brasero))) + (home-page "https://wiki.gnome.org/Apps/Rhythmbox") + (synopsis "Music player for GNOME") + (description "Rhythmbox is a music playing application for GNOME. It +supports playlists, song ratings, and any codecs installed through gstreamer.") + (license license:gpl2+))) -- cgit v1.2.3 From b57ec5f6cd1a4252badd92c5aa8bcac4e1dfa96e Mon Sep 17 00:00:00 2001 From: Mathieu Lirzin Date: Mon, 13 Jul 2015 16:10:40 +0200 Subject: gnu: file-systems: Fix typo. * gnu/system/file-systems.scm (%container-file-systems): Fix typo in a comment. --- gnu/system/file-systems.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index a06c173a70..33926444b6 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -208,7 +208,7 @@ initrd code." ;; https://github.com/docker/libcontainer/blob/master/SPEC.md#filesystem (define %container-file-systems (list - ;; Psuedo-terminal file system. + ;; Pseudo-terminal file system. (file-system (device "none") (mount-point "/dev/pts") -- cgit v1.2.3 From 31e0ed9592a895d1c53294d22f8ca1ba85f33227 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Wed, 8 Jul 2015 23:18:40 +0200 Subject: gnu: boost: Update to 1.58.0. * gnu/packages/boost.scm (boost): Update to 1.58.0. --- gnu/packages/boost.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm index cb142fdb02..1d942603e5 100644 --- a/gnu/packages/boost.scm +++ b/gnu/packages/boost.scm @@ -33,7 +33,7 @@ (define-public boost (package (name "boost") - (version "1.57.0") + (version "1.58.0") (source (origin (method url-fetch) (uri (string-append @@ -42,7 +42,7 @@ ".tar.bz2")) (sha256 (base32 - "0rs94vdmg34bwwj23fllva6mhrml2i7mvmlb11zyrk1k5818q34i")))) + "1rfkqxns60171q62cppiyzj8pmsbwp1l8jd7p6crriryqd7j1z7x")))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) (native-inputs -- cgit v1.2.3 From 8d662672fcc29d527e22120c820b447b29c210f3 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Fri, 10 Jul 2015 15:11:24 +0200 Subject: gnu: boost: Patch to avoid -m32 flag on mips. * gnu/packages/patches/boost-mips-avoid-m32.patch: New file. * gnu-system.am (dist_patch_DATA): Register patch. * gnu/packages/boost.scm (boost): Use it. --- gnu-system.am | 1 + gnu/packages/boost.scm | 3 ++- gnu/packages/patches/boost-mips-avoid-m32.patch | 15 +++++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/boost-mips-avoid-m32.patch (limited to 'gnu') diff --git a/gnu-system.am b/gnu-system.am index 27f8923314..4f25f2850f 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -392,6 +392,7 @@ dist_patch_DATA = \ gnu/packages/patches/binutils-ld-new-dtags.patch \ gnu/packages/patches/binutils-loongson-workaround.patch \ gnu/packages/patches/bitlbee-configure-doc-fix.patch \ + gnu/packages/patches/boost-mips-avoid-m32.patch \ gnu/packages/patches/calibre-drop-unrar.patch \ gnu/packages/patches/calibre-no-updates-dialog.patch \ gnu/packages/patches/cdparanoia-fpic.patch \ diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm index 1d942603e5..d3b171245d 100644 --- a/gnu/packages/boost.scm +++ b/gnu/packages/boost.scm @@ -42,7 +42,8 @@ ".tar.bz2")) (sha256 (base32 - "1rfkqxns60171q62cppiyzj8pmsbwp1l8jd7p6crriryqd7j1z7x")))) + "1rfkqxns60171q62cppiyzj8pmsbwp1l8jd7p6crriryqd7j1z7x")) + (patches (list (search-patch "boost-mips-avoid-m32.patch"))))) (build-system gnu-build-system) (inputs `(("zlib" ,zlib))) (native-inputs diff --git a/gnu/packages/patches/boost-mips-avoid-m32.patch b/gnu/packages/patches/boost-mips-avoid-m32.patch new file mode 100644 index 0000000000..811c9fb3aa --- /dev/null +++ b/gnu/packages/patches/boost-mips-avoid-m32.patch @@ -0,0 +1,15 @@ +The following patch prevents the use of the -m32 flag on mips, where it +is not understood by gcc, as well as other non-x86 architectures. + +diff -u -r boost_1_58_0.orig/tools/build/src/tools/gcc.jam boost_1_58_0/tools/build/src/tools/gcc.jam +--- boost_1_58_0.orig/tools/build/src/tools/gcc.jam 2015-04-04 19:25:07.000000000 +0200 ++++ boost_1_58_0/tools/build/src/tools/gcc.jam 2015-07-10 01:08:19.822733823 +0200 +@@ -451,7 +451,7 @@ + else + { + local arch = [ feature.get-values architecture : $(properties) ] ; +- if $(arch) != arm ++ if $(arch) = x86 + { + if $(model) = 32 + { -- cgit v1.2.3 From 28dbc0475008caa2dd967c697ddff87c36fbd58c Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Mon, 13 Jul 2015 15:04:54 -0400 Subject: gnu: linux-libre: Update to 4.1.2. * gnu/packages/linux.scm (linux-libre): Update to 4.1.2. --- gnu/packages/linux.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index 289b80ea38..5763439ba3 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -210,7 +210,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." #f))) (define-public linux-libre - (let* ((version "4.1.1") + (let* ((version "4.1.2") (build-phase '(lambda* (#:key system inputs #:allow-other-keys #:rest args) ;; Apply the neat patch. @@ -283,7 +283,7 @@ for SYSTEM, or #f if there is no configuration for SYSTEM." (uri (linux-libre-urls version)) (sha256 (base32 - "12fdrawzjqhlmjvw79iy9419pf7m3k29xcjri57i4ynaf3yfzkk0")))) + "0clgjpcw1xzqa7jpm6k5fafg3wnc28mzyar3xgr4vbm6zb61fl7k")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl) ("bc" ,bc) -- cgit v1.2.3 From 0577ddc45d9c1b19728a60348bc6f93de0a8f725 Mon Sep 17 00:00:00 2001 From: Jeff Mickey Date: Thu, 9 Jul 2015 17:39:42 -0700 Subject: gnu: Add rc. * gnu/packages/rc.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/rc.scm | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 gnu/packages/rc.scm (limited to 'gnu') diff --git a/gnu-system.am b/gnu-system.am index 4f25f2850f..09f252ff1a 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -256,6 +256,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/qemu.scm \ gnu/packages/qt.scm \ gnu/packages/ratpoison.scm \ + gnu/packages/rc.scm \ gnu/packages/rdesktop.scm \ gnu/packages/rdf.scm \ gnu/packages/readline.scm \ diff --git a/gnu/packages/rc.scm b/gnu/packages/rc.scm new file mode 100644 index 0000000000..d3edf9e997 --- /dev/null +++ b/gnu/packages/rc.scm @@ -0,0 +1,72 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Jeff Mickey +;;; +;;; 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 . + +(define-module (gnu packages rc) + #:use-module (gnu packages autotools) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages readline) + #:use-module (guix build-system gnu) + #:use-module (guix git-download) + #:use-module (guix licenses) + #:use-module (guix packages)) + +(define-public rc + (package + (name "rc") + (version "1.7.4") + (source (origin + (method git-fetch) + (uri (git-reference + (url "git://github.com/rakitzis/rc.git") + ;; commit name 'release: rc-1.7.4' + (commit "c884da53a7c885d46ace2b92de78946855b18e92"))) + (sha256 + (base32 + "00mgzvrrh9w96xa85g4gjbsvq02f08k4jwjcdnxq7kyh5xgiw95l")) + (file-name (string-append name "-" version "-checkout")))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags + '("--with-edit=gnu") + #:phases + (modify-phases %standard-phases + (add-after + 'unpack 'autoreconf + (lambda _ (zero? (system* "autoreconf" "-vfi")))) + (add-before + 'autoreconf 'patch-trip.rc + (lambda _ + (substitute* "trip.rc" + (("/bin/pwd") (which "pwd")) + (("/bin/sh") (which "sh")) + (("/bin/rm") (which "rm")) + (("/bin\\)") (string-append (dirname (which "rm")) ")"))) + #t))))) + (inputs `(("readline" ,readline) + ("perl" ,perl))) + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (synopsis "Alternative implementation of the rc shell by Byron Rakitzis") + (description + "This is a reimplementation by Byron Rakitzis of the Plan 9 shell. It +has a small feature set similar to a traditional Bourne shell.") + (home-page "http://github.com/rakitzis/rc") + (license zlib))) -- cgit v1.2.3 From 2de3cd8972be9181a727105ee3b0b35b24cf5317 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 13 Jul 2015 22:30:01 +0200 Subject: file-systems: Use (guix build syscalls) at build time if needed. * gnu/build/file-systems.scm: Wrap 'module-use!' statement in 'eval-when'. --- gnu/build/file-systems.scm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'gnu') diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index 04431ba596..5814caf215 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -53,9 +53,10 @@ ;; 'mount' is already defined in the statically linked Guile used for initial ;; RAM disks, but in all other cases the (guix build syscalls) module contains ;; the mount binding. -(unless (defined? 'mount) - (module-use! (current-module) - (resolve-interface '(guix build syscalls)))) +(eval-when (expand load eval) + (unless (defined? 'mount) + (module-use! (current-module) + (resolve-interface '(guix build syscalls))))) ;; Linux mount flags, from libc's . (define MS_RDONLY 1) -- cgit v1.2.3 From f86863752767a644a5307a605c5a512068ac4b56 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 14 Jul 2015 12:28:19 +0200 Subject: gnu: nss: Upgrade to 3.19.2. * gnu/packages/gnuzilla.scm (nss): Upgrade to 3.19.2. --- gnu/packages/gnuzilla.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index d84275e78d..d76bf93b8f 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -129,7 +129,7 @@ in the Mozilla clients.") (define-public nss (package (name "nss") - (version "3.19.1") + (version "3.19.2") (source (origin (method url-fetch) (uri (let ((version-with-underscores @@ -140,7 +140,7 @@ in the Mozilla clients.") "nss-" version ".tar.gz"))) (sha256 (base32 - "1zrgqlli01gsg2a5w4bk2p0q3aagi5dhd31yirnj04zca6ap1gmp")) + "1bn9wbf52z4423134hpkyvcxq1568fvzmkybv2d49n31iwz6c1hk")) ;; Create nss.pc and nss-config. (patches (list (search-patch "nss-pkgconfig.patch"))))) (build-system gnu-build-system) -- cgit v1.2.3 From 0ec5ee94861980a6957d210adf1903ea96202dd9 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 14 Jul 2015 12:34:38 +0200 Subject: file-systems: Implement partition lookup by UUID. * gnu/build/file-systems.scm (read-ext2-superblock*, partition-predicate): New procedures. (partition-label-predicate): Rewrite in terms of 'partition-predicate'. (partition-uuid-predicate, find-partition-by-uuid, uuid->string): New procedures. (%network-byte-order): New macro. (canonicalize-device-spec)[canonical-title]: Check whether SPEC is a string. [resolve]: New procedure. Add 'uuid' case and use it. --- gnu/build/file-systems.scm | 124 +++++++++++++++++++++++++++++++-------------- 1 file changed, 85 insertions(+), 39 deletions(-) (limited to 'gnu') diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm index 5814caf215..c58d23cfbd 100644 --- a/gnu/build/file-systems.scm +++ b/gnu/build/file-systems.scm @@ -22,13 +22,16 @@ #:use-module (rnrs bytevectors) #:use-module (ice-9 match) #:use-module (ice-9 rdelim) + #:use-module (ice-9 format) #:use-module (system foreign) #:autoload (system repl repl) (start-repl) #:use-module (srfi srfi-1) #:use-module (srfi srfi-26) #:export (disk-partitions partition-label-predicate + partition-uuid-predicate find-partition-by-label + find-partition-by-uuid canonicalize-device-spec MS_RDONLY @@ -159,29 +162,42 @@ if DEVICE does not contain an ext2 file system." (loop (cons name parts)) (loop parts)))))))))) -(define (partition-label-predicate label) - "Return a procedure that, when applied to a partition name such as \"sda1\", -return #t if that partition's volume name is LABEL." - (lambda (part) - (let* ((device (string-append "/dev/" part)) - (sblock (catch 'system-error - (lambda () - (read-ext2-superblock device)) - (lambda args - ;; When running on the hand-made /dev, - ;; 'disk-partitions' could return partitions for which - ;; we have no /dev node. Handle that gracefully. - (if (= ENOENT (system-error-errno args)) - (begin - (format (current-error-port) - "warning: device '~a' not found~%" - device) - #f) - (apply throw args)))))) - (and sblock - (let ((volume (ext2-superblock-volume-name sblock))) - (and volume - (string=? volume label))))))) +(define (read-ext2-superblock* device) + "Like 'read-ext2-superblock', but return #f when DEVICE does not exist +instead of throwing an exception." + (catch 'system-error + (lambda () + (read-ext2-superblock device)) + (lambda args + ;; When running on the hand-made /dev, + ;; 'disk-partitions' could return partitions for which + ;; we have no /dev node. Handle that gracefully. + (if (= ENOENT (system-error-errno args)) + (begin + (format (current-error-port) + "warning: device '~a' not found~%" device) + #f) + (apply throw args))))) + +(define (partition-predicate field =) + "Return a predicate that returns true if the FIELD of an ext2 superblock is += to the given value." + (lambda (expected) + "Return a procedure that, when applied to a partition name such as \"sda1\", +returns #t if that partition's volume name is LABEL." + (lambda (part) + (let* ((device (string-append "/dev/" part)) + (sblock (read-ext2-superblock* device))) + (and sblock + (let ((actual (field sblock))) + (and actual + (= actual expected)))))))) + +(define partition-label-predicate + (partition-predicate ext2-superblock-volume-name string=?)) + +(define partition-uuid-predicate + (partition-predicate ext2-superblock-uuid bytevector=?)) (define (find-partition-by-label label) "Return the first partition found whose volume name is LABEL, or #f if none @@ -190,6 +206,28 @@ were found." (disk-partitions)) (cut string-append "/dev/" <>))) +(define (find-partition-by-uuid uuid) + "Return the first partition whose unique identifier is UUID (a bytevector), +or #f if none was found." + (and=> (find (partition-uuid-predicate uuid) + (disk-partitions)) + (cut string-append "/dev/" <>))) + +(define-syntax %network-byte-order + (identifier-syntax (endianness big))) + +(define (uuid->string uuid) + "Convert UUID, a 16-byte bytevector, to its string representation, something +like \"6b700d61-5550-48a1-874c-a3d86998990e\"." + ;; See . + (let ((time-low (bytevector-uint-ref uuid 0 %network-byte-order 4)) + (time-mid (bytevector-uint-ref uuid 4 %network-byte-order 2)) + (time-hi (bytevector-uint-ref uuid 6 %network-byte-order 2)) + (clock-seq (bytevector-uint-ref uuid 8 %network-byte-order 2)) + (node (bytevector-uint-ref uuid 10 %network-byte-order 6))) + (format #f "~8,'0x-~4,'0x-~4,'0x-~4,'0x-~12,'0x" + time-low time-mid time-hi clock-seq node))) + (define* (canonicalize-device-spec spec #:optional (title 'any)) "Return the device name corresponding to SPEC. TITLE is a symbol, one of the following: @@ -198,6 +236,8 @@ the following: \"/dev/sda1\"; • 'label', in which case SPEC is known to designate a partition label--e.g., \"my-root-part\"; + • 'uuid', in which case SPEC must be a UUID (a 16-byte bytevector) + designating a partition; • 'any', in which case SPEC can be anything. " (define max-trials @@ -210,30 +250,36 @@ the following: (define canonical-title ;; The realm of canonicalization. (if (eq? title 'any) - (if (string-prefix? "/" spec) - 'device - 'label) + (if (string? spec) + (if (string-prefix? "/" spec) + 'device + 'label) + 'uuid) title)) + (define (resolve find-partition spec fmt) + (let loop ((count 0)) + (let ((device (find-partition spec))) + (or device + ;; Some devices take a bit of time to appear, most notably USB + ;; storage devices. Thus, wait for the device to appear. + (if (> count max-trials) + (error "failed to resolve partition" (fmt spec)) + (begin + (format #t "waiting for partition '~a' to appear...~%" + (fmt spec)) + (sleep 1) + (loop (+ 1 count)))))))) + (case canonical-title ((device) ;; Nothing to do. spec) ((label) ;; Resolve the label. - (let loop ((count 0)) - (let ((device (find-partition-by-label spec))) - (or device - ;; Some devices take a bit of time to appear, most notably USB - ;; storage devices. Thus, wait for the device to appear. - (if (> count max-trials) - (error "failed to resolve partition label" spec) - (begin - (format #t "waiting for partition '~a' to appear...~%" - spec) - (sleep 1) - (loop (+ 1 count)))))))) - ;; TODO: Add support for UUIDs. + (resolve find-partition-by-label spec identity)) + ((uuid) + (resolve find-partition-by-uuid spec uuid->string)) (else (error "unknown device title" title)))) -- cgit v1.2.3 From 661a1d7924e174a28e0e21bf516aa1a8a44dad73 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 14 Jul 2015 15:06:46 +0200 Subject: file-systems: Allow users to specify file system UUIDs as strings. Fixes . Reported by Mark H Weaver . * gnu/system/file-systems.scm (%uuid-rx): New variable. (string->uuid): New procedure. (uuid): New macro. * tests/file-systems.scm: New file. * Makefile.am (SCM_TESTS): Add it. * doc/guix.texi (File Systems): Give an example of UUID. --- Makefile.am | 1 + doc/guix.texi | 18 +++++++++++++- gnu/system/file-systems.scm | 57 +++++++++++++++++++++++++++++++++++++++++++++ tests/file-systems.scm | 46 ++++++++++++++++++++++++++++++++++++ 4 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 tests/file-systems.scm (limited to 'gnu') diff --git a/Makefile.am b/Makefile.am index 7059a8f594..5cf9314014 100644 --- a/Makefile.am +++ b/Makefile.am @@ -203,6 +203,7 @@ SCM_TESTS = \ tests/lint.scm \ tests/publish.scm \ tests/size.scm \ + tests/file-systems.scm \ tests/containers.scm if HAVE_GUILE_JSON diff --git a/doc/guix.texi b/doc/guix.texi index 7b1d18a151..ad5b38af31 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4963,8 +4963,24 @@ interpreted as a file name; when it is @code{label}, then @code{device} is interpreted as a partition label name; when it is @code{uuid}, @code{device} is interpreted as a partition unique identifier (UUID). +UUIDs may be converted from their string representation (as shown by the +@command{tune2fs -l} command) using the @code{uuid} form, like this: + +@example +(file-system + (mount-point "/home") + (type "ext4") + (title 'uuid) + (device (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))) +@end example + The @code{label} and @code{uuid} options offer a way to refer to disk -partitions without having to hard-code their actual device name. +partitions without having to hard-code their actual device +name@footnote{Note that, while it is tempting to use +@file{/dev/disk/by-uuid} and similar device names to achieve the same +result, this is not recommended: These special device nodes are created +by the udev daemon and may be unavailable at the time the device is +mounted.}. However, when a file system's source is a mapped device (@pxref{Mapped Devices}), its @code{device} field @emph{must} refer to the mapped diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm index 33926444b6..ece8fb41e6 100644 --- a/gnu/system/file-systems.scm +++ b/gnu/system/file-systems.scm @@ -18,9 +18,13 @@ (define-module (gnu system file-systems) #:use-module (ice-9 match) + #:use-module (ice-9 regex) #:use-module (guix gexp) #:use-module (guix records) #:use-module (guix store) + #:use-module (rnrs bytevectors) + #:use-module ((gnu build file-systems) #:select (uuid->string)) + #:re-export (uuid->string) #:export ( file-system file-system? @@ -35,6 +39,8 @@ file-system-create-mount-point? file-system->spec + string->uuid + uuid %fuse-control-file-system %binary-format-file-system @@ -106,6 +112,57 @@ initrd code." (($ device title mount-point type flags options _ check?) (list device title mount-point type flags options check?)))) +(define %uuid-rx + ;; The regexp of a UUID. + (make-regexp "^([[:xdigit:]]{8})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{4})-([[:xdigit:]]{12})$")) + +(define (string->uuid str) + "Parse STR as a DCE UUID (see ) and +return its contents as a 16-byte bytevector. Return #f if STR is not a valid +UUID representation." + (and=> (regexp-exec %uuid-rx str) + (lambda (match) + (letrec-syntax ((hex->number + (syntax-rules () + ((_ index) + (string->number (match:substring match index) + 16)))) + (put! + (syntax-rules () + ((_ bv index (number len) rest ...) + (begin + (bytevector-uint-set! bv index number + (endianness big) len) + (put! bv (+ index len) rest ...))) + ((_ bv index) + bv)))) + (let ((time-low (hex->number 1)) + (time-mid (hex->number 2)) + (time-hi (hex->number 3)) + (clock-seq (hex->number 4)) + (node (hex->number 5)) + (uuid (make-bytevector 16))) + (put! uuid 0 + (time-low 4) (time-mid 2) (time-hi 2) + (clock-seq 2) (node 6))))))) + +(define-syntax uuid + (lambda (s) + "Return the bytevector corresponding to the given UUID representation." + (syntax-case s () + ((_ str) + (string? (syntax->datum #'str)) + ;; A literal string: do the conversion at expansion time. + (with-syntax ((bv (string->uuid (syntax->datum #'str)))) + #''bv)) + ((_ str) + #'(string->uuid str))))) + + +;;; +;;; Common file systems. +;;; + (define %fuse-control-file-system ;; Control file system for Linux' file systems in user-space (FUSE). (file-system diff --git a/tests/file-systems.scm b/tests/file-systems.scm new file mode 100644 index 0000000000..d445b4971f --- /dev/null +++ b/tests/file-systems.scm @@ -0,0 +1,46 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ludovic Courtès +;;; +;;; 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 . + +(define-module (test-file-systems) + #:use-module (gnu system file-systems) + #:use-module (srfi srfi-64) + #:use-module (rnrs bytevectors)) + +;; Test the (gnu system file-systems) module. + +(test-begin "file-systems") + +(test-equal "uuid->string" + "c5307e6b-d1ba-499d-89c5-cb0b143577c4" + (uuid->string + #vu8(197 48 126 107 209 186 73 157 137 197 203 11 20 53 119 196))) + +(test-equal "string->uuid" + '(16 "4dab5feb-d176-45de-b287-9b0a6e4c01cb") + (let ((uuid (string->uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb"))) + (list (bytevector-length uuid) (uuid->string uuid)))) + +(test-assert "uuid" + (let ((str "4dab5feb-d176-45de-b287-9b0a6e4c01cb")) + (bytevector=? (uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb") + (string->uuid "4dab5feb-d176-45de-b287-9b0a6e4c01cb")))) + +(test-end) + + +(exit (= (test-runner-fail-count (test-runner-current)) 0)) -- cgit v1.2.3 From 60a5617b9dbced3a3b3dfc950cf52f2117d0b687 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 8 Jul 2015 19:32:20 +0300 Subject: gnu: Add libxdg-basedir. * gnu/packages/freedesktop.scm (libxdg-basedir): New variable. --- gnu/packages/freedesktop.scm | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index eeb97cdc85..5cdb4568c5 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -91,6 +91,39 @@ freedesktop.org project.") other applications that need to directly deal with input devices.") (license license:x11))) +(define-public libxdg-basedir + (package + (name "libxdg-basedir") + (version "1.2.0") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/devnev/libxdg-basedir/archive/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "0s28c7sfwqimsmb3kn91mx7wi55fs3flhbmynl9k60rrllr00aqw")))) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'autogen + (lambda _ + ;; Run 'configure' in its own phase, not now. + (substitute* "autogen.sh" + (("^.*\\./configure.*") "")) + (zero? (system* "sh" "autogen.sh"))))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (home-page "https://github.com/devnev/libxdg-basedir") + (synopsis "Implementation of the XDG Base Directory specification") + (description + "libxdg-basedir is a C library providing some functions to use with +the freedesktop.org XDG Base Directory specification.") + (license license:expat))) + (define-public elogind (let ((commit "14405a9")) (package -- cgit v1.2.3 From b0ded08ff7c4e398e054d1d9f5890926681801f5 Mon Sep 17 00:00:00 2001 From: Alex Kost Date: Wed, 8 Jul 2015 21:03:49 +0300 Subject: gnu: Add dunst. * gnu/packages/dunst.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/dunst.scm | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 gnu/packages/dunst.scm (limited to 'gnu') diff --git a/gnu-system.am b/gnu-system.am index 09f252ff1a..fc6517ceae 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -86,6 +86,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/dns.scm \ gnu/packages/docbook.scm \ gnu/packages/doxygen.scm \ + gnu/packages/dunst.scm \ gnu/packages/ebook.scm \ gnu/packages/ed.scm \ gnu/packages/elf.scm \ diff --git a/gnu/packages/dunst.scm b/gnu/packages/dunst.scm new file mode 100644 index 0000000000..d5e177f0ce --- /dev/null +++ b/gnu/packages/dunst.scm @@ -0,0 +1,72 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Alex Kost +;;; +;;; 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 . + +(define-module (gnu packages dunst) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages base) + #:use-module (gnu packages freedesktop) + #:use-module (gnu packages glib) + #:use-module (gnu packages gtk) + #:use-module (gnu packages perl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages xorg)) + +(define-public dunst + (package + (name "dunst") + (version "1.1.0") + (source (origin + (method url-fetch) + (uri (string-append + "http://knopwob.org/public/dunst-release/dunst-" + version ".tar.bz2")) + (sha256 + (base32 + "0w3hilzwanwsp4q6dxbdj6l0mvpg4fq02wf8isll8kmbx9kz2ay7")))) + (build-system gnu-build-system) + (arguments + '(#:tests? #f ; no check target + #:make-flags (list "CC=gcc" + (string-append "PREFIX=" %output)) + #:phases (modify-phases %standard-phases + (delete 'configure)))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("perl" ,perl) ; for pod2man + ("which" ,which))) + (inputs + `(("dbus" ,dbus) + ("glib" ,glib) + ("cairo" ,cairo) + ("pango" ,pango) + ("libx11" ,libx11) + ("libxext" ,libxext) + ("libxft" ,libxft) + ("libxscrnsaver" ,libxscrnsaver) + ("libxinerama" ,libxinerama) + ("libxdg-basedir" ,libxdg-basedir))) + (home-page "http://knopwob.org/dunst") + (synopsis "Customizable and lightweight notification daemon") + (description + "Dunst is a highly configurable and minimalistic notification daemon. +It provides 'org.freedesktop.Notifications' D-Bus service, so it is +started automatically on the first call via D-Bus.") + (license license:bsd-3))) -- cgit v1.2.3 From 107db20da89e7d4dba73d7eaf7f2fe41b963a98b Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Fri, 10 Jul 2015 02:31:26 -0500 Subject: gnu: ccache: Update to 3.2.2. * gnu/packages/ccache.scm (ccache): Update to 3.2.2. [arguments]: Rename 'patch-test-shebangs phase to 'setup-tests. Set the SHELL environment variable. --- gnu/packages/ccache.scm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/ccache.scm b/gnu/packages/ccache.scm index 2b45ab09d6..9063acb6fc 100644 --- a/gnu/packages/ccache.scm +++ b/gnu/packages/ccache.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2014 Eric Bavier +;;; Copyright © 2014, 2015 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -28,7 +28,7 @@ (define-public ccache (package (name "ccache") - (version "3.1.10") + (version "3.2.2") (source (origin (method url-fetch) @@ -36,16 +36,18 @@ version ".tar.xz")) (sha256 (base32 - "0mr8n1nbykxw4rs55ad8wd6xmfhihn09mxpxb91sn9mlsd1ryhw8")))) + "1jm0qb3h5sypllaiyj81zp6m009vm50hzjnx994ril94kxlrj3ag")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) ;for test.sh (inputs `(("zlib" ,zlib))) (arguments '(#:phases (alist-cons-before - 'check 'patch-test-shebangs + 'check 'setup-tests (lambda _ (substitute* '("test/test_hashutil.c" "test.sh") - (("#!/bin/sh") (string-append "#!" (which "sh"))))) + (("#!/bin/sh") (string-append "#!" (which "sh")))) + (setenv "SHELL" (which "sh")) + #t) %standard-phases))) (home-page "https://ccache.samba.org/") (synopsis "Compiler cache") -- cgit v1.2.3 From fc3cbc67c1d325ccfcf582890b1df3a1ba5aeea5 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Tue, 14 Jul 2015 20:49:43 -0500 Subject: gnu: eigen: Use parallel-job-count. * gnu/packages/algebra.scm (eigen)[arguments]: 'current-processor-count' -> 'parallel-job-count'. --- gnu/packages/algebra.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 7f9fd28367..e47c405661 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -383,7 +383,7 @@ cosine/ sine transforms or DCT/DST).") (lambda _ ;; First build the tests, in parallel. ;; See . - (let* ((cores (current-processor-count)) + (let* ((cores (parallel-job-count)) (dash-j (format #f "-j~a" cores))) ;; These variables are supposed to be honored. (setenv "EIGEN_MAKE_ARGS" dash-j) -- cgit v1.2.3 From b42d45088d19069c960cf8c3301449730917a02d Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Sun, 5 Jul 2015 20:40:56 +0200 Subject: gnu: setbfree: Disable unsupported optimizations on non-x86. * gnu/packages/music.scm (setbfree)[arguments]: Override default OPTIMIZATIONS variable on non-x86 systems. --- gnu/packages/music.scm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm index 9e7e0126c0..13ddd8b338 100644 --- a/gnu/packages/music.scm +++ b/gnu/packages/music.scm @@ -424,7 +424,14 @@ Editor. It is compatible with Power Tab Editor 1.7 and Guitar Pro.") (list (string-append "PREFIX=" (assoc-ref %outputs "out")) (string-append "FONTFILE=" (assoc-ref %build-inputs "font-bitstream-vera") - "/share/fonts/truetype/VeraBd.ttf")) + "/share/fonts/truetype/VeraBd.ttf") + ;; Disable unsupported optimization flags on non-x86 + ,@(let ((system (or (%current-target-system) + (%current-system)))) + (if (or (string-prefix? "x86_64" system) + (string-prefix? "i686" system)) + '() + '("OPTIMIZATIONS=-ffast-math -fomit-frame-pointer -O3")))) #:phases (modify-phases %standard-phases (add-before 'build 'set-CC-variable -- cgit v1.2.3 From e03f6d5e956b348c142d0ffd9f89af845f05eb86 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Wed, 15 Jul 2015 16:11:50 +0200 Subject: gnu: libpcap: Enable plain "linux" backend. * gnu/packages/admin.scm (libpcap)[arguments]: Add "--with-pcap=linux" configure flag. --- gnu/packages/admin.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'gnu') diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm index c96e11635b..5b5659910c 100644 --- a/gnu/packages/admin.scm +++ b/gnu/packages/admin.scm @@ -476,7 +476,8 @@ tools: server, client, and relay agent.") "14wyjywrdi1ikaj6yc9c72m6m2r64z94lb0gm7k1a3q6q5cj3scs")))) (build-system gnu-build-system) (native-inputs `(("bison" ,bison) ("flex" ,flex))) - (arguments '(#:tests? #f)) ; no 'check' target + (arguments '(#:configure-flags '("--with-pcap=linux") + #:tests? #f)) ; no 'check' target (home-page "http://www.tcpdump.org") (synopsis "Network packet capture library") (description -- cgit v1.2.3