]> git.pld-linux.org Git - packages/systemd.git/blobdiff - systemd.spec
- /lib/systemd and /usr/lib/tmpfiles.d moved to filesystem
[packages/systemd.git] / systemd.spec
index 81b4c958780e32906b7fdcedb947c28a1e6ee5a8..f1b876a204402c8f2200478cf28b48ce762b239d 100644 (file)
@@ -1,56 +1,87 @@
+# UNPACKAGED files:
+#   /etc/hostname
+#   /etc/locale.conf
+#   /etc/machine-info
+#   /etc/os-release
+#   /etc/timezone
+#   /etc/vconsole.conf
+#
+# TODO:        - move %_libexecdir/tmpfiles.d/* to /etc/tmpfiles.d?
+#      - shouldn't ../bin/systemctl symlinks be absolute? -no they shouldn't (think browsing mounted as chroot and seeing all blink due invalid link targets when doing ls)
+#      - separate init subpackage (with symlink), one can switch to
+#        systemd using init=/bin/systemd with other one installed
+#      - verify %_sysconfdir usage vs literal '/etc'
 #
 # Conditional build:
-%bcond_without gtk             # build gtk tools (needs devel libnotify>=0.7 and gtk+2)
-%bcond_without selinux         # without SELinux support
-%bcond_without tcpd            # libwrap (tcp_wrappers) support
-%bcond_without pam             # PAM authentication support
 %bcond_without audit           # without audit support
 %bcond_without cryptsetup      # without cryptsetup support
+%bcond_without gtk             # build gtk tools
+%bcond_without pam             # PAM authentication 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:       26
-Release:       0.1
+Version:       37
+Release:       0.7
 License:       GPL v2+
 Group:         Base
 Source0:       http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.bz2
-# Source0-md5: b7c468aa400c64d02d533eba6359e283
+# Source0-md5: 1435f23be79c8c38d1121c6b150510f3
+Source1:       systemd-sysv-convert
 Patch0:                target-pld.patch
-Patch1:                pld-port.patch
 URL:           http://www.freedesktop.org/wiki/Software/systemd
 %{?with_audit:BuildRequires:   audit-libs-devel}
 BuildRequires: autoconf >= 2.63
 BuildRequires: automake >= 1:1.11
 %{?with_cryptsetup:BuildRequires:      cryptsetup-luks-devel}
-BuildRequires: dbus-devel
+BuildRequires: dbus-devel >= 1.3.2
 BuildRequires: docbook-style-xsl
-%{?with_gtk:BuildRequires:     glib2-devel >= 1:2.26.1}
-%{?with_gtk:BuildRequires:     gtk+2-devel >= 2:2.24.0}
+%if %{with gtk}
+BuildRequires: glib2-devel >= 1:2.26.1
+BuildRequires: gtk+2-devel >= 2:2.24.0
+BuildRequires: libnotify-devel >= 0.7.0
+%endif
+BuildRequires: gperf
 BuildRequires: libcap-devel
-%{?with_gtk:BuildRequires:     libnotify-devel >= 0.7.0}
 %{?with_selinux:BuildRequires: libselinux-devel}
 BuildRequires: libtool >= 2:2.2
 %{?with_tcpd:BuildRequires:    libwrap-devel}
-BuildRequires: m4
 BuildRequires: libxslt-progs
+BuildRequires: m4
 %{?with_pam:BuildRequires:     pam-devel}
-BuildRequires: pkgconfig
+BuildRequires: pkgconfig >= 0.9.0
 BuildRequires: rpmbuild(macros) >= 1.527
 BuildRequires: udev-devel >= 160
 BuildRequires: vala >= 0.10.0
+Requires:      %{name}-libs = %{version}-%{release}
 Requires:      %{name}-units = %{version}-%{release}
+Requires:      SysVinit-tools
+Requires:      agetty
 Requires:      dbus >= 1.3.2
+Requires:      dbus-systemd
+# python modules required by systemd-analyze
+Requires:      filesystem >= 4.0
+Requires:      python-dbus
+Requires:      python-modules
 Requires:      rc-scripts
