* [PATCH 1/2] gnu: Move package util-linux into its own module.
@ 2014-07-21 12:46 John Darrington
2014-07-21 12:46 ` [PATCH 2/2] gnu, guix: Add a gzip package which includes tests, and use it where possible John Darrington
0 siblings, 1 reply; 4+ messages in thread
From: John Darrington @ 2014-07-21 12:46 UTC (permalink / raw)
To: guix-devel; +Cc: John Darrington
* gnu-system.am: Add file util-linux.scm
* gnu/packages/linux.scm (util-linux): Remove variable.
* gnu/packages/util-linux.scm : New file.
---
gnu-system.am | 1 +
gnu/packages/linux.scm | 41 +-------------------------
gnu/packages/util-linux.scm | 67 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 69 insertions(+), 40 deletions(-)
create mode 100644 gnu/packages/util-linux.scm
diff --git a/gnu-system.am b/gnu-system.am
index 0423d14..b681d66 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -233,6 +233,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/uucp.scm \
gnu/packages/unrtf.scm \
gnu/packages/upnp.scm \
+ gnu/packages/util-linux.scm \
gnu/packages/valgrind.scm \
gnu/packages/version-control.scm \
gnu/packages/video.scm \
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 09d123a..1bf7608 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -39,6 +39,7 @@
#:use-module (gnu packages gettext)
#:use-module (gnu packages glib)
#:use-module (gnu packages pulseaudio)
+ #:use-module (gnu packages util-linux)
#:use-module (gnu packages attr)
#:use-module (gnu packages xml)
#:use-module (gnu packages autotools)
@@ -363,46 +364,6 @@ use the proc filesystem. We're not about changing the world, but
providing the system administrator with some help in common tasks.")
(license gpl2+)))
-(define-public util-linux
- (package
- (name "util-linux")
- (version "2.21")
- (source (origin
- (method url-fetch)
- (uri (string-append "mirror://kernel.org/linux/utils/"
- name "/v" version "/"
- name "-" version ".2" ".tar.xz"))
- (sha256
- (base32
- "1rpgghf7n0zx0cdy8hibr41wvkm2qp1yvd8ab1rxr193l1jmgcir"))
- (patches (list (search-patch "util-linux-perl.patch")))))
- (build-system gnu-build-system)
- (arguments
- `(#:configure-flags '("--disable-use-tty-group"
- "--enable-ddate")
- #:phases (alist-cons-after
- 'install 'patch-chkdupexe
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (substitute* (string-append out "/bin/chkdupexe")
- ;; Allow 'patch-shebang' to do its work.
- (("@PERL@") "/bin/perl"))))
- %standard-phases)))
- (inputs `(("zlib" ,guix:zlib)
- ("ncurses" ,ncurses)))
- (native-inputs
- `(("perl" ,perl)))
- (home-page "https://www.kernel.org/pub/linux/utils/util-linux/")
- (synopsis "Collection of utilities for the Linux kernel")
- (description
- "util-linux is a random collection of utilities for the Linux kernel.")
-
- ;; 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 gpl3+ gpl2+ gpl2 lgpl2.0+
- bsd-4 public-domain))))
-
(define-public procps
(package
(name "procps")
diff --git a/gnu/packages/util-linux.scm b/gnu/packages/util-linux.scm
new file mode 100644
index 0000000..f853170
--- /dev/null
+++ b/gnu/packages/util-linux.scm
@@ -0,0 +1,67 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@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 util-linux)
+ #:use-module ((guix licenses)
+ #:hide (zlib))
+ #:use-module (gnu packages)
+ #:use-module (gnu packages compression)
+ #:use-module (gnu packages ncurses)
+ #:use-module (gnu packages perl)
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu))
+
+(define-public util-linux
+ (package
+ (name "util-linux")
+ (version "2.21")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://kernel.org/linux/utils/"
+ name "/v" version "/"
+ name "-" version ".2" ".tar.xz"))
+ (sha256
+ (base32
+ "1rpgghf7n0zx0cdy8hibr41wvkm2qp1yvd8ab1rxr193l1jmgcir"))
+ (patches (list (search-patch "util-linux-perl.patch")))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags '("--disable-use-tty-group"
+ "--enable-ddate")
+ #:phases (alist-cons-after
+ 'install 'patch-chkdupexe
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* (string-append out "/bin/chkdupexe")
+ ;; Allow 'patch-shebang' to do its work.
+ (("@PERL@") "/bin/perl"))))
+ %standard-phases)))
+ (inputs `(("zlib" ,zlib)
+ ("ncurses" ,ncurses)))
+ (native-inputs `(("perl" ,perl)))
+ (home-page "https://www.kernel.org/pub/linux/utils/util-linux/")
+ (synopsis "Collection of utilities for the Linux kernel")
+ (description
+ "util-linux is a random collection of utilities for the Linux kernel.")
+
+ ;; 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 gpl3+ gpl2+ gpl2 lgpl2.0+
+ bsd-4 public-domain))))
--
1.7.10.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] gnu, guix: Add a gzip package which includes tests, and use it where possible.
2014-07-21 12:46 [PATCH 1/2] gnu: Move package util-linux into its own module John Darrington
@ 2014-07-21 12:46 ` John Darrington
2014-07-21 16:17 ` Ludovic Courtès
0 siblings, 1 reply; 4+ messages in thread
From: John Darrington @ 2014-07-21 12:46 UTC (permalink / raw)
To: guix-devel; +Cc: John Darrington
* gnu/packages/base.scm: Replace "gzip" with "untested-gzip".
* gnu/packages/bootstrap.scm: Replace "gzip" with "untested-gzip".
* gnu/packages/compression.scm: gzip -> untested-gzip. Add gzip.
* gnu/packages/make-bootstrap.scm: Replace "gzip" with "untested-gzip".
* guix/packages.scm: Replace "gzip" with "untested-gzip".
---
gnu/packages/base.scm | 2 +-
gnu/packages/bootstrap.scm | 2 +-
gnu/packages/compression.scm | 39 ++++++++++++++++++++++++++++++++++++---
gnu/packages/make-bootstrap.scm | 2 +-
guix/packages.scm | 4 ++--
5 files changed, 41 insertions(+), 8 deletions(-)
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 005e1c0..b0b016b 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -1186,7 +1186,7 @@ store.")
((name package)
(list name (finalize package))))
`(("tar" ,tar)
- ("gzip" ,gzip)
+ ("gzip" ,untested-gzip)
("bzip2" ,bzip2)
("xz" ,xz)
("diffutils" ,diffutils)
diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm
index 981cde9..28bbdcd 100644
--- a/gnu/packages/bootstrap.scm
+++ b/gnu/packages/bootstrap.scm
@@ -69,7 +69,7 @@
`(("tar" ,%bootstrap-coreutils&co)
("xz" ,%bootstrap-coreutils&co)
("bzip2" ,%bootstrap-coreutils&co)
- ("gzip" ,%bootstrap-coreutils&co)
+ ("untested-gzip" ,%bootstrap-coreutils&co)
("patch" ,%bootstrap-coreutils&co)))
(let ((orig-method (origin-method source)))
diff --git a/gnu/packages/compression.scm b/gnu/packages/compression.scm
index 6887ba6..665e887 100644
--- a/gnu/packages/compression.scm
+++ b/gnu/packages/compression.scm
@@ -24,6 +24,8 @@
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix build-system gnu)
+ #:use-module (gnu packages less)
+ #:use-module (gnu packages util-linux)
#:use-module (gnu packages which))
(define-public zlib
@@ -71,6 +73,31 @@ independent of the input data and can be reduced, if necessary, at some cost
in compression.")
(license license:zlib)))
+;; A version of gzip which doesn't get tested. Most users should not use
+;; this. It is here for use early in the bootstrap process where a circular
+;; dependency would otherwise arise.
+(define-public untested-gzip
+ (package
+ (name "untested-gzip")
+ (version "1.6")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnu/gzip/gzip-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0zlgdm4v3dndrbiz7b67mbbj25dpwqbmbzjiycssvrfrcfvq7swp"))))
+ (build-system gnu-build-system)
+ (synopsis "General file (de)compression (using lzw)")
+ (arguments '(#:tests? #f))
+ (description
+ "GNU Gzip provides data compression and decompression utilities; the
+typical extension is \".gz\". Unlike the \"zip\" format, it compresses a single
+file; as a result, it is often used in conjunction with \"tar\", resulting in
+\".tar.gz\" or \".tgz\", etc.")
+ (license license:gpl3+)
+ (home-page "http://www.gnu.org/software/gzip/")))
+
(define-public gzip
(package
(name "gzip")
@@ -83,10 +110,16 @@ in compression.")
(base32
"0zlgdm4v3dndrbiz7b67mbbj25dpwqbmbzjiycssvrfrcfvq7swp"))))
(build-system gnu-build-system)
- (synopsis "General file (de)compression (using lzw)")
(arguments
- ;; FIXME: The test suite wants `less', and optionally Perl.
- '(#:tests? #f))
+ `(#:phases (alist-cons-before
+ 'configure 'pref-conf
+ (lambda _
+ (substitute* "Makefile.in"
+ (("-e 's\\|/bin/sh\\|\\$\\(SHELL\\)\\|g'") "")))
+ %standard-phases)))
+ (synopsis "General file (de)compression (using lzw)")
+ (native-inputs `(("less" ,less)
+ ("util-linux" ,util-linux)))
(description
"GNU Gzip provides data compression and decompression utilities; the
typical extension is \".gz\". Unlike the \"zip\" format, it compresses a single
diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm
index 2808beb..e224362 100644
--- a/gnu/packages/make-bootstrap.scm
+++ b/gnu/packages/make-bootstrap.scm
@@ -191,7 +191,7 @@ for `sh' in $PATH, and without nscd, and with static NSS modules."
((name package)
(list name (finalize package))))
`(("tar" ,tar)
- ("gzip" ,gzip)
+ ("gzip" ,untested-gzip)
("bzip2" ,bzip2)
("xz" ,xz)
("patch" ,patch)
diff --git a/guix/packages.scm b/guix/packages.scm
index 985a573..0bf3cfa 100644
--- a/guix/packages.scm
+++ b/guix/packages.scm
@@ -284,7 +284,7 @@ corresponds to the arguments expected by `set-path-environment-variable'."
`(("tar" ,(ref '(gnu packages base) 'tar))
("xz" ,(ref '(gnu packages compression) 'xz))
("bzip2" ,(ref '(gnu packages compression) 'bzip2))
- ("gzip" ,(ref '(gnu packages compression) 'gzip))
+ ("untested-gzip" ,(ref '(gnu packages compression) 'untested-gzip))
("lzip" ,(ref '(gnu packages compression) 'lzip))
("patch" ,(ref '(gnu packages base) 'patch)))))
@@ -314,7 +314,7 @@ IMPORTED-MODULES specify modules to use/import for use by SNIPPET."
source))
(define decompression-type
- (cond ((string-suffix? "gz" source-file-name) "gzip")
+ (cond ((string-suffix? "gz" source-file-name) "untested-gzip")
((string-suffix? "bz2" source-file-name) "bzip2")
((string-suffix? "lz" source-file-name) "lzip")
(else "xz")))
--
1.7.10.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] gnu, guix: Add a gzip package which includes tests, and use it where possible.
2014-07-21 12:46 ` [PATCH 2/2] gnu, guix: Add a gzip package which includes tests, and use it where possible John Darrington
@ 2014-07-21 16:17 ` Ludovic Courtès
2014-07-21 16:26 ` John Darrington
0 siblings, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2014-07-21 16:17 UTC (permalink / raw)
To: John Darrington; +Cc: guix-devel
Just so I understand the context: what part of util-linux does gzip
depend on for its tests (that should be written in a comment)?
Since gzip is built at the very end of the bootstrap process, is
“untested-gzip” really needed? For instance, couldn’t the final gzip be
built against an util-linux that is itself built against %boot5-inputs?
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 2/2] gnu, guix: Add a gzip package which includes tests, and use it where possible.
2014-07-21 16:17 ` Ludovic Courtès
@ 2014-07-21 16:26 ` John Darrington
0 siblings, 0 replies; 4+ messages in thread
From: John Darrington @ 2014-07-21 16:26 UTC (permalink / raw)
To: Ludovic Court??s; +Cc: guix-devel
On Mon, Jul 21, 2014 at 06:17:37PM +0200, Ludovic Court??s wrote:
> Just so I understand the context: what part of util-linux does gzip
> depend on for its tests (that should be written in a comment)?
gzip depends on "more".
> Since gzip is built at the very end of the bootstrap process, is
> ???untested-gzip??? really needed? For instance, couldn???t the final gzip be
> built against an util-linux that is itself built against %boot5-inputs?
I did try a number of such workarounds but ran into issues.
I think the problem is that gzip is needed to unzip the tarball of util-linux.
J'
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2014-07-21 16:26 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-21 12:46 [PATCH 1/2] gnu: Move package util-linux into its own module John Darrington
2014-07-21 12:46 ` [PATCH 2/2] gnu, guix: Add a gzip package which includes tests, and use it where possible John Darrington
2014-07-21 16:17 ` Ludovic Courtès
2014-07-21 16:26 ` John Darrington
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).