Skip to content

Commit

Permalink
systemd: adding support for systemd-importd
Browse files Browse the repository at this point in the history
Adding `systemd-importd` to the build, so that `machinectl`s `import-.*`
may actually do anything. Currently they fail with

```
Failed to transfer image: The name org.freedesktop.import1 was not provided by any .service files
```
as `systemd-importd` is not built. Also registers the regarding dbus
api and service in the systemd module.
  • Loading branch information
wucke13 committed Oct 31, 2019
1 parent 47adc67 commit b10cbda
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 6 deletions.
2 changes: 2 additions & 0 deletions nixos/modules/system/boot/systemd.nix
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ let
"systemd-logind.service"
"autovt@.service"
"systemd-user-sessions.service"
"dbus-org.freedesktop.import1.service"
"dbus-org.freedesktop.machine1.service"
"user@.service"
"user-runtime-dir@.service"
Expand Down Expand Up @@ -145,6 +146,7 @@ let
"user.slice"
"machine.slice"
"machines.target"
"systemd-importd.service"
"systemd-machined.service"
"systemd-nspawn@.service"

Expand Down
33 changes: 28 additions & 5 deletions pkgs/os-specific/linux/systemd/default.nix
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{ stdenv, lib, fetchFromGitHub, fetchpatch, pkgconfig, intltool, gperf, libcap, kmod
, xz, pam, acl, libuuid, m4, utillinux, libffi
{ stdenv, lib, fetchFromGitHub, fetchpatch, pkgconfig, intltool, gperf, libcap
, curl, kmod, gnupg, gnutar, xz, pam, acl, libuuid, m4, utillinux, libffi
, glib, kbd, libxslt, coreutils, libgcrypt, libgpgerror, libidn2, libapparmor
, audit, lz4, bzip2, libmicrohttpd, pcre2
, linuxHeaders ? stdenv.cc.libc.linuxHeaders
Expand All @@ -15,7 +15,21 @@
, withKexectools ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) kexectools.meta.platforms, kexectools
}:

stdenv.mkDerivation {
let gnupg-minimal = gnupg.override {
enableMinimal = true;
guiSupport = false;
pcsclite = null;
sqlite = null;
pinentry = null;
adns = null;
gnutls = null;
libusb = null;
openldap = null;
readline = null;
zlib = null;
bzip2 = null;
};
in stdenv.mkDerivation {
version = "243";
pname = "systemd";

Expand All @@ -41,7 +55,7 @@ stdenv.mkDerivation {
(buildPackages.python3Packages.python.withPackages ( ps: with ps; [ python3Packages.lxml ]))
];
buildInputs =
[ linuxHeaders libcap kmod xz pam acl
[ linuxHeaders libcap curl.dev kmod xz pam acl
/* cryptsetup */ libuuid glib libgcrypt libgpgerror libidn2
libmicrohttpd pcre2 ] ++
stdenv.lib.optional withKexectools kexectools ++
Expand All @@ -67,6 +81,7 @@ stdenv.mkDerivation {
"-Ddebug-shell=${bashInteractive}/bin/bash"
# while we do not run tests we should also not build them. Removes about 600 targets
"-Dtests=false"
"-Dimportd=true"
"-Dlz4=true"
"-Dhostnamed=true"
"-Dnetworkd=true"
Expand All @@ -77,7 +92,7 @@ stdenv.mkDerivation {
"-Dlocaled=true"
"-Dresolve=true"
"-Dsplit-usr=false"
"-Dlibcurl=false"
"-Dlibcurl=true"
"-Dlibidn=false"
"-Dlibidn2=true"
"-Dquotacheck=false"
Expand Down Expand Up @@ -144,6 +159,14 @@ stdenv.mkDerivation {
patchShebangs $dir
done
# absolute paths to gpg & tar
substituteInPlace src/import/pull-common.c \
--replace '"gpg"' '"${gnupg-minimal}/bin/gpg"'
for file in src/import/{{export,import,pull}-tar,import-common}.c; do
substituteInPlace $file \
--replace '"tar"' '"${gnutar}/bin/tar"'
done
substituteInPlace src/journal/catalog.c \
--replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/
'';
Expand Down
1 change: 0 additions & 1 deletion pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3524,7 +3524,6 @@ in
guiSupport = stdenv.isDarwin;
pinentry = if stdenv.isDarwin then pinentry_mac else pinentry_gtk2;
};
gnupg-minimal = callPackage ../tools/security/gnupg/minimal.nix { };
gnupg = gnupg22;

gnuplot = libsForQt5.callPackage ../tools/graphics/gnuplot { };
Expand Down

0 comments on commit b10cbda

Please sign in to comment.