]> git.pld-linux.org Git - packages/ash.git/blobdiff - ash.spec
- fixed for uclibc
[packages/ash.git] / ash.spec
index 66ff5f0e3454a33c35e573f2cb710cd4e4f58a95..04c1c1e0052e47dcb596378112d24ad1620960ee 100644 (file)
--- a/ash.spec
+++ b/ash.spec
@@ -1,22 +1,56 @@
+# Branch: HEAD
+# conditional build:
+# _without_embed - don't build uClibc version
 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
 Name:          ash
-Version:       0.3
-Release:       1
+Version:       0.4.0
+Release:       5
 License:       BSD
 Group:         Applications/Shells
 Group(de):     Applikationen/Shells
 Group(pl):     Aplikacje/Pow³oki
-Source0:       ftp://ftp.pld.org.pl/people/malekith/%{name}-linux-%{version}.tar.gz
+Source:        %{name}-%{version}.tar.gz
+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
 Prereq:                fileutils
 Prereq:                grep
 BuildRequires: glibc-static
+BuildRequires: flex
+BuildRequires: byacc
+%if %{!?_without_embed:1}%{?_without_embed:0}
+BuildRequires: uClibc-devel
+BuildRequires: uClibc-static
+%endif
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 Conflicts:     mkinitrd <= 1.7
 
+%define embed_path     /usr/lib/embed
+%define embed_cc       %{_arch}-uclibc-cc
+%define embed_cflags   %{rpmcflags} -Os
+
 %define                _bindir         /bin
 
 %description
@@ -80,20 +114,84 @@ ash, Berkeley'in bir bourne kabu
 komutlarýnýn tümünü destekler ve bash kabuðundan daha küçük olma
 avantajýna sahiptir.
 
+%package embed
+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 embed
+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 embedded systems.
+
 %prep
-%setup -q -n ash-linux-%{version}
+%setup -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
+# this is mainly for information, maybe add changelog to %doc?
+%patch17 -p1
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
 
 %build
-%{__make} OPT_FLAGS="%{?debug:-O -g}%{!?debug:$RPM_OPT_FLAGS}" \
-       LDFLAGS="-static %{!?debug:-s}"
+# BOOT
+%if %{!?_without_embed:1}%{?_without_embed:0}
+# some of this utilities does not compile with uClibc
+# and it is not necessary
+%{__make} mksignames mkbuiltins mknodes mksignames mksyntax mktokens
+%{__make} \
+       OPT_FLAGS="%{embed_cflags}" \
+       CC=%{embed_cc}
+mv -f sh ash-embed-shared
+%{__make} \
+       OPT_FLAGS="%{embed_cflags}" \
+       LDFLAGS="-static" \
+       CC=%{embed_cc}
+mv -f sh ash-embed-static
+%{__make} clean
+%endif
+
+# other
+%{__make} OPT_FLAGS="%{rpmcflags}" LDFLAGS="-static %{rpmldflags}"
 mv -f sh ash.static
-%{__make} OPT_FLAGS="%{?debug:-O -g}%{!?debug:$RPM_OPT_FLAGS}" \
-       LDFLAGS="%{!?debug:-s}"
+%{__make} OPT_FLAGS="%{rpmcflags}" LDFLAGS="%{rpmldflags}"
 
 %install
 rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT/{%{_bindir},%{_mandir}/man1}
 
+# BOOT
+%if %{!?_without_embed:1}%{?_without_embed:0}
+install -d $RPM_BUILD_ROOT/%{embed_path}/{shared,static}
+install ash-embed-static $RPM_BUILD_ROOT/%{embed_path}/static/ash
+install ash-embed-shared $RPM_BUILD_ROOT/%{embed_path}/shared/ash
+ln -sf ash $RPM_BUILD_ROOT/%{embed_path}/shared/sh
+ln -sf ash $RPM_BUILD_ROOT/%{embed_path}/static/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
 install sh.1 $RPM_BUILD_ROOT%{_mandir}/man1/ash.1
@@ -105,10 +203,10 @@ if [ ! -f /etc/shells ]; then
         echo "%{_bindir}/ash" > /etc/shells
         echo "%{_bindir}/bsh" >> /etc/shells
 else
-        if ! grep '^%{_bindir}/ash$' /etc/shells > /dev/null; then
+        if ! grep -q '^%{_bindir}/ash$' /etc/shells ; then
                 echo "%{_bindir}/ash" >> /etc/shells
         fi
-        if ! grep '^%{_bindir}/bsh$' /etc/shells > /dev/null; then
+        if ! grep -q '^%{_bindir}/bsh$' /etc/shells ; then
                 echo "%{_bindir}/bsh" >> /etc/shells
         fi
 fi
@@ -117,27 +215,27 @@ fi
 if [ ! -f /etc/shells ]; then
         echo "%{_bindir}/ash.static" >> /etc/shells
 else
-        if ! grep '^%{_bindir}/ash.static$' /etc/shells > /dev/null; then
+        if ! grep -q '^%{_bindir}/ash.static$' /etc/shells ; 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
+if [ "$1" = 0 ]; then
+        grep -v '^%{_bindir}/ash$' /etc/shells | grep -v '^%{_bindir}/bsh$' > /etc/shells.new
         mv -f /etc/shells.new /etc/shells
 fi
 
 %preun static
-if [ "$0" = 0 ]; then
-        grep -v %{_bindir}/ash /etc/shells | grep -v %{_bindir}/bsh > /etc/shells.new
+if [ "$1" = 0 ]; then
+        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
+for n in ash bsh ; do
     echo -n "Looking for $n in /etc/shells... "
-    if ! grep "^%{_bindir}/${n}\$" /etc/shells > /dev/null; then
+    if ! grep -q "^%{_bindir}/${n}\$" /etc/shells ; then
        echo "missing"
        echo "${n} missing from /etc/shells" >&2
     else
@@ -145,6 +243,15 @@ for n in ash bsh ash.static; do
     fi
 done
 
+%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
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -157,3 +264,9 @@ rm -rf $RPM_BUILD_ROOT
 %files static
 %defattr(644,root,root,755)
 %attr(755,root,root) %{_bindir}/ash.static
+
+%if %{!?_without_embed:1}%{?_without_embed:0}
+%files embed
+%defattr(644,root,root,755)
+%attr(755,root,root) %{embed_path}/*/*
+%endif
This page took 0.083847 seconds and 4 git commands to generate.