GNU bug report logs - #34450
[PATCH] gnu: Add genimage.

Previous Next

Package: guix-patches;

Reported by: Danny Milosavljevic <dannym <at> scratchpost.org>

Date: Tue, 12 Feb 2019 03:24:02 UTC

Severity: normal

Tags: patch

Done: Danny Milosavljevic <dannym <at> scratchpost.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 34450 in the body.
You can then email your comments to 34450 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#34450; Package guix-patches. (Tue, 12 Feb 2019 03:24:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Danny Milosavljevic <dannym <at> scratchpost.org>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Tue, 12 Feb 2019 03:24:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: guix-patches <at> gnu.org
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>
Subject: [PATCH] gnu: Add genimage.
Date: Tue, 12 Feb 2019 04:09:28 +0100
* gnu/packages/genimage.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk              |   1 +
 gnu/packages/genimage.scm | 197 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 198 insertions(+)
 create mode 100644 gnu/packages/genimage.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 3bb60d3ad..9020b157f 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -191,6 +191,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/gcc.scm				\
   %D%/packages/gd.scm				\
   %D%/packages/gdb.scm				\
+  %D%/packages/genimage.scm			\
   %D%/packages/geo.scm				\
   %D%/packages/gettext.scm			\
   %D%/packages/ghostscript.scm			\
diff --git a/gnu/packages/genimage.scm b/gnu/packages/genimage.scm
new file mode 100644
index 000000000..6ffffc990
--- /dev/null
+++ b/gnu/packages/genimage.scm
@@ -0,0 +1,197 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Danny Milosavljevic <dannym <at> scratchpost.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 embedded)
+  #:use-module (guix utils)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build utils)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
+  #:use-module (gnu packages bootloaders)
+  #:use-module (gnu packages cdrom)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpio)
+  #:use-module (gnu packages disk)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages mtools)
+  #:use-module (gnu packages virtualization)
+  #:use-module (gnu packages wm))
+
+(define-public genimage
+  (package
+    (name "genimage")
+    (version "10")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/pengutronix/genimage.git")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0had00p2why2l1fl14mq7nbhmmfbd3na4qnnpg36akdy05g67jbn"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'guixify
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; TODO: Make this unnecessary.
+             ;; This is working around some weird problem that only appears
+             ;; in our build container: "cp -a" doesn't preserve the mode
+             ;; but rather removes "group" and "other" mode bits even
+             ;; though they are set in the original.
+             (substitute* "genimage.c"
+              (("cp -a") "cp -r --preserve=ownership,timestamps,links"))
+             ;; Note to maintainers: Check ".def =" lines in source.
+             (substitute* "config.c"
+              (("\\.def = \"cpio\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "cpio")
+                              "/bin/cpio\""))
+              (("\\.def = \"dd\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "coreutils")
+                              "/bin/dd\""))
+              (("\\.def = \"debugfs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/debugfs\""))
+              (("\\.def = \"e2fsck\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/e2fsck\""))
+              (("\\.def = \"genext2fs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "genext2fs")
+                              "/bin/genext2fs\""))
+              (("\\.def = \"genisoimage\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "cdrkit-libre")
+                              "/bin/genisoimage\""))
+              (("\\.def = \"mcopy\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtools")
+                              "/bin/mcopy\""))
+              (("\\.def = \"mmd\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtools")
+                              "/bin/mmd\""))
+              ;;; Note: mkcramfs is obsolete.
+              (("\\.def = \"mkdosfs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "dosfstools")
+                              "/sbin/mkfs.fat\""))
+              (("\\.def = \"mke2fs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/mke2fs\""))
+              (("\\.def = \"mkfs\\.jffs2\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtd-utils")
+                              "/sbin/mkfs.jffs2\""))
+              (("\\.def = \"mkfs\\.ubifs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtd-utils")
+                              "/sbin/mkfs.ubifs\""))
+              (("\\.def = \"mksquashfs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "squashfs-tools")
+                              "/bin/mksquashfs\""))
+              (("\\.def = \"qemu-img\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "qemu")
+                              "/bin/qemu-img\""))
+              (("\\.def = \"tar\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "tar")
+                              "/bin/tar\""))
+              (("\\.def = \"tune2fs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/tune2fs\""))
+              (("\\.def = \"ubinize\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtd-utils")
+                              "/sbin/ubinize\""))
+              (("\\.def = \"mkimage\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "u-boot-tools")
+                              "/bin/mkimage\"")))
+             (substitute* "test/basic-images.test"
+              ;; Work around bug in sharness.sh.
+              (("mkdosfs")
+               "mkfs.fat")
+              ;; Work around bug in sharness.sh.
+              (("dd,mkfs\\.fat,mcopy")
+               "dd,mkfs_fat,mcopy")
+              ;; Should be in the next upstream release.
+              (("qemu_img") "qemu-img"))
+             (substitute* "util.c"
+              (("\"/bin/sh\"")
+               (string-append "\"" (assoc-ref inputs "bash") "/bin/sh\"")))
+             ;; 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/mke2fs.dump")
+              (("root") "unknown"))
+             #t))
+         (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")
+             #t)))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ;;; Note: cramfs is obsolete.
+       ("dtc" ,dtc) ; for the tests
+       ("fakeroot" ,fakeroot) ; for the tests
+       ("fdisk" ,fdisk) ; 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)))




