Doing something quite unprecedented: taking a thread frm hackers-il to linux-il, as it is getting too technical ;-)
On Sat, 1 Jun 2002, Shlomi Fish wrote: > > Included below is an RPM Spec for building a collection of fortune files. > It is specific to my collection, but hopefully can be customized to other > sources with relative ease. > > I plan to use it as the basis for my fortune2rpm hack, which I have some > great plans for. > > Shlomi Fish > > ####################################### > # Base Macros which need to be set > %define packageprefix fortune-mod-fortunes > %define packagebase shlomif > %define archivebase fortunes-shlomif > %define version 0.2.2 > %define fortunefilesprefix shlomif- > > # Derived Macros > %define name %{packageprefix}-%{packagebase} > %define archivewithver %{archivebase}-%{version} > %define archivefull %{archivewithver}.tar.gz This appears to be slightly over-complecated. consider ranamin the tarball or the package so they'll havethe same name. Another note: you package has /usr and /usr/share hardwired . One thing you should consider paramterising is the pathes insidethe package: %define fortunedatadir %{_altdatadir}/games/fortune (I probably got the alias of /usr/share wrong, see /usr/lib/rpm/macros) even though nobody needs to put the fortune files elsewhere on a decent linux system, youcan never know when can this come in handy. > Name: %{name} > Version: %{version} > Release: 6 > Copyright: Free to use but restricted Hmm... what restrictions? Do you have a LICENSE file there? Maybe mention that in the Licene header? > Group: Toys Do you want to add a 'Packager:' header here? I would advise against this. Add it to your rpmmacros. > > Source: http://vipe.technion.ac.il/~shlomif/humour/fortunes/%{archivefull} > BuildArch: noarch > Buildroot: %{_tmppath}/%{name}-root > URL: http://vipe.technion.ac.il/~shlomif/humour/fortunes/ > Serial: 1 > Requires: fortune-mod > Summary: Shlomi Fish' Collection of Fortune Cookies IMHO you should make that: Fortune cookies collection by Shlomi Fish It is shorter, and puts the important thing (functionally) first > > %description > This package contains several collections of fortune cookies by Shlomi Fish. > Namely, a collection of his own quotes, some of his favourites from various sources; >a collectionof excerpts from the T.V. Show Friends; the Rules of Open That's a line longer than 80 chars . Keep lines shrter than 80 chars and seperate paragraphs with an empty lines. > Source Programming, and a collection of reasons why there is no iglu cabal. > > > %prep > %setup -n %{archivewithver} > > > %build > > myprefix="%{fortunefilesprefix}" > rm -f *.dat > ls | grep -v "\\." | grep -v "[A-Z]" | \ > ( while read T ; do \ > mv "$T" "${myprefix}$T" ; \ > /usr/sbin/strfile "${myprefix}$T" "${myprefix}$T.dat" ; \ Does you packge BuildRequire-s /usr/sbin/strfile ? (from which package is it, anyway?) > done ) > > %install > > rm -rf $RPM_BUILD_ROOT > mkdir $RPM_BUILD_ROOT > for dir in usr usr/share usr/share/games usr/share/games/fortunes ; do > mkdir $RPM_BUILD_ROOT/$dir > done > # This will only work in bash and friends. The script is run with /bin/sh . This is bash on most linux systems,but can be ash ;-) use 'mkdir -p' simply 'mkdir -p ${RPM_BUILD_ROOT}/usr/share/games/fortunes > for I in *.dat ; do > cp $I ${I%%.dat} $RPM_BUILD_ROOT/usr/share/games/fortunes > done > > %post > > %postun You don't have to put an empty %post and %postun . Simply remove those > > > %files > %defattr(-,root,root) > /usr/share/games/fortunes/* No docs at all, not even a README? in the prep: cat <<EOF >README This package contains BLABLABLA EOF in %files $doc README > > %clean > rm -rf $RPM_BUILD_ROOT > > %changelog > * Fri May 31 2002 Shlomi Fish <[EMAIL PROTECTED]> 0.2.2-2 > - Added macros all over the place > > * Thu May 30 2002 Shlomi Fish <[EMAIL PROTECTED]> 0.2.2-1 > - first release - testing. Good to see that this part has not been neglected -- Tzafrir Cohen mailto:[EMAIL PROTECTED] http://www.technion.ac.il/~tzafrir ================================================================= To unsubscribe, send mail to [EMAIL PROTECTED] with the word "unsubscribe" in the message body, e.g., run the command echo unsubscribe | mail [EMAIL PROTECTED]