From: Tony O <me@fron.io>
To: 48924@debbugs.gnu.org
Subject: [bug#48924] Add systemd
Date: Tue, 08 Jun 2021 16:19:33 +0000 [thread overview]
Message-ID: <dvQW5QOoMhwaIXz7zMjE5FemgwPRLjI5ygh4wgbnFN2zo3gBq0-FrBzSeS78AnUQbLTcCyyMeywb5DGDy4AcGA==@fron.io> (raw)
[-- Attachment #1.1.1: Type: text/plain, Size: 200 bytes --]
Hello.
Unsure what the conventional prelude here is, see attached my patch to add systemd to (gnu packages freedesktop) for use as a library in other packages.
Thanks
--
ix/ixmpp <on> libera
[-- Attachment #1.1.2.1: Type: text/html, Size: 517 bytes --]
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.2: 0001-gnu-Add-systemd.patch --]
[-- Type: text/x-patch; filename="0001-gnu-Add-systemd.patch"; name="0001-gnu-Add-systemd.patch", Size: 14703 bytes --]
From f2c7d9f76ab8f2dcaaf8d4fdfb1f050fdb04c588 Mon Sep 17 00:00:00 2001
From: Tony Olagbaiye <me@fron.io>
Date: Tue, 8 Jun 2021 17:15:02 +0100
Subject: [PATCH] gnu: Add systemd
---
gnu/packages/freedesktop.scm | 222 +++++++++++++++++++++++++++++++++++
1 file changed, 222 insertions(+)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index e4ea951c41..03db4deee8 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -24,6 +24,7 @@
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@disroot.org>
;;; Copyright © 2021 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2021 pineapples <guixuser6392@protonmail.com>
+;;; Copyright © 2021 bqv <guix@fron.io>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -55,6 +56,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages acl)
#:use-module (gnu packages admin)
+ #:use-module (gnu packages aidc)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
@@ -63,10 +65,12 @@
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cryptsetup)
+ #:use-module (gnu packages curl)
#:use-module (gnu packages databases)
#:use-module (gnu packages disk)
#:use-module (gnu packages docbook)
#:use-module (gnu packages documentation)
+ #:use-module (gnu packages elf)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
@@ -74,6 +78,8 @@
#:use-module (gnu packages gl)
#:use-module (gnu packages glib) ;intltool
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages gnunet)
+ #:use-module (gnu packages gnupg)
#:use-module (gnu packages gperf)
#:use-module (gnu packages graphviz)
#:use-module (gnu packages gstreamer)
@@ -81,6 +87,7 @@
#:use-module (gnu packages image)
#:use-module (gnu packages language)
#:use-module (gnu packages libffi)
+ #:use-module (gnu packages libidn)
#:use-module (gnu packages libunwind)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
@@ -89,6 +96,7 @@
#:use-module (gnu packages networking)
#:use-module (gnu packages nss)
#:use-module (gnu packages package-management)
+ #:use-module (gnu packages pcre)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
#:use-module (gnu packages pkg-config)
@@ -98,6 +106,7 @@
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages samba)
#:use-module (gnu packages sqlite)
+ #:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
#:use-module (gnu packages video)
#:use-module (gnu packages w3m)
@@ -2266,6 +2275,219 @@ fallback to generic Systray support if none of those are available.")
"libportal provides GIO-style async APIs for most Flatpak portals.")
(license license:lgpl2.1+))))
+(define-public systemd
+ (package
+ (name "systemd")
+ (version "247")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/systemd/systemd/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0h66cq7ymm419cjyg0gla18ni4y8qf9fsav9ysgacjik4xxny53p"))))
+ (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="
+
+ (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"))
+ (("/bin/bash") (string-append bash "/bin/bash"))
+ (("/bin/cat") (string-append coreutils "/bin/cat"))
+ (("/bin/echo") (string-append coreutils "/bin/echo"))
+ (("/bin/getent") (string-append glibc "/bin/getent"))
+ (("/sbin/fsck") (string-append util-linux "/sbin/fsck"))
+ (("/sbin/swapon") (string-append util-linux "/sbin/swapon"))
+ (("/sbin/swapoff") (string-append util-linux "/sbin/swapoff")))
+ (substitute* "src/journal/catalog.c"
+ (("/usr/lib/systemd/catalog")
+ (string-append out "/lib/systemd/catalog")))
+ #t)))
+ (add-after 'patch-paths 'fix-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ ;; Don't create /var/lib/systemd during install.
+ (substitute* "meson.build"
+ ((".*mkdir_p\\.format\\(systemdstatedir\\)\\)") ""))
+ ;; Nor /var/lib/systemd/catalog.
+ (substitute* "catalog/meson.build"
+ (("journalctl --update-catalog") "journalctl --version"))
+ ;; Likewise for /var/log/journal.
+ (substitute* '("src/journal/meson.build"
+ "src/journal-remote/meson.build")
+ (("/var/log/journal") "/tmp/journal"))
+ ;; Create the hwdb in out/etc/udev/hwdb.d, not /etc/udev.
+ (substitute* "hwdb.d/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-before 'install 'fix-install
+ (lambda _
+ (setenv "DESTDIR" "/")
+ #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))
+ (add-before 'strip 'add-shared-lib
+ (lambda* (#:key outputs #:allow-other-keys)
+ (link (string-append (assoc-ref outputs "out")
+ "/lib/systemd/libsystemd-shared-247.so")
+ (string-append (assoc-ref outputs "out")
+ "/lib/libsystemd-shared-247.so"))
+ #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)
+ ("bzip2" ,bzip2)
+ ("coreutils" ,coreutils)
+ ("cryptsetup" ,cryptsetup)
+ ("curl" ,curl)
+ ("dbus" ,dbus)
+ ;; TODO: Add gnu-efi for bootloader functionality.
+ ("elfutils" ,elfutils)
+ ("glib" ,glib)
+ ("glibc" ,glibc)
+ ("gnutls" ,gnutls)
+ ("kbd" ,kbd)
+ ("kmod" ,kmod)
+ ("libcap" ,libcap)
+ ("libgcrypt" ,libgcrypt)
+ ("libidn2" ,libidn2)
+ ("libmicrohttpd" ,libmicrohttpd)
+ ("libseccomp" ,libseccomp)
+ ("libxkbcommon" ,libxkbcommon)
+ ("linux-pam" ,linux-pam)
+ ("lz4" ,lz4)
+ ("pcre2" ,pcre2)
+ ("python" ,python)
+ ("qrencode" ,qrencode)
+ ("util-linux" ,util-linux)
+ ("xz" ,xz)
+ ("zlib" ,zlib)))
+ (home-page "https://www.freedesktop.org/wiki/Software/systemd/")
+ (synopsis "System and service manager")
+ (description
+ "@code{systemd} is a suite of basic building blocks for a Linux system.
+It provides a system and service manager that runs as PID 1 and starts the
+rest of the system. systemd provides aggressive parallelization capabilities,
+uses socket and D-Bus activation for starting services, offers on-demand
+starting of daemons, keeps track of processes using Linux control groups,
+maintains mount and automount points, and implements an elaborate transactional
+dependency-based service control logic.")
+ (license license:lgpl2.1+)))
+
(define-public xdg-desktop-portal
(package
(name "xdg-desktop-portal")
--
2.32.0
[-- Attachment #1.3: publickey - me@fron.io - 0x3026807C.asc --]
[-- Type: application/pgp-keys, Size: 637 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 249 bytes --]
next reply other threads:[~2021-06-08 17:08 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-08 16:19 Tony O [this message]
2021-06-09 17:42 ` [bug#48924] Add systemd Ludovic Courtès
2021-06-09 18:08 ` Tony O
2021-06-09 20:25 ` Ludovic Courtès
2021-06-09 20:31 ` Tony O
2021-06-09 22:33 ` Leo Prikler
2021-06-11 16:39 ` Ludovic Courtès
2021-06-11 17:11 ` Leo Prikler
2021-06-13 7:31 ` Efraim Flashner
2021-06-13 9:36 ` Ludovic Courtès
2021-06-13 12:19 ` Efraim Flashner
2021-06-13 18:14 ` Leo Famulari
2021-06-13 18:54 ` Tony O
2021-06-13 19:00 ` Leo Prikler
2021-06-13 19:56 ` Tony O
2021-06-13 21:44 ` Leo Prikler
2021-06-13 22:35 ` Leo Famulari
2021-06-14 12:30 ` Ludovic Courtès
2021-06-14 15:25 ` Leo Famulari
2021-06-15 9:38 ` Ludovic Courtès
2021-06-15 13:40 ` Leo Famulari
2021-06-15 6:35 ` Efraim Flashner
2021-06-15 9:29 ` Ludovic Courtès
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='dvQW5QOoMhwaIXz7zMjE5FemgwPRLjI5ygh4wgbnFN2zo3gBq0-FrBzSeS78AnUQbLTcCyyMeywb5DGDy4AcGA==@fron.io' \
--to=me@fron.io \
--cc=48924@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).