Efraim Flashner <efr...@flashner.co.il> writes: >> + (build-system meson-build-system) >> + (arguments >> + `(#:tests? #f ;FIXME: The disable-broken-tests phase is >> ineffective. >> + #:configure-flags >> + (let ((bash (assoc-ref %build-inputs "bash")) >> + (coreutils (assoc-ref %build-inputs "coreutils")) >> + (kbd (assoc-ref %build-inputs "kbd")) >> + (kmod (assoc-ref %build-inputs "kmod")) >> + (util-linux (assoc-ref %build-inputs "util-linux")) >> + >> + (out (assoc-ref %outputs "out"))) >> + (list (string-append "-Dkill-path=" coreutils "/bin/kill") >> + (string-append "-Dkmod-path=" kmod "/bin/kmod") >> + (string-append "-Dsulogin-path=" util-linux "/bin/sulogin") >> + (string-append "-Dmount-path=" util-linux "/bin/mount") >> + (string-append "-Dumount-path=" util-linux "/bin/umount") >> + (string-append "-Dloadkeys-path=" kbd "/bin/loadkeys") >> + (string-append "-Dsetfont-path=" kbd "/bin/setfont") >> + (string-append "-Ddebug-shell=" bash "/bin/sh") >> + >> + ;; XXX: Can we reuse %ntp-servers here? >> + (string-append "-Dntp-servers=" >> + (string-join (map (lambda (n) >> + (string-append >> (number->string n) >> + >> ".guix.pool.ntp.org")) >> + '(0 1 2 3)) >> + ",")) >> + >> + ;; Use localhost for DNS with fallback to Quad9 (instead of >> Google). >> + "-Ddns-servers=127.0.0.1,::1,9.9.9.10,2620:fe::10" >> + >> + ;; FIXME: "Attempt to load external entity >> http://docbook.sf.net". >> + "-Dman=false" >> + >> + ;; Don't install SysV compatibility scripts. >> + "-Dsysvinit-path=" >> + "-Dsysvrcnd-path=" > > ;; Don't record build time. > "-Dtime-epoch=1"
Good catch! >> + >> + (string-append "-Dbashcompletiondir=" out >> "/etc/bash_completion.d") >> + (string-append "-Dsysconfdir=" out "/etc") >> + (string-append "-Drootprefix=" out) >> + (string-append "-Drootlibdir=" out "/lib") >> + (string-append "-Ddbuspolicydir=" out "/etc/dbus-1/system.d") >> + (string-append "-Dpamconfdir=" out "/etc/pam.d"))) >> + #:phases (modify-phases %standard-phases >> + (add-after 'unpack 'patch-paths >> + (lambda* (#:key inputs outputs #:allow-other-keys) >> + (let ((bash (assoc-ref inputs "bash")) >> + (coreutils (assoc-ref inputs "coreutils")) >> + (glibc (assoc-ref inputs "glibc")) >> + (util-linux (assoc-ref inputs >> "util-linux")) >> + >> + (out (assoc-ref outputs "out"))) >> + >> + (substitute* '("src/core/swap.c" >> + "src/fsck/fsck.c" >> + "src/journal/cat.c" >> + "src/nspawn/nspawn.c" >> + "src/nspawn/nspawn-setuid.c") >> + (("/bin/sh") (string-append bash "/bin/sh")) > > this could be (which "sh") In a cross-compilation context, "which" might pick up the "native" bash, which is why I opted for the explicit coreutils and bash inputs. >> + ;; Create the hwdb in out/etc/udev/hwdb.d, not >> /etc/udev. >> + (substitute* "hwdb/meson.build" >> + (("systemd-hwdb update") >> + (string-append "systemd-hwdb -r " out >> + "/etc/udev/hwdb.d update"))) >> + #t))) >> + (add-before 'configure 'set-runpath >> + (lambda* (#:key outputs #:allow-other-keys) >> + (let ((out (assoc-ref outputs "out"))) >> + ;; We need out/lib and out/lib/systemd in RUNPATH. >> + (setenv "LDFLAGS" (string-append "-Wl,-rpath=" out >> "/lib," >> + "-rpath=" out >> "/lib/systemd")) >> + #t))) >> + (add-before 'check 'disable-broken-tests >> + (lambda _ >> + (delete-file "test-network") ;requires >> loopback >> + (delete-file "test-engine") ;requires >> cgroups >> + (delete-file "test-unit-name") ;likewise >> + (delete-file "test-unit-file") ;likewise >> + (delete-file "test-copy") ;FIXME >> + (delete-file "test-condition") ;requires >> containers >> + (delete-file "test-mount-util") ;requires /sys >> + (delete-file "test-exec-util") ;FIXME >> + (delete-file "test-xattr-util") ;FIXME >> + (delete-file "test-fs-util") ;requires >> /var/tmp >> + (delete-file "test-stat-util") ;FIXME >> + (delete-file "test-user-util") ;needs "root" >> user >> + (delete-file "test-path-lookup") ;expects >> systemd paths >> + (delete-file "test-namespace") ;requires >> containers >> + (delete-file "test-bpf") ;requires >> cgroups >> + (delete-file "test-fileio") ;FIXME >> + (delete-file "test-time-util") ;FIXME tzdata >> + (delete-file "test-date") ;likewise >> + (delete-file "test-calendarspec") ;likewise >> + (delete-file "test-cgroup-util") ;requires >> cgroup (duh) >> + (delete-file "test-strv") ;FIXME >> + (delete-file "test-path-util") ;FIXME /bin/sh >> + (delete-file "test-path") ;requires >> cgroup >> + (delete-file "test-sched-prio") ;requires >> cgroup >> + (delete-file "test-id128") ;FIXME >> + (delete-file "test-journal-flush") ;FIXME >> + (delete-file "test-bus-creds") ;requires >> cgroup >> + (delete-file "test-login") ;FIXME >> + (delete-file "test-dhcp-client") ;requires >> network >> + (delete-file "test-dhcp6-client") ;likewise >> + #t)) >> + (add-after 'install 'fix-environment-symlink >> + (lambda* (#:key outputs #:allow-other-keys) >> + ;; The install phase creates this dangling symlink: >> + ;; lib/environment.d/00-environment.conf -> >> ../../etc/environment >> + ;; ...which causes the 'fix-runpath' phase to error >> out. >> + ;; XXX: This should probably use /etc/environment >> instead. >> + (mkdir-p (string-append (assoc-ref outputs "out") >> + "/etc/environment")) >> + #t))))) >> + (native-inputs >> + `(("docbook-xml" ,docbook-xml) >> + ("docbook-xsl" ,docbook-xsl) >> + ("gettext" ,gettext-minimal) >> + ("gperf" ,gperf) >> + ("lxml" ,python-lxml) >> + ("m4" ,m4) >> + ("pkg-config" ,pkg-config) >> + ("xsltproc" ,libxslt))) >> + (inputs >> + `(("acl" ,acl) >> + ("audit" ,audit) >> + ("bash" ,bash) > > we probably don't need to include bash specifically, isn't it part of > the build system? Also, it should be bash-minimal Bash-minimal indeed. Oops. :-) However as ng0 mentioned, bash is soon part of systemd, so it won't be needed for very long. (I'm not sure we can joke about this, since we've talked about including "gash"[0] in the initrd...) [0] https://gitlab.com/rutger.van.beusekom/gash >> + ("bzip2" ,bzip2) >> + ("coreutils" ,coreutils) >> + ("cryptsetup" ,cryptsetup) >> + ("curl" ,curl) >> + ("dbus" ,dbus) >> + ;; TODO: Add gnu-efi for bootloader functionality. >> + ("elfutils" ,elfutils) > > Currently elfutils fails its test phase on armhf and aarch64, so we'll > need to fix this before rolling it out so we don't cut out users on > these platforms That's a shame. Users of those platforms will have to step in and do their part if they want to enjoy the New And Improved GuixSD. >> + ("glib" ,glib) >> + ("glibc" ,glibc) > > what about our future Hurd users? I'm sure Linux and the Hurd will both be subsumed by systemd in due time. [...] > Currently installing fails with the error: > Failed to run install script > '/gnu/store/rl5m6cysqhizqr2nminx2nxficpiadmi-bash-4.4.12/bin/sh -c test -n > "$DESTDIR" || > /gnu/store/mqgzqi600k8yqhih863r6ngw0bmamqkq-systemd-238/bin/journalctl > --version' > FAILED: meson-install You'll need <https://bugs.gnu.org/31014> to make linking work properly. Thanks for the feedback!
signature.asc
Description: PGP signature