From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id sEEXKfGprV6ZbAAA0tVLHw (envelope-from ) for ; Sat, 02 May 2020 17:12:17 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id 2OH7A/yprV4LagAAbx9fmQ (envelope-from ) for ; Sat, 02 May 2020 17:12:28 +0000 Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:470:142::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 1341C9441FA for ; Sat, 2 May 2020 17:12:26 +0000 (UTC) Received: from localhost ([::1]:60680 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jUvgg-0005Hy-2c for larch@yhetil.org; Sat, 02 May 2020 13:12:26 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34056) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jUvgS-0004mm-Ft for guix-patches@gnu.org; Sat, 02 May 2020 13:12:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jUvgL-0004QD-DC for guix-patches@gnu.org; Sat, 02 May 2020 13:12:12 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:42307) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jUvgK-0004Q4-Vn for guix-patches@gnu.org; Sat, 02 May 2020 13:12:05 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jUvgK-0006qp-R5 for guix-patches@gnu.org; Sat, 02 May 2020 13:12:04 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#37466] [WIP v5 2/8] gnu: Add heads. Resent-From: Danny Milosavljevic Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 02 May 2020 17:12:04 +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.158843951326261 (code B ref 37466); Sat, 02 May 2020 17:12:04 +0000 Received: (at 37466) by debbugs.gnu.org; 2 May 2020 17:11:53 +0000 Received: from localhost ([127.0.0.1]:53844 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jUvfv-0006p4-9h for submit@debbugs.gnu.org; Sat, 02 May 2020 13:11:53 -0400 Received: from dd26836.kasserver.com ([85.13.145.193]:38814) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jUvfo-0006nM-Om for 37466@debbugs.gnu.org; Sat, 02 May 2020 13:11:37 -0400 Received: from dayas.lan (80-110-127-207.cgn.dynamic.surfer.at [80.110.127.207]) by dd26836.kasserver.com (Postfix) with ESMTPSA id 9E18E33611CE; Sat, 2 May 2020 19:11:31 +0200 (CEST) From: Danny Milosavljevic Date: Sat, 2 May 2020 19:11:12 +0200 Message-Id: <20200502171118.19989-3-dannym@scratchpost.org> X-Mailer: git-send-email 2.26.0 In-Reply-To: <20200502171118.19989-1-dannym@scratchpost.org> References: <20191002211602.16635-1-dannym@scratchpost.org> <20200502171118.19989-1-dannym@scratchpost.org> MIME-Version: 1.0 Tags: patch Content-Transfer-Encoding: quoted-printable X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list 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+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Scanner: scn0 X-Spam-Score: 2.49 Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 2001:470:142::17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Scan-Result: default: False [2.49 / 13.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; GENERIC_REPUTATION(0.00)[-0.49511534391605]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2001:470:142::/48:c]; R_MISSING_CHARSET(2.50)[]; DWL_DNSWL_BLOCKED(0.00)[2001:470:142::17:from]; IP_REPUTATION_HAM(0.00)[asn: 22989(0.15), country: US(-0.00), ip: 2001:470:142::17(-0.50)]; MX_GOOD(-0.50)[cached: eggs.gnu.org]; RCPT_COUNT_TWO(0.00)[2]; MAILLIST(-0.20)[mailman]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; RCVD_IN_DNSWL_FAIL(0.00)[2001:470:142::17:server fail]; RCVD_TLS_LAST(0.00)[]; R_DKIM_NA(0.00)[]; ASN(0.00)[asn:22989, ipnet:2001:470:142::/48, country:US]; MIME_TRACE(0.00)[0:+]; TAGGED_FROM(0.00)[larch=yhetil.org]; ARC_NA(0.00)[]; FROM_NEQ_ENVFROM(0.00)[dannym@scratchpost.org,guix-patches-bounces@gnu.org]; FROM_HAS_DN(0.00)[]; URIBL_BLOCKED(0.00)[gnupg.org:url,flashrom.org:url,gnu.org:url,musl-libc.org:url,mbed.org:url,zlib.net:url,busybox.net:url,launchpad.net:url,tmpl.in:url,ucc.asn.au:url,archlinux.org:url,acpica.org:url,pagure.org:url,makefile.in:url,coreboot.org:url,jedsoft.org:url,fukuchi.org:url]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[scratchpost.org]; HAS_LIST_UNSUB(-0.01)[]; MID_CONTAINS_FROM(1.00)[]; RCVD_COUNT_SEVEN(0.00)[9]; FORGED_SENDER_MAILLIST(0.00)[] X-TUID: ok3Ozv4oWGC2 * gnu/packages/heads.scm (heads): New variable. --- gnu/packages/heads.scm | 391 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 391 insertions(+) diff --git a/gnu/packages/heads.scm b/gnu/packages/heads.scm index 86ab487b0f..3428573836 100644 --- a/gnu/packages/heads.scm +++ b/gnu/packages/heads.scm @@ -174,3 +174,394 @@ done (base32 "12nhr8zrw4sjzrvpf38vl55bq5nm05qkd7nq76as443f0xq7xwnd")) (patches (search-patches "elfutils-tests-ptrace.patch")))))) + +(define heads + (let ((revision "2") + (commit "00a1a2bef6672f04cb69212cc657639c3cf476a4")) + (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 + "0phgqpwriky6fl7xrvkfhrnbkmb3yf3gr924bfn0gg9abwjlvymh")) + (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) + ("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.= 32.tar.bz2") + (sha256 + (base32 "1jj08ns4sh1hmafqp1giskvdicdz18la516va26jycy27kkwaif3"= )))) + ("libgcrypt" + ,(origin + (method url-fetch) + (uri "https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.8.3.ta= r.bz2") + (sha256 + (base32 "0z5gs1khzyknyfjr19k8gk4q148s6q987ya85cpn0iv70fz91v36"= )))) + ("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.1.ta= r.bz2") + (sha256 + (base32 "0jb4nb4nrjr949gd3lw8lh4v5d6qigxaq6xwy24w5apjnhvnrya7"= )))) + ("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.10.tar.b= z2") + (sha256 + (base32 "05f9804g72pffdxgvxjmjzkfcpjg1x221g9rwcr8fi51hrxd77br"= )))) + ("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"= )))) + ;; 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-")) + #:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key inputs #:allow-other-keys) + ;; 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-cro= ss") "/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_DECLS= -D__THROW\" ./configure")) + #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")) + (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) && for s in= Makefile Makefile.in configure lib/configure config.sub config.guess tools= /install.sh tools/scripts/Makefile.include tools/power/cpupower/Makefile Ma= kefile.rules scripts/* applets/usage_compressed applets/busybox.mkll applet= s/busybox.mksuid po/Makefile.in.in po/Makefile.in po/Makefile make.tmpl.in = *-config.in src/*-config.in src/Makefile.in applets/install.sh applets/busy= box.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/build.sh auto= conf/* demo/Makefile.in slsh/Makefile.in util/xcompile/xcompile util/genbui= ld_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/fi= le\\>;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;^TE= RMCAP=3D-ltermcap;TERMCAP=3D;' -e 's;^HOSTCC.*$$$$;HOSTCC=3DC_INCLUDE_PATH= =3D\"$(GUIX_C_INCLUDE_PATH)\" CPLUS_INCLUDE_PATH=3D\"$(GUIX_CPLUS_INCLUDE_P= ATH)\" CPATH=3D\"$(GUIX_CPATH)\" LIBRARY_PATH=3D\"$(GUIX_LIBRARY_PATH)\" gc= c;' -e 's;^\\(\\$$$$HOSTCC[^|]*\\);(echo \\1 | bash);' \"$$$$s\" ; fi ; don= e) +" "true" (assoc-ref inputs "bash") (assoc-ref inputs "bash") (assoc-ref in= puts "bash"))) + (("(tar -xf.*)." _ tar) + (format #f "(~a) && (cd $(build)/$($1_base_dir) && for s in= Makefile Makefile.in configure lib/configure config.sub config.guess tools= /install.sh tools/scripts/Makefile.include tools/power/cpupower/Makefile Ma= kefile.rules scripts/* applets/usage_compressed applets/busybox.mkll applet= s/busybox.mksuid po/Makefile.in.in po/Makefile.in po/Makefile make.tmpl.in= *-config.in src/*-config.in src/Makefile.in applets/install.sh applets/bus= ybox.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/build.sh aut= oconf/* demo/Makefile.in slsh/Makefile.in util/xcompile/xcompile util/genbu= ild_h/genbuild_h.sh ; do if [ -f \"$$$$s\" ] ; then sed -i -e 's;/bin/sh\\>= ;~a/bin/sh;' -e 's;^TERMCAP=3D-ltermcap;TERMCAP=3D;' -e 's;/bin/pwd\\>;pwd;= ' -e 's;/bin/ln\\>;ln;' -e 's;/usr/bin/file\\>;file;' -e 's;/bin/false\\>;f= alse;' -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_PATH)\" CPLUS_INCLUDE_PATH=3D\"$(GUIX_CPLUS_INCLUDE_P= ATH)\" CPATH=3D\"$(GUIX_CPATH)\" LIBRARY_PATH=3D\"$(GUIX_LIBRARY_PATH)\" gc= c;' -e 's;^\\(\\$$$$HOSTCC[^|]*\\);(echo \\1 | bash);' \"$$$$s\" ; fi ; don= e) +" 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\" ++ for s in \"${dir}/Makefile\" \"${dir}/configure\" \"${dir}/config.sub\"= \"${dir}/config.guess\" \"${dir}/mpn/cpp-ccas\" \"${dir}/mpn/m4-ccas\" \"$= {dir}/missing\" \"${dir}/\"*\"/configure\" \"${dir}/move-if-change\" \"${di= r}/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+))))