summaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/bootstrap.scm6
-rw-r--r--gnu/packages/fontutils.scm13
-rw-r--r--gnu/packages/games.scm58
-rw-r--r--gnu/packages/gdb.scm4
-rw-r--r--gnu/packages/gl.scm44
-rw-r--r--gnu/packages/linux.scm69
-rw-r--r--gnu/packages/ninja.scm16
-rw-r--r--gnu/packages/package-management.scm31
-rw-r--r--gnu/packages/patches/ninja-tests.patch44
-rw-r--r--gnu/packages/plotutils.scm19
-rw-r--r--gnu/packages/version-control.scm4
-rw-r--r--gnu/services/avahi.scm3
-rw-r--r--gnu/services/base.scm23
-rw-r--r--gnu/services/dbus.scm3
-rw-r--r--gnu/services/dmd.scm4
-rw-r--r--gnu/services/networking.scm3
-rw-r--r--gnu/services/ssh.scm5
-rw-r--r--gnu/services/xorg.scm3
-rw-r--r--gnu/system.scm9
-rw-r--r--gnu/system/install.scm3
-rw-r--r--gnu/system/linux-initrd.scm3
-rw-r--r--gnu/system/shadow.scm3
22 files changed, 290 insertions, 80 deletions
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 8373c4b5c8..1f0fe16688 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
@@ -59,9 +59,9 @@
"Return a variant of SOURCE, an <origin> instance, whose method uses
%BOOTSTRAP-GUILE to do its job."
(define (boot fetch)
- (lambda* (store url hash-algo hash
+ (lambda* (url hash-algo hash
#:optional name #:key system)
- (fetch store url hash-algo hash
+ (fetch url hash-algo hash
#:guile %bootstrap-guile
#:system system)))
diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index f98625cdae..646e12c806 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -147,10 +147,19 @@ X11-system or any other graphical user interface.")
(version "2.5.1")
(source (origin
(method url-fetch)
- (uri (string-append
+ (uri (list
+ (string-append
"http://scripts.sil.org/svn-view/teckit/TAGS/TECkit_"
(string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
- ".tar.gz"))
+ ".tar.gz")
+ "http://pkgs.fedoraproject.org/repo/pkgs/teckit/TECkit_2_5_1.tar.gz/4913f71f0f42bfd9cf8f161688b35dea/TECkit_2_5_1.tar.gz"
+ ;; This used to be the canonical URL but it vanished.
+ ;; See <http://bugs.gnu.org/19600>.
+ ;; (string-append
+ ;; "http://scripts.sil.org/svn-view/teckit/TAGS/TECkit_"
+ ;; (string-map (lambda (x) (if (char=? x #\.) #\_ x)) version)
+ ;; ".tar.gz")
+ ))
(sha256 (base32
"0fjiwvic8mdxpkyccfp7zh26y9xnvkp0skqbyfkrjiacd191k82r"))
(patches (list (search-patch "teckit-cstdio.patch")))))
diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index b1a68a72c7..f206d3caca 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2014 Cyrill Schenkel <cyrill.schenkel@gmail.com>
;;; Copyright © 2014 Sylvain Beucler <beuc@beuc.net>
;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2014 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2014, 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
;;;
;;; This file is part of GNU Guix.
@@ -60,6 +60,9 @@
#:use-module (gnu packages xiph)
#:use-module (gnu packages curl)
#:use-module (gnu packages lua)
+ #:use-module (gnu packages video)
+ #:use-module (gnu packages which)
+ #:use-module (gnu packages xml)
#:use-module (guix build-system trivial)
#:use-module (guix build-system gnu)
#:use-module (guix build-system cmake)
@@ -820,3 +823,56 @@ playing interactive fiction. It was designed by Andrew Plotkin to relieve
some of the restrictions in the venerable Z-machine format. This is the
reference interpreter, using Glk API.")
(license (license:fsf-free "file://README"))))
+
+(define-public retroarch
+ (package
+ (name "retroarch")
+ (version "1.0.0.3-beta")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/libretro/RetroArch/archive/"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1iqcrb076xiih20sk8n1w79xsp4fb8pj4vkmdc1xn562h56y4nxx"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; no tests
+ #:phases
+ (alist-replace
+ 'configure
+ (lambda _
+ (substitute* "qb/qb.libs.sh"
+ (("/bin/true") (which "true")))
+ (zero? (system*
+ "./configure"
+ (string-append "--prefix=" %output)
+ (string-append "--global-config-dir=" %output "/etc"))))
+ %standard-phases)))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("ffmpeg" ,ffmpeg)
+ ("freetype" ,freetype)
+ ("libxinerama" ,libxinerama)
+ ("libxkbcommon" ,libxkbcommon)
+ ("libxml2" ,libxml2)
+ ("libxv" ,libxv)
+ ("mesa" ,mesa)
+ ("openal" ,openal)
+ ("pulseaudio" ,pulseaudio)
+ ("python" ,python)
+ ("sdl" ,sdl2)
+ ("udev" ,eudev)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("which" ,which)))
+ (home-page "http://www.libretro.com/")
+ (synopsis "Reference frontend for the libretro API")
+ (description
+ "Libretro is a simple but powerful development interface that allows for
+the easy creation of emulators, games and multimedia applications that can plug
+straight into any libretro-compatible frontend. RetroArch is the official
+reference frontend for the libretro API, currently used by most as a modular
+multi-system game/emulator system.")
+ (license license:gpl3+)))
diff --git a/gnu/packages/gdb.scm b/gnu/packages/gdb.scm
index 8826eb44ee..617ca17681 100644
--- a/gnu/packages/gdb.scm
+++ b/gnu/packages/gdb.scm
@@ -35,14 +35,14 @@
(define-public gdb
(package
(name "gdb")
- (version "7.8.1")
+ (version "7.8.2")
(source (origin
(method url-fetch)
(uri (string-append "mirror://gnu/gdb/gdb-"
version ".tar.xz"))
(sha256
(base32
- "0dfwmcgvlfyvgs8cwslbk42291qwxyriwa3l6j645x46hfsj4xs9"))))
+ "11a4fj1vpsny71kz7xqqbqk3kgzbs5cfjj3z9gm0hpvxfkam8nb0"))))
(build-system gnu-build-system)
(arguments
'(#:tests? #f ; FIXME "make check" fails on single-processor systems.
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index aa90c7e214..0eb2d2609e 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -196,6 +196,50 @@ allows Mesa to be used in many different environments ranging from software
emulation to complete hardware acceleration for modern GPUs.")
(license l:x11)))
+(define-public glew
+ (package
+ (name "glew")
+ (version "1.11.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/glew/glew-"
+ version
+ ".tgz"))
+ (sha256
+ (base32
+ "1mhkllxz49l1x680dmzrv2i82qjrq017sykah3xc90f2d8qcxfv9"))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* "config/Makefile.linux"
+ (("= cc") "= gcc")
+ (("/lib64") "/lib")))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (alist-delete 'configure %standard-phases)
+ #:make-flags (list (string-append "GLEW_PREFIX="
+ (assoc-ref %outputs "out"))
+ (string-append "GLEW_DEST="
+ (assoc-ref %outputs "out")))
+ #:tests? #f)) ;no 'check' target
+ (inputs
+ `(("libxi" ,libxi)
+ ("libxmu" ,libxmu)
+ ("libx11" ,libx11)
+ ("mesa" ,mesa)))
+
+ ;; <GL/glew.h> includes <GL/glu.h>.
+ (propagated-inputs `(("glu" ,glu)))
+
+ (home-page "http://glew.sourceforge.net/")
+ (synopsis "OpenGL extension loading library for C and C++")
+ (description
+ "The OpenGL Extension Wrangler Library (GLEW) is a C/C++ extension
+loading library. GLEW provides efficient run-time mechanisms for determining
+which OpenGL extensions are supported on the target platform. OpenGL core and
+extension functionality is exposed in a single header file.")
+ (license l:bsd-3)))
+
(define-public guile-opengl
(package
(name "guile-opengl")
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index efc7fb7b3f..f8bb6e2c1f 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2012 Nikita Karetnikov <nikita@karetnikov.org>
;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
@@ -511,16 +511,28 @@ slabtop, and skill.")
version ".tar.gz"))
(sha256
(base32
- "0ibkkvp6kan0hn0d1anq4n2md70j5gcm7mwna515w82xwyr02rfw"))))
+ "0ibkkvp6kan0hn0d1anq4n2md70j5gcm7mwna515w82xwyr02rfw"))
+ (modules '((guix build utils)))
+ (snippet
+ '(substitute* "MCONFIG.in"
+ (("INSTALL_SYMLINK = /bin/sh")
+ "INSTALL_SYMLINK = sh")))))
(build-system gnu-build-system)
(inputs `(("util-linux" ,util-linux)))
(native-inputs `(("pkg-config" ,pkg-config)
- ("texinfo" ,texinfo))) ; for the libext2fs Info manual
+ ("texinfo" ,texinfo))) ;for the libext2fs Info manual
(arguments
'(;; The 'blkid' command and library are already provided by util-linux,
;; which is the preferred source for them (see, e.g.,
;; <http://git.buildroot.net/buildroot/commit/?id=e1ffc2f791b336339909c90559b7db40b455f172>.)
- #:configure-flags '("--disable-blkid")
+ #:configure-flags '("--disable-blkid"
+
+ ;; Install libext2fs et al.
+ "--enable-elf-shlibs")
+
+ #:make-flags (list (string-append "LDFLAGS=-Wl,-rpath="
+ (assoc-ref %outputs "out")
+ "/lib"))
#:phases (alist-cons-before
'configure 'patch-shells
@@ -532,7 +544,11 @@ slabtop, and skill.")
(substitute* (find-files "." "^Makefile.in$")
(("#!/bin/sh")
(string-append "#!" (which "sh")))))
- %standard-phases)
+ (alist-cons-after
+ 'install 'install-libs
+ (lambda _
+ (zero? (system* "make" "install-libs")))
+ %standard-phases))
;; FIXME: Tests work by comparing the stdout/stderr of programs, that
;; they fail because we get an extra line that says "Can't check if
@@ -579,6 +595,41 @@ from the e2fsprogs package. It is meant to be used in initrds.")
(home-page (package-home-page e2fsprogs))
(license (package-license e2fsprogs))))
+(define-public zerofree
+ (package
+ (name "zerofree")
+ (version "1.0.3")
+ (home-page "http://intgat.tigress.co.uk/rmy/uml/")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append home-page name "-" version
+ ".tgz"))
+ (sha256
+ (base32
+ "1xncw3dn2cp922ly42m96p6fh7jv8ysg6bwqbk5xvw701f3dmkrs"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:phases (alist-replace
+ 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin")))
+ (mkdir-p bin)
+ (copy-file "zerofree"
+ (string-append bin "/zerofree"))
+ (chmod (string-append bin "/zerofree")
+ #o555)
+ #t))
+ (alist-delete 'configure %standard-phases))
+ #:tests? #f)) ;no tests
+ (inputs `(("libext2fs" ,e2fsprogs)))
+ (synopsis "Zero non-allocated regions in ext2/ext3/ext4 file systems")
+ (description
+ "The zerofree command scans the free blocks in an ext2 file system and
+fills any non-zero blocks with zeroes. This is a useful way to make disk
+images more compressible.")
+ (license gpl2)))
+
(define-public strace
(package
(name "strace")
@@ -1511,9 +1562,11 @@ mapper. Kernel components are part of Linux-libre.")
%standard-phases)
#:tests? #f))
(synopsis "Tools for manipulating Linux Wireless Extensions")
- (description "Wireless Tools are used to manipulate the Linux Wireless
-Extensions. The Wireless Extension is an interface allowing you to set
-Wireless LAN specific parameters and get the specific stats.")
+ (description "Wireless Tools are used to manipulate the now-deprecated
+Linux Wireless Extensions; consider using 'iw' instead. The Wireless
+Extension was an interface allowing you to set Wireless LAN specific
+parameters and get the specific stats. It is deprecated in favor the nl80211
+interface.")
(home-page "http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html")
(license gpl2+)))
diff --git a/gnu/packages/ninja.scm b/gnu/packages/ninja.scm
index fe3f955b5d..7416b67d02 100644
--- a/gnu/packages/ninja.scm
+++ b/gnu/packages/ninja.scm
@@ -34,7 +34,8 @@
"archive/v" version ".tar.gz"))
(sha256
(base32
- "1h3yfwcfl61v493vna6jia2fizh8rpig7qw2504cvkr6gid3p5bw"))))
+ "1h3yfwcfl61v493vna6jia2fizh8rpig7qw2504cvkr6gid3p5bw"))
+ (patches (list (search-patch "ninja-tests.patch")))))
(build-system gnu-build-system)
(arguments
'(#:phases
@@ -52,18 +53,7 @@
(lambda _
(and (zero? (system* "./configure.py"))
(zero? (system* "./ninja" "ninja_test"))
- ;; SubprocessTest.SetWithLots fails with:
- ;; Raise [ulimit -n] well above 1025 to make this test go.
- ;; Skip it.
- ;;
- ;; SubprocessTest.InterruptChild fails when using 'system*':
- ;; *** Failure in src/subprocess_test.cc:83
- ;; ExitInterrupted == subproc->Finish()
- ;; Pass it by using 'system' instead of 'system*'.
- (zero? (system (string-append
- "./ninja_test "
- "--gtest_filter="
- "-SubprocessTest.SetWithLots")))))
+ (zero? (system* "./ninja_test"))))
(alist-replace
'install
(lambda* (#:key outputs #:allow-other-keys)
diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm
index 408734d6fa..62c6b488a6 100644
--- a/gnu/packages/package-management.scm
+++ b/gnu/packages/package-management.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -118,42 +118,23 @@ the Nix package manager.")
(define guix-devel
;; Development version of Guix.
- (let ((commit "3b09332"))
+ (let ((commit "4655005"))
(package (inherit guix-0.8)
(version (string-append "0.8." commit))
(source (origin
(method git-fetch)
(uri (git-reference
(url "git://git.sv.gnu.org/guix.git")
- (commit commit)
- (recursive? #t)))
+ (commit commit)))
(sha256
(base32
- "1szlyhpy688ca96kfyjb6cdy5zhxvqmdig4m7ql7rjqfmz0gvka1"))))
+ "04dmmnr88mwpsl0mmv03hpllyinn9cs4mmly8k0jm2acwnsni3ii"))))
(arguments
(substitute-keyword-arguments (package-arguments guix-0.8)
((#:phases phases)
`(alist-cons-before
'configure 'bootstrap
(lambda _
- ;; Comment out `git' invocations, since 'git-fetch' provides us
- ;; with a checkout that includes sub-modules.
- (substitute* "bootstrap"
- (("git ")
- "true git "))
-
- ;; Keep a list of the files already available under nix/...
- (call-with-output-file "ls-R"
- (lambda (port)
- (for-each (lambda (file)
- (format port "~a~%" file))
- (find-files "nix" ""))))
-
- ;; ... and use that as a substitute to 'git ls-tree'.
- (substitute* "nix/sync-with-upstream"
- (("git ls-tree HEAD -- [[:graph:]]+")
- "cat ls-R"))
-
;; Make sure 'msgmerge' can modify the PO files.
(for-each (lambda (po)
(chmod po #o666))
@@ -177,14 +158,14 @@ the Nix package manager.")
(define-public nix
(package
(name "nix")
- (version "1.7")
+ (version "1.8")
(source (origin
(method url-fetch)
(uri (string-append "http://nixos.org/releases/nix/nix-"
version "/nix-" version ".tar.xz"))
(sha256
(base32
- "14nc7mnma5sffqk9mglbf99w3jm4ck8pxnmkgyhy3qra9xjn749l"))))
+ "077hircacgi9y4n6kf48qp4laz1h3ab6sif3rcci1jy13f05w2m3"))))
(build-system gnu-build-system)
;; XXX: Should we pass '--with-store-dir=/gnu/store'? But then we'd also
;; need '--localstatedir=/var'. But then! The thing would use /var/nix
diff --git a/gnu/packages/patches/ninja-tests.patch b/gnu/packages/patches/ninja-tests.patch
new file mode 100644
index 0000000000..3436b6314d
--- /dev/null
+++ b/gnu/packages/patches/ninja-tests.patch
@@ -0,0 +1,44 @@
+SubprocessTest.SetWithLots fails with:
+ Raise [ulimit -n] well above 1025 to make this test go.
+Skip it.
+
+SubprocessTest.InterruptChild fails when using 'system*':
+ *** Failure in src/subprocess_test.cc:83
+ ExitInterrupted == subproc->Finish()
+I can pass it by using 'system' instead of 'system*' when building locally,
+but it still failed on Hydra. Skip it.
+
+--- ninja-1.5.3.orig/src/subprocess_test.cc 2015-01-15 10:34:28.859522176 +0800
++++ ninja-1.5.3/src/subprocess_test.cc 2015-01-15 10:37:52.969572075 +0800
+@@ -72,6 +72,7 @@
+
+ #ifndef _WIN32
+
++#if 0
+ TEST_F(SubprocessTest, InterruptChild) {
+ Subprocess* subproc = subprocs_.Add("kill -INT $$");
+ ASSERT_NE((Subprocess *) 0, subproc);
+@@ -82,6 +83,7 @@
+
+ EXPECT_EQ(ExitInterrupted, subproc->Finish());
+ }
++#endif
+
+ TEST_F(SubprocessTest, InterruptParent) {
+ Subprocess* subproc = subprocs_.Add("kill -INT $PPID ; sleep 1");
+@@ -169,6 +171,7 @@
+ // OS X's process limit is less than 1025 by default
+ // (|sysctl kern.maxprocperuid| is 709 on 10.7 and 10.8 and less prior to that).
+ #if !defined(__APPLE__) && !defined(_WIN32)
++#if 0
+ TEST_F(SubprocessTest, SetWithLots) {
+ // Arbitrary big number; needs to be over 1024 to confirm we're no longer
+ // hostage to pselect.
+@@ -196,6 +199,7 @@
+ }
+ ASSERT_EQ(kNumProcs, subprocs_.finished_.size());
+ }
++#endif
+ #endif // !__APPLE__ && !_WIN32
+
+ // TODO: this test could work on Windows, just not sure how to simply
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index eae8abaad2..41df88088e 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -36,14 +36,21 @@
(sha256
(base32
"1arkyizn5wbgvbh53aziv3s6lmd3wm9lqzkhxb3hijlp1y124hjg"))
- (patches (list (search-patch "plotutils-libpng-jmpbuf.patch")))))
+ (patches (list (search-patch "plotutils-libpng-jmpbuf.patch")))
+ (modules '((guix build utils)))
+ (snippet
+ ;; Force the use of libXaw7 instead of libXaw. When not doing
+ ;; that, libplot.la ends up containing just "-lXaw" (without
+ ;; "-L/path/to/Xaw"), due to the fact that there is no
+ ;; libXaw.la, which forces us to propagate libXaw.
+ '(substitute* "configure"
+ (("-lXaw")
+ "-lXaw7")))))
(build-system gnu-build-system)
(inputs `(("libpng" ,libpng)
("libx11" ,libx11)
- ("libxt" ,libxt)))
-
- ;; libplot.la has '-lXaw'.
- (propagated-inputs `(("libxaw" ,libxaw)))
+ ("libxt" ,libxt)
+ ("libxaw" ,libxaw)))
(home-page
"http://www.gnu.org/software/plotutils/")
diff --git a/gnu/packages/version-control.scm b/gnu/packages/version-control.scm
index 47b4692d7c..59ca166416 100644
--- a/gnu/packages/version-control.scm
+++ b/gnu/packages/version-control.scm
@@ -384,14 +384,14 @@ also walk each side of a merge and test those changes individually.")
(define-public mercurial
(package
(name "mercurial")
- (version "2.7.1")
+ (version "3.2.4")
(source (origin
(method url-fetch)
(uri (string-append "http://mercurial.selenic.com/release/mercurial-"
version ".tar.gz"))
(sha256
(base32
- "121m8f7vmipmdg00cnzdz2rjkgydh28mwfirqkrbs5fv089vywl4"))))
+ "1g7nfvapxj5k44dyp0p08v37s0zmrj2vl0rjgfd8297x0afidm08"))))
(build-system python-build-system)
(arguments
`(;; Restrict to Python 2, as Python 3 would require
diff --git a/gnu/services/avahi.scm b/gnu/services/avahi.scm
index 48a2c75927..89478cb997 100644
--- a/gnu/services/avahi.scm
+++ b/gnu/services/avahi.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,6 +21,7 @@
#:use-module (gnu system shadow)
#:use-module (gnu packages avahi)
#:use-module (guix monads)
+ #:use-module (guix store)
#:use-module (guix gexp)
#:export (avahi-service))
diff --git a/gnu/services/base.scm b/gnu/services/base.scm
index 402f5991a5..d55eb3a5f9 100644
--- a/gnu/services/base.scm
+++ b/gnu/services/base.scm
@@ -17,8 +17,7 @@
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu services base)
- #:use-module ((guix store)
- #:select (%store-prefix))
+ #:use-module (guix store)
#:use-module (gnu services)
#:use-module (gnu services networking)
#:use-module (gnu system shadow) ; 'user-account', etc.
@@ -193,7 +192,7 @@ in KNOWN-MOUNT-POINTS when it is stopped."
;; the system. Typical example is user-space file systems.
"/etc/dmd/do-not-kill")
-(define* (user-processes-service requirements #:key (grace-delay 5))
+(define* (user-processes-service requirements #:key (grace-delay 4))
"Return the service that is responsible for terminating all the processes so
that the root file system can be re-mounted read-only, just before
rebooting/halting. Processes still running GRACE-DELAY seconds after SIGTERM
@@ -230,6 +229,18 @@ stopped before 'kill' is called."
(@ (ice-9 rdelim) read-string))))
'()))
+ (define (now)
+ (car (gettimeofday)))
+
+ (define (sleep* n)
+ ;; Really sleep N seconds.
+ ;; Work around <http://bugs.gnu.org/19581>.
+ (define start (now))
+ (let loop ((elapsed 0))
+ (when (> n elapsed)
+ (sleep (- n elapsed))
+ (loop (- (now) start)))))
+
(define lset= (@ (srfi srfi-1) lset=))
(display "sending all processes the TERM signal\n")
@@ -238,7 +249,7 @@ stopped before 'kill' is called."
(begin
;; Easy: terminate all of them.
(kill -1 SIGTERM)
- (sleep #$grace-delay)
+ (sleep* #$grace-delay)
(kill -1 SIGKILL))
(begin
;; Kill them all except OMITTED-PIDS. XXX: We
@@ -246,7 +257,7 @@ stopped before 'kill' is called."
;; list of processes, like 'killall5' does, but
;; that seems unreliable.
(kill-except omitted-pids SIGTERM)
- (sleep #$grace-delay)
+ (sleep* #$grace-delay)
(kill-except omitted-pids SIGKILL)
(delete-file #$%do-not-kill-file)))
@@ -256,7 +267,7 @@ stopped before 'kill' is called."
(format #t "waiting for process termination\
(processes left: ~s)~%"
pids)
- (sleep 2)
+ (sleep* 2)
(wait))))
(display "all processes have been terminated\n")
diff --git a/gnu/services/dbus.scm b/gnu/services/dbus.scm
index 5da7f14605..d97c54cc5d 100644
--- a/gnu/services/dbus.scm
+++ b/gnu/services/dbus.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -21,6 +21,7 @@
#:use-module (gnu system shadow)
#:use-module (gnu packages glib)
#:use-module (guix monads)
+ #:use-module (guix store)
#:use-module (guix gexp)
#:export (dbus-service))
diff --git a/gnu/services/dmd.scm b/gnu/services/dmd.scm
index 35b6b384c1..4bf76e01ec 100644
--- a/gnu/services/dmd.scm
+++ b/gnu/services/dmd.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -18,7 +18,9 @@
(define-module (gnu services dmd)
#:use-module (guix gexp)
+ #:use-module (guix store)
#:use-module (guix monads)
+ #:use-module (guix derivations) ;imported-modules, etc.
#:use-module (gnu services)
#:use-module (ice-9 match)
#:use-module (srfi srfi-1)
diff --git a/gnu/services/networking.scm b/gnu/services/networking.scm
index db9be8cfbd..f0c3538e0b 100644
--- a/gnu/services/networking.scm
+++ b/gnu/services/networking.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -25,6 +25,7 @@
#:use-module (gnu packages messaging)
#:use-module (gnu packages ntp)
#:use-module (guix gexp)
+ #:use-module (guix store)
#:use-module (guix monads)
#:use-module (srfi srfi-26)
#:export (%facebook-host-aliases
diff --git a/gnu/services/ssh.scm b/gnu/services/ssh.scm
index 2b52c777b7..8868e4fcdb 100644
--- a/gnu/services/ssh.scm
+++ b/gnu/services/ssh.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -18,10 +18,11 @@
(define-module (gnu services ssh)
#:use-module (guix gexp)
+ #:use-module (guix store)
+ #:use-module (guix monads)
#:use-module (gnu services)
#:use-module (gnu system linux) ; 'pam-service'
#:use-module (gnu packages lsh)
- #:use-module (guix monads)
#:export (lsh-service))
;;; Commentary:
diff --git a/gnu/services/xorg.scm b/gnu/services/xorg.scm
index b32bb8674c..6820456698 100644
--- a/gnu/services/xorg.scm
+++ b/gnu/services/xorg.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -30,6 +30,7 @@
#:use-module (gnu packages admin)
#:use-module (gnu packages bash)
#:use-module (guix gexp)
+ #:use-module (guix store)
#:use-module (guix monads)
#:use-module (guix derivations)
#:use-module (srfi srfi-1)
diff --git a/gnu/system.scm b/gnu/system.scm
index fc8b57fe06..78c63bb477 100644
--- a/gnu/system.scm
+++ b/gnu/system.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -332,7 +332,12 @@ explicitly appear in OS."
(@ (gnu packages admin) dmd) guix
lsof ;for Guix's 'list-runtime-roots'
pciutils usbutils
- util-linux inetutils isc-dhcp wireless-tools
+ util-linux inetutils isc-dhcp
+
+ ;; wireless-tools is deprecated in favor of iw, but it's still what
+ ;; many people are familiar with, so keep it around.
+ iw wireless-tools
+
net-tools ; XXX: remove when Inetutils suffices
man-db
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index ab3fe42ae1..35462fff75 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -19,6 +19,7 @@
(define-module (gnu system install)
#:use-module (gnu)
#:use-module (guix gexp)
+ #:use-module (guix store)
#:use-module (guix monads)
#:use-module ((guix store) #:select (%store-prefix))
#:use-module (gnu packages admin)
diff --git a/gnu/system/linux-initrd.scm b/gnu/system/linux-initrd.scm
index ee6ce48828..e72d050e96 100644
--- a/gnu/system/linux-initrd.scm
+++ b/gnu/system/linux-initrd.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -18,6 +18,7 @@
(define-module (gnu system linux-initrd)
#:use-module (guix monads)
+ #:use-module (guix store)
#:use-module (guix gexp)
#:use-module (guix utils)
#:use-module ((guix store)
diff --git a/gnu/system/shadow.scm b/gnu/system/shadow.scm
index b4ba0060bd..4a9580a672 100644
--- a/gnu/system/shadow.scm
+++ b/gnu/system/shadow.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -19,6 +19,7 @@
(define-module (gnu system shadow)
#:use-module (guix records)
#:use-module (guix gexp)
+ #:use-module (guix store)
#:use-module (guix monads)
#:use-module ((gnu system file-systems)
#:select (%tty-gid))