X-Git-Url: http://git.pld-linux.org/?p=packages%2Fash.git;a=blobdiff_plain;f=ash.spec;h=d8e75f0178031b9a3dab7c2e2414c91c69f79b22;hp=44dc850135a6754d76a30fc20fe0aaefd25950ce;hb=HEAD;hpb=f9a2efa2d6e42c14b43f93d1256ca4c4065c3bd4 diff --git a/ash.spec b/ash.spec index 44dc850..d8e75f0 100644 --- a/ash.spec +++ b/ash.spec @@ -1,18 +1,32 @@ -# conditional build: -# if BOOT is defined, build BOOT package too +# +# Conditional build +%bcond_without static # don't build static +%bcond_with dietlibc # link with dietlibc, implies without static +%bcond_with uClibc # link with uclibc +# Branch: HEAD + +%if %{with dietlibc} +%undefine with_static +%endif + 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 +Summary(de.UTF-8): Kleine Bourne-Shell von Berkeley +Summary(es.UTF-8): Pequeña shell bourne de Berkeley +Summary(fr.UTF-8): Shell Bourne réduit de Berkeley +Summary(pl.UTF-8): Mały shell bourne'a +Summary(pt_BR.UTF-8): Pequena shell bourne de Berkeley +Summary(ru.UTF-8): Облегченная версия Bourne shell (sh) +Summary(tr.UTF-8): Ufak bir bourne kabuğu +Summary(uk.UTF-8): Полегшена версія Bourne shell (sh) +Summary(zh_CN.UTF-8): [系统]Berkeley的微型Bourne Shell +Summary(zh_TW.UTF-8): [-Aç³»$)Bçµ±]Berkeley的-Aå¾®$)B型Bourne Shell Name: ash Version: 0.4.0 -Release: 3 +Release: 11 License: BSD Group: Applications/Shells -Group(de): Applikationen/Shells -Group(pl): Aplikacje/Pow³oki -Source: %{name}-%{version}.tar.gz +Source0: %{name}-%{version}.tar.gz +# Source0-md5: 1c59f5b62a081cb0cb3b053c01d79529 Patch0: %{name}-builtin.patch Patch1: %{name}-echo.patch Patch2: %{name}-getcwd.patch @@ -34,14 +48,18 @@ Patch17: %{name}-debian.patch Patch18: %{name}-ppid.patch Patch19: %{name}-freebsd.patch Patch20: %{name}-sighup.patch -Prereq: fileutils -Prereq: grep -BuildRequires: glibc-static -BuildRequires: flex +Patch21: %{name}-dietlibc.patch +Patch22: %{name}-extern.patch BuildRequires: byacc -%if %{?BOOT:1}%{!?BOOT:0} -BuildRequires: uClibc-devel-BOOT >= 20000521 +%{?with_dietlibc:BuildRequires: dietlibc-devel} +BuildRequires: flex +%if %{with static} +%{!?with_uClibc:BuildRequires: glibc-static} +%{?with_uClibc:BuildRequires: uClibc-static > 2:0.9.27-1} %endif +%{?with_uClibc:BuildRequires: uClibc-devel > 2:0.9.27-1} +Requires(post,preun,verify): grep +Requires(preun): fileutils BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) Conflicts: mkinitrd <= 1.7 @@ -52,36 +70,60 @@ 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. -%description -l de +%description -l de.UTF-8 ash ist ein Bourne-Shell-Clone aus Berkeley, der alle -Standard-Bourne-Shell- Befehle unterstützt und dennoch erheblich +Standard-Bourne-Shell- Befehle unterstützt und dennoch erheblich weniger Platz beansprucht als 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. - -%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 es.UTF-8 +Ash es un clon 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.UTF-8 +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.UTF-8 +Ash jest klonem shella Bourne'a z Berkeley. Obsługuje standardowe +komendy shella Bourne'a i jest mniejszy niż bash. + +%description -l pt_BR.UTF-8 +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.UTF-8 +Шелл - это базовая системная программа, которая интерпретирует команды +пользователя, вводимые с клавиатуры или при помощи мыши. Ash - это +клон Bourne shell (sh) из Беркли. Ash поддерживает все стандартные +команды шелла sh, будучи значительно меньше чем sh. В ash отсутствуют +некоторые возможности Bourne shell (например, история команд), но он +требует значительно меньше памяти. + +%description -l tr.UTF-8 +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.UTF-8 +Шел - це базова системна програма, котра інтерпретує команди +користувача, які вводяться з клавіатури або за допомогою миші. 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(tr): Ufak bir bourne kabuðu +Summary(de.UTF-8): Kleine Bourne-Shell von Berkeley +Summary(fr.UTF-8): Shell Bourne réduit de Berkeley +Summary(pl.UTF-8): Mały shell bourne'a +Summary(tr.UTF-8): 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 @@ -89,43 +131,24 @@ 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. -%description static -l de +%description static -l de.UTF-8 ash ist ein Bourne-Shell-Clone aus Berkeley, der alle -Standard-Bourne-Shell- Befehle unterstützt und dennoch erheblich +Standard-Bourne-Shell- Befehle unterstützt und dennoch erheblich weniger Platz beansprucht als bash. -%description static -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 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. - -%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 static -l fr.UTF-8 +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 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 +%description static -l pl.UTF-8 +Ash jest klonem shella Bourne'a z Berkeley. Obsługuje standardowe +komendy shella Bourne'a i jest mniejszy niż bash. -%endif +%description static -l tr.UTF-8 +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. %prep %setup -q @@ -139,7 +162,7 @@ Version for bootdisk %patch7 -p1 %patch8 -p1 %patch9 -p1 -#%patch10 -p1 +%patch10 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 @@ -151,90 +174,92 @@ Version for bootdisk %patch18 -p1 %patch19 -p1 %patch20 -p1 +%{?_with_dietlibc:%patch21 -p1} +%patch22 -p1 %build -# BOOT -%if %{?BOOT:1}%{!?BOOT:0} -# some of this utilities does not compile with uClibc -# and it is not necessary -%{__make} mksignames mkbuiltins mknodes mksignames mksyntax mktokens +%if %{with static} %{__make} \ - OPT_FLAGS="-m386 -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 +%if %{with dietlibc} + CC="diet %{__cc}" \ +%else +%if %{with uClibc} + CC="%{_target_cpu}-uclibc-gcc"\ +%else + CC="%{__cc}" %endif +%endif + OPT_FLAGS="%{rpmcflags} -Os" \ + LDFLAGS="-static %{rpmldflags}" -# this patch imposes memory buffers - uClibc lacks them -patch -p1 <%{PATCH10} - -# other -%{__make} OPT_FLAGS="%{rpmcflags}" LDFLAGS="-static %{rpmldflags}" mv -f sh ash.static -%{__make} OPT_FLAGS="%{rpmcflags}" LDFLAGS="%{rpmldflags}" +%endif + +%{__make} \ + CC="%{__cc}" \ + OPT_FLAGS="%{rpmcflags}" \ + LDFLAGS="%{rpmldflags}" %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 -sf 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 +%{?with_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 -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 + 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 -q '^%{_bindir}/ash.static$' /etc/shells ; then - echo "%{_bindir}/ash.static" >> /etc/shells - fi -fi - -%preun -if [ "$1" = 0 ]; then - grep -v '^%{_bindir}/ash$' /etc/shells | grep -v '^%{_bindir}/bsh$' > /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 [ "$1" = 0 ]; then - grep -v '^%{_bindir}/ash\.static$' /etc/shells > /etc/shells.new - mv -f /etc/shells.new /etc/shells + 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 ; 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 + 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 %verifyscript static @@ -246,21 +271,14 @@ else echo "found" fi -%clean -rm -rf $RPM_BUILD_ROOT - %files %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/ash %attr(755,root,root) %{_bindir}/bsh %{_mandir}/man1/* +%if %{with static} %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