From patchwork Fri Feb 15 14:45:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Danny Milosavljevic X-Patchwork-Id: 1098 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 36CC916BDC; Fri, 15 Feb 2019 14:46:11 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id A85E316B87 for ; Fri, 15 Feb 2019 14:46:10 +0000 (GMT) Received: from localhost ([127.0.0.1]:41020 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1guekk-0005CZ-17 for patchwork@mira.cbaines.net; Fri, 15 Feb 2019 09:46:10 -0500 Received: from eggs.gnu.org ([209.51.188.92]:33662) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1guekd-0005CU-Nm for guix-patches@gnu.org; Fri, 15 Feb 2019 09:46:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1guekc-0003G3-94 for guix-patches@gnu.org; Fri, 15 Feb 2019 09:46:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:49426) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1guekc-0003Fh-2a for guix-patches@gnu.org; Fri, 15 Feb 2019 09:46:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1guekb-0008IW-RR for guix-patches@gnu.org; Fri, 15 Feb 2019 09:46:01 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#34450] [PATCH v3] gnu: Add genimage. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 15 Feb 2019 14:46:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 34450 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 34450@debbugs.gnu.org Received: via spool by 34450-submit@debbugs.gnu.org id=B34450.155024193731855 (code B ref 34450); Fri, 15 Feb 2019 14:46:01 +0000 Received: (at 34450) by debbugs.gnu.org; 15 Feb 2019 14:45:37 +0000 Received: from localhost ([127.0.0.1]:48707 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1guekC-0008Hi-RH for submit@debbugs.gnu.org; Fri, 15 Feb 2019 09:45:37 -0500 Received: from dd26836.kasserver.com ([85.13.145.193]:58606) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1guekB-0008Hb-Ow for 34450@debbugs.gnu.org; Fri, 15 Feb 2019 09:45:36 -0500 Received: from dayas.3.home (77.117.254.175.wireless.dyn.drei.com [77.117.254.175]) by dd26836.kasserver.com (Postfix) with ESMTPSA id A0BB33360FF6; Fri, 15 Feb 2019 15:45:34 +0100 (CET) From: Danny Milosavljevic Date: Fri, 15 Feb 2019 15:45:27 +0100 Message-Id: <20190215144527.13837-1-dannym@scratchpost.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190215144205.9299-1-dannym@scratchpost.org> References: <20190215144205.9299-1-dannym@scratchpost.org> MIME-Version: 1.0 Tags: patch X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * 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 +;;; +;;; 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 . + +(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)))