guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 1/4] gnu: Separate util-linux into three packages.


From: John Darrington
Subject: [PATCH 1/4] gnu: Separate util-linux into three packages.
Date: Thu, 10 Nov 2016 22:14:18 +0100

* gnu/packages/linux.scm (util-linux/base): New variable,
(util-linux/mount): New variable,  (util-linux) Refine
inheriting from util-linux/base.
---
 gnu/packages/linux.scm | 69 ++++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 55 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 73c177a..0a1eff5 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -430,15 +430,15 @@ 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
+(define-public util-linux/base
   (package
-    (name "util-linux")
+    (name "util-linux-base")
     (version "2.27")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://kernel.org/linux/utils/"
-                                  name "/v" (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
+                                  "util-linux" "/v" (version-major+minor 
version) "/"
+                                  "util-linux" "-" version ".tar.xz"))
               (sha256
                (base32
                 "1ivdx1bhjbakf77agm9dn3wyxia1wgz9lzxgd61zqxw3xzih9gzw"))
@@ -453,8 +453,40 @@ providing the system administrator with some help in 
common tasks.")
                     (("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)
+    (name "util-linux")
+    (source (origin (inherit (package-source util-linux/base))))
     (arguments
      `(#:configure-flags (list "--disable-use-tty-group"
 
@@ -500,18 +532,27 @@ providing the system administrator with some help in 
common tasks.")
               ("ncurses" ,ncurses)))
     (native-inputs
      `(("perl" ,perl)
-       ("net-base" ,net-base)))                   ;for tests
-    (home-page "https://www.kernel.org/pub/linux/utils/util-linux/";)
-    (synopsis "Collection of utilities for the Linux kernel")
+       ("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.  It provides dmesg and includes tools for working with file systems,
-block devices, UUIDs, TTYs, and many other tools.")
+utilities.  However, this is a minimally configured package providing just
+the @code{mount} and @code{umount} utilities.")))
 
-    ;; 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 procps
   (package
-- 
2.1.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]