diff options
Diffstat (limited to 'gnu')
-rw-r--r-- | gnu/build/file-systems.scm | 131 | ||||
-rw-r--r-- | gnu/packages/admin.scm | 3 | ||||
-rw-r--r-- | gnu/packages/algebra.scm | 2 | ||||
-rw-r--r-- | gnu/packages/boost.scm | 5 | ||||
-rw-r--r-- | gnu/packages/ccache.scm | 12 | ||||
-rw-r--r-- | gnu/packages/dunst.scm | 72 | ||||
-rw-r--r-- | gnu/packages/freedesktop.scm | 33 | ||||
-rw-r--r-- | gnu/packages/gcc.scm | 63 | ||||
-rw-r--r-- | gnu/packages/gnome.scm | 89 | ||||
-rw-r--r-- | gnu/packages/linux.scm | 4 | ||||
-rw-r--r-- | gnu/packages/music.scm | 9 | ||||
-rw-r--r-- | gnu/packages/ntp.scm | 27 | ||||
-rw-r--r-- | gnu/packages/patches/boost-mips-avoid-m32.patch | 15 | ||||
-rw-r--r-- | gnu/packages/polkit.scm | 4 | ||||
-rw-r--r-- | gnu/packages/pumpio.scm | 6 | ||||
-rw-r--r-- | gnu/packages/rc.scm | 72 | ||||
-rw-r--r-- | gnu/packages/skarnet.scm | 92 | ||||
-rw-r--r-- | gnu/packages/ssh.scm | 10 | ||||
-rw-r--r-- | gnu/system/file-systems.scm | 59 | ||||
-rw-r--r-- | gnu/system/install.scm | 2 |
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 |