summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2015-07-15 15:10:32 -0400
committerMark H Weaver <mhw@netris.org>2015-07-15 15:10:32 -0400
commit35995769b516d228793940c5333ad522de992a6c (patch)
tree366b81995e9afbf8f94ecf7d4237b325ec07a0a1 /gnu
parentc6f909809aecb225b66dc27e4afd3ff46ec31a38 (diff)
parente03f6d5e956b348c142d0ffd9f89af845f05eb86 (diff)
downloadpatches-35995769b516d228793940c5333ad522de992a6c.tar
patches-35995769b516d228793940c5333ad522de992a6c.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu')
-rw-r--r--gnu/build/file-systems.scm131
-rw-r--r--gnu/packages/admin.scm3
-rw-r--r--gnu/packages/algebra.scm2
-rw-r--r--gnu/packages/boost.scm5
-rw-r--r--gnu/packages/ccache.scm12
-rw-r--r--gnu/packages/dunst.scm72
-rw-r--r--gnu/packages/freedesktop.scm33
-rw-r--r--gnu/packages/gcc.scm63
-rw-r--r--gnu/packages/gnome.scm89
-rw-r--r--gnu/packages/linux.scm4
-rw-r--r--gnu/packages/music.scm9
-rw-r--r--gnu/packages/ntp.scm27
-rw-r--r--gnu/packages/patches/boost-mips-avoid-m32.patch15
-rw-r--r--gnu/packages/polkit.scm4
-rw-r--r--gnu/packages/pumpio.scm6
-rw-r--r--gnu/packages/rc.scm72
-rw-r--r--gnu/packages/skarnet.scm92
-rw-r--r--gnu/packages/ssh.scm10
-rw-r--r--gnu/system/file-systems.scm59
-rw-r--r--gnu/system/install.scm2
20 files changed, 642 insertions, 68 deletions
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index 04431ba596..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
@@ -53,9 +56,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 <sys/mount.h>.
(define MS_RDONLY 1)
@@ -158,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
@@ -189,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 <https://tools.ietf.org/html/rfc4122>.
+ (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:
@@ -197,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
@@ -209,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))))
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index ee255b0c15..99eb95b800 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -480,7 +480,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
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 <http://eigen.tuxfamily.org/index.php?title=Tests>.
- (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)
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
index cb142fdb02..d3b171245d 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,8 @@
".tar.bz2"))
(sha256
(base32
- "0rs94vdmg34bwwj23fllva6mhrml2i7mvmlb11zyrk1k5818q34i"))))
+ "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/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 <bavier@member.fsf.org>
+;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
;;;
;;; 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")
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 <alezost@gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages 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)))
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
diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm
index 8b88dff4dc..6aa0942674 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)
@@ -544,6 +548,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")
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 36ba382206..2cb44f97ba 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)))
@@ -2914,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+)))
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index c5d055366e..03f933c2df 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)
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
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
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
+ {
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
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
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 <j@codemac.net>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages 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)))
diff --git a/gnu/packages/skarnet.scm b/gnu/packages/skarnet.scm
new file mode 100644
index 0000000000..e1518feeb4
--- /dev/null
+++ b/gnu/packages/skarnet.scm
@@ -0,0 +1,92 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2015 Claes Wallin <claes.wallin@greatsinodevelopment.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages 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)))
+
+(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.")))
diff --git a/gnu/packages/ssh.scm b/gnu/packages/ssh.scm
index 5d44b07f97..a827aa1d90 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)
diff --git a/gnu/system/file-systems.scm b/gnu/system/file-systems.scm
index a06c173a70..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
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."
(($ <file-system> 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 <https://tools.ietf.org/html/rfc4122>) 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
@@ -208,7 +265,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")
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index 6f4116ef9b..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
+ 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