Patchwork [3/4] gnu: Move util-linux/mount to new file and deal with the effects.

login
register
mail settings
Submitter John Darrington
Date Nov. 10, 2016, 9:14 p.m.
Message ID <1478812461-18483-3-git-send-email-jmd@gnu.org>
Download mbox | patch
Permalink /patch/17382/
State New
Headers show

Comments

John Darrington - Nov. 10, 2016, 9:14 p.m.
* gnu/packages/linux-base.scm: New file.
* gnu/local.mk: Add it.
* gnu/packages/linux.scm (util-linux/base util-linux/mount lvm2 eudev procps kmod): Remove.
* gnu/packages/admin.scm: Use module linux-base.
* gnu/packages/bash.scm: Use module linux-base.
* gnu/packages/guile.scm: Use module linux-base.
* gnu/packages/linux-base.scm: Use module linux-base.
* gnu/packages/linux.scm: Use module linux-base.
* gnu/packages/nfs.scm: Use module linux-base.
* gnu/packages/texinfo.scm: Use module linux-base.
* gnu/packages/tls.scm: Use module linux-base.
---
 gnu/local.mk                |   1 +
 gnu/packages/admin.scm      |   1 +
 gnu/packages/bash.scm       |   1 -
 gnu/packages/guile.scm      |   2 +-
 gnu/packages/linux-base.scm | 296 ++++++++++++++++++++++++++++++++++++++++++++
 gnu/packages/linux.scm      | 292 +------------------------------------------
 gnu/packages/nfs.scm        |  32 ++++-
 gnu/packages/texinfo.scm    |   3 +-
 gnu/packages/tls.scm        |   1 +
 9 files changed, 334 insertions(+), 295 deletions(-)
 create mode 100644 gnu/packages/linux-base.scm

Patch

diff --git a/gnu/local.mk b/gnu/local.mk
index b3a4cd5..16c337a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -224,6 +224,7 @@  GNU_SYSTEM_MODULES =				\
   %D%/packages/lighting.scm                     \
   %D%/packages/links.scm			\
   %D%/packages/linux.scm			\
+  %D%/packages/linux-base.scm			\
   %D%/packages/lirc.scm				\
   %D%/packages/lisp.scm				\
   %D%/packages/llvm.scm				\
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index 77432c4..7af79f1 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -46,6 +46,7 @@ 
   #:use-module (gnu packages cyrus-sasl)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages readline)
+  #:use-module (gnu packages linux-base)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages guile)
diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index f3d8517..6c3c0ba 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -24,7 +24,6 @@ 
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages readline)
   #:use-module (gnu packages bison)
-  #:use-module (gnu packages linux)
   #:use-module (guix packages)
   #:use-module (guix download)
   #:use-module (guix utils)
