diff options
-rw-r--r-- | gnu/packages/genimage.scm | 184 | ||||
-rw-r--r-- | gnu/packages/patches/genimage-mke2fs-test.patch | 10 |
2 files changed, 98 insertions, 96 deletions
diff --git a/gnu/packages/genimage.scm b/gnu/packages/genimage.scm index f5574b04ee..7f2270cc09 100644 --- a/gnu/packages/genimage.scm +++ b/gnu/packages/genimage.scm @@ -41,96 +41,98 @@ #:use-module (gnu packages virtualization)) (define-public genimage - (package - (name "genimage") - (version "14") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pengutronix/genimage") - (commit (string-append "v" version)))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1l45djpbaffhyw0allq3mgzwrdilk05iyj0nvp8l3s47vnp5bnbs")) - (patches - (search-patches "genimage-mke2fs-test.patch")))) - (build-system gnu-build-system) - (arguments - `(#:modules - ((ice-9 match) - ,@%gnu-build-system-modules) - #:phases - (modify-phases %standard-phases - (add-after 'unpack 'guixify - (lambda* (#:key inputs #:allow-other-keys) - (map (match-lambda - ((input directory regexp) - (substitute* "config.c" - (((format #f "\\.def = \"(~a)\"" regexp) _ command) - (format #f ".def = \"~a/~a/~a\"" - (assoc-ref inputs input) directory command))))) - '(("cpio" "bin" "cpio") - ("coreutils" "bin" "dd") - ("e2fsprogs" "sbin" "debugfs|e2fsck|mke2fs|tune2fs") - ("genext2fs" "bin" "genext2fs") - ("cdrkit-libre" "bin" "genisoimage") - ("mtools" "bin" "mcopy|mmd") - ;; mkcramfs is obsolete. - ("dosfstools" "sbin" "mkdosfs") - ("mtd-utils" "sbin" "mkfs.(jffs2|ubifs)|ubinize") - ("squashfs-tools" "bin" "mksquashfs") - ("qemu" "bin" "qemu-img") - ("tar" "bin" "tar") - ("u-boot-tools" "bin" "mkimage"))) - (substitute* "util.c" - (("\"/bin/sh\"") - (string-append "\"" (assoc-ref inputs "bash") "/bin/sh\""))))) - (add-before 'check 'fix-failing-tests - (lambda _ - ;; We don't have /etc/passwd so uid 0 is not known as "root". - ;; Thus patch it out. - (substitute* '("test/ext2test.dump" - "test/ext3test.dump" - "test/ext4test.dump" - "test/ext2test-percent.dump" - "test/mke2fs.dump") - (("root") "unknown")))) - (add-before 'check 'setenv-check - (lambda _ - ;; Our container doesn't provide access to /etc/mtab - (setenv "EXT2FS_NO_MTAB_OK" "1") - ;; Make test reproducible - (setenv "GENIMAGE_MKFJFFS2" "mkfs.jffs2 -U") - (setenv "GENIMAGE_MKE2FS" "mke2fs -E no_copy_xattrs"))) - (replace 'check - (lambda _ - (invoke "make" "TEST_LOG_COMPILER=" "check")))))) - (native-inputs - `(("autoconf" ,autoconf) - ("automake" ,automake) + (let ((commit "11bb04455eaf5434f0723c91a2224918ebd0a196") + (revision "1")) + (package + (name "genimage") + (version (git-version "14" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pengutronix/genimage") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1dq3lk0awk12v2aidry35gvrci5a3nr6rzcq0j9hyyf0w1z1rn0l")) + (patches + (search-patches "genimage-mke2fs-test.patch")))) + (build-system gnu-build-system) + (arguments + `(#:modules + ((ice-9 match) + ,@%gnu-build-system-modules) + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'guixify + (lambda* (#:key inputs #:allow-other-keys) + (map (match-lambda + ((input directory regexp) + (substitute* "config.c" + (((format #f "\\.def = \"(~a)\"" regexp) _ command) + (format #f ".def = \"~a/~a/~a\"" + (assoc-ref inputs input) directory command))))) + '(("cpio" "bin" "cpio") + ("coreutils" "bin" "dd") + ("e2fsprogs" "sbin" "debugfs|e2fsck|mke2fs|tune2fs") + ("genext2fs" "bin" "genext2fs") + ("cdrkit-libre" "bin" "genisoimage") + ("mtools" "bin" "mcopy|mmd") + ;; mkcramfs is obsolete. + ("dosfstools" "sbin" "mkdosfs") + ("mtd-utils" "sbin" "mkfs.(jffs2|ubifs)|ubinize") + ("squashfs-tools" "bin" "mksquashfs") + ("qemu" "bin" "qemu-img") + ("tar" "bin" "tar") + ("u-boot-tools" "bin" "mkimage"))) + (substitute* "util.c" + (("\"/bin/sh\"") + (string-append "\"" (assoc-ref inputs "bash") "/bin/sh\""))))) + (add-before 'check 'fix-failing-tests + (lambda _ + ;; We don't have /etc/passwd so uid 0 is not known as "root". + ;; Thus patch it out. + (substitute* '("test/ext2test.0.dump" + "test/ext3test.0.dump" + "test/ext4test.0.dump" + "test/ext2test-percent.0.dump" + "test/mke2fs.0.dump") + (("root") "unknown")))) + (add-before 'check 'setenv-check + (lambda _ + ;; Our container doesn't provide access to /etc/mtab + (setenv "EXT2FS_NO_MTAB_OK" "1") + ;; Make test reproducible + (setenv "GENIMAGE_MKFJFFS2" "mkfs.jffs2 -U") + (setenv "GENIMAGE_MKE2FS" "mke2fs -E no_copy_xattrs"))) + (replace 'check + (lambda _ + (invoke "make" "TEST_LOG_COMPILER=" "check")))))) + (native-inputs + `(("autoconf" ,autoconf) + ("automake" ,automake) ;;; Note: cramfs is obsolete. - ("dtc" ,dtc) ; for the tests - ("pkg-config" ,pkg-config) - ("util-linux" ,util-linux))) ; for the tests - (inputs - `(("bash" ,bash) - ("cdrkit-libre" ,cdrkit-libre) - ("cpio" ,cpio) - ;; Note: invoked by final executable. - ("coreutils" ,coreutils) ; chmod, dd - ("dosfstools" ,dosfstools) - ("e2fsprogs" ,e2fsprogs) - ("genext2fs" ,genext2fs) - ("libconfuse" ,libconfuse) - ("mtd-utils" ,mtd-utils) - ("mtools" ,mtools) - ("qemu" ,qemu-minimal) - ("squashfs-tools" ,squashfs-tools) - ("tar" ,tar) - ("u-boot-tools" ,u-boot-tools))) - (synopsis "Create Flash images according to specification") - (description "@command{genimage} creates Flash images according to a + ("dtc" ,dtc) ; for the tests + ("pkg-config" ,pkg-config) + ("util-linux" ,util-linux))) ; for the tests + (inputs + `(("bash" ,bash) + ("cdrkit-libre" ,cdrkit-libre) + ("cpio" ,cpio) + ;; Note: invoked by final executable. + ("coreutils" ,coreutils) ; chmod, dd + ("dosfstools" ,dosfstools) + ("e2fsprogs" ,e2fsprogs) + ("genext2fs" ,genext2fs) + ("libconfuse" ,libconfuse) + ("mtd-utils" ,mtd-utils) + ("mtools" ,mtools) + ("qemu" ,qemu-minimal) + ("squashfs-tools" ,squashfs-tools) + ("tar" ,tar) + ("u-boot-tools" ,u-boot-tools))) + (synopsis "Create Flash images according to specification") + (description "@command{genimage} creates Flash images according to a specification file.") - (home-page "https://github.com/pengutronix/genimage") - (license license:gpl2))) + (home-page "https://github.com/pengutronix/genimage") + (license license:gpl2)))) diff --git a/gnu/packages/patches/genimage-mke2fs-test.patch b/gnu/packages/patches/genimage-mke2fs-test.patch index c4a17590f2..5d4fbcfe44 100644 --- a/gnu/packages/patches/genimage-mke2fs-test.patch +++ b/gnu/packages/patches/genimage-mke2fs-test.patch @@ -1,8 +1,8 @@ diff --git a/test/mke2fs.dump b/test/mke2fs.dump index 8e63662..0c25798 100644 ---- a/test/mke2fs.dump -+++ b/test/mke2fs.dump -@@ -11,7 +11,7 @@ Filesystem OS type: Linux +--- a/test/mke2fs.0.dump ++++ b/test/mke2fs.0.dump +@@ -11,7 +11,7 @@ Inode count: 8192 Block count: 32768 Reserved block count: 1638 @@ -11,7 +11,7 @@ index 8e63662..0c25798 100644 Free inodes: 8141 First block: 1 Block size: 1024 -@@ -29,7 +29,7 @@ Mount count: 0 +@@ -29,7 +29,7 @@ Maximum mount count: -1 Last checked: Sat Jan 1 00:00:00 2000 Check interval: 0 (<none>) @@ -20,7 +20,7 @@ index 8e63662..0c25798 100644 Reserved blocks uid: 0 (user root) Reserved blocks gid: 0 (group root) First inode: 11 -@@ -49,13 +49,13 @@ Journal sequence: 0x00000001 +@@ -51,13 +51,13 @@ Journal start: 0 |