aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/build/file-systems.scm2
-rw-r--r--gnu/packages/bioinformatics.scm7
-rw-r--r--gnu/packages/code.scm4
-rw-r--r--gnu/packages/ebook.scm4
-rw-r--r--gnu/packages/engineering.scm17
-rw-r--r--gnu/packages/games.scm25
-rw-r--r--gnu/packages/mail.scm16
-rw-r--r--gnu/packages/music.scm8
-rw-r--r--gnu/packages/patches/mutt-CVE-2014-9116.patch46
-rw-r--r--gnu/packages/python.scm105
-rw-r--r--gnu/packages/ruby.scm81
-rw-r--r--gnu/packages/video.scm4
-rw-r--r--gnu/packages/wm.scm34
-rw-r--r--gnu/packages/xdisorg.scm34
-rw-r--r--gnu/services.scm5
-rw-r--r--gnu/services/base.scm20
-rw-r--r--gnu/services/dmd.scm73
-rw-r--r--gnu/services/networking.scm2
-rw-r--r--gnu/system.scm3
-rw-r--r--gnu/system/install.scm8
20 files changed, 385 insertions, 113 deletions
diff --git a/gnu/build/file-systems.scm b/gnu/build/file-systems.scm
index 377bec278e..00af35d3df 100644
--- a/gnu/build/file-systems.scm
+++ b/gnu/build/file-systems.scm
@@ -348,7 +348,7 @@ run a file system check."
;; in the case of a bind mount, a regular file may be needed.
(if (and (= MS_BIND (logand flags MS_BIND))
(regular-file? source))
- (begin
+ (unless (file-exists? mount-point)
(mkdir-p (dirname mount-point))
(call-with-output-file mount-point (const #t)))
(mkdir-p mount-point))
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 4b7f76b9c6..51e3df6d81 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -970,6 +970,9 @@ translated DNA query sequences against a protein reference database (BLASTP
and BLASTX alignment mode). The speedup over BLAST is up to 20,000 on short
reads at a typical sensitivity of 90-99% relative to BLAST depending on the
data and settings.")
+ ;; diamond fails to build on other platforms
+ ;; https://github.com/bbuchfink/diamond/issues/18
+ (supported-systems '("x86_64-linux"))
(license (license:non-copyleft "file://src/COPYING"
"See src/COPYING in the distribution."))))
@@ -2179,6 +2182,10 @@ viewer.")
(lambda _ (chdir "ngs-sdk") #t)
%standard-phases))))
(native-inputs `(("perl" ,perl)))
+ ;; According to the test
+ ;; unless ($MARCH =~ /x86_64/i || $MARCH =~ /i?86/i)
+ ;; in ngs-sdk/setup/konfigure.perl
+ (supported-systems '("i686-linux" "x86_64-linux"))
(home-page "https://github.com/ncbi/ngs")
(synopsis "API for accessing Next Generation Sequencing data")
(description
diff --git a/gnu/packages/code.scm b/gnu/packages/code.scm
index 6e858a7d96..86b131a3e8 100644
--- a/gnu/packages/code.scm
+++ b/gnu/packages/code.scm
@@ -67,14 +67,14 @@ a major mode for Emacs for examining the flowcharts that it produces.")
(define-public complexity
(package
(name "complexity")
- (version "1.2")
+ (version "1.3")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/complexity/complexity-"
version ".tar.gz"))
(sha256
(base32
- "0pmlhlj1chl4caaqffvn1cy9z8gwmjbx97syi7pdfa0vqygkql6d"))))
+ "19bc64sxpqd5rqylqaa7dijz2x7qp2b0dg3ah3fb3qbcvd8b4wgy"))))
(build-system gnu-build-system)
(native-inputs
`(("texinfo" ,texinfo)
diff --git a/gnu/packages/ebook.scm b/gnu/packages/ebook.scm
index 43a7b9f034..258294f6c8 100644
--- a/gnu/packages/ebook.scm
+++ b/gnu/packages/ebook.scm
@@ -60,7 +60,7 @@
(define-public calibre
(package
(name "calibre")
- (version "2.40.0")
+ (version "2.41.0")
(source
(origin
(method url-fetch)
@@ -69,7 +69,7 @@
version ".tar.xz"))
(sha256
(base32
- "1xzf910w3c15vajnlra32xzi0gwb4z7a9m9w5nfj0by2wss3fv7n"))
+ "069fkcsx7kaazs7f095nkz4jw9jrm0k9zq16ayx41lxjbd1r97ik"))
;; Remove non-free or doubtful code, see
;; https://lists.gnu.org/archive/html/guix-devel/2015-02/msg00478.html
(modules '((guix build utils)))
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 54e43ef0f8..1c378f63a7 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -237,6 +237,9 @@ optimizer; and it can produce photorealistic and design review images.")
(sha256
(base32
"0x37vfp6k0d2z3gnig0hbicvi0jp8v267xjnn3z8jdllpiaa6p3k"))
+ (snippet
+ ;; Remove a non-free file.
+ '(delete-file "doc/psfig.sty"))
(modules '((guix build utils)
(guix build download)
(guix ftp-client)))
@@ -265,8 +268,18 @@ optimizer; and it can produce photorealistic and design review images.")
(("\\\\special\\{psfile=([^,]*),.*scale=([#0-9.]*).*\\}"
all file scale)
(string-append "\\includegraphics[scale=" scale "]{"
- file "}")))
- (substitute* '("doc/mtt.tex" "doc/tcad.tex")
+ file "}"))
+ (("\\\\psfig\\{figure=([^,]*),.*width=([#0-9.]*in).*\\}"
+ all file width)
+ (string-append "\\includegraphics[width=" width "]{"
+ file "}"))
+ (("\\\\psfig\\{figure=([^,]*),.*height=([#0-9.]*in).*\\}"
+ all file height)
+ (string-append "\\includegraphics[height=" height "]{"
+ file "}"))
+ (("\\\\psfig\\{figure=([^,]*)\\}" all file)
+ (string-append "\\includegraphics{" file "}")))
+ (substitute* '("doc/mtt.tex" "doc/tcad.tex" "doc/ug.tex")
(("^\\\\documentstyle\\[(.*)\\]\\{(.*)\\}"
all options class)
(string-append "\\documentclass[" options "]{"
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index e250bf9633..3023794218 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -163,17 +163,10 @@ scriptable with Guile.")
(guix build utils))
#:phases (modify-phases %standard-phases
(add-after 'set-paths 'set-sdl-paths
- (lambda* (#:key inputs outputs (search-paths '())
- #:allow-other-keys)
- (define input-directories
- (match inputs
- (((_ . dir) ...)
- dir)))
- ;; This package does not use pkg-config, so modify CPATH
- ;; variable to point to include/SDL for SDL header files.
- (set-path-environment-variable "CPATH"
- '("include/SDL")
- input-directories)))
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "CPATH"
+ (string-append (assoc-ref inputs "sdl-union")
+ "/include/SDL"))))
(add-after 'patch-source-shebangs 'patch-makefile
(lambda* (#:key outputs #:allow-other-keys)
;; Replace /usr with package output directory.
@@ -192,11 +185,7 @@ scriptable with Guile.")
(delete 'configure))
#:tests? #f)) ;; No check target.
(native-inputs `(("pkg-config" ,pkg-config)))
- (inputs `(("sdl" ,sdl)
- ("sdl-gfx" ,sdl-gfx)
- ("sdl-image" ,sdl-image)
- ("sdl-mixer" ,sdl-mixer)
- ("sdl-ttf" ,sdl-ttf)))
+ (inputs `(("sdl-union" ,(sdl-union))))
(home-page "http://code.google.com/p/abbaye-for-linux/")
(synopsis "GNU/Linux port of the indie game \"l'Abbaye des Morts\"")
(description "L'Abbaye des Morts is a 2D platform game set in 13th century
@@ -309,7 +298,7 @@ asynchronously and at a user-defined speed.")
(define-public chess
(package
(name "chess")
- (version "6.1.1")
+ (version "6.2.2")
(source
(origin
(method url-fetch)
@@ -317,7 +306,7 @@ asynchronously and at a user-defined speed.")
".tar.gz"))
(sha256
(base32
- "1jckpg1qi1vjr3pqs0dnip3rmn0mgklx63xflrpqiv3cx2qlz8kn"))))
+ "1a41ag03q66pwy3pjrmbxxjpzi9fcaiiaiywd7m9v25mxqac2xkp"))))
(build-system gnu-build-system)
(home-page "http://www.gnu.org/software/chess")
(synopsis "Full chess implementation")
diff --git a/gnu/packages/mail.scm b/gnu/packages/mail.scm
index 53842b3aa0..25407b835a 100644
--- a/gnu/packages/mail.scm
+++ b/gnu/packages/mail.scm
@@ -171,21 +171,15 @@ aliasing facilities to work just as they would on normal mail.")
(define-public mutt
(package
(name "mutt")
- (version "1.5.23")
+ (version "1.5.24")
(source (origin
(method url-fetch)
- (uri (list ;; Temporarily put bitbucket first, because
- ;; ftp.mutt.org has been down for a while.
- (string-append "https://bitbucket.org/mutt/mutt/downloads/mutt-"
- version ".tar.gz")
- (string-append "ftp://ftp.mutt.org/mutt/devel/mutt-"
- version ".tar.gz")))
+ (uri (string-append "ftp://ftp.mutt.org/pub/mutt/mutt-"
+ version ".tar.gz"))
(sha256
(base32
- "0dzx4qk50pjfsb6cs5jahng96a52k12f7pm0sc78iqdrawg71w1s"))
- (patches (map search-patch
- '("mutt-CVE-2014-9116.patch"
- "mutt-store-references.patch")))))
+ "0012njrgxf1barjksqkx7ccid2l0xyikhna9mjs9vcfpbrvcm4m2"))
+ (patches (list (search-patch "mutt-store-references.patch")))))
(build-system gnu-build-system)
(inputs
`(("cyrus-sasl" ,cyrus-sasl)
diff --git a/gnu/packages/music.scm b/gnu/packages/music.scm
index fe8e6f129d..a72f7543dd 100644
--- a/gnu/packages/music.scm
+++ b/gnu/packages/music.scm
@@ -274,7 +274,13 @@ Guile.")
(build-system waf-build-system)
(arguments
`(#:tests? #f ;no "check" target
- #:configure-flags '("--project=sequencer")
+ #:configure-flags
+ (list "--project=sequencer"
+ ;; Disable the use of SSE unless on x86_64.
+ ,@(if (not (string-prefix? "x86_64" (or (%current-target-system)
+ (%current-system))))
+ '("--disable-sse")
+ '()))
#:python ,python-2))
(inputs
`(("jack" ,jack-1)
diff --git a/gnu/packages/patches/mutt-CVE-2014-9116.patch b/gnu/packages/patches/mutt-CVE-2014-9116.patch
deleted file mode 100644
index 91e17ecbe0..0000000000
--- a/gnu/packages/patches/mutt-CVE-2014-9116.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Fix CVE-2014-9116. Copied from Debian:
-
-This patch solves the issue raised by CVE-2014-9116 in bug 771125.
-
-We correctly redefine what are the whitespace characters as per RFC5322; by
-doing so we prevent mutt_substrdup from being used in a way that could lead to
-a segfault.
-
-The lib.c part was written by Antonio Radici <antonio@debian.org> to prevent
-crashes due to this kind of bugs from happening again.
-
-The wheezy version of this patch is slightly different, therefore this patch
-has -jessie prefixed in its name.
-
-The sendlib.c part was provided by Salvatore Bonaccorso and it is the same as
-the upstream patch reported here:
-http://dev.mutt.org/trac/attachment/ticket/3716/ticket-3716-stable.patch
-
---- a/lib.c
-+++ b/lib.c
-@@ -815,6 +815,9 @@ char *mutt_substrdup (const char *begin,
- size_t len;
- char *p;
-
-+ if (end != NULL && end < begin)
-+ return NULL;
-+
- if (end)
- len = end - begin;
- else
---- a/sendlib.c
-+++ b/sendlib.c
-@@ -1814,7 +1814,12 @@ static int write_one_header (FILE *fp, i
- {
- tagbuf = mutt_substrdup (start, t);
- /* skip over the colon separating the header field name and value */
-- t = skip_email_wsp(t + 1);
-+ ++t;
-+
-+ /* skip over any leading whitespace (WSP, as defined in RFC5322) */
-+ while (*t == ' ' || *t == '\t')
-+ t++;
-+
- valbuf = mutt_substrdup (t, end);
- }
- dprint(4,(debugfile,"mwoh: buf[%s%s] too long, "
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index 399c23fc0c..c972b62500 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -36,6 +36,7 @@
#:use-module ((guix licenses) #:select (expat zlib) #:prefix license:)
#:use-module (gnu packages)
#:use-module (gnu packages attr)
+ #:use-module (gnu packages backup)
#:use-module (gnu packages compression)
#:use-module (gnu packages databases)
#:use-module (gnu packages fontutils)
@@ -72,6 +73,7 @@
#:use-module (guix git-download)
#:use-module (guix utils)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system cmake)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
#:use-module (srfi srfi-1))
@@ -3272,6 +3274,7 @@ functions.")
(native-inputs
`(("python-nose" ,python-nose)
("python-sphinx" ,python-sphinx)
+ ("python-numpydoc" ,python-numpydoc)
("gfortran" ,gfortran)
("texlive" ,texlive)
("perl" ,perl)))
@@ -3329,7 +3332,13 @@ atlas_libs = openblas
(zero? (system* "python" "-c" "import scipy; scipy.test()"))))
(alist-delete
'check
- %standard-phases))))))
+ (alist-cons-after
+ 'unpack 'fix-tests
+ (lambda _
+ (substitute* "scipy/integrate/tests/test_quadpack.py"
+ (("libm.so") "libm.so.6"))
+ #t)
+ %standard-phases)))))))
(home-page "http://www.scipy.org/")
(synopsis "The Scipy library provides efficient numerical routines")
(description "The SciPy library is one of the core packages that make up
@@ -5610,3 +5619,97 @@ Python Package Index (PyPI).")
(define-public python2-pip
(package-with-python2 python-pip))
+
+(define-public python-tlsh
+ (package
+ (name "python-tlsh")
+ (version "3.4.1") ;according to CMakeLists.txt
+ (home-page "https://github.com/trendmicro/tlsh")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ ;; This is a commit right after 3.4.1; see
+ ;; <https://github.com/trendmicro/tlsh/issues/9>.
+ (commit "3ae3f1f")))
+ (sha256
+ (base32
+ "12cvnr5ndm5cg6i7lch93id90kgwgrigjgrj8f186nh3h4bf9chj"))
+ (file-name (string-append name "-" version "-checkout"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:out-of-source? #f
+ #:phases (modify-phases %standard-phases
+ (replace
+ 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Build and install the Python bindings. The underlying
+ ;; C++ library is apparently not meant to be installed.
+ (let ((out (assoc-ref outputs "out")))
+ (with-directory-excursion "py_ext"
+ (and (system* "python" "setup.py" "build")
+ (system* "python" "setup.py" "install"
+ (string-append "--prefix=" out))))))))))
+ (inputs `(("python" ,python-wrapper))) ;for the bindings
+ (synopsis "Fuzzy matching library for Python")
+ (description
+ "Trend Micro Locality Sensitive Hash (TLSH) is a fuzzy matching library.
+Given a byte stream with a minimum length of 256 bytes, TLSH generates a hash
+value which can be used for similarity comparisons. Similar objects have
+similar hash values, which allows for the detection of similar objects by
+comparing their hash values. The byte stream should have a sufficient amount
+of complexity; for example, a byte stream of identical bytes will not generate
+a hash value.")
+ (license asl2.0)))
+
+(define-public python2-tlsh
+ (package
+ (inherit python-tlsh)
+ (name "python2-tlsh")
+ (inputs `(("python" ,python-2)))))
+
+(define-public python-libarchive-c
+ (package
+ (name "python-libarchive-c")
+ (version "2.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://pypi.python.org/packages/source/l/libarchive-c/libarchive-c-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "089lrz6xyrfnk55v35vis6jyqyyl77w093057djyspnd2744wi2n"))))
+ (build-system python-build-system)
+ (arguments
+ '(#:phases (modify-phases %standard-phases
+ (add-before
+ 'build 'reference-libarchive
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Retain the absolute file name of libarchive.so.
+ (let ((libarchive (assoc-ref inputs "libarchive")))
+ (substitute* "libarchive/ffi.py"
+ (("find_library\\('archive'\\)")
+ (string-append "'" libarchive
+ "/lib/libarchive.so'"))))
+
+ ;; Do not make a compressed egg (see
+ ;; <http://bugs.gnu.org/20765>).
+ (let ((port (open-file "setup.cfg" "a")))
+ (display "\n[easy_install]\nzip_ok = 0\n"
+ port)
+ (close-port port)
+ #t))))))
+ (inputs
+ `(("python-setuptools" ,python-setuptools)
+ ("libarchive" ,libarchive)))
+ (home-page "https://github.com/Changaco/python-libarchive-c")
+ (synopsis "Python interface to libarchive")
+ (description
+ "This package provides Python bindings to libarchive, a C library to
+access possibly compressed archives in many different formats. It uses
+Python's @code{ctypes} foreign function interface (FFI).")
+ (license lgpl2.0+)))
+
+(define-public python2-libarchive-c
+ (package-with-python2 python-libarchive-c))
diff --git a/gnu/packages/ruby.scm b/gnu/packages/ruby.scm
index c906361971..701b7ee6ef 100644
--- a/gnu/packages/ruby.scm
+++ b/gnu/packages/ruby.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015 Ben Woodcroft <donttrustben@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -258,6 +259,17 @@ groups.")
(home-page "https://github.com/rspec/rspec-core")
(license license:expat)))
+(define-public ruby-rspec-core-2
+ (package (inherit ruby-rspec-core)
+ (version "2.14.8")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rspec-core" version))
+ (sha256
+ (base32
+ "0psjy5kdlz3ph39br0m01w65i1ikagnqlg39f8p65jh5q7dz8hwc"))))
+ (propagated-inputs `())))
+
(define-public ruby-diff-lcs
(package
(name "ruby-diff-lcs")
@@ -301,6 +313,18 @@ outcomes of a code example.")
(home-page "https://github.com/rspec/rspec-expectations")
(license license:expat)))
+(define-public ruby-rspec-expectations-2
+ (package (inherit ruby-rspec-expectations)
+ (version "2.14.5")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rspec-expectations" version))
+ (sha256
+ (base32
+ "1ni8kw8kjv76jvwjzi4jba00k3qzj9f8wd94vm6inz0jz3gwjqf9"))))
+ (propagated-inputs
+ `(("ruby-diff-lcs" ,ruby-diff-lcs)))))
+
(define-public ruby-rspec-mocks
(package
(name "ruby-rspec-mocks")
@@ -323,6 +347,18 @@ support for stubbing and mocking.")
(home-page "https://github.com/rspec/rspec-mocks")
(license license:expat)))
+(define-public ruby-rspec-mocks-2
+ (package (inherit ruby-rspec-mocks)
+ (version "2.14.6")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rspec-mocks" version))
+ (sha256
+ (base32
+ "1fwsmijd6w6cmqyh4ky2nq89jrpzh56hzmndx9wgkmdgfhfakv30"))))
+ (propagated-inputs
+ `(("ruby-diff-lcs" ,ruby-diff-lcs)))))
+
(define-public ruby-rspec
(package
(name "ruby-rspec")
@@ -347,6 +383,20 @@ expectations and mocks frameworks.")
(home-page "http://rspec.info/")
(license license:expat)))
+(define-public ruby-rspec-2
+ (package (inherit ruby-rspec)
+ (version "2.14.1")
+ (source (origin
+ (method url-fetch)
+ (uri (rubygems-uri "rspec" version))
+ (sha256
+ (base32
+ "134y4wzk1prninb5a0bhxgm30kqfzl8dg06af4js5ylnhv2wd7sg"))))
+ (propagated-inputs
+ `(("ruby-rspec-core" ,ruby-rspec-core-2)
+ ("ruby-rspec-mocks" ,ruby-rspec-mocks-2)
+ ("ruby-rspec-expectations" ,ruby-rspec-expectations-2)))))
+
;; Bundler is yet another source of circular dependencies, so we must disable
;; its test suite as well.
(define-public bundler
@@ -1415,3 +1465,34 @@ and trust on your team.")
features such as filtering and fine grained logging.")
(home-page "https://github.com/pjotrp/bioruby-logger-plugin")
(license license:expat)))
+
+(define-public ruby-yard
+ (package
+ (name "ruby-yard")
+ (version "0.8.7.6")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (rubygems-uri "yard" version))
+ (sha256
+ (base32
+ "1dj6ibc0qqvmb5a5r5kk0vhr04mnrz9b26gnfrs5p8jgp620i89x"))))
+ (build-system ruby-build-system)
+ (arguments
+ `(#:test-target "specs"
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'set-HOME
+ ;; $HOME needs to be set to somewhere writeable for tests to run
+ (lambda _ (setenv "HOME" "/tmp") #t)))))
+ (native-inputs
+ `(("ruby-rspec" ,ruby-rspec-2)
+ ("ruby-rack" ,ruby-rack)))
+ (synopsis "Documentation generation tool for Ruby")
+ (description
+ "YARD is a documentation generation tool for the Ruby programming
+language. It enables the user to generate consistent, usable documentation
+that can be exported to a number of formats very easily, and also supports
+extending for custom Ruby constructs such as custom class level definitions.")
+ (home-page "http://yardoc.org")
+ (license license:expat)))
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 26483f707b..ced17f0e30 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -793,7 +793,7 @@ projects while introducing many more.")
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2015.09.28")
+ (version "2015.10.16")
(source (origin
(method url-fetch)
(uri (string-append "https://youtube-dl.org/downloads/"
@@ -801,7 +801,7 @@ projects while introducing many more.")
version ".tar.gz"))
(sha256
(base32
- "0q3s2a91s1lr1db2ngacq0iapyr4jngx1dqp4z5dc6zma0qyx5k3"))))
+ "001a4md0yl3zx129mksmwc85grss67r3c9rynvranf9vlpv202vn"))))
(build-system python-build-system)
(inputs `(("setuptools" ,python-setuptools)))
(home-page "http://youtube-dl.org")
diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm
index 9ca5b96fe8..e0859ccf30 100644
--- a/gnu/packages/wm.scm
+++ b/gnu/packages/wm.scm
@@ -2,6 +2,7 @@
;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
;;; Copyright © 2015 Siniša Biđin <sinisa@bidin.eu>
;;; Copyright © 2015 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2015 xd1le <elisp.vim@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -64,6 +65,39 @@ single/double-quoted strings, environment variable expansion, functions and
nested include statements).")
(license isc)))
+(define-public bspwm
+ (package
+ (name "bspwm")
+ (version "0.9")
+ (source
+ (origin
+ (file-name (string-append name "-" version ".tar.gz"))
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/baskerville/bspwm/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "1pig0h2jk8wipyz90j69c4bk37bfyq60asnn0v0bqld2p2vjvyqy"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libxcb" ,libxcb)
+ ("libxinerama" ,libxinerama)
+ ("sxhkd" ,sxhkd)
+ ("xcb-util" ,xcb-util)
+ ("xcb-util-keysyms" ,xcb-util-keysyms)
+ ("xcb-util-wm" ,xcb-util-wm)))
+ (arguments
+ '(#:phases (alist-delete 'configure %standard-phases)
+ #:tests? #f ; no check target
+ #:make-flags (list "CC=gcc"
+ (string-append "PREFIX=" %output))))
+ (home-page "https://github.com/baskerville/bspwm")
+ (synopsis "Tiling window manager based on binary space partitioning")
+ (description "bspwm is a tiling window manager that represents windows as
+the leaves of a full binary tree.")
+ (license bsd-2)))
+
(define-public i3status
(package
(name "i3status")
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 7a0b50bdab..42a0454a35 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -7,6 +7,7 @@
;;; Copyright © 2015 Mathieu Lirzin <mthl@openmailbox.org>
;;; Copyright © 2015 Alexander I.Grafov <grafov@gmail.com>
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
+;;; Copyright © 2015 xd1le <elisp.vim@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -32,6 +33,7 @@
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system python)
#:use-module (gnu packages)
+ #:use-module (gnu packages asciidoc)
#:use-module (gnu packages compression)
#:use-module (gnu packages image)
#:use-module (gnu packages pkg-config)
@@ -489,6 +491,38 @@ clicks or timed double clicks take actions. Also all functions that work in
Guile will work for XBindKeys.")
(license license:gpl2+)))
+(define-public sxhkd
+ (package
+ (name "sxhkd")
+ (version "0.5.5")
+ (source
+ (origin
+ (file-name (string-append name "-" version ".tar.gz"))
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/baskerville/sxhkd/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "04s3y2bq9502gw72jj3y2zsh96yj3qg2av3zsa8ahd2farvrysg6"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("asciidoc" ,asciidoc)
+ ("libxcb" ,libxcb)
+ ("xcb-util" ,xcb-util)
+ ("xcb-util-keysyms" ,xcb-util-keysyms)
+ ("xcb-util-wm" ,xcb-util-wm)))
+ (arguments
+ '(#:phases (alist-delete 'configure %standard-phases)
+ #:tests? #f ; no check target
+ #:make-flags (list "CC=gcc"
+ (string-append "PREFIX=" %output))))
+ (home-page "https://github.com/baskerville/sxhkd")
+ (synopsis "Simple X hotkey daemon")
+ (description "sxhkd is a simple X hotkey daemon with a powerful and
+compact configuration syntax.")
+ (license license:bsd-2)))
+
(define-public rxvt-unicode
(package
(name "rxvt-unicode")
diff --git a/gnu/services.scm b/gnu/services.scm
index fdfa569b23..d0fe0ade17 100644
--- a/gnu/services.scm
+++ b/gnu/services.scm
@@ -38,12 +38,17 @@
service-type
service-type?
+ service-type-name
+ service-type-extensions
+ service-type-compose
+ service-type-extend
service
service?
service-kind
service-parameters
+ service-back-edges
fold-services
service-error?
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index adafe1b55e..336cc4dec9 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -125,7 +125,8 @@
(respawn? #f)))
(define root-file-system-service-type
- (dmd-service-type (const %root-file-system-dmd-service)))
+ (dmd-service-type 'root-file-system
+ (const %root-file-system-dmd-service)))
(define (root-file-system-service)
"Return a service whose sole purpose is to re-mount read-only the root file
@@ -145,6 +146,7 @@ FILE-SYSTEM."
;; TODO(?): Make this an extensible service that takes <file-system> objects
;; and returns a list of <dmd-service>.
(dmd-service-type
+ 'file-system
(lambda (file-system)
(let ((target (file-system-mount-point file-system))
(device (file-system-device file-system))
@@ -205,10 +207,11 @@ object."
(define user-unmount-service-type
(dmd-service-type
+ 'user-file-systems
(lambda (known-mount-points)
(dmd-service
(documentation "Unmount manually-mounted file systems.")
- (provision '(user-unmount))
+ (provision '(user-file-systems))
(start #~(const #t))
(stop #~(lambda args
(define (known? mount-point)
@@ -242,14 +245,15 @@ in KNOWN-MOUNT-POINTS when it is stopped."
(define user-processes-service-type
(dmd-service-type
+ 'user-processes
(match-lambda
((requirements grace-delay)
(dmd-service
(documentation "When stopped, terminate all user processes.")
(provision '(user-processes))
- (requirement (cons 'root-file-system
- (map file-system->dmd-service-name
- requirements)))
+ (requirement (cons* 'root-file-system 'user-file-systems
+ (map file-system->dmd-service-name
+ requirements)))
(start #~(const #t))
(stop #~(lambda _
(define (kill-except omit signal)
@@ -337,6 +341,7 @@ stopped before 'kill' is called."
(define host-name-service-type
(dmd-service-type
+ 'host-name
(lambda (name)
(dmd-service
(documentation "Initialize the machine's host name.")
@@ -369,6 +374,7 @@ stopped before 'kill' is called."
(define console-keymap-service-type
(dmd-service-type
+ 'console-keymap
(lambda (file)
(dmd-service
(documentation (string-append "Load console keymap (loadkeys)."))
@@ -384,6 +390,7 @@ stopped before 'kill' is called."
(define console-font-service-type
(dmd-service-type
+ 'console-font
(match-lambda
((tty font)
(let ((device (string-append "/dev/" tty)))
@@ -644,6 +651,7 @@ Service Switch}, for an example."
(define syslog-service-type
(dmd-service-type
+ 'syslog
(lambda (config-file)
(dmd-service
(documentation "Run the syslog daemon (syslogd).")
@@ -982,6 +990,7 @@ extra rules from the packages listed in @var{rules}."
(define device-mapping-service-type
(dmd-service-type
+ 'device-mapping
(match-lambda
((target open close)
(dmd-service
@@ -1001,6 +1010,7 @@ gexp, to open it, and evaluate @var{close} to close it."
(define swap-service-type
(dmd-service-type
+ 'swap
(lambda (device)
(define requirement
(if (string-prefix? "/dev/mapper/" device)
diff --git a/gnu/services/dmd.scm b/gnu/services/dmd.scm
index 6020ffc8eb..e87b9e4415 100644
--- a/gnu/services/dmd.scm
+++ b/gnu/services/dmd.scm
@@ -27,7 +27,9 @@
#:use-module (gnu services)
#:use-module (gnu packages admin)
#:use-module (ice-9 match)
+ #:use-module (ice-9 vlist)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
#:use-module (srfi srfi-34)
#:use-module (srfi srfi-35)
#:export (dmd-root-service-type
@@ -42,7 +44,9 @@
dmd-service-respawn?
dmd-service-start
dmd-service-stop
- dmd-service-auto-start?))
+ dmd-service-auto-start?
+
+ dmd-service-back-edges))
;;; Commentary:
;;;
@@ -86,11 +90,11 @@
;; <dmd-service> objects.
(service dmd-root-service-type '()))
-(define-syntax-rule (dmd-service-type proc)
+(define-syntax-rule (dmd-service-type service-name proc)
"Return a <service-type> denoting a simple dmd service--i.e., the type for a
service that extends DMD-ROOT-SERVICE-TYPE and nothing else."
(service-type
- (name 'some-dmd-service)
+ (name service-name)
(extensions
(list (service-extension dmd-root-service-type
(compose list proc))))))
@@ -98,17 +102,17 @@ service that extends DMD-ROOT-SERVICE-TYPE and nothing else."
(define-record-type* <dmd-service>
dmd-service make-dmd-service
dmd-service?
- (documentation service-documentation ; string
+ (documentation dmd-service-documentation ;string
(default "[No documentation.]"))
- (provision service-provision) ; list of symbols
- (requirement service-requirement ; list of symbols
+ (provision dmd-service-provision) ;list of symbols
+ (requirement dmd-service-requirement ;list of symbols
(default '()))
- (respawn? service-respawn? ; Boolean
+ (respawn? dmd-service-respawn? ;Boolean
(default #t))
- (start service-start) ; g-expression (procedure)
- (stop service-stop ; g-expression (procedure)
+ (start dmd-service-start) ;g-expression (procedure)
+ (stop dmd-service-stop ;g-expression (procedure)
(default #~(const #f)))
- (auto-start? service-auto-start? ; Boolean
+ (auto-start? dmd-service-auto-start? ;Boolean
(default #t)))
@@ -127,8 +131,8 @@ failure."
(format #f (_ "service '~a' provided more than once")
symbol)))))))
- (for-each assert-unique (service-provision service))
- (fold set-insert set (service-provision service)))
+ (for-each assert-unique (dmd-service-provision service))
+ (fold set-insert set (dmd-service-provision service)))
(setq)
services))
@@ -160,12 +164,12 @@ failure."
(register-services
#$@(map (lambda (service)
#~(make <service>
- #:docstring '#$(service-documentation service)
- #:provides '#$(service-provision service)
- #:requires '#$(service-requirement service)
- #:respawn? '#$(service-respawn? service)
- #:start #$(service-start service)
- #:stop #$(service-stop service)))
+ #:docstring '#$(dmd-service-documentation service)
+ #:provides '#$(dmd-service-provision service)
+ #:requires '#$(dmd-service-requirement service)
+ #:respawn? '#$(dmd-service-respawn? service)
+ #:start #$(dmd-service-start service)
+ #:stop #$(dmd-service-stop service)))
services))
;; guix-daemon 0.6 aborts if 'PATH' is undefined, so work around it.
@@ -173,9 +177,38 @@ failure."
(format #t "starting services...~%")
(for-each start
- '#$(append-map service-provision
- (filter service-auto-start? services)))))
+ '#$(append-map dmd-service-provision
+ (filter dmd-service-auto-start?
+ services)))))
(gexp->file "dmd.conf" config)))
+(define (dmd-service-back-edges services)
+ "Return a procedure that, when given a <dmd-service> from SERVICES, returns
+the list of <dmd-service> that depend on it."
+ (define provision->service
+ (let ((services (fold (lambda (service result)
+ (fold (cut vhash-consq <> service <>)
+ result
+ (dmd-service-provision service)))
+ vlist-null
+ services)))
+ (lambda (name)
+ (match (vhash-assq name services)
+ ((_ . service) service)
+ (#f #f)))))
+
+ (define edges
+ (fold (lambda (service edges)
+ (fold (lambda (requirement edges)
+ (vhash-consq (provision->service requirement) service
+ edges))
+ edges
+ (dmd-service-requirement service)))
+ vlist-null
+ services))
+
+ (lambda (service)
+ (vhash-foldq* cons '() service edges)))
+
;;; dmd.scm ends here
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index 52a843b54b..003d5a5010 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -94,6 +94,7 @@ fe80::1%lo0 apps.facebook.com\n")
(define static-networking-service-type
(dmd-service-type
+ 'static-networking
(match-lambda
(($ <static-networking> interface ip gateway provision
name-servers net-tools)
@@ -166,6 +167,7 @@ gateway."
(define dhcp-client-service-type
(dmd-service-type
+ 'dhcp-client
(lambda (dhcp)
(define dhclient
#~(string-append #$dhcp "/sbin/dhclient"))
diff --git a/gnu/system.scm b/gnu/system.scm
index b32d26bc8e..aa768824d9 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -474,6 +474,9 @@ export DBUS_FATAL_WARNINGS=0
# Allow Aspell to find dictionaries installed in the user profile.
export ASPELL_CONF=\"dict-dir $HOME/.guix-profile/lib/aspell\"
+# Allow GStreamer-based applications to find plugins.
+export GST_PLUGIN_PATH=\"$HOME/.guix-profile/lib/gstreamer-1.0\"
+
if [ -n \"$BASH_VERSION\" -a -f /etc/bashrc ]
then
# Load Bash-specific initialization code.
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index a91c5c3533..93a6f18c49 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -76,9 +76,12 @@ under /root/.guix-profile where GUIX is installed."
(with-directory-excursion %root
(zero? (system* "tar" "--xz" "--format=gnu"
- ;; avoid non-determinism in the archive
+ ;; Avoid non-determinism in the archive. Use
+ ;; mtime = 1, not zero, because that is what the
+ ;; daemon does for files in the store (see the
+ ;; 'mtimeStore' constant in local-store.cc.)
"--sort=name"
- "--mtime=@0" ;for files in /var/guix
+ "--mtime=@1" ;for files in /var/guix
"--owner=root:0"
"--group=root:0"
@@ -162,6 +165,7 @@ current store is on a RAM disk."
(define cow-store-service-type
(dmd-service-type
+ 'cow-store
(lambda _
(dmd-service
(requirement '(root-file-system user-processes))