lol

systemd: 234 -> 237

Co-Authored-By: Florian Klink <flokli@flokli.de>
Co-Authored-By: Andreas Rammhold <andreas@rammhold.de>

+189 -170
-1
nixos/modules/system/boot/networkd.nix
··· 700 700 701 701 systemd.additionalUpstreamSystemUnits = [ 702 702 "systemd-networkd.service" "systemd-networkd-wait-online.service" 703 - "org.freedesktop.network1.busname" 704 703 ]; 705 704 706 705 systemd.network.units = mapAttrs' (n: v: nameValuePair "${n}.link" (linkToUnit n v)) cfg.links
+1 -1
nixos/modules/system/boot/resolved.nix
··· 126 126 config = mkIf cfg.enable { 127 127 128 128 systemd.additionalUpstreamSystemUnits = [ 129 - "systemd-resolved.service" "org.freedesktop.resolve1.busname" 129 + "systemd-resolved.service" 130 130 ]; 131 131 132 132 systemd.services.systemd-resolved = {
+4 -13
nixos/modules/system/boot/systemd.nix
··· 14 14 upstreamSystemUnits = 15 15 [ # Targets. 16 16 "basic.target" 17 - "busnames.target" 18 17 "sysinit.target" 19 18 "sockets.target" 20 19 "exit.target" ··· 47 46 48 47 # Consoles. 49 48 "getty.target" 49 + "getty-pre.target" 50 50 "getty@.service" 51 51 "serial-getty@.service" 52 52 "console-getty.service" ··· 63 63 "systemd-logind.service" 64 64 "autovt@.service" 65 65 "systemd-user-sessions.service" 66 - "dbus-org.freedesktop.login1.service" 67 66 "dbus-org.freedesktop.machine1.service" 68 - "org.freedesktop.login1.busname" 69 - "org.freedesktop.machine1.busname" 70 67 "user@.service" 71 68 72 69 # Journal. ··· 99 96 "swap.target" 100 97 "dev-hugepages.mount" 101 98 "dev-mqueue.mount" 102 - "proc-sys-fs-binfmt_misc.mount" 103 99 "sys-fs-fuse-connections.mount" 104 100 "sys-kernel-config.mount" 105 101 "sys-kernel-debug.mount" ··· 155 151 "systemd-tmpfiles-setup-dev.service" 156 152 157 153 # Misc. 158 - "org.freedesktop.systemd1.busname" 159 154 "systemd-sysctl.service" 160 155 "dbus-org.freedesktop.timedate1.service" 161 156 "dbus-org.freedesktop.locale1.service" 162 157 "dbus-org.freedesktop.hostname1.service" 163 - "org.freedesktop.timedate1.busname" 164 - "org.freedesktop.locale1.busname" 165 - "org.freedesktop.hostname1.busname" 166 158 "systemd-timedated.service" 167 159 "systemd-localed.service" 168 160 "systemd-hostnamed.service" 169 161 "systemd-binfmt.service" 170 162 "systemd-exit.service" 163 + "systemd-update-done.service" 171 164 ] 172 165 ++ cfg.additionalUpstreamSystemUnits; 173 166 ··· 182 175 upstreamUserUnits = 183 176 [ "basic.target" 184 177 "bluetooth.target" 185 - "busnames.target" 186 178 "default.target" 187 179 "exit.target" 188 180 "graphical-session-pre.target" ··· 789 781 790 782 # Keep a persistent journal. Note that systemd-tmpfiles will 791 783 # set proper ownership/permissions. 792 - # FIXME: revert to 0700 with systemd v233. 793 - mkdir -m 0750 -p /var/log/journal 784 + mkdir -m 0700 -p /var/log/journal 794 785 ''; 795 786 796 787 users.extraUsers.systemd-network.uid = config.ids.uids.systemd-network; ··· 887 878 systemd.targets.local-fs.unitConfig.X-StopOnReconfiguration = true; 888 879 systemd.targets.remote-fs.unitConfig.X-StopOnReconfiguration = true; 889 880 systemd.targets.network-online.wantedBy = [ "multi-user.target" ]; 890 - systemd.services.systemd-binfmt.wants = [ "proc-sys-fs-binfmt_misc.automount" ]; 881 + systemd.services.systemd-binfmt.wants = [ "proc-sys-fs-binfmt_misc.mount" ]; 891 882 892 883 # Don't bother with certain units in containers. 893 884 systemd.services.systemd-remount-fs.unitConfig.ConditionVirtualization = "!container";
+184 -155
pkgs/os-specific/linux/systemd/default.nix
··· 1 1 { stdenv, fetchFromGitHub, fetchpatch, pkgconfig, intltool, gperf, libcap, kmod 2 2 , zlib, xz, pam, acl, cryptsetup, libuuid, m4, utillinux, libffi 3 - , glib, kbd, libxslt, coreutils, libgcrypt, libgpgerror, libapparmor, audit, lz4 4 - , kexectools, libmicrohttpd, linuxHeaders ? stdenv.cc.libc.linuxHeaders, libseccomp 5 - , iptables, gnu-efi 3 + , glib, kbd, libxslt, coreutils, libgcrypt, libgpgerror, libidn2, libapparmor 4 + , audit, lz4, bzip2, kexectools, libmicrohttpd 5 + , linuxHeaders ? stdenv.cc.libc.linuxHeaders 6 + , libseccomp, iptables, gnu-efi 6 7 , autoreconfHook, gettext, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_45 8 + , ninja, meson, python3Packages, glibcLocales 9 + , patchelf 7 10 }: 8 11 9 12 assert stdenv.isLinux; 10 13 11 - stdenv.mkDerivation rec { 12 - version = "234"; 13 - name = "systemd-${version}"; 14 + let pythonLxmlEnv = python3Packages.python.withPackages ( ps: with ps; [ python3Packages.lxml ]); 14 15 15 - src = fetchFromGitHub { 16 - owner = "nixos"; 17 - repo = "systemd"; 18 - rev = "eef5613fda5"; 19 - sha256 = "0wgh5y319v56hcs82mhs58ipb100cz4x41vz3kh4bq1n7sx88cdz"; 20 - }; 16 + in 21 17 22 - outputs = [ "out" "lib" "man" "dev" ]; 18 + stdenv.mkDerivation rec { 19 + version = "237"; 20 + name = "systemd-${version}"; 23 21 24 - nativeBuildInputs = 25 - [ pkgconfig intltool gperf libxslt 26 - /* FIXME: we may be able to prevent the following dependencies 27 - by generating an autoconf'd tarball, but that's probably not 28 - worth it. */ 29 - autoreconfHook gettext docbook_xsl docbook_xml_dtd_42 docbook_xml_dtd_45 30 - ]; 31 - buildInputs = 32 - [ linuxHeaders libcap kmod xz pam acl 33 - /* cryptsetup */ libuuid m4 glib libgcrypt libgpgerror 34 - libmicrohttpd kexectools libseccomp libffi audit lz4 libapparmor 35 - iptables gnu-efi 36 - ]; 22 + src = fetchFromGitHub { 23 + owner = "NixOS"; 24 + repo = "systemd"; 25 + rev = "1e8830dfa77a7dc6976509f4a6edb7e012c50792"; 26 + sha256 = "1cw1k0i68azmzpqzi3r8jm6mbi2wqlql78fhcg0vvnv1ly8bf7vq"; 27 + }; 37 28 38 - configureFlags = 39 - [ "--localstatedir=/var" 40 - "--sysconfdir=/etc" 41 - "--with-rootprefix=$(out)" 42 - "--with-kbd-loadkeys=${kbd}/bin/loadkeys" 43 - "--with-kbd-setfont=${kbd}/bin/setfont" 44 - "--with-rootprefix=$(out)" 45 - "--with-dbuspolicydir=$(out)/etc/dbus-1/system.d" 46 - "--with-dbussystemservicedir=$(out)/share/dbus-1/system-services" 47 - "--with-dbussessionservicedir=$(out)/share/dbus-1/services" 48 - "--with-tty-gid=3" # tty in NixOS has gid 3 49 - "--disable-tests" 29 + outputs = [ "out" "lib" "man" "dev" ]; 50 30 51 - "--enable-lz4" 52 - "--enable-hostnamed" 53 - "--enable-networkd" 54 - "--disable-sysusers" 55 - "--enable-timedated" 56 - "--enable-timesyncd" 57 - "--disable-firstboot" 58 - "--enable-localed" 59 - "--enable-resolved" 60 - "--disable-split-usr" 61 - "--disable-libcurl" 62 - "--disable-libidn" 63 - "--disable-quotacheck" 64 - "--disable-ldconfig" 65 - "--disable-smack" 31 + nativeBuildInputs = 32 + [ pkgconfig intltool gperf libxslt gettext docbook_xsl docbook_xml_dtd_42 docbook_xml_dtd_45 33 + ninja meson 34 + coreutils # meson calls date, stat etc. 35 + pythonLxmlEnv glibcLocales 36 + patchelf 37 + ]; 38 + buildInputs = 39 + [ linuxHeaders libcap kmod xz pam acl 40 + /* cryptsetup */ libuuid m4 glib libgcrypt libgpgerror libidn2 41 + libmicrohttpd kexectools libseccomp libffi audit lz4 bzip2 libapparmor 42 + iptables gnu-efi 43 + ]; 66 44 67 - (if stdenv.isArm then "--disable-gnuefi" else "--enable-gnuefi") 68 - "--with-efi-libdir=${gnu-efi}/lib" 69 - "--with-efi-includedir=${gnu-efi}/include" 70 - "--with-efi-ldsdir=${gnu-efi}/lib" 45 + #dontAddPrefix = true; 46 + 47 + mesonFlags = [ 48 + "-Dloadkeys-path=${kbd}/bin/loadkeys" 49 + "-Dsetfont-path=${kbd}/bin/setfont" 50 + "-Dtty-gid=3" # tty in NixOS has gid 3 51 + # "-Dtests=" # TODO 52 + "-Dlz4=true" 53 + "-Dhostnamed=true" 54 + "-Dnetworkd=true" 55 + "-Dsysusers=false" 56 + "-Dtimedated=true" 57 + "-Dtimesyncd=true" 58 + "-Dfirstboot=false" 59 + "-Dlocaled=true" 60 + "-Dresolve=true" 61 + "-Dsplit-usr=false" 62 + "-Dlibcurl=false" 63 + "-Dlibidn=false" 64 + "-Dlibidn2=true" 65 + "-Dquotacheck=false" 66 + "-Dldconfig=false" 67 + "-Dsmack=true" 68 + "-Dsystem-uid-max=499" #TODO: debug why awking around in /etc/login.defs doesn't work 69 + "-Dsystem-gid-max=499" 70 + # "-Dtime-epoch=1" 71 + 72 + (if stdenv.isArm then "-Dgnu-efi=false" else "-Dgnu-efi=true") 73 + "-Defi-libdir=${gnu-efi}/lib" 74 + "-Defi-includedir=${gnu-efi}/include/efi" 75 + "-Defi-ldsdir=${gnu-efi}/lib" 71 76 72 - "--with-sysvinit-path=" 73 - "--with-sysvrcnd-path=" 74 - "--with-rc-local-script-path-stop=/etc/halt.local" 75 - ]; 77 + "-Dsysvinit-path=" 78 + "-Dsysvrcnd-path=" 79 + ]; 76 80 77 - hardeningDisable = [ "stackprotector" ]; 81 + preConfigure = 82 + '' 83 + mesonFlagsArray+=(-Dntp-servers="0.nixos.pool.ntp.org 1.nixos.pool.ntp.org 2.nixos.pool.ntp.org 3.nixos.pool.ntp.org") 84 + mesonFlagsArray+=(-Ddbuspolicydir=$out/etc/dbus-1/system.d) 85 + mesonFlagsArray+=(-Ddbussessionservicedir=$out/share/dbus-1/services) 86 + mesonFlagsArray+=(-Ddbussystemservicedir=$out/share/dbus-1/system-services) 87 + mesonFlagsArray+=(-Dpamconfdir=$out/etc/pam.d) 88 + mesonFlagsArray+=(-Dsysconfdir=$out/etc) 89 + mesonFlagsArray+=(-Drootprefix=$out) 90 + mesonFlagsArray+=(-Dlibdir=$lib/lib) 91 + mesonFlagsArray+=(-Drootlibdir=$lib/lib) 92 + mesonFlagsArray+=(-Dmandir=$man/lib) 93 + mesonFlagsArray+=(-Dincludedir=$dev/include) 94 + mesonFlagsArray+=(-Dpkgconfiglibdir=$dev/lib/pkgconfig) 95 + mesonFlagsArray+=(-Dpkgconfigdatadir=$dev/share/pkgconfig) 78 96 79 - patches = [ 80 - # TODO: Remove this patch when we have a systemd version 81 - # with https://github.com/systemd/systemd/pull/6678 82 - (fetchpatch { 83 - url = "https://github.com/systemd/systemd/commit/58a78ae77063eddfcd23ea272bd2e0ddc9ea3ff7.patch"; 84 - sha256 = "0g3pvqigs69mciw6lj3zg12dmxnhwxndwxdjg78af52xrp0djfg8"; 85 - }) 86 - ]; 97 + # FIXME: Why aren't includedir and libdir picked up from mesonFlags while other options are? 98 + substituteInPlace meson.build \ 99 + --replace "includedir = join_paths(prefixdir, get_option('includedir'))" \ 100 + "includedir = '$dev/include'" \ 101 + --replace "libdir = join_paths(prefixdir, get_option('libdir'))" \ 102 + "libdir = '$lib/lib'" 87 103 88 - preConfigure = 89 - '' 90 - unset RANLIB 104 + export LC_ALL="en_US.UTF-8"; 105 + # FIXME: patch this in systemd properly (and send upstream). 106 + # already fixed in f00929ad622c978f8ad83590a15a765b4beecac9: (u)mount 107 + for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.in src/journal/cat.c src/core/shutdown.c src/nspawn/nspawn.c src/shared/generator.c; do 108 + test -e $i 109 + substituteInPlace $i \ 110 + --replace /usr/bin/getent ${stdenv.glibc.bin}/bin/getent \ 111 + --replace /sbin/swapon ${utillinux.bin}/sbin/swapon \ 112 + --replace /sbin/swapoff ${utillinux.bin}/sbin/swapoff \ 113 + --replace /sbin/fsck ${utillinux.bin}/sbin/fsck \ 114 + --replace /bin/echo ${coreutils}/bin/echo \ 115 + --replace /bin/cat ${coreutils}/bin/cat \ 116 + --replace /sbin/sulogin ${utillinux.bin}/sbin/sulogin \ 117 + --replace /usr/lib/systemd/systemd-fsck $out/lib/systemd/systemd-fsck \ 118 + --replace /bin/plymouth /run/current-system/sw/bin/plymouth # To avoid dependency 119 + done 91 120 92 - ./autogen.sh 121 + for i in tools/xml_helper.py tools/make-directive-index.py tools/make-man-index.py test/sys-script.py; do 122 + substituteInPlace $i \ 123 + --replace "#!/usr/bin/env python" "#!${pythonLxmlEnv}/bin/python" 124 + done 93 125 94 - # FIXME: patch this in systemd properly (and send upstream). 95 - for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.in src/journal/cat.c src/core/shutdown.c src/nspawn/nspawn.c src/shared/generator.c; do 96 - test -e $i 97 - substituteInPlace $i \ 98 - --replace /usr/bin/getent ${stdenv.glibc.bin}/bin/getent \ 99 - --replace /bin/mount ${utillinux.bin}/bin/mount \ 100 - --replace /bin/umount ${utillinux.bin}/bin/umount \ 101 - --replace /sbin/swapon ${utillinux.bin}/sbin/swapon \ 102 - --replace /sbin/swapoff ${utillinux.bin}/sbin/swapoff \ 103 - --replace /sbin/fsck ${utillinux.bin}/sbin/fsck \ 104 - --replace /bin/echo ${coreutils}/bin/echo \ 105 - --replace /bin/cat ${coreutils}/bin/cat \ 106 - --replace /sbin/sulogin ${utillinux.bin}/sbin/sulogin \ 107 - --replace /usr/lib/systemd/systemd-fsck $out/lib/systemd/systemd-fsck \ 108 - --replace /bin/plymouth /run/current-system/sw/bin/plymouth # To avoid dependency 109 - done 126 + for i in src/basic/generate-gperfs.py src/resolve/generate-dns_type-gperf.py src/test/generate-sym-test.py ; do 127 + substituteInPlace $i \ 128 + --replace "#!/usr/bin/env python" "#!${python3Packages.python}/bin/python" 129 + done 110 130 111 - substituteInPlace src/journal/catalog.c \ 112 - --replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/ 131 + substituteInPlace src/journal/catalog.c \ 132 + --replace /usr/lib/systemd/catalog/ $out/lib/systemd/catalog/ 133 + ''; 113 134 114 - configureFlagsArray+=("--with-ntp-servers=0.nixos.pool.ntp.org 1.nixos.pool.ntp.org 2.nixos.pool.ntp.org 3.nixos.pool.ntp.org") 135 + # These defines are overridden by CFLAGS and would trigger annoying 136 + # warning messages 137 + postConfigure = '' 138 + substituteInPlace config.h \ 139 + --replace "POLKIT_AGENT_BINARY_PATH" "_POLKIT_AGENT_BINARY_PATH" \ 140 + --replace "SYSTEMD_BINARY_PATH" "_SYSTEMD_BINARY_PATH" \ 141 + --replace "SYSTEMD_CGROUP_AGENT_PATH" "_SYSTEMD_CGROUP_AGENT_PATH" 115 142 ''; 116 143 117 - PYTHON_BINARY = "${coreutils}/bin/env python"; # don't want a build time dependency on Python 144 + hardeningDisable = [ "stackprotector" ]; 118 145 119 - NIX_CFLAGS_COMPILE = 120 - [ # Can't say ${polkit.bin}/bin/pkttyagent here because that would 121 - # lead to a cyclic dependency. 122 - "-UPOLKIT_AGENT_BINARY_PATH" "-DPOLKIT_AGENT_BINARY_PATH=\"/run/current-system/sw/bin/pkttyagent\"" 123 - "-fno-stack-protector" 146 + NIX_CFLAGS_COMPILE = 147 + [ # Can't say ${polkit.bin}/bin/pkttyagent here because that would 148 + # lead to a cyclic dependency. 149 + "-UPOLKIT_AGENT_BINARY_PATH" "-DPOLKIT_AGENT_BINARY_PATH=\"/run/current-system/sw/bin/pkttyagent\"" 124 150 125 - # Set the release_agent on /sys/fs/cgroup/systemd to the 126 - # currently running systemd (/run/current-system/systemd) so 127 - # that we don't use an obsolete/garbage-collected release agent. 128 - "-USYSTEMD_CGROUP_AGENT_PATH" "-DSYSTEMD_CGROUP_AGENT_PATH=\"/run/current-system/systemd/lib/systemd/systemd-cgroups-agent\"" 151 + # Set the release_agent on /sys/fs/cgroup/systemd to the 152 + # currently running systemd (/run/current-system/systemd) so 153 + # that we don't use an obsolete/garbage-collected release agent. 154 + "-USYSTEMD_CGROUP_AGENT_PATH" "-DSYSTEMD_CGROUP_AGENT_PATH=\"/run/current-system/systemd/lib/systemd/systemd-cgroups-agent\"" 129 155 130 - "-USYSTEMD_BINARY_PATH" "-DSYSTEMD_BINARY_PATH=\"/run/current-system/systemd/lib/systemd/systemd\"" 131 - ]; 156 + "-USYSTEMD_BINARY_PATH" "-DSYSTEMD_BINARY_PATH=\"/run/current-system/systemd/lib/systemd/systemd\"" 157 + ]; 132 158 133 - installFlags = 134 - [ "localstatedir=$(TMPDIR)/var" 135 - "sysconfdir=$(out)/etc" 136 - "sysvinitdir=$(TMPDIR)/etc/init.d" 137 - "pamconfdir=$(out)/etc/pam.d" 138 - ]; 159 + postInstall = 160 + '' 161 + # sysinit.target: Don't depend on 162 + # systemd-tmpfiles-setup.service. This interferes with NixOps's 163 + # send-keys feature (since sshd.service depends indirectly on 164 + # sysinit.target). 165 + mv $out/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup-dev.service $out/lib/systemd/system/multi-user.target.wants/ 139 166 140 - postInstall = 141 - '' 142 - # sysinit.target: Don't depend on 143 - # systemd-tmpfiles-setup.service. This interferes with NixOps's 144 - # send-keys feature (since sshd.service depends indirectly on 145 - # sysinit.target). 146 - mv $out/lib/systemd/system/sysinit.target.wants/systemd-tmpfiles-setup-dev.service $out/lib/systemd/system/multi-user.target.wants/ 167 + mkdir -p $out/example/systemd 168 + mv $out/lib/{modules-load.d,binfmt.d,sysctl.d,tmpfiles.d} $out/example 169 + mv $out/lib/systemd/{system,user} $out/example/systemd 147 170 148 - mkdir -p $out/example/systemd 149 - mv $out/lib/{modules-load.d,binfmt.d,sysctl.d,tmpfiles.d} $out/example 150 - mv $out/lib/systemd/{system,user} $out/example/systemd 171 + rm -rf $out/etc/systemd/system 151 172 152 - rm -rf $out/etc/systemd/system 153 - 154 - # Install SysV compatibility commands. 155 - mkdir -p $out/sbin 156 - ln -s $out/lib/systemd/systemd $out/sbin/telinit 157 - for i in init halt poweroff runlevel reboot shutdown; do 158 - ln -s $out/bin/systemctl $out/sbin/$i 159 - done 173 + # Install SysV compatibility commands. 174 + mkdir -p $out/sbin 175 + ln -s $out/lib/systemd/systemd $out/sbin/telinit 176 + for i in init halt poweroff runlevel reboot shutdown; do 177 + ln -s $out/bin/systemctl $out/sbin/$i 178 + done 160 179 161 - # Fix reference to /bin/false in the D-Bus services. 162 - for i in $out/share/dbus-1/system-services/*.service; do 163 - substituteInPlace $i --replace /bin/false ${coreutils}/bin/false 164 - done 180 + # Fix reference to /bin/false in the D-Bus services. 181 + for i in $out/share/dbus-1/system-services/*.service; do 182 + substituteInPlace $i --replace /bin/false ${coreutils}/bin/false 183 + done 165 184 166 - rm -rf $out/etc/rpm 185 + rm -rf $out/etc/rpm 167 186 168 - rm $lib/lib/*.la 187 + # "kernel-install" shouldn't be used on NixOS. 188 + find $out -name "*kernel-install*" -exec rm {} \; 169 189 170 - # "kernel-install" shouldn't be used on NixOS. 171 - find $out -name "*kernel-install*" -exec rm {} \; 190 + # Keep only libudev and libsystemd in the lib output. 191 + mkdir -p $out/lib 192 + mv $lib/lib/security $lib/lib/libnss* $out/lib/ 193 + ''; # */ 172 194 173 - # Keep only libudev and libsystemd in the lib output. 174 - mkdir -p $out/lib 175 - mv $lib/lib/security $lib/lib/libnss* $out/lib/ 176 - ''; # */ 195 + enableParallelBuilding = true; 177 196 178 - enableParallelBuilding = true; 197 + # The rpath to the shared systemd library is not added by meson. The 198 + # functionality was removed by a nixpkgs patch because it would overwrite 199 + # the existing rpath. 200 + postFixup = '' 201 + sharedLib=libsystemd-shared-${version}.so 202 + for prog in `find $out -type f -executable`; do 203 + (patchelf --print-needed $prog | grep $sharedLib > /dev/null) && ( 204 + patchelf --set-rpath `patchelf --print-rpath $prog`:"$out/lib/systemd" $prog 205 + ) || true 206 + done 207 + ''; 179 208 180 - # The interface version prevents NixOS from switching to an 181 - # incompatible systemd at runtime. (Switching across reboots is 182 - # fine, of course.) It should be increased whenever systemd changes 183 - # in a backwards-incompatible way. If the interface version of two 184 - # systemd builds is the same, then we can switch between them at 185 - # runtime; otherwise we can't and we need to reboot. 186 - passthru.interfaceVersion = 2; 209 + # The interface version prevents NixOS from switching to an 210 + # incompatible systemd at runtime. (Switching across reboots is 211 + # fine, of course.) It should be increased whenever systemd changes 212 + # in a backwards-incompatible way. If the interface version of two 213 + # systemd builds is the same, then we can switch between them at 214 + # runtime; otherwise we can't and we need to reboot. 215 + passthru.interfaceVersion = 2; 187 216 188 - meta = { 189 - homepage = http://www.freedesktop.org/wiki/Software/systemd; 190 - description = "A system and service manager for Linux"; 191 - platforms = stdenv.lib.platforms.linux; 192 - maintainers = [ stdenv.lib.maintainers.eelco ]; 193 - }; 217 + meta = { 218 + homepage = http://www.freedesktop.org/wiki/Software/systemd; 219 + description = "A system and service manager for Linux"; 220 + platforms = stdenv.lib.platforms.linux; 221 + maintainers = [ stdenv.lib.maintainers.eelco ]; 222 + }; 194 223 }