Information forwarded to guix-patches <at> gnu.org:
bug#34450; Package guix-patches. (Fri, 15 Feb 2019 14:43:01 GMT) Full text and rfc822 format available.

Message #8 received at 34450 <at> debbugs.gnu.org (full text, mbox):

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: 34450 <at> debbugs.gnu.org
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>
Subject: [PATCH v2] gnu: Add genimage.
Date: Fri, 15 Feb 2019 15:42:05 +0100
* gnu/packages/genimage.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk              |   1 +
 gnu/packages/genimage.scm | 200 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 201 insertions(+)
 create mode 100644 gnu/packages/genimage.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 0484b3e08..3d59e27e8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -191,6 +191,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/gcc.scm				\
   %D%/packages/gd.scm				\
   %D%/packages/gdb.scm				\
+  %D%/packages/genimage.scm			\
   %D%/packages/geo.scm				\
   %D%/packages/gettext.scm			\
   %D%/packages/ghostscript.scm			\
diff --git a/gnu/packages/genimage.scm b/gnu/packages/genimage.scm
new file mode 100644
index 000000000..8f1efd4e7
--- /dev/null
+++ b/gnu/packages/genimage.scm
@@ -0,0 +1,200 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Danny Milosavljevic <dannym <at> scratchpost.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 genimage)
+  #:use-module (guix utils)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build utils)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
+  #:use-module (gnu packages bootloaders)
+  #:use-module (gnu packages cdrom)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpio)
+  #:use-module (gnu packages disk)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages mtools)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages virtualization)
+  #:use-module (gnu packages wm))
+
+(define-public genimage
+  (package
+    (name "genimage")
+    (version "10")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/pengutronix/genimage.git")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0had00p2why2l1fl14mq7nbhmmfbd3na4qnnpg36akdy05g67jbn"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'guixify
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; TODO: Make this unnecessary.
+             ;; This is working around some weird problem that only appears
+             ;; in our build container: "cp -a" doesn't preserve the mode
+             ;; but rather removes "group" and "other" mode bits even
+             ;; though they are set in the original.
+             ;; Note to maintainers: Check ".def =" lines in source.
+             (substitute* "config.c"
+              (("\\.def = \"cpio\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "cpio")
+                              "/bin/cpio\""))
+              (("\\.def = \"dd\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "coreutils")
+                              "/bin/dd\""))
+              (("\\.def = \"debugfs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/debugfs\""))
+              (("\\.def = \"e2fsck\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/e2fsck\""))
+              (("\\.def = \"genext2fs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "genext2fs")
+                              "/bin/genext2fs\""))
+              (("\\.def = \"genisoimage\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "cdrkit-libre")
+                              "/bin/genisoimage\""))
+              (("\\.def = \"mcopy\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtools")
+                              "/bin/mcopy\""))
+              (("\\.def = \"mmd\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtools")
+                              "/bin/mmd\""))
+              ;;; Note: mkcramfs is obsolete.
+              (("\\.def = \"mkdosfs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "dosfstools")
+                              "/sbin/mkfs.fat\""))
+              (("\\.def = \"mke2fs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/mke2fs\""))
+              (("\\.def = \"mkfs\\.jffs2\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtd-utils")
+                              "/sbin/mkfs.jffs2\""))
+              (("\\.def = \"mkfs\\.ubifs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtd-utils")
+                              "/sbin/mkfs.ubifs\""))
+              (("\\.def = \"mksquashfs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "squashfs-tools")
+                              "/bin/mksquashfs\""))
+              (("\\.def = \"qemu-img\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "qemu")
+                              "/bin/qemu-img\""))
+              (("\\.def = \"tar\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "tar")
+                              "/bin/tar\""))
+              (("\\.def = \"tune2fs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/tune2fs\""))
+              (("\\.def = \"ubinize\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtd-utils")
+                              "/sbin/ubinize\""))
+              (("\\.def = \"mkimage\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "u-boot-tools")
+                              "/bin/mkimage\"")))
+             (substitute* "test/basic-images.test"
+              ;; Work around bug in sharness.sh.
+              (("mkdosfs")
+               "mkfs.fat")
+              ;; Work around bug in sharness.sh.
+              (("dd,mkfs\\.fat,mcopy")
+               "dd,mkfs_fat,mcopy")
+              ;; Should be in the next upstream release.
+              (("qemu_img") "qemu-img"))
+             (substitute* "util.c"
+              (("\"/bin/sh\"")
+               (string-append "\"" (assoc-ref inputs "bash") "/bin/sh\"")))
+             ;; 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/mke2fs.dump")
+              (("root") "unknown"))
+             #t))
+         (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")
+             #t))
+         (replace 'check
+           (lambda _
+             (invoke "make" "TEST_LOG_COMPILER=" "check"))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ;;; Note: cramfs is obsolete.
+       ("dtc" ,dtc) ; for the tests
+       ("fakeroot" ,fakeroot) ; for the tests
+       ("fdisk" ,fdisk) ; 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)))




