]> git.pld-linux.org Git - packages/systemd.git/blobdiff - systemd.spec
- instead of hacking into fedora specific services provide our own
[packages/systemd.git] / systemd.spec
index 2b27e8ec7788e6b332990b707ab61f03c8e5db80..6381619432d5fc5419ee7a205827f379620be8e7 100644 (file)
@@ -9,25 +9,28 @@
 %bcond_without cryptsetup      # without cryptsetup support
 %bcond_without gtk             # build gtk tools
 %bcond_without pam             # PAM authentication support
+%bcond_with    plymouth        # plymouth support
 %bcond_without selinux         # without SELinux support
 %bcond_without tcpd            # libwrap (tcp_wrappers) support
 
 Summary:       A System and Service Manager
 Summary(pl.UTF-8):     systemd - zarządca systemu i usług dla Linuksa
 Name:          systemd
-Version:       39
+Version:       43
 Release:       4
 License:       GPL v2+
 Group:         Base
 Source0:       http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.xz
-# Source0-md5: 7179b34f6f6553d2a36551ac1dec5f0d
+# Source0-md5: 446cc6db7625617af67e2d8e5f503a49
 Source1:       %{name}-sysv-convert
 Source2:       %{name}_booted.c
-Source3:       ifup@.service
-Source4:       network-post.service
-Source5:       network.service
-Source6:       compat-pld-media.tmpfiles
-Source7:       compat-pld-var-run.tmpfiles
+Source3:       network.service
+Source4:       compat-pld-media.tmpfiles
+Source5:       compat-pld-var-run.tmpfiles
+Source10:      pld-storage-init-late.service
+Source11:      pld-storage-init.service
+Source12:      pld-wait-storage.service
+Source13:      pld-storage-init.sh
 Patch0:                target-pld.patch
 Patch1:                config-pld.patch
 Patch2:                shut-sysv-up.patch
@@ -38,20 +41,15 @@ BuildRequires:      acl-devel
 %{?with_audit:BuildRequires:   audit-libs-devel}
 BuildRequires: autoconf >= 2.63
 BuildRequires: automake >= 1:1.11
+BuildRequires: binutils >= 3:2.22.52.0.1-2
 %{?with_cryptsetup:BuildRequires:      cryptsetup-luks-devel}
 BuildRequires: dbus-devel >= 1.3.2
 BuildRequires: docbook-style-xsl
-%if %{with gtk}
-BuildRequires: glib2-devel >= 1:2.26.1
-BuildRequires: gtk+2-devel >= 2:2.24.0
-BuildRequires: libgee-devel
-BuildRequires: libnotify-devel >= 0.7.0
-%endif
-BuildRequires: binutils >= 3:2.22.52.0.1-2
 BuildRequires: gperf
 BuildRequires: intltool >= 0.40.0
+BuildRequires: kmod-devel >= 5
 BuildRequires: libcap-devel
-%{?with_selinux:BuildRequires: libselinux-devel}
+%{?with_selinux:BuildRequires: libselinux-devel >= 2.1.0}
 BuildRequires: libtool >= 2:2.2
 %{?with_tcpd:BuildRequires:    libwrap-devel}
 BuildRequires: libxslt-progs
@@ -63,8 +61,15 @@ BuildRequires:       udev-devel >= 1:172
 # not required for building from release (which contains *.c for *.vala)
 #BuildRequires:        vala >= 0.10.0
 BuildRequires: xz-devel
+%if %{with gtk}
+BuildRequires: glib2-devel >= 1:2.26.1
+BuildRequires: gtk+2-devel >= 2:2.24.0
+BuildRequires: libgee-devel
+BuildRequires: libnotify-devel >= 0.7.0
+%endif
 Requires:      %{name}-libs = %{version}-%{release}
 Requires:      %{name}-units = %{version}-%{release}
+Requires:      /etc/os-release
 Requires:      SysVinit-tools
 Requires:      agetty
 Requires:      dbus >= 1.4.16-6
@@ -73,8 +78,10 @@ Requires:    rc-scripts >= 0.4.5.1-7
 Requires:      setup >= 2.8.0-2
 Requires:      udev-core >= 1:175-5
 Requires:      udev-libs >= 1:172
+Requires:      virtual(module-tools)
 Suggests:      ConsoleKit
 Suggests:      fsck >= 2.20
