# # spec file for package sysvinit # # Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %bcond_with util_linux %if 0%{suse_version} < 1300 %global with_util_linux 1 %endif Name: sysvinit %define PDVER 2.0.2 %define KPVER 2.21 %define SCVER 1.16 %define SIVER 2.88+ %define START 0.58 Version: %{SIVER} Release: 0 Summary: SysV-Style init License: GPL-2.0+ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel BuildRequires: libselinux-devel BuildRequires: libsepol-devel BuildRequires: pam-devel #!BuildIgnore: sysvinit-tools Requires(post): coreutils grep mkinitrd Requires(postun): mkinitrd Url: http://savannah.nongnu.org/projects/sysvinit/ Source: sysvinit-%{SIVER}dsf.tar.bz2 Source2: killproc-%{KPVER}.tar.bz2 Source3: powerd-%{PDVER}.tar.bz2 Source4: showconsole-%{SCVER}.tar.bz2 Source5: startpar-%{START}.tar.bz2 Source6: rc.powerd Source7: %{name}-rpmlintrc Source8: mkinitrd-boot.sh Source9: mkinitrd-kill1.sh Source10: mkinitrd-kill2.sh Patch: %{name}-%{version}dsf.dif Patch1: %{name}-2.82-startstop.patch Patch2: %{name}-2.88dsf-suse.patch Patch3: %{name}-2.88dsf-scripts2.patch Patch4: notify-pam-dead.patch Patch5: %{name}-2.88dsf-multiple-sulogin.patch Patch6: %{name}-%{version}dsf-run.diff Patch7: %{name}-%{version}dsf-crypt.patch Patch8: %{name}-%{version}dsf-blowfish.dif Patch9: %{name}-2.88dsf-no-kill.patch Patch10: %{name}-%{version}dsf-env.patch Patch11: %{name}-%{version}dsf-dostat.patch Patch20: powerd-%{PDVER}.dif Patch21: powerd-%{PDVER}-getaddrinfo.patch Patch30: killproc-%{KPVER}.dif Patch40: showconsole-%{SCVER}.dif Patch41: showconsole-1.16-deadlock.diff Patch42: showconsole-1.16-glibc.dif Patch50: startpar-%{START}.dif Requires: mingetty Requires: sysvinit-tools %description System V style init programs by Miquel van Smoorenburg that control the booting and shutdown of your system. These support a number of system runlevels, each one associated with a specific set of utilities. For example, the normal system runlevel is 3, which starts a getty on virtual consoles tty1-tty6. Runlevel 5 starts xdm. Runlevel 0 shuts down the system. See the individual man pages for inittab, initscript, halt, init, powerd, reboot, runlevel, shutdown, and telinit for more information. %package tools Summary: Tools for basic booting Group: System/Base %if 0%{suse_version} > 1120 Requires(preun): coreutils %insserv_prereq Requires(postun): coreutils %insserv_prereq %else PreReq: coreutils %insserv_prereq %endif %description tools Helper tools from sysvinit that support booting, including but not exclusive to startpar, killproc and pidof. System V init specific programs are in the sysvinit package. %package init Summary: Provides /sbin/init for sysvinit Group: System/Base Provides: sbin_init Conflicts: otherproviders(sbin_init) Requires: %{name} %description init Just some symlinks and manual page for sysvinit %prep %setup -n %{name}-%{SIVER}dsf -q -b 2 -b 3 -b 4 -b 5 %patch1 -p0 -b .startstop %patch2 -p0 -b .suse %patch3 -p0 -b .scripts2 %patch4 -p0 -b .pam %patch5 -p0 -b .sulogin %patch6 -p0 -b .run %patch7 -p0 -b .crypt %patch8 -p0 -b .blowfish %patch9 -p0 -b .no-kill %patch10 -p0 -b .env %patch11 -p0 -b .dostat %patch pushd doc mkdir killproc powerd showconsole popd pushd ../powerd-%{PDVER} %patch20 %patch21 ln -t../%{name}-%{SIVER}dsf/doc/powerd README SUPPORTED FAQ powerd.conf.monitor powerd.conf.peer popd pushd ../killproc-%{KPVER} %patch30 ln -t../%{name}-%{SIVER}dsf/doc/killproc README popd pushd ../showconsole-%{SCVER} %patch40 %patch41 -p1 %patch42 -p0 ln -t../%{name}-%{SIVER}dsf/doc/showconsole README popd pushd ../startpar-%{START} %patch50 popd %_fixowner . %_fixgroup . /bin/chmod -Rf a+rX,g-w,o-w . %build RPM_OPT_FLAGS="${RPM_OPT_FLAGS} -D_FILE_OFFSET_BITS=64 -pipe" CC=%__cc export RPM_OPT_FLAGS CC make %{?_smp_mflags} WITH_SELINUX=yes DISTRO=SuSE pushd ../showconsole-%{SCVER} make %{?_smp_mflags} CC="%__cc" popd pushd ../killproc-%{KPVER} make %{?_smp_mflags} INC="-I../showconsole-%{SCVER} -L../showconsole-%{SCVER}" CC="%__cc" popd pushd ../powerd-%{PDVER} %ifnarch s390 s390x %configure --prefix= --bindir='$(DESTDIR)/sbin' \ --mandir='$(DESTDIR)%{_mandir}' \ --sbindir='$(DESTDIR)/sbin' make %{?_smp_mflags} CFLAGS="-I../sysvinit-%{SIVER}dsf/src $RPM_OPT_FLAGS " %endif popd pushd ../startpar-%{START} make %{?_smp_mflags} INC="-I../showconsole-%{SCVER} -L../showconsole-%{SCVER}" CC="%__cc" popd %install rm -rf ${RPM_BUILD_ROOT} mkdir ${RPM_BUILD_ROOT} mkdir -m 755 -p ${RPM_BUILD_ROOT}/bin mkdir -m 755 -p ${RPM_BUILD_ROOT}/dev mkdir -m 755 -p ${RPM_BUILD_ROOT}/etc mkdir -m 755 -p ${RPM_BUILD_ROOT}/sbin mkdir -m 755 -p ${RPM_BUILD_ROOT}/usr/bin mkdir -m 755 -p ${RPM_BUILD_ROOT}/usr/include mkdir -m 755 -p ${RPM_BUILD_ROOT}%{_mandir}/man1 mkdir -m 755 -p ${RPM_BUILD_ROOT}%{_mandir}/man5 mkdir -m 755 -p ${RPM_BUILD_ROOT}%{_mandir}/man8 make install -C src MANPATH=%{_mandir} ROOT=${RPM_BUILD_ROOT} WITH_SELINUX=yes DISTRO=SuSE mv ${RPM_BUILD_ROOT}/sbin/init ${RPM_BUILD_ROOT}/sbin/sysvinit mv ${RPM_BUILD_ROOT}%{_mandir}/man8/init.8 ${RPM_BUILD_ROOT}/%{_mandir}/man8/sysvinit.8 ln -s /sbin/sysvinit ${RPM_BUILD_ROOT}/sbin/init ln -s sysvinit.8 ${RPM_BUILD_ROOT}%{_mandir}/man8/init.8 mkdir -p ${RPM_BUILD_ROOT}/lib/sysvinit ln -sf /sbin/sysvinit ${RPM_BUILD_ROOT}/lib/sysvinit/telinit ln -sf /sbin/sysvinit ${RPM_BUILD_ROOT}/sbin/telinit test -p ${RPM_BUILD_ROOT}/dev/initctl || { rm -f ${RPM_BUILD_ROOT}/dev/initctl mknod ${RPM_BUILD_ROOT}/dev/initctl p chmod 600 ${RPM_BUILD_ROOT}/dev/initctl } pushd ../showconsole-%{SCVER} make install MANPATH=%{_mandir} INSTBINFLAGS="-m 0700" DESTDIR=${RPM_BUILD_ROOT} popd pushd ../killproc-%{KPVER} make install MANPATH=%{_mandir} INSTBINFLAGS="-m 0755" DESTDIR=${RPM_BUILD_ROOT} popd pushd ../powerd-%{PDVER} %ifnarch s390 s390x make install DESTDIR=${RPM_BUILD_ROOT} echo '# ' > ${RPM_BUILD_ROOT}/etc/powerd.conf echo '# /etc/powerd.conf for powerd version-2.02' >> ${RPM_BUILD_ROOT}/etc/powerd.conf echo '# ' >> ${RPM_BUILD_ROOT}/etc/powerd.conf echo '# read manual page of detectups(8) and powerd(8) its self.' >> ${RPM_BUILD_ROOT}/etc/powerd.conf echo '# ' >> ${RPM_BUILD_ROOT}/etc/powerd.conf mkdir -p ${RPM_BUILD_ROOT}/etc/init.d install -m 0744 %{SOURCE6} ${RPM_BUILD_ROOT}/etc/init.d/powerd ln -sf /etc/init.d/powerd ${RPM_BUILD_ROOT}/sbin/rcpowerd %endif popd pushd ../startpar-%{START} make install DESTDIR=${RPM_BUILD_ROOT} popd # # Install mkinitrd scriptlets # install -d $RPM_BUILD_ROOT/lib/mkinitrd/scripts install -m 0755 %{SOURCE8} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/boot-blogd.sh install -m 0755 %{SOURCE9} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/boot-killblogd.sh install -m 0755 %{SOURCE10} $RPM_BUILD_ROOT/lib/mkinitrd/scripts/boot-killblogd2.sh # # Remove files not packed: # rm -f ${RPM_BUILD_ROOT}/usr/include/{initreq.h,libblogger.h} rm -f ${RPM_BUILD_ROOT}/usr/lib/libblogger.a rm -f ${RPM_BUILD_ROOT}%{_mandir}/man1/mesg.1* %ifarch s390 s390x rm -f ${RPM_BUILD_ROOT}%{_mandir}/man8/powerd.8* rm -f ${RPM_BUILD_ROOT}%{_mandir}/man8/detectups.8* rm -f ${RPM_BUILD_ROOT}/sbin/powerd rm -f ${RPM_BUILD_ROOT}/sbin/detectups %endif chmod 444 ${RPM_BUILD_ROOT}%{_mandir}/man?/* %if ! %{with util_linux} rm -vf ${RPM_BUILD_ROOT}/bin/mountpoint rm -vf ${RPM_BUILD_ROOT}/usr/bin/utmpdump rm -vf ${RPM_BUILD_ROOT}/sbin/sulogin rm -vf ${RPM_BUILD_ROOT}%{_mandir}/man1/mountpoint.1* rm -vf ${RPM_BUILD_ROOT}%{_mandir}/man1/utmpdump.1* rm -vf ${RPM_BUILD_ROOT}%{_mandir}/man8/sulogin.8* %endif %preun tools %stop_on_removal powerd %post ret=0 if test -x /sbin/telinit -a -p /dev/initctl -a -f /proc/1/exe -a -d /proc/1/root -a ! -d /.build -a -x /sbin/init; then icount=$(grep -cE '^[[:alnum:]]+:[[:alnum:]]*:' /etc/inittab 2>/dev/null || echo 0) if test $(stat -Lc '%%D-%%i' /) = $(stat -Lc '%%D-%%i' /proc/1/root) -a $icount -gt 6 ; then if test $(stat -Lc '%%D-%%i' /sbin/init) = $(stat -Lc '%%D-%%i' /sbin/sysvinit); then /sbin/telinit u fi elif test $icount -le 6 ; then echo 'Broken /etc/inittab found, installing and using %{name} make no sense!' 1>&2 ret=1 fi fi if test -x /sbin/mkinitrd_setup; then mkinitrd_setup fi exit $ret %postun tools %restart_on_update powerd %insserv_cleanup %postun if test -x /sbin/mkinitrd_setup; then mkinitrd_setup fi %files %defattr (-,root,root,755) /sbin/sysvinit %dir /lib/sysvinit /lib/sysvinit/telinit %files init %defattr (-,root,root,755) /sbin/halt /sbin/init /sbin/poweroff /sbin/reboot /sbin/runlevel /sbin/shutdown /sbin/telinit %doc %{_mandir}/man8/halt.8.gz %doc %{_mandir}/man5/initscript.5.gz %doc %{_mandir}/man5/inittab.5.gz %doc %{_mandir}/man8/init.8.gz %doc %{_mandir}/man8/sysvinit.8.gz %doc %{_mandir}/man8/poweroff.8.gz %doc %{_mandir}/man8/reboot.8.gz %doc %{_mandir}/man8/runlevel.8.gz %doc %{_mandir}/man8/shutdown.8.gz %doc %{_mandir}/man8/telinit.8.gz %dir /lib/mkinitrd %dir /lib/mkinitrd/scripts /lib/mkinitrd/scripts/boot-blogd.sh /lib/mkinitrd/scripts/boot-killblogd.sh /lib/mkinitrd/scripts/boot-killblogd2.sh %files tools %defattr (-,root,root,755) %doc COPYING COPYRIGHT doc/Propaganda %doc doc/Changelog doc/killproc doc/showconsole %ifnarch s390 s390x %config /etc/powerd.conf %config /etc/init.d/powerd %doc doc/powerd %endif %config /etc/pam.d/init %if %{with util_linux} /sbin/sulogin /bin/mountpoint /usr/bin/utmpdump %endif /bin/pidof /bin/usleep /bin/fsync /usr/bin/last /usr/bin/lastb /sbin/blogger /sbin/blogd /sbin/fstab-decode /sbin/showconsole /sbin/setconsole /sbin/isserial /sbin/checkproc /sbin/pidofproc /sbin/killproc /sbin/killall5 /sbin/pidof %ifnarch s390 s390x /sbin/powerd /sbin/detectups /sbin/rcpowerd %endif /sbin/startpar /sbin/rvmtab /sbin/vhangup /sbin/mkill /sbin/startproc /sbin/start_daemon %if %{with util_linux} %doc %{_mandir}/man1/mountpoint.1.gz %doc %{_mandir}/man1/utmpdump.1.gz %doc %{_mandir}/man8/sulogin.8.gz %endif %doc %{_mandir}/man1/last.1.gz %doc %{_mandir}/man1/lastb.1.gz %doc %{_mandir}/man1/usleep.1.gz %doc %{_mandir}/man1/fsync.1.gz # /usr/include/libblogger.h # /usr/lib/libblogger.a %doc %{_mandir}/man8/blogger.8.gz %doc %{_mandir}/man8/blogd.8.gz %doc %{_mandir}/man8/fstab-decode.8.gz %doc %{_mandir}/man8/showconsole.8.gz %doc %{_mandir}/man8/setconsole.8.gz %doc %{_mandir}/man8/isserial.8.gz %doc %{_mandir}/man8/checkproc.8.gz %doc %{_mandir}/man8/pidofproc.8.gz %doc %{_mandir}/man8/killall5.8.gz %doc %{_mandir}/man8/killproc.8.gz %doc %{_mandir}/man8/pidof.8.gz %ifnarch s390 s390x %doc %{_mandir}/man8/powerd.8.gz %doc %{_mandir}/man8/detectups.8.gz %endif %doc %{_mandir}/man8/startproc.8.gz %doc %{_mandir}/man8/start_daemon.8.gz %doc %{_mandir}/man8/startpar.8.gz %doc %{_mandir}/man8/rvmtab.8.gz %doc %{_mandir}/man8/vhangup.8.gz %doc %{_mandir}/man8/mkill.8.gz %if 0 %doc contrib/bootlogd.README /sbin/bootlogd /sbin/intr %doc %{_mandir}/man8/bootlogd.8.gz %doc %{_mandir}/man8/intr.8.gz %endif %changelog