%define name elm %define versionbase 2.4 %define versiontag ME+ %define version1 %{versionbase}%{versiontag} %define minor 113 %define release 1 %define ver_full0 %{version1}%{minor} %define ver_full %{ver_full0} %define fix_prefix /usr/local Summary: ELM mail client version %{version1} PL%{minor} Name: %{name} Version: %{ver_full} Release: %{release} Source0: http://elmme-mailer.org/%{name}-%{ver_full0}.tar.gz License: The Elm(tm) Mail System General Public License Group: Applications/Communications BuildRoot: %{_tmppath}/%{name}-buildroot Docdir: %{fix_prefix}/doc AutoReqProv: no %description Elm %{versionbase}%{versiontag} is based on Elm 2.4. It contains enhanced MIME and character set support. It can read mail from POP or IMAP folders and can pass mail to the PGP or GPG programs. %prep %setup -n %{name}%{versionbase}.%{versiontag}.%{minor} %build cat >config.rpm <$RPM_BUILD_ROOT%{fix_prefix}/lib/elm.filelist.rpm") || die "Oops 2"; while () { chomp; @a=split(/\0/); \$a[1] = 'root' if (\$a[1] eq '-'); \$a[2] = 'root' if (\$a[2] eq '-'); \$a[3] = '-' if (\$a[3] == 0); if (\$a[4] !~ m!^/!) { \$a[4] = '/' . \$a[4] } if ('M' eq \$a[0]) { print Y "%dir %attr(\$a[3],\$a[1],\$a[2]) \$a[4]\\n"; } if ('F' eq \$a[0]) { if (\$a[4] =~ m!/man/! ) { print Y "%doc %attr(\$a[3],\$a[1],\$a[2]) \$a[4]\\n"; } else { print Y "%attr(\$a[3],\$a[1],\$a[2]) \$a[4]\\n"; } } if ('s' eq \$a[0]) { print Y "\$a[4]\\n"; } if (\$a[0] =~ /^{/ ) { print Y "%attr(\$a[3],\$a[1],\$a[2]) \$a[4]\\n" if -f "$RPM_BUILD_ROOT/\$a[4]"; } if ('C' eq \$a[0]) { print Y "%config %attr(\$a[3],\$a[1],\$a[2]) \$a[4]\\n"; } } close(X) || die "Oops 3"; close(Y) || die "Oops 4"; exit 0; EOM sort $RPM_BUILD_ROOT%{fix_prefix}/lib/elm.filelist.rpm | uniq > XXtmp cp XXtmp $RPM_BUILD_ROOT%{fix_prefix}/lib/elm.filelist.rpm XX=$RPM_BUILD_ROOT%{_docdir}/%{name}-%{ver_full} # We can not let %doc macro to install dogumentation # because it install all to one level and clears directory # on beginning mkdir -p $XX install -m 644 README.ME+ $XX/README.ME+ install -m 644 ANNOUNCE.ME $XX/ANNOUNCE.ME install -m 644 ChangeLog.ME $XX/ChangeLog.ME install -m 644 Changes $XX/Changes install -m 644 Configure $XX/Configure install -m 644 Instruct $XX/Instruct install -m 644 MANIFEST $XX/MANIFEST install -m 644 NOTICE $XX/NOTICE install -m 644 Overview $XX/Overview install -m 644 Patchlist $XX/Patchlist install -m 644 README $XX/README install -m 644 MIME.txt $XX/MIME.txt mkdir -p $XX/doc install -m 644 doc/Alias.guide $XX/doc/Alias.guide install -m 644 doc/Config.guid $XX/doc/Config.guid install -m 644 doc/Form.guide $XX/doc/Form.guide install -m 644 doc/Ref.guide $XX/doc/Ref.guide install -m 644 doc/Users.guide $XX/doc/Users.guide install -m 644 doc/Users.guide $XX/doc/elmrc.samp install -m 644 doc/mime.types $XX/doc/mime.types install -m 644 doc/terminal.info $XX/doc/terminal.info mkdir -p $XX/shared_libs/tls install -m 644 shared_libs/tls/README.ME+ $XX/shared_libs/tls/README.ME+ mkdir -p $XX/shared_libs/iconv install -m 644 shared_libs/iconv/README.ME+ $XX/shared_libs/iconv/README.ME+ mkdir -p $XX/shared_libs/smtp install -m 644 shared_libs/smtp/README.ME+ $XX/shared_libs/smtp/README.ME+ # Use temporary location so that installation do not # overwrite filelist mv $RPM_BUILD_ROOT%{fix_prefix}/lib/elm.filelist $RPM_BUILD_ROOT%{fix_prefix}/lib/elm.filelist.%{minor} %clean if [ "$RPM_BUILD_ROOT" != "/" ] ; then rm -rf $RPM_BUILD_ROOT fi %pre %post # Following files are created or rebuild on replay stage F=%{fix_prefix}/lib/elm.mimecharsets if [ -f $F ] ; then cp -p $F $F.rpmsave fi F=%{fix_prefix}/lib/elm.terminalinfo if [ -f $F ] ; then cp -p $F $F.rpmsave fi F=%{fix_prefix}/lib/elm.rc if [ -f $F ] ; then cp -p $F $F.rpmsave fi %{fix_prefix}/lib/elmregister replay -F %{fix_prefix}/lib/elm.filelist.%{minor} if [ -f %{fix_prefix}/lib/elm.filelist ] ; then cat %{fix_prefix}/lib/elm.filelist %{fix_prefix}/lib/elm.filelist.%{minor} > %{fix_prefix}/lib/elm.filelist.tmp mv %{fix_prefix}/lib/elm.filelist.tmp %{fix_prefix}/lib/elm.filelist else mv %{fix_prefix}/lib/elm.filelist.%{minor} %{fix_prefix}/lib/elm.filelist fi %{fix_prefix}/lib/elmregister unstage %preun # Uninstall if this is is last install if [ $1 = 0 ] ; then %{fix_prefix}/lib/elmregister uninstall fi %postun if [ $1 = 0 ] ; then # We return these files to original places, so that # these are used when elm is re-installed F=%{fix_prefix}/lib/elm.mimecharsets if [ -f $F.rpmsave -a ! -f $F ] ; then cp -p $F.rpmsave $F fi F=%{fix_prefix}/lib/elm.terminalinfo if [ -f $F.rpmsave -a ! -f $F ] ; then cp -p $F.rpmsave $F fi F=%{fix_prefix}/lib/elm.rc if [ -f $F.rpmsave -a ! -f $F ] ; then cp -p $F.rpmsave $F fi fi %files -f %{buildroot}%{fix_prefix}/lib/elm.filelist.rpm %defattr(-,root,root) %{fix_prefix}/lib/elm.filelist.%{minor} %dir %{_docdir}/%{name}-%{ver_full} %doc %{_docdir}/%{name}-%{ver_full}/README.ME+ %doc %{_docdir}/%{name}-%{ver_full}/ANNOUNCE.ME %doc %{_docdir}/%{name}-%{ver_full}/ChangeLog.ME %doc %{_docdir}/%{name}-%{ver_full}/Changes %doc %{_docdir}/%{name}-%{ver_full}/Configure %doc %{_docdir}/%{name}-%{ver_full}/Instruct %doc %{_docdir}/%{name}-%{ver_full}/MANIFEST %doc %{_docdir}/%{name}-%{ver_full}/NOTICE %doc %{_docdir}/%{name}-%{ver_full}/Overview %doc %{_docdir}/%{name}-%{ver_full}/Patchlist %doc %{_docdir}/%{name}-%{ver_full}/README %doc %{_docdir}/%{name}-%{ver_full}/MIME.txt %dir %{_docdir}/%{name}-%{ver_full}/doc %doc %{_docdir}/%{name}-%{ver_full}/doc/Alias.guide %doc %{_docdir}/%{name}-%{ver_full}/doc/Config.guid %doc %{_docdir}/%{name}-%{ver_full}/doc/Form.guide %doc %{_docdir}/%{name}-%{ver_full}/doc/Ref.guide %doc %{_docdir}/%{name}-%{ver_full}/doc/Users.guide %doc %{_docdir}/%{name}-%{ver_full}/doc/elmrc.samp %doc %{_docdir}/%{name}-%{ver_full}/doc/mime.types %doc %{_docdir}/%{name}-%{ver_full}/doc/terminal.info %dir %{_docdir}/%{name}-%{ver_full}/shared_libs %dir %{_docdir}/%{name}-%{ver_full}/shared_libs/tls %doc %{_docdir}/%{name}-%{ver_full}/shared_libs/tls/README.ME+ %dir %{_docdir}/%{name}-%{ver_full}/shared_libs/iconv %doc %{_docdir}/%{name}-%{ver_full}/shared_libs/iconv/README.ME+ %dir %{_docdir}/%{name}-%{ver_full}/shared_libs/smtp %doc %{_docdir}/%{name}-%{ver_full}//shared_libs/smtp/README.ME+ %changelog # end of file