+Suggests:      kmod >= 5
 Suggests:      nss_myhostname
 # python modules required by systemd-analyze
 Suggests:      %{name}-no-compat-tmpfiles
@@ -85,9 +92,10 @@ Suggests:    service(syslog)
 Provides:      udev-acl
 # systemd takes care of that and causes problems
 Conflicts:     binfmt-detector
-# sytemd wants pam with pam_systemd.so in system-auth 
+# sytemd wants pam with pam_systemd.so in system-auth...
 Conflicts:     pam < 1:1.1.5-5
-Conflicts:     upstart
+# ...and sudo hates it
+Conflicts:     sudo < 1:1.7.8p2-4
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                _libexecdir     %{_prefix}/lib
@@ -123,6 +131,7 @@ Provides:   virtual(init-daemon)
 Obsoletes:     SysVinit
 Obsoletes:     readahead < 1:1.5.7-3
 Obsoletes:     virtual(init-daemon)
+Conflicts:     upstart
 
 %description init
 Install this package when you are ready to final switch to systemd.
@@ -136,7 +145,7 @@ Summary:    Configuration files, directories and installation tool for systemd
 Summary(pl.UTF-8):     Pliki konfiguracyjne, katalogi i narzędzie instalacyjne dla systemd
 Group:         Base
 Requires(post):        coreutils
-Requires(post):        gawk
+Requires(post):        /bin/awk
 
 %description units
 Basic configuration files, directories and installation tool for the
@@ -151,6 +160,18 @@ zarządcy systemu i usług systemd.
 Ten pakiet zawiera ogólną konfigurację, ustawienia można nadpisać
 poprzez katalog %{_sysconfdir}/systemd/system.
 
+%package plymouth
+Summary:       Plymouth support units for systemd
+Summary(pl.UTF-8):     Jednostki wspierające Plymouth dla systemd
+Group:         Base
+Requires:      %{name}-units = %{version}-%{release}
+
+%description plymouth
+Plymouth (graphical boot) support units for systemd.
+
+%description plymouth -l pl.UTF-8
+Jednostki wspierające Plymouth (graficzny start systemu) dla systemd.
+
 %package gtk
 Summary:       Graphical frontend for systemd
 Summary(pl.UTF-8):     Graficzny interfejs do systemd
@@ -228,7 +249,8 @@ Conflicts:  dspam < 3.9.0-6
 Conflicts:     fail2ban < 0.8.4-4
 Conflicts:     filesystem < 4.0-3
 Conflicts:     gammu-smsd < 1:1.31.0-3
-Conflicts:     gdm < 2:3.2.1.1-9
+# Break gdm2.20 installs
+#Conflicts:    gdm < 2:3.2.1.1-9
 Conflicts:     greylistd < 0.8.8-2
 Conflicts:     inn < 2.4.6-7
 Conflicts:     ipsec-tools < 0.8.0-3
@@ -273,7 +295,6 @@ Conflicts:  speech-dispatcher < 0.7.1-2
 Conflicts:     sphinx < 2.0.3-4
 Conflicts:     splashutils < 1.5.4.3-3
 Conflicts:     stunnel < 4.50-2
-Conflicts:     sudo < 1:1.7.8p2-2
 Conflicts:     tenshi < 0.12-2
 Conflicts:     tor < 0.2.2.35-2
 Conflicts:     ucarp < 1.5.2-3
@@ -292,7 +313,7 @@ Force update of packages that provide tmpfiles.d configuration
 %setup -q
 %patch0 -p1
 %patch1 -p1
-#%patch2 -p1
+%patch2 -p1
 %patch3 -p1
 %patch4 -p1
 cp -p %{SOURCE2} src/systemd_booted.c
@@ -307,13 +328,15 @@ cp -p %{SOURCE2} src/systemd_booted.c
        %{__enable_disable cryptsetup libcryptsetup} \
        %{__enable_disable gtk} \
        %{__enable_disable pam} \
+       %{__enable_disable plymouth} \
        %{__enable_disable selinux} \
        %{__enable_disable tcpd tcpwrap} \
        --disable-silent-rules \
        --disable-static \
        --with-distro=pld \
        --with-rootprefix= \
-       --with-rootlibdir=/%{_lib}
+       --with-rootlibdir=/%{_lib} \
+       --enable-split-usr
 
 %{__make}
 ./libtool --mode=link --tag=CC %{__cc} %{rpmcppflags} %{rpmcflags} -o systemd_booted %{rpmldflags} src/systemd_booted.c -L. -lsystemd-daemon