Information forwarded to guix-patches <at> gnu.org:
bug#34450; Package guix-patches. (Fri, 15 Feb 2019 14:46:01 GMT) Full text and rfc822 format available.

Message #11 received at 34450 <at> debbugs.gnu.org (full text, mbox):

From: Danny Milosavljevic <dannym <at> scratchpost.org>
To: 34450 <at> debbugs.gnu.org
Cc: Danny Milosavljevic <dannym <at> scratchpost.org>
Subject: [PATCH v3] gnu: Add genimage.
Date: Fri, 15 Feb 2019 15:45:27 +0100
* gnu/packages/genimage.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
 gnu/local.mk              |   1 +
 gnu/packages/genimage.scm | 194 ++++++++++++++++++++++++++++++++++++++
 2 files changed, 195 insertions(+)
 create mode 100644 gnu/packages/genimage.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 0484b3e08..3d59e27e8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -191,6 +191,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/gcc.scm				\
   %D%/packages/gd.scm				\
   %D%/packages/gdb.scm				\
+  %D%/packages/genimage.scm			\
   %D%/packages/geo.scm				\
   %D%/packages/gettext.scm			\
   %D%/packages/ghostscript.scm			\
diff --git a/gnu/packages/genimage.scm b/gnu/packages/genimage.scm
new file mode 100644
index 000000000..792bddf5a
--- /dev/null
+++ b/gnu/packages/genimage.scm
@@ -0,0 +1,194 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2018 Danny Milosavljevic <dannym <at> scratchpost.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 genimage)
+  #:use-module (guix utils)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix build-system gnu)
+  #:use-module (guix build utils)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
+  #:use-module (gnu packages bootloaders)
+  #:use-module (gnu packages cdrom)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpio)
+  #:use-module (gnu packages disk)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages mtools)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages virtualization)
+  #:use-module (gnu packages wm))
+
+(define-public genimage
+  (package
+    (name "genimage")
+    (version "10")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/pengutronix/genimage.git")
+                    (commit (string-append "v" version))))
+              (file-name (string-append name "-" version "-checkout"))
+              (sha256
+               (base32
+                "0had00p2why2l1fl14mq7nbhmmfbd3na4qnnpg36akdy05g67jbn"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'guixify
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Note to maintainers: Check ".def =" lines in source.
+             (substitute* "config.c"
+              (("\\.def = \"cpio\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "cpio")
+                              "/bin/cpio\""))
+              (("\\.def = \"dd\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "coreutils")
+                              "/bin/dd\""))
+              (("\\.def = \"debugfs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/debugfs\""))
+              (("\\.def = \"e2fsck\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/e2fsck\""))
+              (("\\.def = \"genext2fs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "genext2fs")
+                              "/bin/genext2fs\""))
+              (("\\.def = \"genisoimage\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "cdrkit-libre")
+                              "/bin/genisoimage\""))
+              (("\\.def = \"mcopy\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtools")
+                              "/bin/mcopy\""))
+              (("\\.def = \"mmd\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtools")
+                              "/bin/mmd\""))
+              ;;; Note: mkcramfs is obsolete.
+              (("\\.def = \"mkdosfs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "dosfstools")
+                              "/sbin/mkfs.fat\""))
+              (("\\.def = \"mke2fs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/mke2fs\""))
+              (("\\.def = \"mkfs\\.jffs2\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtd-utils")
+                              "/sbin/mkfs.jffs2\""))
+              (("\\.def = \"mkfs\\.ubifs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtd-utils")
+                              "/sbin/mkfs.ubifs\""))
+              (("\\.def = \"mksquashfs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "squashfs-tools")
+                              "/bin/mksquashfs\""))
+              (("\\.def = \"qemu-img\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "qemu")
+                              "/bin/qemu-img\""))
+              (("\\.def = \"tar\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "tar")
+                              "/bin/tar\""))
+              (("\\.def = \"tune2fs\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "e2fsprogs")
+                              "/sbin/tune2fs\""))
+              (("\\.def = \"ubinize\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "mtd-utils")
+                              "/sbin/ubinize\""))
+              (("\\.def = \"mkimage\"")
+               (string-append ".def = \""
+                              (assoc-ref inputs "u-boot-tools")
+                              "/bin/mkimage\"")))
+             (substitute* "test/basic-images.test"
+              ;; Work around bug in sharness.sh.
+              (("mkdosfs")
+               "mkfs.fat")
+              ;; Work around bug in sharness.sh.
+              (("dd,mkfs\\.fat,mcopy")
+               "dd,mkfs_fat,mcopy")
+              ;; Should be in the next upstream release.
+              (("qemu_img") "qemu-img"))
+             (substitute* "util.c"
+              (("\"/bin/sh\"")
+               (string-append "\"" (assoc-ref inputs "bash") "/bin/sh\"")))
+             ;; 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/mke2fs.dump")
+              (("root") "unknown"))
+             #t))
+         (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")
+             #t))
+         (replace 'check
+           (lambda _
+             (invoke "make" "TEST_LOG_COMPILER=" "check"))))))
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ;;; Note: cramfs is obsolete.
+       ("dtc" ,dtc) ; for the tests
+       ("fdisk" ,fdisk) ; 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)))




Information forwarded to guix-patches <at> gnu.org:
bug#34450; Package guix-patches. (Fri, 15 Feb 2019 15:59:02 GMT) Full text and rfc822 format available.

Message #14 received at 34450 <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: Danny Milosavljevic <dannym <at> scratchpost.org>
Cc: 34450 <at> debbugs.gnu.org
Subject: Re: [bug#34450] [PATCH v3] gnu: Add genimage.
Date: Fri, 15 Feb 2019 10:58:06 -0500
[Message part 1 (text/plain, inline)]
On Fri, Feb 15, 2019 at 03:45:27PM +0100, Danny Milosavljevic wrote:
> * gnu/packages/genimage.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.

Thanks! LGTM if it's working for you.
[signature.asc (application/pgp-signature, inline)]

bug closed, send any further explanations to 34450 <at> debbugs.gnu.org and Danny Milosavljevic <dannym <at> scratchpost.org> Request was from Danny Milosavljevic <dannym <at> scratchpost.org> to control <at> debbugs.gnu.org. (Fri, 15 Feb 2019 16:52:01 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sat, 16 Mar 2019 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 32 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.