X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=ash.spec;h=4a110d3dd6b862d372ea2d870edee4484fb75415;hb=80376774b5242255f12918825169acbd9fe985ce;hp=a62b686a19170e373ca92ed370a951d7ac7f61ec;hpb=e77177fd509019f79b03d4fe0aa6a81f51492e03;p=packages%2Fash.git diff --git a/ash.spec b/ash.spec index a62b686..4a110d3 100644 --- a/ash.spec +++ b/ash.spec @@ -1,42 +1,57 @@ -# conditional build: -# if BOOT is defined, build BOOT package too +# +# Conditional build +# --without static - don't build static +# --with dietlibc - link with dietlibc, implies --without static) +# Branch: HEAD + +%{?_with_dietlibc:%define _without_static 1} + Summary: Small bourne shell from Berkeley Summary(de): Kleine Bourne-Shell von Berkeley +Summary(es): Pequeña shell bourne de Berkeley Summary(fr): Shell Bourne réduit de Berkeley -Summary(pl): Ma³y shell bourne'a +Summary(pl): Ma³y shell bourne'a +Summary(pt_BR): Pequena shell bourne de Berkeley +Summary(ru): ïÂÌÅÇÞÅÎÎÁÑ ×ÅÒÓÉÑ Bourne shell (sh) Summary(tr): Ufak bir bourne kabuðu +Summary(uk): ðÏÌÅÇÛÅÎÁ ×ÅÒÓ¦Ñ Bourne shell (sh) +Summary(zh_CN): [ϵͳ]BerkeleyµÄ΢ÐÍBourne Shell +Summary(zh_TW): [-A¨t$)B²Î]Berkeleyªº-A·L$)B«¬Bourne Shell Name: ash Version: 0.4.0 -Release: 1 +Release: 10 License: BSD Group: Applications/Shells -Group(de): Applikationen/Shells -Group(pl): Aplikacje/Pow³oki -Source: ash-%{version}.tar.gz -Patch0: ash-builtin.patch -Patch1: ash-echo.patch -Patch2: ash-getcwd.patch -Patch3: ash-getopt.patch -Patch4: ash-glob.patch -Patch5: ash-jobs.patch -Patch6: ash-kill.patch -Patch7: ash-makefile.patch -Patch8: ash-manpage.patch -Patch9: ash-hetio.patch -Patch10: ash-memout.patch -Patch11: ash-misc.patch -Patch12: ash-redir.patch -Patch13: ash-setmode.patch -Patch14: ash-syntax.patch -Patch15: ash-test.patch -Patch16: ash-times.patch -Patch17: ash-debian.patch -Patch18: ash-ppid.patch -Patch19: ash-freebsd.patch -Prereq: fileutils -Prereq: grep -BuildRequires: glibc-static -%{?BOOT:BuildRequires: uClibc-devel-BOOT} +Source0: %{name}-%{version}.tar.gz +# Source0-md5: 1c59f5b62a081cb0cb3b053c01d79529 +Patch0: %{name}-builtin.patch +Patch1: %{name}-echo.patch +Patch2: %{name}-getcwd.patch +Patch3: %{name}-getopt.patch +Patch4: %{name}-glob.patch +Patch5: %{name}-jobs.patch +Patch6: %{name}-kill.patch +Patch7: %{name}-makefile.patch +Patch8: %{name}-manpage.patch +Patch9: %{name}-hetio.patch +Patch10: %{name}-memout.patch +Patch11: %{name}-misc.patch +Patch12: %{name}-redir.patch +Patch13: %{name}-setmode.patch +Patch14: %{name}-syntax.patch +Patch15: %{name}-test.patch +Patch16: %{name}-times.patch +Patch17: %{name}-debian.patch +Patch18: %{name}-ppid.patch +Patch19: %{name}-freebsd.patch +Patch20: %{name}-sighup.patch +Patch21: %{name}-dietlibc.patch +BuildRequires: byacc +%{?_with_dietlibc:BuildRequires: dietlibc-static} +BuildRequires: flex +%{!?_without_static:BuildRequires: glibc-static} +Requires(post,preun,verify): grep +Requires(preun): fileutils BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) Conflicts: mkinitrd <= 1.7 @@ -52,31 +67,55 @@ ash ist ein Bourne-Shell-Clone aus Berkeley, der alle Standard-Bourne-Shell- Befehle unterstützt und dennoch erheblich weniger Platz beansprucht als bash. +%description -l es +ash es un clone del shell bourne de Berkeley. Soporta todos los +comandos padrón de la Bourne shell y tiene la ventaja de soportarlos +con un tamaño considerablemente menor del que bash. + %description -l fr ash est un clone Berkeley du shell Bourne. Il gère toutes les commandes standard du shell Bourne et a l'avantage de les gérer tout en restant considérablement plus petit que bash. %description -l pl -Ash jest klonem shell'a Bourne'a z Berkeley. Obs³uguje standardowe -komendy shell'a Bourne'a i jest mniejszy ni¿ bash. +Ash jest klonem shella Bourne'a z Berkeley. Obs³uguje standardowe +komendy shella Bourne'a i jest mniejszy ni¿ bash. + +%description -l pt_BR +ash é um clone do shell bourne de Berkeley. Ele suporta todos os +comandos-padrão da Bourne shell e tem a vantagem de suportá-los com um +tamanho consideravelmente menor do que bash. + +%description -l ru +ûÅÌÌ - ÜÔÏ ÂÁÚÏ×ÁÑ ÓÉÓÔÅÍÎÁÑ ÐÒÏÇÒÁÍÍÁ, ËÏÔÏÒÁÑ ÉÎÔÅÒÐÒÅÔÉÒÕÅÔ ËÏÍÁÎÄÙ +ÐÏÌØÚÏ×ÁÔÅÌÑ, ××ÏÄÉÍÙÅ Ó ËÌÁ×ÉÁÔÕÒÙ ÉÌÉ ÐÒÉ ÐÏÍÏÝÉ ÍÙÛÉ. Ash - ÜÔÏ +ËÌÏÎ Bourne shell (sh) ÉÚ âÅÒËÌÉ. Ash ÐÏÄÄÅÒÖÉ×ÁÅÔ ×ÓÅ ÓÔÁÎÄÁÒÔÎÙÅ +ËÏÍÁÎÄÙ ÛÅÌÌÁ sh, ÂÕÄÕÞÉ ÚÎÁÞÉÔÅÌØÎÏ ÍÅÎØÛÅ ÞÅÍ sh. ÷ ash ÏÔÓÕÔÓÔ×ÕÀÔ +ÎÅËÏÔÏÒÙÅ ×ÏÚÍÏÖÎÏÓÔÉ Bourne shell (ÎÁÐÒÉÍÅÒ, ÉÓÔÏÒÉÑ ËÏÍÁÎÄ), ÎÏ ÏÎ +ÔÒÅÂÕÅÔ ÚÎÁÞÉÔÅÌØÎÏ ÍÅÎØÛÅ ÐÁÍÑÔÉ. %description -l tr ash, Berkeley'in bir bourne kabuðu kopyasýdýr. Standart bourne kabuðu komutlarýnýn tümünü destekler ve bash kabuðundan daha küçük olma avantajýna sahiptir. +%description -l uk +ûÅÌ - ÃÅ ÂÁÚÏ×Á ÓÉÓÔÅÍÎÁ ÐÒÏÇÒÁÍÁ, ËÏÔÒÁ ¦ÎÔÅÒÐÒÅÔÕ¤ ËÏÍÁÎÄÉ +ËÏÒÉÓÔÕ×ÁÞÁ, Ñ˦ ××ÏÄÑÔØÓÑ Ú ËÌÁצÁÔÕÒÉ ÁÂÏ ÚÁ ÄÏÐÏÍÏÇÏÀ ÍÉÛ¦. Ash - +ÃÅ ËÌÏÎ Bourne shell (sh) Ú âÅÒË̦. Ash ЦÄÔÒÉÍÕ¤ ÕÓ¦ ÓÔÁÎÄÁÒÔΦ +ËÏÍÁÎÄÉ ÛÅÌÁ sh, ÂÕÄÕÞÉ ÚÎÁÞÎÏ ÍÅÎÛÉÍ Î¦Ö sh. ÷ ash צÄÓÕÔΦ ÄÅÑ˦ +ÍÏÖÌÉ×ÏÓÔ¦ Bourne shell (ÎÁÐÒÉËÌÁÄ, ¦ÓÔÏÒ¦Ñ ËÏÍÁÎÄ), ÚÁÔŠצΠ×ÉÍÁÇÁ¤ +ÚÎÁÞÎÏ ÍÅÎÛÅ ÐÁÍ'ÑÔ¦. + %package static Summary: Small bourne shell from Berkeley Summary(de): Kleine Bourne-Shell von Berkeley Summary(fr): Shell Bourne réduit de Berkeley -Summary(pl): Ma³y shell bourne'a +Summary(pl): Ma³y shell bourne'a Summary(tr): Ufak bir bourne kabuðu Group: Applications/Shells -Group(de): Applikationen/Shells -Group(pl): Aplikacje/Pow³oki -Prereq: fileutils -Prereq: grep +Requires(post,preun,verify): grep +Requires(preun): fileutils Conflicts: mkinitrd <= 1.7 %description static @@ -95,35 +134,16 @@ commandes standard du shell Bourne et a l'avantage de les g en restant considérablement plus petit que bash. %description static -l pl -Ash jest klonem shell'a Bourne'a z Berkeley. Obs³uguje standardowe -komendy shell'a Bourne'a i jest mniejszy ni¿ bash. +Ash jest klonem shella Bourne'a z Berkeley. Obs³uguje standardowe +komendy shella Bourne'a i jest mniejszy ni¿ bash. %description static -l tr ash, Berkeley'in bir bourne kabuðu kopyasýdýr. Standart bourne kabuðu komutlarýnýn tümünü destekler ve bash kabuðundan daha küçük olma avantajýna sahiptir. -%if %{?BOOT:1}%{!?BOOT:0} -%package BOOT -Summary: Small bourne shell from Berkeley -Summary(de): Kleine Bourne-Shell von Berkeley -Summary(fr): Shell Bourne réduit de Berkeley -Summary(pl): Ma³y shell bourne'a -Summary(tr): Ufak bir bourne kabuðu -Group: Applications/Shells -Group(de): Applikationen/Shells -Group(pl): Aplikacje/Pow³oki - -%description BOOT -ash is a bourne shell clone from Berkeley. It supports all of the -standard Bourne shell commands and has the advantage of supporting -them while remaining considerably smaller than bash. -Version for bootdisk - -%endif - %prep -%setup -q -n ash-%{version} +%setup -q %patch0 -p1 %patch1 -p1 %patch2 -p1 @@ -145,88 +165,87 @@ Version for bootdisk %patch17 -p1 %patch18 -p1 %patch19 -p1 +%patch20 -p1 +%{?_with_dietlibc:%patch21 -p1} %build -# BOOT -%if %{?BOOT:1}%{!?BOOT:0} -%{__make} \ - OPT_FLAGS="-I/usr/lib/bootdisk%{_includedir} -Os" \ - LDFLAGS="-nostdlib %{rpmldflags}" \ - LDLIBS="%{_libdir}/bootdisk%{_libdir}/crt0.o %{_libdir}/bootdisk%{_libdir}/libc.a -lgcc" -mv -f sh ash.BOOT -%{__make} clean -%endif - -# other -%{__make} OPT_FLAGS="%{rpmcflags}" LDFLAGS="-static %{rpmldflags}" -mv -f sh ash.static -%{__make} OPT_FLAGS="%{rpmcflags}" LDFLAGS="%{rpmldflags}" + +%{?_with_dietlibc:%define __cc %{_arch}-dietlibc-gcc} + +%{!?_without_static:%{__make} OPT_FLAGS="%{rpmcflags}" LDFLAGS="-static %{rpmldflags}"} +%{!?_without_static:mv -f sh ash.static} +%{__make} OPT_FLAGS="%{rpmcflags}" LDFLAGS="%{rpmldflags}" CC="%{__cc}" %install rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT{%{_bindir},%{_mandir}/man1} -# BOOT -%if %{?BOOT:1}%{!?BOOT:0} -install -d $RPM_BUILD_ROOT/usr/lib/bootdisk/bin -install ash.BOOT $RPM_BUILD_ROOT/usr/lib/bootdisk/bin/ash -ln -s ash $RPM_BUILD_ROOT/usr/lib/bootdisk/bin/sh -%endif - -# other -install -d $RPM_BUILD_ROOT/{%{_bindir},%{_mandir}/man1} install sh $RPM_BUILD_ROOT%{_bindir}/ash -install ash.static $RPM_BUILD_ROOT%{_bindir}/ash.static +%{!?_without_static:install ash.static $RPM_BUILD_ROOT%{_bindir}/ash.static} install sh.1 $RPM_BUILD_ROOT%{_mandir}/man1/ash.1 echo ".so ash.1" > $RPM_BUILD_ROOT%{_mandir}/man1/bsh.1 -ln -sf ash $RPM_BUILD_ROOT/%{_bindir}/bsh +ln -sf ash $RPM_BUILD_ROOT%{_bindir}/bsh + +%clean +rm -rf $RPM_BUILD_ROOT %post +umask 022 if [ ! -f /etc/shells ]; then - echo "%{_bindir}/ash" > /etc/shells - echo "%{_bindir}/bsh" >> /etc/shells + echo "%{_bindir}/ash" > /etc/shells + echo "%{_bindir}/bsh" >> /etc/shells else - if ! grep '^%{_bindir}/ash$' /etc/shells > /dev/null; then - echo "%{_bindir}/ash" >> /etc/shells - fi - if ! grep '^%{_bindir}/bsh$' /etc/shells > /dev/null; then - echo "%{_bindir}/bsh" >> /etc/shells - fi + if ! grep -q '^%{_bindir}/ash$' /etc/shells ; then + echo "%{_bindir}/ash" >> /etc/shells + fi + if ! grep -q '^%{_bindir}/bsh$' /etc/shells ; then + echo "%{_bindir}/bsh" >> /etc/shells + fi +fi + +%preun +if [ "$1" = 0 ]; then + umask 022 + grep -v '^%{_bindir}/ash$' /etc/shells | grep -v '^%{_bindir}/bsh$' > /etc/shells.new + mv -f /etc/shells.new /etc/shells fi %post static +umask 022 if [ ! -f /etc/shells ]; then - echo "%{_bindir}/ash.static" >> /etc/shells + echo "%{_bindir}/ash.static" >> /etc/shells else - if ! grep '^%{_bindir}/ash.static$' /etc/shells > /dev/null; then - echo "%{_bindir}/ash.static" >> /etc/shells - fi -fi - -%preun -if [ "$0" = 0 ]; then - grep -v %{_bindir}/ash /etc/shells | grep -v %{_bindir}/bsh | grep -v %{_bindir}/ash.static > /etc/shells.new - mv -f /etc/shells.new /etc/shells + if ! grep -q '^%{_bindir}/ash.static$' /etc/shells ; then + echo "%{_bindir}/ash.static" >> /etc/shells + fi fi %preun static -if [ "$0" = 0 ]; then - grep -v %{_bindir}/ash /etc/shells | grep -v %{_bindir}/bsh > /etc/shells.new - mv -f /etc/shells.new /etc/shells +if [ "$1" = 0 ]; then + umask 022 + grep -v '^%{_bindir}/ash\.static$' /etc/shells > /etc/shells.new + mv -f /etc/shells.new /etc/shells fi %verifyscript -for n in ash bsh ash.static; do - echo -n "Looking for $n in /etc/shells... " - if ! grep "^%{_bindir}/${n}\$" /etc/shells > /dev/null; then - echo "missing" - echo "${n} missing from /etc/shells" >&2 - else - echo "found" - fi +for n in ash bsh ; do + echo -n "Looking for $n in /etc/shells... " + if ! grep -q "^%{_bindir}/${n}\$" /etc/shells ; then + echo "missing" + echo "${n} missing from /etc/shells" >&2 + else + echo "found" + fi done -%clean -rm -rf $RPM_BUILD_ROOT +%verifyscript static +echo -n "Looking for ash.static in /etc/shells... " +if ! grep -q '^%{_bindir}/ash\.static$' /etc/shells ; then + echo "missing" + echo "ash.static missing from /etc/shells" >&2 +else + echo "found" +fi %files %defattr(644,root,root,755) @@ -234,12 +253,6 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/bsh %{_mandir}/man1/* -%files static -%defattr(644,root,root,755) -%attr(755,root,root) %{_bindir}/ash.static - -%if %{?BOOT:1}%{!?BOOT:0} -%files BOOT -%defattr(644,root,root,755) -%attr(755,root,root) /usr/lib/bootdisk/bin/* -%endif +%{!?_without_static:%files static} +%{!?_without_static:%defattr(644,root,root,755)} +%{!?_without_static:%attr(755,root,root) %{_bindir}/ash.static}