From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id kfl7Mcre1F7fDAAA0tVLHw (envelope-from ) for ; Mon, 01 Jun 2020 10:56:10 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id oFb1LMre1F7qWQAAB5/wlQ (envelope-from ) for ; Mon, 01 Jun 2020 10:56:10 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 37E18940308 for ; Mon, 1 Jun 2020 10:56:10 +0000 (UTC) Received: from localhost ([::1]:57898 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jfi6z-0003lW-6w for larch@yhetil.org; Mon, 01 Jun 2020 06:56:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40316) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jfi6s-0003lL-Ot for guix-patches@gnu.org; Mon, 01 Jun 2020 06:56:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:51311) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jfi6s-00087J-Fr for guix-patches@gnu.org; Mon, 01 Jun 2020 06:56:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jfi6s-00071S-F4 for guix-patches@gnu.org; Mon, 01 Jun 2020 06:56:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#37466] [WIP v7 2/4] gnu: Add heads. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 01 Jun 2020 10:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 37466 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 37466@debbugs.gnu.org Cc: Danny Milosavljevic Received: via spool by 37466-submit@debbugs.gnu.org id=B37466.159100890826928 (code B ref 37466); Mon, 01 Jun 2020 10:56:02 +0000 Received: (at 37466) by debbugs.gnu.org; 1 Jun 2020 10:55:08 +0000 Received: from localhost ([127.0.0.1]:34620 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfi5r-0006zI-SS for submit@debbugs.gnu.org; Mon, 01 Jun 2020 06:55:08 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:60418) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfi5f-0006y6-EE for 37466@debbugs.gnu.org; Mon, 01 Jun 2020 06:54:58 -0400 Received: from dayas.fritz.box (128-244-187.fonira.net [185.128.244.187]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 22D0D33682F4; Mon, 1 Jun 2020 12:54:46 +0200 (CEST) From: Danny Milosavljevic Date: Mon, 1 Jun 2020 12:54:39 +0200 Message-Id: <20200601105441.13726-3-dannym@scratchpost.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200601105441.13726-1-dannym@scratchpost.org> References: <20190920010248.28082-1-dannym@scratchpost.org> <20200601105441.13726-1-dannym@scratchpost.org> MIME-Version: 1.0 Tags: patch Content-Transfer-Encoding: quoted-printable X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Spam-Score: -1.0 (-) X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Spam-Score: 2.49 X-TUID: ktMTYZKPmcq1 * gnu/packages/heads.scm (heads): New variable. --- gnu/packages/heads.scm | 439 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 438 insertions(+), 1 deletion(-) diff --git a/gnu/packages/heads.scm b/gnu/packages/heads.scm index 86ab487b0f..8182b2ecd4 100644 --- a/gnu/packages/heads.scm +++ b/gnu/packages/heads.scm @@ -109,7 +109,7 @@ (substitute* "defs.sh" (("touch \"[$]2/extracted\"") (string-append "touch \"$2/extracted\" -for s in mkinstalldirs move-if-change compile depcomp callprocs configure = \\ +set -e ; for s in mkinstalldirs move-if-change compile depcomp callprocs c= onfigure \\ mkdep compile libtool-ldflags config.guess install-sh missing config.sub \\ config.rpath progtest.m4 lib-ld.m4 acx.m4 gen-fixed.sh mkheader.sh ylwrap = \\ merge.sh godeps.sh lock-and-run.sh print-sysroot-suffix.sh mkconfig.sh \\ @@ -174,3 +174,440 @@ done (base32 "12nhr8zrw4sjzrvpf38vl55bq5nm05qkd7nq76as443f0xq7xwnd")) (patches (search-patches "elfutils-tests-ptrace.patch")))))) + +(define heads + (let ((revision "3") + (commit "4245aec85796523945da51596d4d4af864288843")) + (package + (name "heads") + (version (git-version "0.1" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/osresearch/heads.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0ddph9bpbi6sf6dj5hp6018czfw46s553xzikw9xcd6x76j3q1c6")) + (patches (search-patches "heads-make-environment.patch")))) + (build-system gnu-build-system) + (native-inputs + `(("bash" ,bash) + ("git" ,git) + ("perl" ,perl) + ("cpio" ,cpio) + ("m4" ,m4) + ("bison" ,bison) + ("flex" ,flex) + ("curl" ,curl) ; unused + ("zlibx" ,zlib) + ("musl-cross" ,musl-cross) + ;("musl-cross-i386" ,musl-cross-i386) + ("target-musl-cross" + ,(origin + (method url-fetch) + (uri "https://github.com/richfelker/musl-cross-make/archive/38e5= 2db8358c043ae82b346a2e6e66bc86a53bc1.tar.gz") + (file-name "musl-cross-38e52db8358c043ae82b346a2e6e66bc86a53bc1.= tar.gz") + (sha256 + (base32 + "0071ml3d42w8m59dc1zvl9pk931zcxsyflqacnwg5c6s7mnmvf5l")))) + ;; Ours would be too new for musl-cross binutils. + ;; See also https://bbs.archlinux.org/viewtopic.php?id=3D242682 + ("elfutils" ,elfutils-0.174) + ("bc" ,bc) + ("findutils" ,findutils) + ("flashtools" + ,(origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/osresearch/flashtools.git") + (commit "9acce09aeb635c5bef01843e495b95e75e8da135"))) + (file-name "flashtools-checkout") + (sha256 + (base32 "0r4gj3nzr67ycd39k1vjzxfzkp90yacrdgxhc1z5jfvxfq4x91c1"= )))) + ("tpmtotp" + ,(origin + (method url-fetch) + (uri "https://github.com/osresearch/tpmtotp/archive/18b860fdcf5= a55537c8395b891f2b2a5c24fc00a.tar.gz") + (file-name "tpmtotp-18b860fdcf5a55537c8395b891f2b2a5c24fc00a.ta= r.gz") + (sha256 + (base32 "0v30biwwqyqf06xnhmnwwjgb77m3476fvp8d4823x0xgwjqg50hh"= )))) + ("msrtools" + ,(origin + (method url-fetch) + (uri "https://github.com/osresearch/msr-tools/archive/572ef8a2b= 873eda15a322daa48861140a078b92c.tar.gz") + (file-name "msr-tools-572ef8a2b873eda15a322daa48861140a078b92c.= tar.gz") + (sha256 + (base32 "1h3a1rai47r0dxiiv0i3xj0fjng15n6sxj8mw9gj0154s284fmc0"= )))) + ("coreboot-blobs" + ,(origin + (method url-fetch) + (uri "https://www.coreboot.org/releases/coreboot-blobs-4.8.1.ta= r.xz") + (sha256 + (base32 "15g222xj1zdn8i8qz0pw2jf28h66dljb1q5isw2ml05gwfd51ahq"= )))) + ("coreboot" + ,(origin + (method url-fetch) + (uri "https://www.coreboot.org/releases/coreboot-4.8.1.tar.xz") + (sha256 + (base32 "08xdd5drk8yd37a3z5hc81qmgsybv6201i28hcggxh980vdz9pgh"= )))) + ("linux" + ,(origin + (method url-fetch) + (uri "https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.14.6= 2.tar.xz") + (sha256 + (base32 "1ar29ikway5im17iw9ag1fxivr7sbj8nhxxw347xqmp1irz4vjji"= )))) + ("musl" ; useless + ,(origin + (method url-fetch) + (uri "https://www.musl-libc.org/releases/musl-1.1.15.tar.gz") + (sha256 + (base32 "1ymhxkskivzph0q34zadwfglc5gyahqajm7chqqn2zraxv3lgr4p"= )))) + ("busybox" + ,(origin + (method url-fetch) + (uri "https://busybox.net/downloads/busybox-1.28.0.tar.bz2") + (sha256 + (base32 "1701carjf02y7r3djm1yvyd5kzrcxm4szinp7agfv7fmvfvm6ib0"= )))) + ("zlib" + ,(origin + (method url-fetch) + (uri "https://www.zlib.net/zlib-1.2.11.tar.gz") + (sha256 + (base32 "18dighcs333gsvajvvgqp8l4cx7h1x7yx9gd5xacnk80spyykrf3"= )))) + ("mbedtls" + ,(origin + (method url-fetch) + (uri "https://tls.mbed.org/download/mbedtls-2.4.2-gpl.tgz") + (sha256 + (base32 "17r9qs585gqghcf5yavb1cnvsigl0f8r0k8rklr5a855hrajs7yh"= )))) + ("kexec-tools" + ,(origin + (method url-fetch) + (uri "https://kernel.org/pub/linux/utils/kernel/kexec/kexec-too= ls-2.0.20.tar.gz") + (sha256 + (base32 "05ksnlzal3sfnix9qds6qql1sjn3fxbdwgp3ncxxxjg032cdf5nb"= )))) + ("qrencode" + ,(origin + (method url-fetch) + (uri "https://fukuchi.org/works/qrencode/qrencode-3.4.4.tar.gz") + (sha256 + (base32 "0wiagx7i8p9zal53smf5abrnh9lr31mv0p36wg017401jrmf5577"= )))) + ("pciutils" + ,(origin + (method url-fetch) + (uri "https://www.kernel.org/pub/software/utils/pciutils/pciuti= ls-3.5.4.tar.xz") + (sha256 + (base32 "0rpy7kkb2y89wmbcbfjjjxsk2x89v5xxhxib4vpl131ip5m3qab4"= )))) + ("util-linux" + ,(origin + (method url-fetch) + (uri "https://www.kernel.org/pub/linux/utils/util-linux/v2.29/u= til-linux-2.29.2.tar.xz") + (sha256 + (base32 "1qz81w8vzrmy8xn9yx7ls4amkbgwx6vr62pl6kv9g7r0g3ba9kmc"= )))) + ("flashrom" + ,(origin + (method url-fetch) + (uri "https://download.flashrom.org/releases/flashrom-v1.2.tar.= bz2") + (sha256 + (base32 "0ax4kqnh7kd3z120ypgp73qy1knz47l6qxsqzrfkd97mh5cdky71"= )))) + ("popt" + ,(origin + (method url-fetch) + (uri "https://launchpad.net/popt/head/1.16/+download/popt-1.16.= tar.gz") + (sha256 + (base32 "1j2c61nn2n351nhj4d25mnf3vpiddcykq005w2h6kw79dwlysa77"= )))) + ("lvm2" + ,(origin + (method url-fetch) + (uri "https://mirrors.kernel.org/sourceware/lvm2/LVM2.2.02.168.= tgz") + (sha256 + (base32 "03b62hcsj9z37ckd8c21wwpm07s9zblq7grfh58yzcs1vp6x38r3"= )))) + ("cryptsetup" + ,(origin + (method url-fetch) + (uri "https://www.kernel.org/pub/linux/utils/cryptsetup/v1.7/cr= yptsetup-1.7.3.tar.xz") + (sha256 + (base32 "00nwd96m9yq4k3cayc04i5y7iakkzana35zxky6hpx2w8zl08axg"= )))) + ("libgpg-error" + ,(origin + (method url-fetch) + (uri "https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-1.= 37.tar.bz2") + (sha256 + (base32 "0qwpx8mbc2l421a22l0l1hpzkip9jng06bbzgxwpkkvk5bvnybdk"= )))) + ("libgcrypt" + ,(origin + (method url-fetch) + (uri "https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.5.ta= r.bz2") + (sha256 + (base32 "1hvsazms1bfd769q0ngl0r9g5i4m9mpz9jmvvrdzyzk3rfa2ljiv"= )))) + ("libksba" + ,(origin + (method url-fetch) + (uri "https://gnupg.org/ftp/gcrypt/libksba/libksba-1.3.5.tar.bz= 2") + (sha256 + (base32 "0h53q4sns1jz1pkmhcz5wp9qrfn9f5g9i3vjv6dafwzzlvblyi21"= )))) + ("libassuan" + ,(origin + (method url-fetch) + (uri "https://gnupg.org/ftp/gcrypt/libassuan/libassuan-2.5.3.ta= r.bz2") + (sha256 + (base32 "00p7cpvzf0q3qwcgg51r9d0vbab4qga2xi8wpk2fgd36710b1g4i"= )))) + ("npth" + ,(origin + (method url-fetch) + (uri "https://gnupg.org/ftp/gcrypt/npth/npth-1.6.tar.bz2") + (sha256 + (base32 "1lg2lkdd3z1s3rpyf88786l243adrzyk9p4q8z9n41ygmpcsp4qk"= )))) + ("libusb" + ,(origin + (method url-fetch) + (uri "https://downloads.sourceforge.net/project/libusb/libusb-1= .0/libusb-1.0.21/libusb-1.0.21.tar.bz2") + (sha256 + (base32 "0jw2n5kdnrqvp7zh792fd6mypzzfap6jp4gfcmq4n6c1kb79rkkx"= )))) + ("libusb-compat" + ,(origin + (method url-fetch) + (uri "https://downloads.sourceforge.net/project/libusb/libusb-c= ompat-0.1/libusb-compat-0.1.5/libusb-compat-0.1.5.tar.bz2") + (sha256 + (base32 "0nn5icrfm9lkhzw1xjvaks9bq3w6mjg86ggv3fn7kgi4nfvg8kj0"= )))) + ("dropbear" + ,(origin + (method url-fetch) + (uri "https://matt.ucc.asn.au/dropbear/releases/dropbear-2016.7= 4.tar.bz2") + (sha256 + (base32 "14c8f4gzixf0j9fkx68jgl85q7b05852kk0vf09gi6h0xmafl817"= )))) + ("pinentry" + ,(origin + (method url-fetch) + (uri "https://www.gnupg.org/ftp/gcrypt/pinentry/pinentry-1.1.0.= tar.bz2") + (sha256 + (base32 "0w35ypl960pczg5kp6km3dyr000m1hf0vpwwlh72jjkjza36c1v8"= )))) + ("gnupg" + ,(origin + (method url-fetch) + (uri "https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.20.tar.b= z2") + (sha256 + (base32 "0c6a4v9p6qzhsw1pfcwc459bxpc8hma0w9z8iqb9khvligack9q4"= )))) + ("slang" + ,(origin + (method url-fetch) + (uri "https://www.jedsoft.org/releases/slang/slang-2.3.1a.tar.b= z2") + (sha256 + (base32 "0dlcy0hn0j6cj9qj5x6hpb0axifnvzzmv5jqq0wq14fygw0c7w2l"= )))) + ("newt" + ,(origin + (method url-fetch) + (uri "https://releases.pagure.org/newt/newt-0.52.20.tar.gz") + (sha256 + (base32 "1g3dpfnvaw7vljbr7nzq1rl88d6r8cmrvvng9inphgzwxxmvlrld"= )))) + + ;;; coreboot cross. + + ("gmp" + ,(origin + (method url-fetch) + (uri "https://ftpmirror.gnu.org/gmp/gmp-6.1.2.tar.xz") + (sha256 + (base32 "04hrwahdxyqdik559604r7wrj9ffklwvipgfxgj4ys4skbl6bdc7"= )))) + ("mpfr" + ,(origin + (method url-fetch) + (uri "https://ftpmirror.gnu.org/mpfr/mpfr-3.1.5.tar.xz") + (sha256 + (base32 "1g32l2fg8f62lcyzzh88y3fsh6rk539qc6ahhdgvx7wpnf1dwpq1"= )))) + ("mpc" + ,(origin + (method url-fetch) + (uri "https://ftpmirror.gnu.org/mpc/mpc-1.0.3.tar.gz") + (sha256 + (base32 "1hzci2zrrd7v3g1jk35qindq05hbl0bhjcyyisq9z209xb3fqzb1"= )))) + ("binutils-2.30" + ,(origin + (method url-fetch) + (uri "https://ftpmirror.gnu.org/binutils/binutils-2.30.tar.xz") + (sha256 + (base32 "1rhshw4m5m2pjz8g15hpiwhp52kn0pj0b5dxy0v7lwigmspbhikf"= )))) + ("gcc-8" + ,(origin + (method url-fetch) + (uri "https://ftpmirror.gnu.org/gcc/gcc-8.1.0/gcc-8.1.0.tar.xz") + (sha256 + (base32 "0lxil8x0jjx7zbf90cy1rli650akaa6hpk8wk8s62vk2jbwnc60x"= )))) + ("target-make" + ,(origin + (method url-fetch) + (uri "https://ftp.gnu.org/gnu/make/make-4.2.1.tar.bz2") + (sha256 + (base32 "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn"= )))) + ;; Note: Non-coreboot heads really doesn't need that. + ("acpica-coreboot" + ,(origin + (method url-fetch) + (uri "https://acpica.org/sites/acpica/files/acpica-unix2-201805= 31.tar.gz") + (sha256 + (base32 "0q7vg1nr51f3rg16vjh4glz361a64r6gpm46fqkl2jf4fq7g43g5"= )))))) + (arguments + `(#:tests? #f ; Toplevel makefile has no tests. + #:make-flags + (list (string-append + "CROSS=3D" + (assoc-ref %build-inputs "musl-cross") + "/crossgcc/x86_64-linux-musl/bin/x86_64-linux-musl-") + "MAKE_JOBS=3DSHELL=3Dbash") ; FIXME: Remove workaround + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + (setenv "SHELL" "bash") ; doesn't help + (setenv "CONFIG_SHELL" "bash") ; doesn't help + ;; For edk2 and kexec-tools. + ;; FIXME: musl *musl-cross*/x86_64-linux-musl/bin/x86_64-linu= x-musl-gcc || ./x86_64-linux-musl/x86_64-linux-musl/bin/musl-gcc. + (setenv "BUILD_CC" + (string-append (assoc-ref inputs "musl-cross") + "/crossgcc/x86_64-linux-musl/bin/x86_64-linux= -musl-gcc")) + ;; Disable wget. + (setenv "WGET" "true") + ; ;; Work around mcheck.h problem (in glibc!?) + ; (substitute* "modules/popt" + ; (("[.]/configure") "CFLAGS=3D\"-D__END_DECLS -D__BEGIN_DEC= LS -D__THROW\" ./configure")) + + ;; ??? +; (let ((gcc (assoc-ref inputs "gcc-8"))) +; (setenv "CPATH" +; (string-join +; (delete (string-append gcc "/include") +; (string-split (getenv "CPATH") +; #\:)) +; ":")) +; (format #t +; "environment variable `CPATH' changed to ~a~%" +; (getenv "CPATH"))) + + ;; Fix build error in busybox. + (let ((libc (assoc-ref inputs "libc"))) + (setenv "C_INCLUDE_PATH" + (string-join + (delete (string-append libc "/include") + (string-split (getenv "C_INCLUDE_PATH") + #\:)) + ":")) + (format #t + "environment variable `C_INCLUDE_PATH' changed to= ~a~%" + (getenv "C_INCLUDE_PATH"))) + + ;; We don't have musl-cross for i386 target, so fake it. + (substitute* "modules/coreboot" + (("CROSS=3D\"[^\"]*\"") + "CROSS=3D\"$(CROSS)\"") + (("CFLAGS_x86_32=3D\"") + "CFLAGS_x86_32=3D\"-m32 ")) + #t)) + (add-after 'unpack 'unpack-heads-packages + (lambda* (#:key inputs #:allow-other-keys) + (define (install-file* source-key destination-directory desti= nation-suffix) + (let* ((source-file (assoc-ref inputs source-key)) + (source-basename (basename source-file)) + (source-parts (string-split source-basename #\-)) + (drop (@ (srfi srfi-1) drop)) + (destination-file + (string-join (drop source-parts 1) "-"))) + (copy-file source-file + (string-append destination-directory "/" + destination-file destination-suffix)) + ;(invoke "tar" "-xf" source-file "-C" "build") +)) + (mkdir-p "packages") + (setenv "V" "1") ; verbose + (setenv "GUIX_C_INCLUDE_PATH" (getenv "C_INCLUDE_PATH")) + (setenv "GUIX_CPLUS_INCLUDE_PATH" (getenv "CPLUS_INCLUDE_PATH= ")) + (setenv "GUIX_LIBRARY_PATH" (getenv "LIBRARY_PATH")) + (setenv "GUIX_CPATH" (getenv "CPATH")) + (for-each (lambda (name) + (install-file* name "packages" ".tmp")) + '("linux" "coreboot-blobs" "coreboot" "busybox" "zl= ib" "mbedtls" "kexec-tools" "qrencode" "pciutils" "util-linux" "flashrom" "= popt" "lvm2" "cryptsetup" "libgpg-error" "libgcrypt" "libksba" "libassuan" = "npth" "libusb" "libusb-compat" "dropbear" "pinentry" "gnupg" "slang" "newt= " "musl" "target-musl-cross" "tpmtotp" "msrtools" "target-make")) + (mkdir-p "build") + (mkdir-p "build/musl-cross-git/tarballs") + (mkdir-p "build/coreboot-4.8.1/util/crossgcc/tarballs") + (for-each (lambda (name) + (install-file* name "build/coreboot-4.8.1/util/cr= ossgcc/tarballs" "")) + '("gmp" "mpfr" "mpc" "binutils-2.30" "gcc-8" "acpic= a-coreboot")) + (copy-recursively (assoc-ref inputs "musl-cross") "build/musl= -cross-git") + ; musl-cross-38e52db8358c043ae82b346a2e6e66bc86a53bc1.tar.gz + (copy-recursively (assoc-ref inputs "flashtools") "build/flas= htools-0.0.1") + + (setenv "MUSL_DIR" (assoc-ref inputs "musl-cross")) + ;(setenv "CROSS" (string-append (getenv "MUSL_DIR") "/crossgc= c/x86_64-linux-musl/bin/x86_64-musl-linux-")) ; Note: Useless + (substitute* "Makefile" + ;; Disable our non-cross toolchain environment. + (("CROSS_TOOLS_NOCC :=3D ") + ; CPP=3D" (getenv "CROSS") "cpp CXXCPP=3D" (getenv "CROSS")= "cpp " + (string-append "CROSS_TOOLS_NOCC :=3D C_INCLUDE_PATH=3D CPL= US_INCLUDE_PATH=3D LIBRARY_PATH=3D CPATH=3D ")) + ;; Disable git. + (("git submodule update --init") + "true submodule update --init") + ;; Re-enable our non-cross toolchain environment selectively. + (("^WGET.*") + (string-append "HOSTCC =3D" ; for busybox + " C_INCLUDE_PATH=3D" (or (getenv "GUIX_C_INC= LUDE_PATH") "") + " CPLUS_INCLUDE_PATH=3D" (or (getenv "GUIX_C= PLUS_INCLUDE_PATH") "") + " CPATH=3D" (or (getenv "GUIX_CPATH") "") + " LIBRARY_PATH=3D" (or (getenv "GUIX_LIBRARY= _PATH") "") + " gcc\n" + "CC_FOR_BUILD =3D $(HOSTCC)\n" ; for libgpg-= error + "BUILD_CC =3D $(HOSTCC)\n")) ; for kexec-too= ls + ;; Disable git, patch shebangs, and selectively re-enable ho= st compiler. + ;; (Note: $HOSTCC is too complicated for bash, for example + ;; HOSTCC=3D"a=3Db c=3Dd gcc", then invoking $HOSTCC won't w= ork). + (("(git clone.*)." _ tar) + (format #f "(~a) && (cd $(build)/$($1_base_dir) && set -e &= & for s in Makefile Makefile.in configure lib/configure config.sub config.g= uess tools/install.sh tools/scripts/Makefile.include tools/power/cpupower/M= akefile Makefile.rules scripts/* applets/usage_compressed applets/busybox.m= kll applets/busybox.mksuid po/Makefile.in.in po/Makefile.in po/Makefile mak= e.tmpl.in *-config.in src/*-config.in src/Makefile.in applets/install.sh ap= plets/busybox.mkll tests/pkits/* tests/openpgp/* tests/fake-pinentries/fake= -pinentry.sh tests/*/Makefile tests/inittests tests/runtests tests/Makefile= .in tests/runtest modules/test/runtests.sh src/test/runtests.sh mkfiles/bui= ld.sh autoconf/* demo/Makefile.in slsh/Makefile.in util/xcompile/xcompile u= til/genbuild_h/genbuild_h.sh ; do if [ -f \"$$$${s}\" ] ; then sed -i -e 's= ;/bin/sh\\>;~a/bin/sh;' -e 's;/bin/pwd\\>;pwd;' -e 's;/bin/ln\\>;ln;' -e 's= ;/usr/bin/file\\>;file;' -e 's;/bin/false\\>;false;' -e 's;/bin/bash\\>;~a/= bin/bash;' -e 's;/usr/bin/env bash;~a/bin/bash;' -e 's;git clone;true clone= ;' -e 's;^TERMCAP=3D-ltermcap;TERMCAP=3D;' -e 's;^HOSTCC.*$$$$;HOSTCC=3DC_I= NCLUDE_PATH=3D\"$(GUIX_C_INCLUDE_PATH)\" CPLUS_INCLUDE_PATH=3D\"$(GUIX_CPLU= S_INCLUDE_PATH)\" CPATH=3D\"$(GUIX_CPATH)\" LIBRARY_PATH=3D\"$(GUIX_LIBRARY= _PATH)\" gcc;' -e 's;^\\(\\$$$$HOSTCC[^|]*\\);(echo \\1 | bash);' -e 's;MAK= EARGS +=3D ;MAKEARGS +=3D SHELL=3Dbash ;' -e 's;\\([$][(]MAKE[)]\\);\\1 SHE= LL=3Dbash ;' \"$$$${s}\" ; fi ; done) +" "true" (assoc-ref inputs "bash") (assoc-ref inputs "bash") (assoc-ref in= puts "bash"))) + (("(tar xf.*)." _ tar) ; "make" is not in a "define" block + (format #f "(~a) && (cd $(build)/$($1_base_dir) && set -e &= & for s in make-4.2.1/configure make-4.2.1/Makefile.in ; do sed -i -e 's;/b= in/sh\\>;~a/bin/sh;' \"$${s}\" ; done) +" tar (assoc-ref inputs "bash"))) + (("(tar -xf.*)." _ tar) + (format #f "(~a) && (cd $(build)/$($1_base_dir) && echo XXX= && pwd && set -e && for s in Makefile Makefile.in configure lib/configure = config.sub config.guess tools/install.sh tools/scripts/Makefile.include too= ls/power/cpupower/Makefile Makefile.rules scripts/* applets/usage_compresse= d applets/busybox.mkll applets/busybox.mksuid po/Makefile.in.in po/Makefil= e.in po/Makefile make.tmpl.in *-config.in src/*-config.in src/Makefile.in a= pplets/install.sh applets/busybox.mkll tests/pkits/* tests/openpgp/* tests/= fake-pinentries/fake-pinentry.sh tests/*/Makefile tests/inittests tests/run= tests tests/Makefile.in tests/runtest modules/test/runtests.sh src/test/run= tests.sh mkfiles/build.sh autoconf/* demo/Makefile.in slsh/Makefile.in util= /xcompile/xcompile util/genbuild_h/genbuild_h.sh ; do if [ -f \"$$$${s}\" ]= ; then echo \": $$$${s}\" ; sed -i -e 's;/bin/sh\\>;~a/bin/sh;' -e 's;^TER= MCAP=3D-ltermcap;TERMCAP=3D;' -e 's;/bin/pwd\\>;pwd;' -e 's;/bin/ln\\>;ln;'= -e 's;/usr/bin/file\\>;file;' -e 's;/bin/false\\>;false;' -e 's;/bin/bash\= \>;~a/bin/bash;' -e 's;/usr/bin/env bash;~a/bin/bash;' -e 's;git clone;true= clone;' -e 's;^HOSTCC.*$$$$;HOSTCC=3DC_INCLUDE_PATH=3D\"$(GUIX_C_INCLUDE_P= ATH)\" CPLUS_INCLUDE_PATH=3D\"$(GUIX_CPLUS_INCLUDE_PATH)\" CPATH=3D\"$(GUIX= _CPATH)\" LIBRARY_PATH=3D\"$(GUIX_LIBRARY_PATH)\" gcc;' -e 's;^\\(\\$$$$HOS= TCC[^|]*\\);(echo \\1 | bash);' -e 's;MAKEARGS +=3D ;MAKEARGS +=3D SHELL=3D= bash ;' -e 's;\\([$][(]MAKE[)]\\);\\1 SHELL=3Dbash ;' \"$$$${s}\" ; fi ; do= ne) +" tar (assoc-ref inputs "bash") (assoc-ref inputs "bash") (assoc-ref input= s "bash")))) + ;(substitute* "modules/musl-cross" + ; (("/bin/echo") "echo")) + (call-with-output-file "patches/coreboot-4.8.1/9999-shell.pat= ch" + (lambda (port) + (format port "--- coreboot-4.8.1/util/crossgcc/buildgcc.o= rig 2019-09-13 14:45:12.463998974 +0200 ++++ coreboot-4.8.1/util/crossgcc/buildgcc 2019-09-13 14:46:49.808268216 +0= 200 +@@ -462,6 +462,13 @@ + } + done + touch \"${dir}/.unpack_success\" ++ set -e && for s in \"${dir}/Makefile\" \"${dir}/configure\" \"${dir}/co= nfig.sub\" \"${dir}/config.guess\" \"${dir}/mpn/cpp-ccas\" \"${dir}/mpn/m4-= ccas\" \"${dir}/missing\" \"${dir}/\"*\"/configure\" \"${dir}/move-if-chang= e\" \"${dir}/libgcc/mkheader.sh\" \"${dir}/gcc/genmultilib\" ++ do ++ if [ -f \"${s}\" ] ++ then ++ sed -i -e 's;/bin/sh\\>;~a/bin/sh;' \"${s}\" ++ fi ++ done + ) + } +=20 +" (assoc-ref inputs "bash")))) + #t)) + (add-after 'install 'install-images + (lambda* (#:key outputs make-flags #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (make-flags-assoc (map (lambda (x) + (string-split x #\=3D)) + make-flags)) + (BOARD (car (assoc-ref make-flags-assoc "BOARD"))) + (out-images (string-append out "/libexec/heads/" BOARD= "/images"))) + (mkdir-p out-images) + (copy-recursively (string-append "build/" BOARD) out-images) + ;; Contains timestamp. + (delete-file (string-append out-images "/hashes.txt")) + #t)))))) + (home-page "https://github.com/osresearch/heads") + (synopsis "Heads: coreboot/LinuxBoot payload") + (description "A minimal Linux that runs as a coreboot or LinuxBoot ROM +payload to provide a secure, flexible boot environment for laptops and +servers.") + (license license:gpl2+))))