diff --git a/gnu/packages/guile.scm b/gnu/packages/guile.scm
index f712514..8b17aeb 100644
--- a/gnu/packages/guile.scm
+++ b/gnu/packages/guile.scm
@@ -36,7 +36,7 @@ 
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages libunistring)
-  #:use-module (gnu packages linux)
+  #:use-module (gnu packages linux-base)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages pkg-config)
diff --git a/gnu/packages/linux-base.scm b/gnu/packages/linux-base.scm
new file mode 100644
index 0000000..4a11397
--- /dev/null
+++ b/gnu/packages/linux-base.scm
@@ -0,0 +1,296 @@ 
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 John Darrington <jmd@gnu.org>
+;;;
+;;; 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 linux-base)
+  #:use-module (gnu packages)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages gperf)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (guix utils))
+
+(define-public util-linux/base
+  (package
+    (name "util-linux-base")
+    (version "2.27")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://kernel.org/linux/utils/"
+                                  "util-linux" "/v" (version-major+minor version) "/"
+                                  "util-linux" "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1ivdx1bhjbakf77agm9dn3wyxia1wgz9lzxgd61zqxw3xzih9gzw"))
+              (patches (search-patches "util-linux-tests.patch"))
+              (modules '((guix build utils)))
+              (snippet
+               ;; We take the 'logger' program from GNU Inetutils and 'kill'
+               ;; from GNU Coreutils.
+               '(begin
+                  (substitute* "configure"
+                    (("build_logger=yes") "build_logger=no")
+                    (("build_kill=yes") "build_kill=no"))
+                  #t))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                  (add-after
+                      'install 'move-static-libraries
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (let ((out    (assoc-ref outputs "out"))
+                            (static (assoc-ref outputs "static")))
+                        (mkdir-p (string-append static "/lib"))
+                        (with-directory-excursion out
+                          (for-each (lambda (file)
+                                      (rename-file file
+                                                   (string-append static "/"
+                                                                  file)))
+                                    (find-files "lib" "\\.a$")))
+                        #t))))))
+    (outputs '("out"
+               "static"))      ; >2 MiB of static .a libraries
+    (home-page "https://www.kernel.org/pub/linux/utils/util-linux/")
+    (synopsis "Collection of utilities for the Linux kernel")
+    (description "Util-linux is a diverse collection of Linux kernel
+utilities.  It provides dmesg and includes tools for working with file systems,
+block devices, UUIDs, TTYs, and many other tools.")
+
+    ;; Note that util-linux doesn't use the same license for all the
+    ;; code.  GPLv2+ is the default license for a code without an
+    ;; explicitly defined license.
+    (license (list license:gpl3+ license:gpl2+ license:gpl2 license:lgpl2.0+
+                   license:bsd-4 license:public-domain))))
+
+(define-public util-linux/mount
+  (package
+    (inherit util-linux/base)
+    (name "util-linux-mount")
+    (source (origin (inherit (package-source util-linux/base))))
+    (arguments
+     `(#:configure-flags (list "--disable-all-programs"
+                               "--disable-bash-completion"
+                               "--disable-nls"
+                               "--enable-libmount"
+                               "--enable-libblkid"
+                               "--enable-libuuid"
+                               "--enable-mount")
+       ,@(package-arguments util-linux/base)))
+    (synopsis "Mount/Umount utilities for the Linux kernel")
+    (description "Util-linux is a diverse collection of Linux kernel
+utilities.  However, this is a minimally configured package providing just
+the @code{mount} and @code{umount} utilities.")))
+
+(define-public lvm2
+  (package
+    (name "lvm2")
+    (version "2.02.166")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2."
+                                  version ".tgz"))
+              (sha256
+               (base32
+                "150v0mawd2swdvypcmkjd3h3s4n5i1220h6sxx94a8jvp1kb0871"))
+              (modules '((guix build utils)))
+              (snippet
+               '(begin
+                  (use-modules (guix build utils))
+
+                  ;; Honor sysconfdir.
+                  (substitute* "make.tmpl.in"
+                    (("confdir = .*$")
+                     "confdir = @sysconfdir@\n")
+                    (("DEFAULT_SYS_DIR = @DEFAULT_SYS_DIR@")
+                     "DEFAULT_SYS_DIR = @sysconfdir@"))))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("procps" ,procps)))                       ;tests use 'pgrep'
+    (inputs
+     `(("udev" ,eudev)))
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'set-makefile-shell
+           (lambda _
+             ;; Use 'sh', not 'bash', so that '. lib/utils.sh' works as
+             ;; expected.
+             (setenv "SHELL" (which "sh"))
+
+             ;; Replace /bin/sh with the right file name.
+             (patch-makefile-SHELL "make.tmpl")
+             #t))
+         (add-before 'strip 'make-objects-writable
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Make compiled objects writable so they can be stripped.
+             (let ((out (assoc-ref outputs "out")))
+               (for-each (lambda (file)
+                           (chmod file #o755))
+                         (append
+                           (find-files (string-append out "/lib"))
+                           (find-files (string-append out "/sbin"))))
+               #t))))
+
+       #:configure-flags (list (string-append "--sysconfdir="
+                                              (assoc-ref %outputs "out")
+                                              "/etc/lvm")
+                               "--enable-udev_sync"
+                               "--enable-udev_rules"
+
+                               ;; Make sure programs such as 'dmsetup' can
+                               ;; find libdevmapper.so.
+                               (string-append "LDFLAGS=-Wl,-rpath="
+                                              (assoc-ref %outputs "out")
+                                              "/lib"))
+
+       ;; The tests use 'mknod', which requires root access.
+       #:tests? #f))
+    (home-page "http://sourceware.org/lvm2/")
+    (synopsis "Logical volume management for Linux")
+    (description
+     "LVM2 is the logical volume management tool set for Linux-based systems.
+This package includes the user-space libraries and tools, including the device
+mapper.  Kernel components are part of Linux-libre.")
+
+    ;; Libraries (liblvm2, libdevmapper) are LGPLv2.1.
+    ;; Command-line tools are GPLv2.
+    (license (list license:gpl2 license:lgpl2.1))))
+
+(define-public eudev
+  ;; The post-systemd fork, maintained by Gentoo.
+  (package
+    (name "eudev")
+    (version "3.1.5")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://dev.gentoo.org/~blueness/eudev/eudev-"
+                    version ".tar.gz"))
+              (sha256
+               (base32
+                "0akg9gcc3c2p56xbhlvbybqavcprly5q0bvk655zwl6d62j8an7p"))
+              (patches (search-patches "eudev-rules-directory.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("perl" ,perl)
+       ("gperf" ,gperf)))
+    (inputs
+     ;; When linked against libblkid, eudev can populate /dev/disk/by-label
+     ;; and similar; it also installs the '60-persistent-storage.rules' file,
+     ;; which contains the rules to do that.
+     `(
+       ("util-linux" ,util-linux/mount)                 ;for blkid
+       ("kmod" ,kmod)))
+    (home-page "https://wiki.gentoo.org/wiki/Project:Eudev")
+    (synopsis "Userspace device management")
+    (description "Udev is a daemon which dynamically creates and removes
+device nodes from /dev/, handles hotplug events and loads drivers at boot
+time.")
+    (license license:gpl2+)))
+
+
+(define-public procps
+  (package
+    (name "procps")
+    (version "3.3.11")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/procps-ng/Production/"
+                                  "procps-ng-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1va4n0mpsq327ca9dqp4hnrpgs6821rp0f2m0jyc1bfjl9lk2jg9"))
+              (patches
+               (list (search-patch "procps-non-linux.patch")))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:modules ((guix build utils)
+                  (guix build gnu-build-system)
+                  (srfi srfi-1)
+                  (srfi srfi-26))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after
+          'install 'post-install
+          ;; Remove commands and man pages redudant with
+          ;; Coreutils.
+          (lambda* (#:key outputs #:allow-other-keys)
+            (let* ((out (assoc-ref outputs "out"))
+                   (dup (append-map (cut find-files out <>)
+                                    '("^kill" "^uptime"))))
+              (for-each delete-file dup)
+              #t))))))
+    (inputs `(("ncurses" ,ncurses)))
+    (home-page "https://gitlab.com/procps-ng/procps/")
+    (synopsis "Utilities that give information about processes")
+    (description
+     "Procps is the package that has a bunch of small useful utilities
+that give information about processes using the Linux /proc file system.
+The package includes the programs ps, top, vmstat, w, kill, free,
+slabtop, and skill.")
+    (license license:gpl2)))
+
+(define-public kmod
+  (package
+    (name "kmod")
+    (version "22")
+    (source (origin
+              (method url-fetch)
+              (uri
+               (string-append "mirror://kernel.org/linux/utils/kernel/kmod/"
+                              "kmod-" version ".tar.xz"))
+              (sha256
+               (base32
+                "10lzfkmnpq6a43a3gkx7x633njh216w0bjwz31rv8a1jlgg1sfxs"))
+              (patches (search-patches "kmod-module-directory.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("xz" ,xz)
+       ("zlib" ,zlib)))
+    (arguments
+     `(#:tests? #f ; FIXME: Investigate test failures
+       #:configure-flags '("--with-xz" "--with-zlib")
+       #:phases (alist-cons-after
+                 'install 'install-modprobe&co
+                 (lambda* (#:key outputs #:allow-other-keys)
+                   (let* ((out (assoc-ref outputs "out"))
+                          (bin (string-append out "/bin")))
+                     (for-each (lambda (tool)
+                                 (symlink "kmod"
+                                          (string-append bin "/" tool)))
+                               '("insmod" "rmmod" "lsmod" "modprobe"
+                                 "modinfo" "depmod"))))
+                 %standard-phases)))
+    (home-page "https://www.kernel.org/")
+    (synopsis "Kernel module tools")
+    (description "Kmod is a set of tools to handle common tasks with Linux
+kernel modules like insert, remove, list, check properties, resolve
+dependencies and aliases.
+
+These tools are designed on top of libkmod, a library that is shipped with
+kmod.  The aim is to be compatible with tools, configurations and indices
+from the module-init-tools project.")
+    (license license:gpl2+))) ; library under lgpl2.1+
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 0a1eff5..ac7277c 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -58,6 +58,7 @@ 
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages libusb)
+  #:use-module (gnu packages linux-base)
   #:use-module (gnu packages maths)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
@@ -430,58 +431,6 @@  use the proc file system.  We're not about changing the world, but
 providing the system administrator with some help in common tasks.")
     (license license:gpl2+)))
 
-(define-public util-linux/base
-  (package
-    (name "util-linux-base")
-    (version "2.27")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://kernel.org/linux/utils/"
-                                  "util-linux" "/v" (version-major+minor version) "/"
-                                  "util-linux" "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1ivdx1bhjbakf77agm9dn3wyxia1wgz9lzxgd61zqxw3xzih9gzw"))
-              (patches (search-patches "util-linux-tests.patch"))
-              (modules '((guix build utils)))
-              (snippet
-               ;; We take the 'logger' program from GNU Inetutils and 'kill'
-               ;; from GNU Coreutils.
-               '(begin
-                  (substitute* "configure"
-                    (("build_logger=yes") "build_logger=no")
-                    (("build_kill=yes") "build_kill=no"))
-                  #t))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:phases (modify-phases %standard-phases
-                  (add-after
-                      'install 'move-static-libraries
-                    (lambda* (#:key outputs #:allow-other-keys)
-                      (let ((out    (assoc-ref outputs "out"))
-                            (static (assoc-ref outputs "static")))
-                        (mkdir-p (string-append static "/lib"))
-                        (with-directory-excursion out
-                          (for-each (lambda (file)
-                                      (rename-file file
-                                                   (string-append static "/"
-                                                                  file)))
-                                    (find-files "lib" "\\.a$")))
-                        #t))))))
-    (outputs '("out"
-               "static"))      ; >2 MiB of static .a libraries
-    (home-page "https://www.kernel.org/pub/linux/utils/util-linux/")
-    (synopsis "Collection of utilities for the Linux kernel")
-    (description "Util-linux is a diverse collection of Linux kernel
-utilities.  It provides dmesg and includes tools for working with file systems,
-block devices, UUIDs, TTYs, and many other tools.")
-
-    ;; Note that util-linux doesn't use the same license for all the
-    ;; code.  GPLv2+ is the default license for a code without an
-    ;; explicitly defined license.
-    (license (list license:gpl3+ license:gpl2+ license:gpl2 license:lgpl2.0+
-                   license:bsd-4 license:public-domain))))
-
 (define-public util-linux
   (package
     (inherit util-linux/base)
@@ -534,66 +483,6 @@  block devices, UUIDs, TTYs, and many other tools.")
      `(("perl" ,perl)
        ("net-base" ,net-base)))))                   ;for tests
 
-(define-public util-linux/mount
-  (package
-    (inherit util-linux/base)
-    (name "util-linux-mount")
-    (source (origin (inherit (package-source util-linux/base))))
-    (arguments
-     `(#:configure-flags (list "--disable-all-programs"
-                               "--disable-bash-completion"
-                               "--disable-nls"
-                               "--enable-libmount"
-                               "--enable-libblkid"
-                               "--enable-libuuid"
-                               "--enable-mount")
-       ,@(package-arguments util-linux/base)))
-    (synopsis "Mount/Umount utilities for the Linux kernel")
-    (description "Util-linux is a diverse collection of Linux kernel
-utilities.  However, this is a minimally configured package providing just
-the @code{mount} and @code{umount} utilities.")))
-
-
-(define-public procps
-  (package
-    (name "procps")
-    (version "3.3.11")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://sourceforge/procps-ng/Production/"
-                                  "procps-ng-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1va4n0mpsq327ca9dqp4hnrpgs6821rp0f2m0jyc1bfjl9lk2jg9"))
-              (patches
-               (list (search-patch "procps-non-linux.patch")))))
-    (build-system gnu-build-system)
-    (arguments
-     '(#:modules ((guix build utils)
-                  (guix build gnu-build-system)
-                  (srfi srfi-1)
-                  (srfi srfi-26))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after
-          'install 'post-install
-          ;; Remove commands and man pages redudant with
-          ;; Coreutils.
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let* ((out (assoc-ref outputs "out"))
-                   (dup (append-map (cut find-files out <>)
-                                    '("^kill" "^uptime"))))
-              (for-each delete-file dup)
-              #t))))))
-    (inputs `(("ncurses" ,ncurses)))
-    (home-page "https://gitlab.com/procps-ng/procps/")
-    (synopsis "Utilities that give information about processes")
-    (description
-     "Procps is the package that has a bunch of small useful utilities
-that give information about processes using the Linux /proc file system.
-The package includes the programs ps, top, vmstat, w, kill, free,
-slabtop, and skill.")
-    (license license:gpl2)))
 
 (define-public usbutils
   (package
@@ -1605,157 +1494,6 @@  for systems using the Linux kernel.  This includes commands such as
 to use Linux' inotify mechanism, which allows file accesses to be monitored.")
     (license license:gpl2+)))
 
-(define-public kmod
-  (package
-    (name "kmod")
-    (version "22")
-    (source (origin
-              (method url-fetch)
-              (uri
-               (string-append "mirror://kernel.org/linux/utils/kernel/kmod/"
-                              "kmod-" version ".tar.xz"))
-              (sha256
-               (base32
-                "10lzfkmnpq6a43a3gkx7x633njh216w0bjwz31rv8a1jlgg1sfxs"))
-              (patches (search-patches "kmod-module-directory.patch"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("pkg-config" ,pkg-config)))
-    (inputs
-     `(("xz" ,xz)
-       ("zlib" ,zlib)))
-    (arguments
-     `(#:tests? #f ; FIXME: Investigate test failures
-       #:configure-flags '("--with-xz" "--with-zlib")
-       #:phases (alist-cons-after
-                 'install 'install-modprobe&co
-                 (lambda* (#:key outputs #:allow-other-keys)
-                   (let* ((out (assoc-ref outputs "out"))
-                          (bin (string-append out "/bin")))
-                     (for-each (lambda (tool)
-                                 (symlink "kmod"
-                                          (string-append bin "/" tool)))
-                               '("insmod" "rmmod" "lsmod" "modprobe"
-                                 "modinfo" "depmod"))))
-                 %standard-phases)))
-    (home-page "https://www.kernel.org/")
-    (synopsis "Kernel module tools")
-    (description "Kmod is a set of tools to handle common tasks with Linux
-kernel modules like insert, remove, list, check properties, resolve
-dependencies and aliases.
-
-These tools are designed on top of libkmod, a library that is shipped with
-kmod.  The aim is to be compatible with tools, configurations and indices
-from the module-init-tools project.")
-    (license license:gpl2+))) ; library under lgpl2.1+
-
-(define-public eudev
-  ;; The post-systemd fork, maintained by Gentoo.
-  (package
-    (name "eudev")
-    (version "3.1.5")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "http://dev.gentoo.org/~blueness/eudev/eudev-"
-                    version ".tar.gz"))
-              (sha256
-               (base32
-                "0akg9gcc3c2p56xbhlvbybqavcprly5q0bvk655zwl6d62j8an7p"))
-              (patches (search-patches "eudev-rules-directory.patch"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("perl" ,perl)
-       ("gperf" ,gperf)))
-    (inputs
-     ;; When linked against libblkid, eudev can populate /dev/disk/by-label
-     ;; and similar; it also installs the '60-persistent-storage.rules' file,
-     ;; which contains the rules to do that.
-     `(("util-linux" ,util-linux)                 ;for blkid
-       ("kmod" ,kmod)))
-    (home-page "https://wiki.gentoo.org/wiki/Project:Eudev")
-    (synopsis "Userspace device management")
-    (description "Udev is a daemon which dynamically creates and removes
-device nodes from /dev/, handles hotplug events and loads drivers at boot
-time.")
-    (license license:gpl2+)))
-
-(define-public lvm2
-  (package
-    (name "lvm2")
-    (version "2.02.166")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "ftp://sources.redhat.com/pub/lvm2/releases/LVM2."
-                                  version ".tgz"))
-              (sha256
-               (base32
-                "150v0mawd2swdvypcmkjd3h3s4n5i1220h6sxx94a8jvp1kb0871"))
-              (modules '((guix build utils)))
-              (snippet
-               '(begin
-                  (use-modules (guix build utils))
-
-                  ;; Honor sysconfdir.
-                  (substitute* "make.tmpl.in"
-                    (("confdir = .*$")
-                     "confdir = @sysconfdir@\n")
-                    (("DEFAULT_SYS_DIR = @DEFAULT_SYS_DIR@")
-                     "DEFAULT_SYS_DIR = @sysconfdir@"))))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("procps" ,procps)))                       ;tests use 'pgrep'
-    (inputs
-     `(("udev" ,eudev)))
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-after 'configure 'set-makefile-shell
-           (lambda _
-             ;; Use 'sh', not 'bash', so that '. lib/utils.sh' works as
-             ;; expected.
-             (setenv "SHELL" (which "sh"))
-
-             ;; Replace /bin/sh with the right file name.
-             (patch-makefile-SHELL "make.tmpl")
-             #t))
-         (add-before 'strip 'make-objects-writable
-           (lambda* (#:key outputs #:allow-other-keys)
-             ;; Make compiled objects writable so they can be stripped.
-             (let ((out (assoc-ref outputs "out")))
-               (for-each (lambda (file)
-                           (chmod file #o755))
-                         (append
-                           (find-files (string-append out "/lib"))
-                           (find-files (string-append out "/sbin"))))
-               #t))))
-
-       #:configure-flags (list (string-append "--sysconfdir="
-                                              (assoc-ref %outputs "out")
-                                              "/etc/lvm")
-                               "--enable-udev_sync"
-                               "--enable-udev_rules"
-
-                               ;; Make sure programs such as 'dmsetup' can
-                               ;; find libdevmapper.so.
-                               (string-append "LDFLAGS=-Wl,-rpath="
-                                              (assoc-ref %outputs "out")
-                                              "/lib"))
-
-       ;; The tests use 'mknod', which requires root access.
-       #:tests? #f))
-    (home-page "http://sourceware.org/lvm2/")
-    (synopsis "Logical volume management for Linux")
-    (description
-     "LVM2 is the logical volume management tool set for Linux-based systems.
-This package includes the user-space libraries and tools, including the device
-mapper.  Kernel components are part of Linux-libre.")
-
-    ;; Libraries (liblvm2, libdevmapper) are LGPLv2.1.
-    ;; Command-line tools are GPLv2.
-    (license (list license:gpl2 license:lgpl2.1))))
 
 (define-public wireless-tools
   (package
@@ -2965,34 +2703,6 @@  native Linux file system, and has been part of the Linux kernel since version
     ;; grant additional permission to link with OpenSSL.
     (license license:gpl2+)))
 
-(define-public libnfsidmap
-  (package
-    (name "libnfsidmap")
-    (version "0.25")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "http://www.citi.umich.edu/projects/nfsv4/linux/"
-                   name "/" name "-" version ".tar.gz"))
-             (sha256
-              (base32
-               "1kzgwxzh83qi97rblcm9qj80cdvnv8kml2plz0q103j0hifj8vb5"))))
-    (build-system gnu-build-system)
-    (arguments
-     `(#:configure-flags (list
-                          (string-append "--with-pluginpath="
-                                         (assoc-ref %outputs "out")
-                                         "/lib/libnfsidmap"))))
-    (home-page
-     "http://www.citi.umich.edu/projects/nfsv4/crossrealm/libnfsidmap_config.html")
-    (synopsis
-     "NFSv4 support library for name/ID mapping")
-    (description "Libnfsidmap is a library holding mulitiple methods of
-mapping names to ids and visa versa, mainly for NFSv4.  It provides an
-extensible array of mapping functions, currently consisting of two choices:
-the default @code{nsswitch} and the experimental @code{umich_ldap}.")
-    (license (license:non-copyleft "file://COPYING"
-                                   "See COPYING in the distribution."))))
 
 (define-public module-init-tools
   (package
diff --git a/gnu/packages/nfs.scm b/gnu/packages/nfs.scm
index 761b19c..cae6a34 100644
--- a/gnu/packages/nfs.scm
+++ b/gnu/packages/nfs.scm
@@ -18,7 +18,7 @@ 
 
 (define-module (gnu packages nfs)
   #:use-module (gnu packages)
-  #:use-module (gnu packages linux)
+  #:use-module (gnu packages linux-base)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages gsasl)
   #:use-module (gnu packages libevent)
@@ -38,6 +38,36 @@ 
   #:use-module (srfi srfi-26)
   #:use-module (ice-9 match))
 
+
+(define-public libnfsidmap
+  (package
+    (name "libnfsidmap")
+    (version "0.25")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append
+                   "http://www.citi.umich.edu/projects/nfsv4/linux/"
+                   name "/" name "-" version ".tar.gz"))
+             (sha256
+              (base32
+               "1kzgwxzh83qi97rblcm9qj80cdvnv8kml2plz0q103j0hifj8vb5"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags (list
+                          (string-append "--with-pluginpath="
+                                         (assoc-ref %outputs "out")
+                                         "/lib/libnfsidmap"))))
+    (home-page
+     "http://www.citi.umich.edu/projects/nfsv4/crossrealm/libnfsidmap_config.html")
+    (synopsis
+     "NFSv4 support library for name/ID mapping")
+    (description "Libnfsidmap is a library holding mulitiple methods of
+mapping names to ids and visa versa, mainly for NFSv4.  It provides an
+extensible array of mapping functions, currently consisting of two choices:
+the default @code{nsswitch} and the experimental @code{umich_ldap}.")
+    (license (license:non-copyleft "file://COPYING"
+                                   "See COPYING in the distribution."))))
+
 (define-public nfs-utils
   (package
     (name "nfs-utils")
diff --git a/gnu/packages/texinfo.scm b/gnu/packages/texinfo.scm
index 5b22e84..2b1970b 100644
--- a/gnu/packages/texinfo.scm
+++ b/gnu/packages/texinfo.scm
@@ -25,8 +25,9 @@ 
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages linux-base)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages linux)
+
   #:use-module (gnu packages ncurses))
 
 (define-public texinfo
diff --git a/gnu/packages/tls.scm b/gnu/packages/tls.scm
index 8318dd2..987688d 100644
--- a/gnu/packages/tls.scm
+++ b/gnu/packages/tls.scm
@@ -39,6 +39,7 @@ 
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages libidn)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages linux-base)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages nettle)
   #:use-module (gnu packages perl)