+#
+# Conditional build:
+%bcond_with preconfigured
+%bcond_without selinux # build without SELinux support
+#
Summary: System V initialization program
Summary(de): System V-Intialisierungsprogramm
+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.84
-Release: 2
+Version: 2.86
+Release: 1
License: GPL
Group: Base
-Group(de): Gründsätzlich
-Group(es): Base
-Group(pl): Podstawowe
-Group(pt_BR): Base
Source0: ftp://ftp.cistron.nl/pub/people/miquels/software/sysvinit-%{version}.tar.gz
+# Source0-md5: 7d5d61c026122ab791ac04c8a84db967
Source1: sysvinit.logrotate
-Source2: sysvinit-non-english-man-pages.tar.bz2
+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-bequiet.patch
Patch2: sysvinit-md5-bigendian.patch
Patch4: sysvinit-man.patch
Patch5: sysvinit-halt.patch
Patch6: sysvinit-blowfish.patch
-BuildRequires: glibc-devel
-Prereq: /bin/awk
-Prereq: shadow
+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
+%endif
Requires: mingetty
-Requires(post): fileutils
+%{?with_selinux:Requires: libselinux >= 1.18}
+Provides: group(utmp)
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%define _sbindir /sbin
+%define _sbindir /sbin
+# as in original flags
+%define specflags -fomit-frame-pointer
%description
The SysVinit package contains a group of processes that control the
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
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.
+%description -l uk
+ðÁËÅÔ SysVinit ͦÓÔÉÔØ ÇÒÕÐÕ ÐÒÏÃÅÓ¦×, ËÏÔÒ¦ ËÅÒÕÀÔØ ÓÁÍÉÍÉ ÂÁÚÏ×ÉÍÉ
+ÆÕÎËæÑÍÉ ×ÁÛϧ ÓÉÓÔÅÍÉ. SysVinit ͦÓÔÉÔØ ÐÒÏÇÒÁÍÕ init, ÐÅÒÛÕ
+ÐÒÏÇÒÁÍÕ, ÑËÕ ÚÁÐÕÓËÁ¤ ÑÄÒÏ Linux Ð¦Ä ÞÁÓ ÚÁÇÒÕÚËÉ ÓÉÓÔÅÍÉ. ð¦ÓÌÑ
+ÃØÏÇÏ init ËÅÒÕ¤ ÚÁÐÕÓËÏÍ, ×ÉËÏÎÁÎÎÑÍ ÔÁ ÚÕÐÉÎËÏÀ ×Ó¦È ¦ÎÛÉÈ ÐÒÏÇÒÁÍ.
+
%prep
%setup -q -n sysvinit-%{version}
%patch0 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%{?with_selinux:%patch10 -p1}
%build
-%{__make} -C src LCRYPT="-lcrypt" \
- OPTIMIZE="%{rpmcflags}"
+%{__make} -C src \
+ CC="%{__cc}" \
+ LCRYPT="-lcrypt" \
+ OPTIMIZE="%{rpmcflags}" \
+ LDFLAGS="%{rpmldflags}"
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_bindir},%{_sbindir},%{_mandir}/man{1,5,8}} \
- $RPM_BUILD_ROOT{%{_sysconfdir},/etc/logrotate.d,/var/log}
+install -d $RPM_BUILD_ROOT{/bin,%{_bindir},%{_sbindir},%{_mandir}/man{1,5,8}} \
+ $RPM_BUILD_ROOT{%{_includedir},%{_sysconfdir},/etc/logrotate.d,/var/log}
%{__make} install -C src \
ROOT=$RPM_BUILD_ROOT \
echo .so init.8 > $RPM_BUILD_ROOT%{_mandir}/man8/telinit.8
bzip2 -dc %{SOURCE2} | tar xf - -C $RPM_BUILD_ROOT%{_mandir}
-gzip -9nf doc/{Propaganda,Changelog,*.lsm}
+%clean
+rm -rf $RPM_BUILD_ROOT
%pre
-groupadd -f -r -g 22 utmp
+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
+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
%postun
if [ "$1" = "0" ]; then
- groupdel utmp
+ %groupremove utmp
fi
-%clean
-rm -rf $RPM_BUILD_ROOT
-
%files
%defattr(644,root,root,755)
-%doc doc/*.gz
+%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(2555,root,tty) %{_bindir}/wall
+%attr(2755,root,tty) %{_bindir}/wall
%attr(640,root,root) /etc/logrotate.d/sysvinit
%ghost %{_sysconfdir}/initrunlvl
%lang(ja) %{_mandir}/ja/man[158]/*
%lang(ko) %{_mandir}/ko/man[158]/*
%lang(pl) %{_mandir}/pl/man[158]/*
+
+# devel?
+#%{_includedir}/initreq.h