@@ -326,10 +349,13 @@ rm -rf $RPM_BUILD_ROOT
 
 ./libtool --mode=install install -m755 systemd_booted $RPM_BUILD_ROOT/bin/systemd_booted
 
+# Main binary has been moved, but we don't want to break existing installs
+ln -s ../lib/systemd/systemd $RPM_BUILD_ROOT/bin/systemd
+
 # Create SysV compatibility symlinks. systemctl/systemd are smart
 # enough to detect the way they were called
 install -d $RPM_BUILD_ROOT/sbin
-ln -s ../bin/systemd $RPM_BUILD_ROOT/sbin/init
+ln -s ../lib/systemd/systemd $RPM_BUILD_ROOT/sbin/init
 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/halt
 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/poweroff
 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/reboot
@@ -338,22 +364,30 @@ ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/shutdown
 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/telinit
 
 ln -s ../modules $RPM_BUILD_ROOT%{_sysconfdir}/modules-load.d/modules.conf
-# disable random and console SYSV service
-ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/random.service
+
+# disable redundant SYSV services
+ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/allowlogin.service
 ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/console.service
+ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/cpusets.service
+ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/killall.service
+ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/netfs.service
+ln -s /dev/null $RPM_BUILD_ROOT%{systemdunitdir}/random.service
 
 # add static (non-NetworkManager) networking
-install %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/ifup@.service
-install %{SOURCE4} $RPM_BUILD_ROOT%{systemdunitdir}/network-post.service
-install %{SOURCE5} $RPM_BUILD_ROOT%{systemdunitdir}/network.service
+install %{SOURCE3} $RPM_BUILD_ROOT%{systemdunitdir}/network.service
 
 # install compatibility tmpfiles configs
-install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/compat-pld-media.conf
-install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/compat-pld-var-run.conf
+install %{SOURCE4} $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/compat-pld-media.conf
+install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/compat-pld-var-run.conf
 
