[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] gnu: Add systemd.
From: |
Nils Gillmann |
Subject: |
Re: [PATCH] gnu: Add systemd. |
Date: |
Sun, 1 Apr 2018 20:30:16 +0000 |
Marius Bakke transcribed 10K bytes:
> Efraim Flashner <address@hidden> 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...)
Yeah, but that's different, right?
> [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!
- Re: [PATCH] gnu: Add systemd., (continued)
- Re: [PATCH] gnu: Add systemd., Ludovic Courtès, 2018/04/02
- Re: [PATCH] gnu: Add systemd., Joshua Branson, 2018/04/03
- Re: [PATCH] gnu: Add systemd., Leo Famulari, 2018/04/03
- Re: [PATCH] gnu: Add systemd., Ludovic Courtès, 2018/04/04
- Re: [PATCH] gnu: Add systemd., Marius Bakke, 2018/04/06
Re: [PATCH] gnu: Add systemd., Nils Gillmann, 2018/04/01
Re: [PATCH] gnu: Add systemd., Martin Castillo, 2018/04/01
Re: [PATCH] gnu: Add systemd., Efraim Flashner, 2018/04/01
Re: [PATCH] gnu: Add systemd., Jan Nieuwenhuizen, 2018/04/01
Re: [PATCH] gnu: Add systemd., Björn Höfling, 2018/04/01