From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marius Bakke Subject: Re: [PATCH] gnu: Add systemd. Date: Sun, 01 Apr 2018 22:11:48 +0200 Message-ID: <87vadabsaj.fsf@fastmail.com> References: <20180401122259.9688-1-mbakke@fastmail.com> <20180401140419.GC26203@macbook41> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:36175) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f2jKY-0006yh-1B for guix-devel@gnu.org; Sun, 01 Apr 2018 16:11:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f2jKT-00041H-Vs for guix-devel@gnu.org; Sun, 01 Apr 2018 16:11:58 -0400 Received: from out5-smtp.messagingengine.com ([66.111.4.29]:56707) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f2jKT-0003zx-OC for guix-devel@gnu.org; Sun, 01 Apr 2018 16:11:53 -0400 In-Reply-To: <20180401140419.GC26203@macbook41> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Efraim Flashner Cc: guix-devel@gnu.org --=-=-= Content-Type: text/plain Efraim Flashner 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 to make linking work properly. Thanks for the feedback! --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAlrBPQQACgkQoqBt8qM6 VPqxTggA1OFgK0ujf0B7ROxqlbY8paSkWn0UxmsyLbcpLQWYSGm8HxVGc8USVIjd SEUO4K24/DA0GGB4Ud5Ed9lOisNfyTiqadDsG3iXj6ZI4R5Uhz/3dUriLPc1Fp+b iPieTATZsaZEZ9msSu7a/++AlWd1opKMerIfR9E1/fppL/uwbqzPsdBacHO+M9o5 Tm0lUjCcePVmd5Z2HvOBsoNr91QP4PMgCY3QGrP0QRMJ0YS33+TejOpPR4hIbgLV 2iuMfiqms+9pGd0L/7eITNPEZ4CqtnO8x6HeZySWxyZNaKNCJeqv8flMOP5mrElI YQYaX2eEU1RDgV39af/q6Mj4CIkvQg== =KaKj -----END PGP SIGNATURE----- --=-=-=--