diff mbox series

[bug#40552] gnu: hurd: Build DDE libraries.

Message ID 20200411120532.1660-1-rekado@elephly.net
State Accepted
Headers show
Series [bug#40552] gnu: hurd: Build DDE libraries. | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job

Commit Message

Ricardo Wurmus April 11, 2020, 12:05 p.m. UTC
* gnu/packages/hurd.scm (hurd)[native-inputs]: Add "dde-sources".
[inputs]: Add libpciaccess.
[arguments]: Add phase "prepare-dde".
---
 gnu/packages/hurd.scm | 31 ++++++++++++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

Comments

Janneke Nieuwenhuizen April 12, 2020, 11:32 a.m. UTC | #1
Ricardo Wurmus writes:

Hello Ricardo,

> * gnu/packages/hurd.scm (hurd)[native-inputs]: Add "dde-sources".
> [inputs]: Add libpciaccess.
> [arguments]: Add phase "prepare-dde".

Thank you, beautiful!  I applied it to wip-hurd-vm.  Using some extra
guix cross-build hacks that are not ready for savannah
(https://gitlab.com/janneke/guix/-/commits/wip-hurd-vm), I now managed
to build the first package on our own hurd VM:

    https://lilypond.org/janneke/hurd-candy/guix-build-make-boot0.png

A hacky script to do build `gnu-make-boot0':

is included as `build.sh'.

--8<---------------cut here---------------start------------->8---
#! /bin/sh
set -ex

guix-daemon --build-users-group=guixbuild --disable-chroot --disable-deduplication --max-jobs=1 &
guix archive --authorize < /run/current-system/profile/share/guix/ci.guix.gnu.org.pub
guix build -e '(@@ (gnu packages commencement) gnu-make-boot0)' --fallback --no-offload
--8<---------------cut here---------------end--------------->8---

Not marking this `done' yet, as the patch hasn't been merged on
core-updates.

However, this looks so nice and works so well: please feel free to push
a next patch (no pressure!) to wip-hurd-vm yourself!

Greetings,
janneke
diff mbox series

Patch

diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm
index 5a56714d24..64911bfb1f 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -4,6 +4,7 @@ 
 ;;; Copyright © 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -40,6 +41,7 @@ 
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages texinfo)
+  #:use-module (gnu packages xorg) ; libpciaccess
   #:use-module (guix git-download)
   #:export (hurd-system?
             hurd-target?
@@ -363,6 +365,19 @@  boot, since this cannot be done from GNU/Linux."
     (arguments
      `(#:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'prepare-dde
+           (lambda* (#:key native-inputs inputs #:allow-other-keys)
+             (substitute* "Makefile"
+               (("libbpf ")
+                "libbpf libmachdev libmachdevdde libddekit"))
+             (for-each make-file-writable (find-files "."))
+             (let ((dde (or (assoc-ref inputs "dde-sources")
+                            (assoc-ref native-inputs "dde-sources"))))
+               (for-each (lambda (dir)
+                           (copy-recursively
+                            (string-append dde "/" dir ) dir))
+                         '("libmachdev" "libmachdevdde" "libddekit")))
+             #t))
          (add-before 'build 'pre-build
            (lambda _
              ;; Don't change the ownership of any file at this time.
@@ -472,6 +487,7 @@  fsysopts / --writable\n"))
        ("libgcrypt" ,libgcrypt)                  ;for /hurd/random
        ("libdaemon" ,libdaemon)                  ;for /bin/console --daemonize
        ("unifont" ,unifont)
+       ("libpciaccess" ,libpciaccess)
 
        ;; Tools for the /libexec/* scripts.
        ("bash-minimal" ,bash-minimal)
@@ -492,7 +508,20 @@  fsysopts / --writable\n"))
                      (arguments `(#:system "i686-linux")))
                    mig))
        ("perl" ,perl)
-       ("texinfo" ,texinfo-4)))
+       ("texinfo" ,texinfo-4)
+       ("dde-sources"
+        ;; This is the current tip of the dde branch
+        ,(let ((commit "ac1c7eb7a8b24b7469bed5365be38a968d59a136"))
+           (origin
+             (method git-fetch)
+             (uri (git-reference
+                   (url "https://git.savannah.gnu.org/git/hurd/incubator.git")
+                   (commit commit)))
+             (sha256
+              (base32
+               "1vryinbg75xpydfrv9dbgfnds6knlh8l8bk2rxp32y9dc58z0692"))
+             (file-name (string-append "dde-checkout-"
+                                       (string-take commit 7))))))))
     (supported-systems %hurd-systems)
     (home-page "https://www.gnu.org/software/hurd/hurd.html")
     (synopsis "The kernel servers for the GNU operating system")