%define name elm %define versionbase 2.5 %define versiontag ME+ %define version1 %{versiontag}%{versionbase} %define minor alpha0 %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 %{versiontag}%{versionbase} is based on Elm 2.4 and incorporates some code from Elm 2.5. 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}%{versiontag}.%{versionbase}.%{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 ('d' eq \$a[0]) { print Y "%doc %attr(\$a[3],\$a[1],\$a[2]) \$a[4]\\n"; } if ('F' eq \$a[0]) { 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 Configure $XX/Configure install -m 644 MANIFEST $XX/MANIFEST install -m 644 NOTICE $XX/NOTICE install -m 644 MIME.txt $XX/MIME.txt mkdir -p $XX/2.4 install -m 644 2.4/Overview $XX/2.4/Overview install -m 644 2.4/ANNOUNCE.ME $XX/2.4/ANNOUNCE.ME install -m 644 2.4/ChangeLog.ME $XX/2.4/ChangeLog.ME install -m 644 2.4/Patchlist $XX/2.4/Patchlist install -m 644 2.4/Changes $XX/2.4/Changes install -m 644 2.4/Instruct $XX/2.4/Instruct install -m 644 2.4/NOTICE $XX/2.4/NOTICE install -m 644 2.4/README $XX/2.4/README 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}/Configure %doc %{_docdir}/%{name}-%{ver_full}/MANIFEST %doc %{_docdir}/%{name}-%{ver_full}/NOTICE %doc %{_docdir}/%{name}-%{ver_full}/MIME.txt %dir %{_docdir}/%{name}-%{ver_full}/2.4 %doc %{_docdir}/%{name}-%{ver_full}/2.4/Overview %doc %{_docdir}/%{name}-%{ver_full}/2.4/ANNOUNCE.ME %doc %{_docdir}/%{name}-%{ver_full}/2.4/ChangeLog.ME %doc %{_docdir}/%{name}-%{ver_full}/2.4/Patchlist %doc %{_docdir}/%{name}-%{ver_full}/2.4/Changes %doc %{_docdir}/%{name}-%{ver_full}/2.4/Instruct %doc %{_docdir}/%{name}-%{ver_full}/2.4/NOTICE %doc %{_docdir}/%{name}-%{ver_full}/2.4/README %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