-# All wants links are created at %post to make sure they are not owned
-# and hence overriden by rpm if the user deletes them (missingok?)
-%{__rm} -r $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/*.target.wants
+# Install and enable storage subsystems support services (RAID, LVM, etc.)
+install %{SOURCE10} $RPM_BUILD_ROOT%{systemdunitdir}/pld-storage-init-late.service
+install %{SOURCE11} $RPM_BUILD_ROOT%{systemdunitdir}/pld-storage-init.service
+install %{SOURCE12} $RPM_BUILD_ROOT%{systemdunitdir}/pld-wait-storage.service
+install %{SOURCE13} $RPM_BUILD_ROOT/lib/systemd/pld-storage-init
+
+ln -s ../pld-storage-init-late.service $RPM_BUILD_ROOT%{systemdunitdir}/local-fs.target.wants/pld-storage-init-late.service
+ln -s ../pld-storage-init.service $RPM_BUILD_ROOT%{systemdunitdir}/local-fs.target.wants/pld-storage-init.service
 
 # it is in rc-scripts pkg
 %{__rm} $RPM_BUILD_ROOT%{systemdunitdir}/rc-local.service
@@ -365,7 +399,7 @@ install %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/tmpfiles.d/compat-pld-var-run.c
 install -d $RPM_BUILD_ROOT%{systemdunitdir}/{dbus,halt,kexec,poweroff,reboot,syslog}.target.wants
 
 # Create new-style configuration files so that we can ghost-own them
-touch $RPM_BUILD_ROOT%{_sysconfdir}/{hostname,locale.conf,machine-id,machine-info,os-release,timezone,vconsole.conf}
+touch $RPM_BUILD_ROOT%{_sysconfdir}/{hostname,locale.conf,machine-id,machine-info,timezone,vconsole.conf}
 
 # Install SysV conversion tool for systemd
 install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}
@@ -417,49 +451,26 @@ if [ $1 -eq 1 ]; then
                echo $HOSTNAME > /etc/hostname
                chmod 644 /etc/hostname
        fi
+
+       # Enable the services we install by default.
+       /bin/systemctl enable \
+               getty@.service \
+               network.service \
+               remote-fs.target \
+               systemd-readahead-replay.service \
+               systemd-readahead-collect.service >/dev/null 2>&1 || :
 fi
-# Enable the services we install by default.
-/bin/systemctl enable \
-       getty@.service \
-       network.service \
-       network-post.service \
-       remote-fs.target \
-       systemd-readahead-replay.service \
-       systemd-readahead-collect.service >/dev/null 2>&1 || :
-
-# Find and enable all installed interfaces
-mkdir -p %{_sysconfdir}/systemd/system/network.target.wants >/dev/null 2>&1 || :
-for f in /etc/sysconfig/interfaces/ifcfg-* ; do
-       ff=$(basename $f)
-       ff=${ff##ifcfg-}
-       case "$ff" in
-       *.rpmorig|*.rpmnew|*.rpmsave|*~|*.orig)
-               continue
-               ;;
-       *)
-               DEVICE="" ; ONBOOT="" ; USERS=""
-               . $f 2>/dev/null
-               [ ${USERS:-no} != no ] && continue
-               if [ "$DEVICE" = "$ff" -a ${ONBOOT:-no} = "yes" ]; then
-                       ln -s %{systemdunitdir}/ifup@.service \
-                               %{_sysconfdir}/systemd/system/network.target.wants/ifcfg@$ff.service >/dev/null 2>&1 || :
-               fi
-               ;;
-       esac
-done
 
 %preun units
 if [ $1 -eq 0 ] ; then
        /bin/systemctl disable \
                getty@.service \
                network.service \
-               network-post.service \
                remote-fs.target \
                systemd-readahead-replay.service \
                systemd-readahead-collect.service >/dev/null 2>&1 || :
 
        %{__rm} -f %{_sysconfdir}/systemd/system/default.target >/dev/null 2>&1 || :
-       %{__rm} -f %{_sysconfdir}/systemd/system/network.target.wants/ifcfg@*.service >/dev/null 2>&1 || :
 fi
 
 %postun units
@@ -467,8 +478,14 @@ if [ $1 -ge 1 ]; then
        /bin/systemctl daemon-reload > /dev/null 2>&1 || :
 fi
 
+%triggerpostun units -- %{name}-units < 43-4
+# Remove design fialures
+/bin/systemctl disable network-post.service >/dev/null 2>&1 || :
+rm -f %{_sysconfdir}/systemd/system/network.target.wants/ifcfg@*.service >/dev/null 2>&1 || :
+rm -f %{_sysconfdir}/systemd/system/network.target.wants/network-post.service >/dev/null 2>&1 || :
+
 %post no-compat-tmpfiles
-%{__sed} -i -e 's/^/# /g' %{_sysconfdir}/tmpfiles.d/compat-pld-var-run.conf
+%{__sed} -i -e '/^#/!s/^/# /g' %{_sysconfdir}/tmpfiles.d/compat-pld-var-run.conf
 
 %files
 %defattr(644,root,root,755)
@@ -482,11 +499,13 @@ fi
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/hostname
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/locale.conf
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/machine-info
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/os-release
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/timezone
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vconsole.conf
 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemd/*.conf
 %dir %{_sysconfdir}/systemd/user
+%dir %{_sysconfdir}/systemd/system/*.target.wants
+%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/systemd/system/*.target.wants/*.service
+%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/systemd/system/*.target.wants/*.target
 /etc/xdg/systemd
 %attr(755,root,root) /bin/systemd
 %attr(755,root,root) /bin/systemd-ask-password
@@ -502,8 +521,10 @@ fi
 %attr(755,root,root) %{_bindir}/systemd-nspawn
 %attr(755,root,root) %{_bindir}/systemd-stdio-bridge
 %attr(755,root,root) %{_bindir}/systemd-sysv-convert
+%attr(755,root,root) /lib/systemd/pld-storage-init
 %attr(755,root,root) /lib/systemd/systemd-*
 %dir /lib/systemd/system-generators
+%attr(755,root,root) /lib/systemd/systemd
 %attr(755,root,root) /lib/systemd/system-generators/systemd-*-generator
 %dir /lib/systemd/system-shutdown
 /lib/udev/rules.d/99-systemd.rules
@@ -613,8 +634,66 @@ fi
 %{systemdunitdir}/*.socket
 %{systemdunitdir}/*.target
 %{systemdunitdir}/*.timer
-%dir %{systemdunitdir}/*.wants
-%config(noreplace,missingok) %{systemdunitdir}/*.wants/*
+%if %{with plymouth}
+%exclude %{systemdunitdir}/plymouth*.service
+%exclude %{systemdunitdir}/systemd-ask-password-plymouth.*
+%endif
+%dir %{systemdunitdir}/basic.target.wants
+%dir %{systemdunitdir}/dbus.target.wants
+%dir %{systemdunitdir}/final.target.wants
+%dir %{systemdunitdir}/graphical.target.wants
+%dir %{systemdunitdir}/halt.target.wants
+%dir %{systemdunitdir}/kexec.target.wants
+%dir %{systemdunitdir}/local-fs.target.wants
+%dir %{systemdunitdir}/multi-user.target.wants
+%dir %{systemdunitdir}/poweroff.target.wants
+%dir %{systemdunitdir}/reboot.target.wants
+%dir %{systemdunitdir}/runlevel[12345].target.wants
+%dir %{systemdunitdir}/shutdown.target.wants
+%dir %{systemdunitdir}/sockets.target.wants
+%dir %{systemdunitdir}/sysinit.target.wants
+%dir %{systemdunitdir}/syslog.target.wants
+%config(noreplace,missingok) %{systemdunitdir}/basic.target.wants/*
+%config(noreplace,missingok) %{systemdunitdir}/final.target.wants/*
+%config(noreplace,missingok) %{systemdunitdir}/graphical.target.wants/*
+%config(noreplace,missingok) %{systemdunitdir}/local-fs.target.wants/*
+%config(noreplace,missingok) %{systemdunitdir}/multi-user.target.wants/getty.target
+%config(noreplace,missingok) %{systemdunitdir}/multi-user.target.wants/rc-local.service
+%config(noreplace,missingok) %{systemdunitdir}/multi-user.target.wants/systemd-ask-password-wall.path
+%config(noreplace,missingok) %{systemdunitdir}/multi-user.target.wants/systemd-logind.service
+%config(noreplace,missingok) %{systemdunitdir}/multi-user.target.wants/systemd-user-sessions.service
+%config(noreplace,missingok) %{systemdunitdir}/runlevel[12345].target.wants/*
+%config(noreplace,missingok) %{systemdunitdir}/shutdown.target.wants/*
+%config(noreplace,missingok) %{systemdunitdir}/sockets.target.wants/*
+%config(noreplace,missingok) %{systemdunitdir}/sysinit.target.wants/cryptsetup.target
+%config(noreplace,missingok) %{systemdunitdir}/sysinit.target.wants/dev-hugepages.mount
+%config(noreplace,missingok) %{systemdunitdir}/sysinit.target.wants/dev-mqueue.mount
+%config(noreplace,missingok) %{systemdunitdir}/sysinit.target.wants/proc-sys-fs-binfmt_misc.automount
+%config(noreplace,missingok) %{systemdunitdir}/sysinit.target.wants/sys-*.mount
+%config(noreplace,missingok) %{systemdunitdir}/sysinit.target.wants/systemd-*
+
+%if %{with plymouth}
+%files plymouth
+%defattr(644,root,root,755)
+%{systemdunitdir}/plymouth-halt.service
+%{systemdunitdir}/plymouth-kexec.service
+%{systemdunitdir}/plymouth-poweroff.service
+%{systemdunitdir}/plymouth-quit-wait.service
+%{systemdunitdir}/plymouth-quit.service
+%{systemdunitdir}/plymouth-read-write.service
+%{systemdunitdir}/plymouth-reboot.service
+%{systemdunitdir}/plymouth-start.service
+%{systemdunitdir}/systemd-ask-password-plymouth.path
+%{systemdunitdir}/systemd-ask-password-plymouth.service
+%config(noreplace,missingok) %{systemdunitdir}/halt.target.wants/plymouth-halt.service
+%config(noreplace,missingok) %{systemdunitdir}/kexec.target.wants/plymouth-kexec.service
+%config(noreplace,missingok) %{systemdunitdir}/multi-user.target.wants/plymouth-quit.service
+%config(noreplace,missingok) %{systemdunitdir}/multi-user.target.wants/plymouth-quit-wait.service
+%config(noreplace,missingok) %{systemdunitdir}/poweroff.target.wants/plymouth-poweroff.service
+%config(noreplace,missingok) %{systemdunitdir}/reboot.target.wants/plymouth-reboot.service
+%config(noreplace,missingok) %{systemdunitdir}/sysinit.target.wants/plymouth-read-write.service
+%config(noreplace,missingok) %{systemdunitdir}/sysinit.target.wants/plymouth-start.service
+%endif
 
 %if %{with gtk}
 %files gtk
This page took 0.074801 seconds and 4 git commands to generate.