+#
+# Conditional build:
+%bcond_with preconfigured
+%bcond_without selinux # build without SELinux support
+#
Summary: System V initialization program
Summary(de): System V-Intialisierungsprogramm
-Summary(fr): Programme d'initialisation Sys V.
-Summary(pl): Program inicjalizuj±cy w Systemie V
+Summary(es): Programa de inicialización System V
+Summary(fr): Programme d'initialisation Sys V
+Summary(pl): Program inicjalizuj±cy w Systemie V
+Summary(pt_BR): Programa de inicialização System V
+Summary(ru): ðÒÏÇÒÁÍÍÙ, ÕÐÒÁ×ÌÑÀÝÉÅ ÂÁÚÏ×ÙÍÉ ÓÉÓÔÅÍÎÙÍÉ ÐÒÏÃÅÓÓÁÍÉ
Summary(tr): System V baþlatma programý
+Summary(uk): ðÒÏÇÒÁÍÉ, ÝÏ ËÅÒÕÀÔØ ÂÁÚÏ×ÉÍÉ ÓÉÓÔÅÍÎÉÍÉ ÐÒÏÃÅÓÁÍÉ
Name: SysVinit
-Version: 2.76
-Release: 14
-Copyright: GPL
+Version: 2.86
+Release: 1
+License: GPL
Group: Base
-Group(pl): Podstawowe
-URL: ftp://ftp.cistron.nl/pub/people/miquels/software/
-Source0: sysvinit-%{version}.tar.gz
-Source1: sysvinit-initscript
-Source2: sysvinit.logrotate
+Source0: ftp://ftp.cistron.nl/pub/people/miquels/software/sysvinit-%{version}.tar.gz
+# Source0-md5: 7d5d61c026122ab791ac04c8a84db967
+Source1: sysvinit.logrotate
+Source2: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/sysvinit-non-english-man-pages.tar.bz2
+# Source2-md5: 9ae8a63a4685368fae19707f95475cca
Patch0: sysvinit-paths.patch
-Patch1: sysvinit-man.patch
+Patch1: sysvinit-bequiet.patch
+Patch2: sysvinit-md5-bigendian.patch
+Patch3: sysvinit-wtmp.patch
+Patch4: sysvinit-man.patch
+Patch5: sysvinit-halt.patch
+Patch6: sysvinit-blowfish.patch
+Patch7: sysvinit-autofsck.patch
+Patch8: sysvinit-pidof.patch
+Patch9: sysvinit-killall5.patch
+# based on http://www.nsa.gov/selinux/patches/sysvinit-selinux.patch.gz
+Patch10: sysvinit-selinux.patch
+%if %{with selinux}
+BuildRequires: libselinux-devel >= 1.18
+BuildRequires: libsepol-devel
+%endif
+BuildRequires: rpmbuild(macros) >= 1.159
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(post): fileutils
+Requires(postun): /usr/sbin/groupdel
+Requires: /bin/awk
+Requires: login
+%if %{with preconfigured}
Requires: logrotate
-Buildroot: /tmp/%{name}-%{version}-root
+%endif
+Requires: mingetty
+%{?with_selinux:Requires: libselinux >= 1.18}
+Provides: group(utmp)
+BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%description
-SysVinit is the first program started by the Linux kernel when the system
-boots, controlling the startup, running, and shutdown of all other
-programs.
+%define _sbindir /sbin
+# as in original flags
+%define specflags -fomit-frame-pointer
-%description -l pl
-SysVinit jest pierwszym programem uruchamianym przez j±dro, podczas
-startu systemu. Kontroluje start, pracê oraz zamykanie wszystkich
-innych programów.
+%description
+The SysVinit package contains a group of processes that control the
+very basic functions of your system. SysVinit includes the init
+program, the first program started by the Linux kernel when the system
+boots. Init then controls the startup, running and shutdown of all
+other programs.
%description -l de
-SysVinit ist das erste Programm, das beim Systemstart vom Linux-Kernel
+SysVinit ist das erste Programm, das beim Systemstart vom Linux-Kernel
gestartet wird. Es steuert das Starten, Ausführen und Beenden aller
anderen Programme.
+%description -l es
+SysVinit es el primer programa ejecutado por el kernel Linux cuando se
+inicia el sistema. Controla arranque, funcionamiento y cierre de todos
+los otros programas.
+
%description -l fr
-SysVinit est le premier programme exécuté par le noyau de Linux lorsque le
-système démarre, il contrôle le lancement, l'exécution et l'arrêt de tous
-les autres programmes.
+SysVinit est le premier programme exécuté par le noyau de Linux
+lorsque le système démarre, il contrôle le lancement, l'exécution et
+l'arrêt de tous les autres programmes.
+
+%description -l pl
+SysVinit jest pierwszym programem uruchamianym przez j±dro podczas
+startu systemu. Kontroluje start, pracê oraz zamykanie wszystkich
+innych programów.
+
+%description -l pt_BR
+SysVinit é o primeiro programa executado pelo kernel Linux quando o
+sistema é inicializado. Controla inicialização, funcionamento e
+finalização de todos os outros programas.
+
+%description -l ru
+ðÁËÅÔ SysVinit ÓÏÄÅÒÖÉÔ ÇÒÕÐÐÕ ÐÒÏÃÅÓÓÏ×, ËÏÔÏÒÙÅ ÕÐÒÁ×ÌÑÀÔ ÓÁÍÙÍÉ
+ÂÁÚÏ×ÙÍÉ ÆÕÎËÃÉÑÍÉ ×ÁÛÅÊ ÓÉÓÔÅÍÙ. SysVinit ×ËÌÀÞÁÅÔ ÐÒÏÇÒÁÍÍÕ init,
+ÓÁÍÕÀ ÐÅÒ×ÕÀ ÐÒÏÇÒÁÍÍÕ, ËÏÔÏÒÁÑ ÚÁÐÕÓËÁÅÔÓÑ ÑÄÒÏÍ Linux ÐÒÉ ÚÁÇÒÕÚËÅ
+ÓÉÓÔÅÍÙ. ðÏÓÌÅ ÜÔÏÇÏ init ÕÐÒÁ×ÌÑÅÔ ÚÁÐÕÓËÏÍ, ÉÓÐÏÌÎÅÎÉÅÍ É ÏÓÔÁÎÏ×ÏÍ
+×ÓÅÈ ÏÓÔÁÌØÎÙÈ ÐÒÏÇÒÁÍÍ.
%description -l tr
SysVinit, sistem açýlýrken Linux çekirdeði tarafýndan çalýþtýrýlan ilk
-programdýr. Diðer programlarýn baþlamalarýný, çalýþmalarýný ve sonlanmalarýný
-saðlar/denetler.
+programdýr. Diðer programlarýn baþlamalarýný, çalýþmalarýný ve
+sonlanmalarýný saðlar/denetler.
+
+%description -l uk
+ðÁËÅÔ SysVinit ͦÓÔÉÔØ ÇÒÕÐÕ ÐÒÏÃÅÓ¦×, ËÏÔÒ¦ ËÅÒÕÀÔØ ÓÁÍÉÍÉ ÂÁÚÏ×ÉÍÉ
+ÆÕÎËæÑÍÉ ×ÁÛϧ ÓÉÓÔÅÍÉ. SysVinit ͦÓÔÉÔØ ÐÒÏÇÒÁÍÕ init, ÐÅÒÛÕ
+ÐÒÏÇÒÁÍÕ, ÑËÕ ÚÁÐÕÓËÁ¤ ÑÄÒÏ Linux Ð¦Ä ÞÁÓ ÚÁÇÒÕÚËÉ ÓÉÓÔÅÍÉ. ð¦ÓÌÑ
+ÃØÏÇÏ init ËÅÒÕ¤ ÚÁÐÕÓËÏÍ, ×ÉËÏÎÁÎÎÑÍ ÔÁ ÚÕÐÉÎËÏÀ ×Ó¦È ¦ÎÛÉÈ ÐÒÏÇÒÁÍ.
%prep
%setup -q -n sysvinit-%{version}
%patch0 -p1
%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%{?with_selinux:%patch10 -p1}
%build
-make -C src OPTIMIZE="$RPM_OPT_FLAGS"
+%{__make} -C src \
+ CC="%{__cc}" \
+ LCRYPT="-lcrypt" \
+ OPTIMIZE="%{rpmcflags}" \
+ LDFLAGS="%{rpmldflags}"
%install
rm -rf $RPM_BUILD_ROOT
+install -d $RPM_BUILD_ROOT{/bin,%{_bindir},%{_sbindir},%{_mandir}/man{1,5,8}} \
+ $RPM_BUILD_ROOT{%{_includedir},%{_sysconfdir},/etc/logrotate.d,/var/log}
-install -d $RPM_BUILD_ROOT%{_prefix}/{bin,share/man/man{1,5,8}}
-install -d $RPM_BUILD_ROOT/{sbin,etc/{logrotate.d,sysconfig},var/log}
-
-make install -C src \
+%{__make} install -C src \
ROOT=$RPM_BUILD_ROOT \
BIN_OWNER=`id -u` \
BIN_GROUP=`id -g`
-install %{SOURCE1} $RPM_BUILD_ROOT/etc/sysconfig/initscript
-install %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/sysvinit
-
-ln -sf ../var/run/initrunlvl $RPM_BUILD_ROOT/etc
-ln -sf killall5 $RPM_BUILD_ROOT/sbin/pidof
+install %{SOURCE1} $RPM_BUILD_ROOT/etc/logrotate.d/sysvinit
-touch $RPM_BUILD_ROOT/var/log/{lastlog,wtmpx,btmpx}
+ln -sf ../var/run/initrunlvl $RPM_BUILD_ROOT%{_sysconfdir}
+ln -sf killall5 $RPM_BUILD_ROOT%{_sbindir}/pidof
-rm -f $RPM_BUILD_ROOT%{_mandir}/man8/poweroff.8
-rm -f $RPM_BUILD_ROOT%{_mandir}/man8/telinit.8
-rm -f $RPM_BUILD_ROOT%{_mandir}/man8/reboot.8
+> $RPM_BUILD_ROOT%{_sysconfdir}/ioctl.save
+> $RPM_BUILD_ROOT/var/log/faillog
+> $RPM_BUILD_ROOT/var/log/lastlog
+> $RPM_BUILD_ROOT/var/log/wtmpx
+> $RPM_BUILD_ROOT/var/log/btmpx
-echo .so halt.8 > $RPM_BUILD_ROOT%{_mandir}/man8/reboot.8
-echo .so halt.8 > $RPM_BUILD_ROOT%{_mandir}/man8/telinit.8
-echo .so halt.8 > $RPM_BUILD_ROOT%{_mandir}/man8/poweroff.8
echo .so last.1 > $RPM_BUILD_ROOT%{_mandir}/man1/lastb.1
-
-gzip -9nf $RPM_BUILD_ROOT%{_mandir}/man*/* \
- doc/Propaganda debian/changelog doc/sysvinit-%{version}.lsm
+echo .so halt.8 > $RPM_BUILD_ROOT%{_mandir}/man8/poweroff.8
+echo .so halt.8 > $RPM_BUILD_ROOT%{_mandir}/man8/reboot.8
+echo .so init.8 > $RPM_BUILD_ROOT%{_mandir}/man8/telinit.8
+bzip2 -dc %{SOURCE2} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
%clean
rm -rf $RPM_BUILD_ROOT
+%pre
+if [ -n "`/usr/bin/getgid utmp`" ]; then
+ if [ "`/usr/bin/getgid utmp`" != 22 ]; then
+ echo "Error: group utmp doesn't have gid=22. Correct this before installing SysVinit." 1>&2
+ exit 1
+ fi
+else
+ /usr/sbin/groupadd -g 22 utmp 1>&2
+fi
+
+%post
+touch %{_sysconfdir}/ioctl.save /var/log/{fail,last}log
+chmod 000 %{_sysconfdir}/ioctl.save /var/log/{fail,last}log
+chown root:root %{_sysconfdir}/ioctl.save /var/log/faillog
+chown root:utmp /var/log/lastlog
+chmod 600 %{_sysconfdir}/ioctl.save
+chmod 640 /var/log/faillog
+chmod 660 /var/log/lastlog
+
+%{_sbindir}/telinit u || :
+
+%postun
+if [ "$1" = "0" ]; then
+ %groupremove utmp
+fi
+
%files
%defattr(644,root,root,755)
-%doc doc/Propaganda.gz debian/changelog.gz doc/sysvinit-%{version}.lsm.gz
-
-%attr(755,root,root) /sbin/*
-%attr(755,root,root) %{_bindir}/*
-
-%attr(644,root,root) %config /etc/sysconfig/initscript
-%attr(640,root,root) /etc/logrotate.d/*
-%ghost /etc/initrunlvl
-%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /var/log/lastlog
-%attr(640,root,root) %config(noreplace) %verify(not size mtime md5) /var/log/btmpx
-%config(noreplace) %verify(not size mtime md5) /var/log/wtmpx
+%doc doc/{Propaganda,Changelog,*.lsm}
+
+%attr(755,root,root) /bin/mountpoint
+%attr(755,root,root) %{_sbindir}/*
+%attr(755,root,root) %{_bindir}/last
+%attr(755,root,root) %{_bindir}/lastb
+%attr(755,root,root) %{_bindir}/mesg
+%attr(755,root,root) %{_bindir}/utmpx-dump
+%attr(2755,root,tty) %{_bindir}/wall
+
+%attr(640,root,root) /etc/logrotate.d/sysvinit
+%ghost %{_sysconfdir}/initrunlvl
+%attr(600,root,root) %ghost %{_sysconfdir}/ioctl.save
+%attr(640,root,root) %ghost /var/log/faillog
+%attr(660,root,utmp) %ghost /var/log/lastlog
+%attr(664,root,utmp) %ghost /var/log/wtmpx
+%attr(640,root,root) %ghost /var/log/btmpx
%{_mandir}/man[158]/*
-
-%changelog
-* Sat May 22 1999 Wojtek ¦lusarczyk <wojtek@shadow.eu.org>
- [2.76-10]
-- (u,w)tmp changed to (w,u)tmpx -- Unix98 comliant (patch),
-- utpmdump changed to utmpx-dump, (patch)
-- changed prefix for initscript to /etc/rc.d instead /etc (patch)
-- added /etc/logrotate.d/sysvinit (for logrotate) & /var/log/lastlog,
-- removed sgid bit from `wall' -- following Debian developers advise ;)
-- %ghost /etc/initrunlvl,
-- added /var/log/{btmpx,wtmpx} -- removed from sysklogd package,
-- fixed all patches.
-
-* Tue May 11 1999 Tomasz K³oczko <kloczek@rudy.mif.pg.gda.pl>
- [2.74-9]
-- now package is FHS 2.0 compliant.
-
-* Tue Apr 27 1999 Wojciech "Sas" Cieciwa <cieciwa@alpha.zarz.agh.edu.pl>
-- removed /dev/initctl, now this is part of dev package.
-
-* Tue Apr 20 1999 Artur Frysiak <wiget@pld.org.pl>
- [2.74-8]
-- compiled on rpm 3
-
-* Tue Feb 9 1999 Micha³ Kuratczyk <kurkens@polbox.com>
- [2.74-6d]
-- gzipping instead bzipping
-- cosmetic changes
-
-* Fri Jun 12 1998 Wojtek ¦lusarczyk <wojtek@shadow.eu.org>
- [2.74-5d]
-- build against glibc-2.1,
-- added pl translation,
-- changed prmissions of binaries to 711,
-- removed a suid bit from wall,
-- moved %changelog at the end of spec.
-- added a Chris Evans's <chris@ferret.lmh.ox.ac.uk> patches,
-- start at RH spec file.
+%lang(de) %{_mandir}/de/man[158]/*
+%lang(es) %{_mandir}/es/man[158]/*
+%lang(fi) %{_mandir}/fi/man[158]/*
+%lang(fr) %{_mandir}/fr/man[158]/*
+%lang(hu) %{_mandir}/hu/man[158]/*
+%lang(id) %{_mandir}/id/man[158]/*
+%lang(it) %{_mandir}/it/man[158]/*
+%lang(ja) %{_mandir}/ja/man[158]/*
+%lang(ko) %{_mandir}/ko/man[158]/*
+%lang(pl) %{_mandir}/pl/man[158]/*
+
+# devel?
+#%{_includedir}/initreq.h