+Requires:      setup >= 2.8.0-2
 Requires:      udev-core >= 160
-Provides:      SysVinit = 2.86-23
+Requires:      udev-systemd
+Suggests:      ConsoleKit-systemd
+Suggests:      rsyslog-systemd
+Suggests:      udev-systemd
+Provides:      SysVinit = 2.86-26
 Provides:      readahead = 1:1.5.7-3
 Provides:      virtual(init-daemon)
-Obsoletes:     SysVinit < 2.86-23
+Obsoletes:     SysVinit < 2.86-26
 Obsoletes:     readahead < 1:1.5.7-3
 Obsoletes:     virtual(init-daemon)
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%define                _libexecdir     %{_prefix}/lib
+
 %description
 systemd is a system and service manager for Linux, compatible with
 SysV and LSB init scripts. systemd provides aggressive parallelization
@@ -75,9 +106,9 @@ sysvinit.
 %package units
 Summary:       Configuration files, directories and installation tool for systemd
 Group:         Base
-Requires:      pkgconfig
 Requires(post):        coreutils
 Requires(post):        gawk
+Requires:      pkgconfig
 
 %description units
 Basic configuration files, directories and installation tool for the
@@ -101,10 +132,28 @@ Requires: bash-completion
 %description -n bash-completion-systemd
 bash-completion for systemd.
 
+%package libs
+Summary:       Shared systemd library
+Group:         Libraries
+
+%description libs
+Shared systemd library.
+
+%package devel
+Summary:       Header files for systemd libraries
+Summary(pl.UTF-8):     Pliki nagłówkowe bibliotek systemd
+Group:         Development/Libraries
+Requires:      %{name}-libs = %{version}-%{release}
+
+%description devel
+Header files for systemd libraries.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe bibliotek systemd.
+
 %prep
 %setup -q
 %patch0 -p1
-%patch1 -p1
 
 %build
 %{__aclocal} -I m4
@@ -119,49 +168,69 @@ bash-completion for systemd.
        %{__enable_disable selinux} \
        %{__enable_disable tcpd tcpwrap} \
        --disable-silent-rules \
-       --with-distro=pld \
+       --disable-static \
        --with-rootdir=
 
 %{__make}
 
 %install
 rm -rf $RPM_BUILD_ROOT
+
 %{__make} install \
        DESTDIR=$RPM_BUILD_ROOT
 
-find $RPM_BUILD_ROOT '(' -name '*.a' -o -name '*.la' ')' | xargs -r rm -v
-
-%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
-
-# no -devel (yet)
-rm -f $RPM_BUILD_ROOT%{_npkgconfigdir}/systemd.pc
-
-%if %{without gtk}
-# to shut up check-files
-rm -f $RPM_BUILD_ROOT%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
-rm -f $RPM_BUILD_ROOT%{_bindir}/systemadm
-rm -f $RPM_BUILD_ROOT%{_bindir}/systemd-gnome-ask-password-agent
-rm -f $RPM_BUILD_ROOT%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
-rm -f $RPM_BUILD_ROOT%{_mandir}/man1/systemadm.1*
-%endif
+for lib in libsystemd-daemon libsystemd-login; do
+       %{__mv} $RPM_BUILD_ROOT{%{_libdir}/$lib.so.*,/%{_lib}}
+       ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/$lib.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/$lib.so
+done
 
 # Create SysV compatibility symlinks. systemctl/systemd are smart
 # enough to detect in which way they are called.
 install -d $RPM_BUILD_ROOT/sbin
 ln -s ../bin/systemd $RPM_BUILD_ROOT/sbin/init
-ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/reboot
 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
+ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/runlevel
 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/shutdown
 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/telinit
-ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/runlevel
+
+ln -s ../modules $RPM_BUILD_ROOT%{_sysconfdir}/modules-load.d/modules.conf
 
 # We create all wants links manually at installation time to make sure
 # they are not owned and hence overriden by rpm after the used deleted
 # them.
