# TODO:
# - make some README.PLD with system features description
#
-# Conditional build:
-%bcond_with ssp # enable stack-smashing protector (vide dietlibc.spec)
-#
-%define iana_etc_ver 1.04
-%undefine with_ccache
-#
+%bcond_without diet
+
+%define iana_etc_ver 2.30
Summary: Simple setup files
-Summary(de): Einfache Setup-Dateien
-Summary(es): Varios archivos básicos de configuración
-Summary(fr): Fichiers de configuration simples
-Summary(ja): ¥µ¥ó¥×¥ë¥»¥Ã¥È¥¢¥Ã¥×¥Õ¥¡¥¤¥ë
-Summary(pl): Podstawowe pliki systemu Linux
-Summary(pt_BR): Vários arquivos básicos de configuração
-Summary(tr): Basit kurulum dosyalarý
+Summary(de.UTF-8): Einfache Setup-Dateien
+Summary(es.UTF-8): Varios archivos básicos de configuración
+Summary(fr.UTF-8): Fichiers de configuration simples
+Summary(ja.UTF-8): サンプルセットアップファイル
+Summary(pl.UTF-8): Podstawowe pliki systemu Linux
+Summary(pt_BR.UTF-8): Vários arquivos básicos de configuração
+Summary(tr.UTF-8): Basit kurulum dosyaları
Name: setup
-Version: 2.4.10
+Version: 2.9.0
Release: 4
License: Public Domain, partially BSD-like
Group: Base
-Source0: ftp://distfiles.pld-linux.org/src/%{name}-%{version}.tar.bz2
-# Source0-md5: 7f50f1650e961a77b18afa0a4a588fc1
-Source1: http://www.sethwklein.net/projects/iana-etc/downloads/iana-etc-%{iana_etc_ver}.tar.bz2
-# Source1-md5: 9f769f7b2d0e519cf62dacb2b3b051d4
-Source2: %{name}-update-fstab.c
-Source3: postshell.c
+Source0: %{name}-%{version}.tar.bz2
+# Source0-md5: 2b5c3c03a77f8963ee1c4c269f0edfed
+# http://sethwklein.net/iana-etc
+Source1: http://sethwklein.net/projects/iana-etc/downloads/iana-etc-%{iana_etc_ver}.tar.bz2
+# Source1-md5: 3ba3afb1d1b261383d247f46cb135ee8
+Source2: http://www.iana.org/assignments/protocol-numbers/index.txt
+# Source2-md5: 33440b7d913303a6051ae64290f0ab21
+Source3: http://www.iana.org/assignments/port-numbers
+# Source3-md5: 8e19a2c7cf60baabf919de1cc89a1cbb
+Patch0: %{name}-iana-etc.patch
# This is source of non-iana changes in services file
-#Patch0: %{name}-services.patch
-Patch0: %{name}-securetty.patch
-Patch1: %{name}-profile.env.patch
+Patch1: %{name}-services.patch
+Patch2: protocols-fmt.patch
+Patch3: %{name}-input_group.patch
+%if %{with diet}
BuildRequires: dietlibc-static
+%else
+BuildRequires: glibc-static
+%endif
BuildRequires: gawk
-Conflicts: FHS < 2.3
+BuildRequires: glibc-misc
+Requires: FHS >= 2.3-24.1
+Provides: group(fuse)
+Conflicts: PowerChutePlus < 4.5.3-2
Conflicts: glibc < 6:2.4-4.1
-AutoReqProv: no
+# tape,dialout and cdrom groups support
+Conflicts: dev < 3.4-4
+Conflicts: udev < 1:138-5
+# /etc/mtab being symlink to /proc/self/mounts
+Conflicts: rc-scripts < 0.4.5.1-3
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%define _sbindir /sbin
+%undefine with_ccache
%description
This package contains a number of very important configuration and
setup files, including the passwd, group, profile files, etc.
-%description -l de
-Dieses Paket enthält wichtige Konfigurations- und Setup-Dateien, u.a.
+%description -l de.UTF-8
+Dieses Paket enthält wichtige Konfigurations- und Setup-Dateien, u.a.
passwd-, group-, profile-Dateien usw.
-%description -l es
-Este paquete contiene una variedad de archivos de configuración y
+%description -l es.UTF-8
+Este paquete contiene una variedad de archivos de configuración y
setup muy importantes, incluyendo el passwd, group, archivos de
"perfil", etc.
-%description -l fr
-Ce paquetage contient un nombre de fichiers de configuration très
+%description -l fr.UTF-8
+Ce paquetage contient un nombre de fichiers de configuration très
importants, comme passwd, group, les fichiers profile, etc.
-%description -l ja
-¤³¤Îsetup¥Ñ¥Ã¥±¡¼¥¸¤Ë¤Ï¡¢passwd, group, profile ¤Ê¤É¤Î¡¢
-½ÅÍפʥ·¥¹¥Æ¥àÀßÄê¥Õ¥¡¥¤¥ë¤¬´Þ¤Þ¤ì¤Æ¤Þ¤¹¡£
+%description -l ja.UTF-8
+このsetupパッケージには、passwd, group, profile などの、
+重要なシステム設定ファイルが含まれてます。
-%description -l pl
-Pakiet ten zawiera wiele bardzo wa¿nych plików konfiguracyjnych dla
+%description -l pl.UTF-8
+Pakiet ten zawiera wiele bardzo ważnych plików konfiguracyjnych dla
Twojego systemu.
-%description -l pt_BR
-Este pacote contém uma variedade de arquivos de configuração e setup
+%description -l pt_BR.UTF-8
+Este pacote contém uma variedade de arquivos de configuração e setup
muito importantes, incluindo o passwd, group, arquivos de "perfil",
etc.
-%description -l tr
-Bu paket, passwd, group, profile gibi çok önemli ayar ve kurulum
-dosyalarýný içerir.
+%description -l tr.UTF-8
+Bu paket, passwd, group, profile gibi çok önemli ayar ve kurulum
+dosyalarını içerir.
%prep
%setup -q -a1
%patch0 -p1
-%patch1 -p1
-install %{SOURCE2} update-fstab.c
-install %{SOURCE3} postshell.c
+mv iana-etc{-%{iana_etc_ver},}
+%patch2 -p1
+%patch3 -p1
+
+cp -a %{SOURCE2} iana-etc/protocol-numbers.iana
+cp -a %{SOURCE3} iana-etc/port-numbers.iana
%build
-%{__make} -C iana-etc-%{iana_etc_ver}
+%{__make} -C iana-etc
+%{__patch} iana-etc/services %{PATCH1}
+
+# kill trailing spaces/tabs
+%{__sed} -i -e 's,[ \t]\+$,,' iana-etc/{services,protocols}
%{__make} \
- OPT_FLAGS="%{rpmcflags} %{?with_ssp:-fno-stack-protector}" \
- LDFLAGS="%{rpmldflags}" \
- CC="diet %{__cc}"
-%{__make} postshell update-fstab \
- OPT_FLAGS="%{rpmcflags} -Os" \
- LDFLAGS="%{rpmldflags}" \
- CC="diet %{__cc}"
+ CC="%{?with_diet:diet }%{__cc}" \
+ OPT_FLAGS="%{rpmcflags} -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64" \
+ LDFLAGS="%{rpmcflags} %{rpmldflags} -static"
+
+ldd postshell | grep "not a dynamic executable" || exit 1
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT%{_sysconfdir}/shrc.d
-
%{__make} install \
DESTDIR=$RPM_BUILD_ROOT
-install postshell $RPM_BUILD_ROOT%{_sbindir}
-install update-fstab $RPM_BUILD_ROOT%{_sbindir}
+cp -a iana-etc/{services,protocols} $RPM_BUILD_ROOT%{_sysconfdir}
-install iana-etc-%{iana_etc_ver}/protocols $RPM_BUILD_ROOT%{_sysconfdir}/protocols
-# don't overwrite files from setup tar-ball, fix it in original tar!
-#install iana-etc-%{iana_etc_ver}/services $RPM_BUILD_ROOT%{_sysconfdir}/services
+# not packaged
+%{__rm} $RPM_BUILD_ROOT%{_sysconfdir}/{netgroup,suid_profile}
%clean
rm -rf $RPM_BUILD_ROOT
-%triggerpostun -p %{_sbindir}/joinpasswd -- %{name} < %{version}-%{release}
+%triggerprein -p /sbin/postshell -- %{name} < %{version}-%{release}
+-/bin/sh -c '/usr/bin/test -L /etc/mtab || /bin/mv -v /etc/mtab /etc/mtab.rpmsave'
+
+%triggerpostun -p /sbin/postshell -- %{name} < %{version}-%{release}
+%{_sbindir}/joinpasswd
+%{_sbindir}/delpasswd -g ttyS cdwrite
%triggerin -p %{_sbindir}/update-fstab -- %{name} < 2.4.10-1
%files
%defattr(644,root,root,755)
%doc ChangeLog
+%attr(755,root,root) %{_sbindir}/delpasswd
%attr(755,root,root) %{_sbindir}/joinpasswd
%attr(755,root,root) %{_sbindir}/postshell
%attr(755,root,root) %{_sbindir}/update-fstab
-%attr(755,root,root) /etc/profile.d/*.sh
-%attr(755,root,root) /etc/profile.d/*.csh
%dir /etc/profile.d
-%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/env.d/*
+%config(noreplace,missingok) %verify(not md5 mtime size) %attr(755,root,root) /etc/profile.d/tmp-dir.sh
+%config(noreplace,missingok) %verify(not md5 mtime size) %attr(755,root,root) /etc/profile.d/tmp-dir.csh
%dir %{_sysconfdir}/env.d
+%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/env.d/EDITOR
+%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/env.d/HISTFILESIZE
+%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/env.d/HOME_ETC
+%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/env.d/MAILCHECK
+%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/env.d/MAILPATH
+%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/env.d/NNTPSERVER
+%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/env.d/ORGANIZATION
+%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/env.d/TMOUT
+%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/env.d/VISUAL
%dir %{_sysconfdir}/shrc.d
+%config(noreplace) %verify(not md5 mtime size) /etc/shrc.d/256term.sh
+%config(noreplace) %verify(not md5 mtime size) /etc/shrc.d/256term.csh
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fstab
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/group
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/host.conf
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/passwd
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/profile
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/protocols
-%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/secure*
+%attr(600,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/securetty
%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/services
%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/filesystems
%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/motd
%config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/resolv.conf
%ghost %{_sysconfdir}/shells
+# symlink to /proc/self/mounts
+%{_sysconfdir}/mtab