-rm -r $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/*.target.wants
+%{__rm} -r $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/*.target.wants
+
+# do not cover /media (system-specific removable mountpoints) for now
+# needs %post code to convert existing /media structure to tmpfiles
+%{__rm} -f $RPM_BUILD_ROOT/lib/systemd/local-fs.target.wants/media.mount
+# do not cover /var/run until packages need rpm-provided-only subdirectories
+%{__rm} -f $RPM_BUILD_ROOT/lib/systemd/local-fs.target.wants/var-run.mount
+
+# Make sure these directories are properly owned
+install -d $RPM_BUILD_ROOT/lib/systemd/system/{basic,dbus,default,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}
+
+# Install SysV conversion tool for systemd
+install -m 0755 %{SOURCE1} $RPM_BUILD_ROOT/%{_bindir}/
 
-touch $RPM_BUILD_ROOT%{_sysconfdir}/machine-id
+install -d $RPM_BUILD_ROOT/var/log
+> $RPM_BUILD_ROOT/var/log/btmp
+> $RPM_BUILD_ROOT/var/log/wtmp
+
+%if %{without gtk}
+# to shut up check-files
+rm -f $RPM_BUILD_ROOT%{_bindir}/systemadm
+rm -f $RPM_BUILD_ROOT%{_bindir}/systemd-gnome-ask-password-agent
+%{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/systemadm.1*
+%endif
+
+%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
+%{__rm} $RPM_BUILD_ROOT/%{_lib}/security/pam_systemd.la
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -170,31 +239,48 @@ rm -rf $RPM_BUILD_ROOT
 /bin/systemd-machine-id-setup > /dev/null 2>&1 || :
 /bin/systemctl daemon-reexec > /dev/null 2>&1 || :
 
-%post units
-if [ $1 -ne 1 ]; then
-       exit 0
+%postun
+if [ $1 -ge 1 ]; then
+       /bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
 fi
 
-# Try to read default runlevel from the old inittab if it exists
-runlevel=$(/bin/awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null)
-if [ -z "$runlevel" ] ; then
-       runlevel=3
-fi
-target="/lib/systemd/system/runlevel$runlevel.target"
+%post   libs -p /sbin/ldconfig
+%postun libs -p /sbin/ldconfig
 
-# And symlink what we found to the new-style default.target
-ln -sf "$target" %{_sysconfdir}/systemd/system/default.target > /dev/null 2>&1 || :
-#/bin/systemctl enable SERVICES > /dev/null 2>&1 || :
+%post units
+if [ $1 -eq 1 ]; then
+       # Try to read default runlevel from the old inittab if it exists
+       runlevel=$(/bin/awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null)
+       if [ -z "$runlevel" ] ; then
+               target="/lib/systemd/system/graphical.target"
+       else
+               target="/lib/systemd/system/runlevel$runlevel.target"
+       fi
+
+       # And symlink what we found to the new-style default.target
+       ln -sf "$target" /etc/systemd/system/default.target >/dev/null 2>&1 || :
+
+       # Enable the services we install by default.
+       /bin/systemctl enable \
+               getty@.service \
+               remote-fs.target \
+               systemd-readahead-replay.service \
+               systemd-readahead-collect.service >/dev/null 2>&1 || :
+fi
 
 %preun units
-if [ $1 -ne 0 ]; then
-       exit 0
+if [ $1 -eq 0 ] ; then
+       /bin/systemctl disable \
+               getty@.service \
+               remote-fs.target \
+               systemd-readahead-replay.service \
+               systemd-readahead-collect.service >/dev/null 2>&1 || :
+
+       %{__rm} -f /etc/systemd/system/default.target >/dev/null 2>&1 || :
 fi
-#/bin/systemctl disable SERVICES > /dev/null 2>&1 || :
-rm -f %{_sysconfdir}/systemd/system/default.target > /dev/null 2>&1 || :
 
-%postun
-if [ $1 -ge 1 ] ; then
+%postun units
+if [ $1 -ge 1 ]; then
        /bin/systemctl daemon-reload > /dev/null 2>&1 || :
 fi
 
@@ -202,20 +288,24 @@ fi
 %defattr(644,root,root,755)
 %doc DISTRO_PORTING README TODO
 /etc/dbus-1/system.d/org.freedesktop.hostname1.conf
+/etc/dbus-1/system.d/org.freedesktop.locale1.conf
+/etc/dbus-1/system.d/org.freedesktop.login1.conf
 /etc/dbus-1/system.d/org.freedesktop.systemd1.conf
-%dir %{_sysconfdir}/systemd
-%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemd/system.conf
+/etc/dbus-1/system.d/org.freedesktop.timedate1.conf
 %ghost %config(noreplace) %{_sysconfdir}/machine-id
-%dir /etc/xdg/systemd
-/etc/xdg/systemd/user
+%dir %{_sysconfdir}/systemd
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemd/*.conf
+/etc/xdg/systemd
 %attr(755,root,root) /bin/systemd
 %attr(755,root,root) /bin/systemd-ask-password
+%attr(755,root,root) /bin/systemd-loginctl
 %attr(755,root,root) /bin/systemd-machine-id-setup
 %attr(755,root,root) /bin/systemd-notify
 %attr(755,root,root) /bin/systemd-tty-ask-password-agent
-%attr(755,root,root) %{_bindir}/systemd-cgls
 %attr(755,root,root) %{_bindir}/systemd-analyze
+%attr(755,root,root) %{_bindir}/systemd-cgls
 %attr(755,root,root) %{_bindir}/systemd-nspawn
+%attr(755,root,root) %{_bindir}/systemd-sysv-convert
 %attr(755,root,root) %{_bindir}/systemd-stdio-bridge
 %attr(755,root,root) /sbin/halt
 %attr(755,root,root) /sbin/init
@@ -224,28 +314,41 @@ fi
 %attr(755,root,root) /sbin/runlevel
 %attr(755,root,root) /sbin/shutdown
 %attr(755,root,root) /sbin/telinit
-%dir /lib/systemd
-/lib/systemd/systemd-*
-%dir %{_libdir}/systemd
-%{_libdir}/systemd/user
-%dir %{_libdir}/systemd/user-generators
+%attr(755,root,root) /lib/systemd/systemd-*
 %dir /lib/systemd/system-generators
-/lib/systemd/system-generators/systemd-getty-generator
+%attr(755,root,root) /lib/systemd/system-generators/systemd-*-generator
+%dir /lib/systemd/system-shutdown
 /lib/udev/rules.d/99-systemd.rules
-%{_prefix}/lib/tmpfiles.d/legacy.conf
-%{_prefix}/lib/tmpfiles.d/systemd.conf
-%{_prefix}/lib/tmpfiles.d/x11.conf
+/lib/udev/rules.d/70-uaccess.rules
+/lib/udev/rules.d/71-seat.rules
+/lib/udev/rules.d/73-seat-late.rules
+%dir %{_libexecdir}/systemd
+%{_libexecdir}/systemd/user
+%config(noreplace,missingok) %{_libexecdir}/tmpfiles.d/*.conf
+%{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml
+%{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml
 %{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml
+%{_datadir}/dbus-1/interfaces/org.freedesktop.timedate1.xml
 %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service
 %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.login1.service
 %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service
+%{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service
 %{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy
+%{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy
+%{_datadir}/polkit-1/actions/org.freedesktop.login1.policy
+%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
+%{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy
+%dir %{_datadir}/systemd
+%{_datadir}/systemd/kbd-model-map
 %{_mandir}/man1/init.1
 %{_mandir}/man1/systemd.1*
 %{_mandir}/man1/systemd-ask-password.1*
 %{_mandir}/man1/systemd-cgls.1*
 %{_mandir}/man1/systemd-notify.1*
 %{_mandir}/man1/systemd-nspawn.1*
+%{_mandir}/man1/systemd-loginctl.1*
 %{_mandir}/man3/sd_booted.3*
 %{_mandir}/man3/sd_is_fifo.3*
 %{_mandir}/man3/sd_is_socket.3
@@ -263,19 +366,9 @@ fi
 %{_mandir}/man5/modules-load.d.5*
 %{_mandir}/man5/os-release.5*
 %{_mandir}/man5/sysctl.d.5*
-%{_mandir}/man5/systemd.automount.5*
-%{_mandir}/man5/systemd.conf.5*
-%{_mandir}/man5/systemd.device.5*
-%{_mandir}/man5/systemd.exec.5*
-%{_mandir}/man5/systemd.mount.5*
-%{_mandir}/man5/systemd.path.5*
-%{_mandir}/man5/systemd.service.5*
-%{_mandir}/man5/systemd.snapshot.5*
-%{_mandir}/man5/systemd.socket.5*
-%{_mandir}/man5/systemd.swap.5*
-%{_mandir}/man5/systemd.target.5*
-%{_mandir}/man5/systemd.timer.5*
-%{_mandir}/man5/systemd.unit.5*
+%{_mandir}/man5/systemd.*.5*
+%{_mandir}/man5/systemd-logind.conf.5*
+%{_mandir}/man5/timezone.5*
 %{_mandir}/man5/vconsole.conf.5*
 %{_mandir}/man7/daemon.7*
 %{_mandir}/man7/sd-daemon.7*
@@ -287,39 +380,56 @@ fi
 %{_mandir}/man8/runlevel.8*
 %{_mandir}/man8/shutdown.8*
 %{_mandir}/man8/telinit.8*
-
-%if %{with cryptsetup}
-/lib/systemd/system-generators/systemd-cryptsetup-generator
-%endif
+%attr(640,root,root) %ghost /var/log/btmp
+%attr(664,root,utmp) %ghost /var/log/wtmp
 
 %if %{with pam}
 %attr(755,root,root) /%{_lib}/security/pam_systemd.so
 %{_mandir}/man8/pam_systemd.8*
 %endif
 
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) /%{_lib}/libsystemd-daemon.so.*.*.*
+%attr(755,root,root) %ghost /%{_lib}/libsystemd-daemon.so.0
+%attr(755,root,root) /%{_lib}/libsystemd-login.so.*.*.*
+%attr(755,root,root) %ghost /%{_lib}/libsystemd-login.so.0
+
 %files units
 %defattr(644,root,root,755)
+%dir %{_sysconfdir}/binfmt.d
+%dir %{_sysconfdir}/modules-load.d
+%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/modules-load.d/modules.conf
+%dir %{_sysconfdir}/sysctl.d
 %dir %{_sysconfdir}/systemd
 %dir %{_sysconfdir}/systemd/system
 %dir %{_sysconfdir}/tmpfiles.d
-%dir /lib/systemd
-/lib/systemd/system
-%dir %{_prefix}/lib/tmpfiles.d
+%dir %{_libexecdir}/binfmt.d
+%dir %{_libexecdir}/modules-load.d
+%dir %{_libexecdir}/sysctl.d
 %attr(755,root,root) /bin/systemctl
 %attr(755,root,root) /bin/systemd-tmpfiles
-%{_mandir}/man5/tmpfiles.d.5*
 %{_mandir}/man1/systemctl.1*
+%{_mandir}/man5/tmpfiles.d.5*
 %{_mandir}/man8/systemd-tmpfiles.8*
+%{_npkgconfigdir}/systemd.pc
 
 %if %{with gtk}
 %files gtk
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/systemadm
 %attr(755,root,root) %{_bindir}/systemd-gnome-ask-password-agent
-%{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
 %{_mandir}/man1/systemadm.1*
 %endif
 
 %files -n bash-completion-systemd
 %defattr(644,root,root,755)
 /etc/bash_completion.d/systemctl-bash-completion.sh
+
+%files devel
+%defattr(644,root,root,755)
+%{_includedir}/systemd
+%attr(755,root,root) %{_libdir}/libsystemd-daemon.so
+%attr(755,root,root) %{_libdir}/libsystemd-login.so
+%{_pkgconfigdir}/libsystemd-daemon.pc
+%{_pkgconfigdir}/libsystemd-login.pc
This page took 0.040376 seconds and 4 git commands to generate.