%define disttag %(test -f /etc/mandrake-release && awk '/Mandrake.* release/ {print ".mdk" $4}' /etc/mandrake-release) %define name elm %define versionbase 2.4 %define versiontag ME+ %define version1 %{versionbase}%{versiontag} %define testminor test20070902 %define minor 123+%{testminor} %define release 1 %define ver_full0 2.4ME+123+%{testminor} %define ver_full1 2.4.ME+.123+%{testminor} %define ver_full %{version1}%{minor} %define fix_prefix /usr/local Summary: Text-based mailreader supporting MIME, GPG, PGP Name: %{name} Version: %{ver_full} Release: %{release}%{disttag} URL: http://www.elmme-mailer.org/elm-2.4ME+.html Source0: http://www.elmme-mailer.org/elm-2.4ME+/snapshot/%{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 ME+ - an interactive mail system, Millennium Edition 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. %define modargs -M iconv -M smtp %package mod Summary: Base modules for ELM mail client version %{version1} PL%{minor} Group: Applications/Communications AutoReqProv: no requires: elm = %{version} prereq: elm = %{version} %description mod Elm ME+ - an interactive mail system, Millennium Edition libelmme-iconv.so and libelmme-smtp.so modules for Elm %{versionbase}%{versiontag}. The libelmme-smtp.so module is required if /usr/sbin/sendmail is not available. %package tls Summary: TLS module for ELM mail client version %{version1} PL%{minor} Group: Applications/Communications AutoReqProv: no requires: elm = %{version} prereq: elm = %{version} %description tls Elm ME+ - an interactive mail system, Millennium Edition libelmme-tls.so modules for Elm %{versionbase}%{versiontag}. This module provides POP's STLS and IMAPs STARTTLS command. This module uses encryption from OpenSSL library. %prep %setup -n %{name}%{ver_full1} %build cat >config.rpm < XXtmp1 sort XXtmp1 | uniq > XXtmp cp XXtmp $RPM_BUILD_ROOT%{fix_prefix}/lib/elm.filelist-main.rpm rm XXtmp1 # mod package $RPM_BUILD_ROOT%{fix_prefix}/lib/elmregister rpm-list -u root -g root -R $RPM_BUILD_ROOT %{modargs} > XXtmp1 sort XXtmp1 | uniq > XXtmp cp XXtmp $RPM_BUILD_ROOT%{fix_prefix}/lib/elm.filelist-mod.rpm rm XXtmp1 # tls package $RPM_BUILD_ROOT%{fix_prefix}/lib/elmregister rpm-list -u root -g root -R $RPM_BUILD_ROOT -M tls > XXtmp1 sort XXtmp1 | uniq > XXtmp cp XXtmp $RPM_BUILD_ROOT%{fix_prefix}/lib/elm.filelist-tls.rpm rm XXtmp1 # # Use temporary location so that installation do not # overwrite filelist # # main-package $RPM_BUILD_ROOT%{fix_prefix}/lib/elmregister filter -R $RPM_BUILD_ROOT -w $RPM_BUILD_ROOT%{fix_prefix}/lib/elm.filelist-main.%{minor} # mod package $RPM_BUILD_ROOT%{fix_prefix}/lib/elmregister filter -R $RPM_BUILD_ROOT %{modargs} -w $RPM_BUILD_ROOT%{fix_prefix}/lib/elm.filelist-mod.%{minor} # tls package $RPM_BUILD_ROOT%{fix_prefix}/lib/elmregister filter -R $RPM_BUILD_ROOT -M tls -w $RPM_BUILD_ROOT%{fix_prefix}/lib/elm.filelist-tls.%{minor} # rm $RPM_BUILD_ROOT%{fix_prefix}/lib/elm.filelist %clean if [ "$RPM_BUILD_ROOT" != "/" ] ; then rm -rf $RPM_BUILD_ROOT fi %pre %pre mod %pre tls %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.mimetypes 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 # record only old values before this installation to elm.rc.old-values F=%{fix_prefix}/lib/elm.rc.old-values if [ -f $F ] ; then mv -f $F $F.rpmsave fi err=0 %{fix_prefix}/lib/elmregister replay -F %{fix_prefix}/lib/elm.filelist-main.%{minor} || err=$? cat %{fix_prefix}/lib/elm.filelist-main.%{minor} >> %{fix_prefix}/lib/elm.filelist rm %{fix_prefix}/lib/elm.filelist-main.%{minor} %{fix_prefix}/lib/elmregister unstage exit $err %post mod # mod package postinstall script err=0 %{fix_prefix}/lib/elmregister replay -F %{fix_prefix}/lib/elm.filelist-mod.%{minor} %{modargs} || err=$? cat %{fix_prefix}/lib/elm.filelist-mod.%{minor} >> %{fix_prefix}/lib/elm.filelist rm %{fix_prefix}/lib/elm.filelist-mod.%{minor} %{fix_prefix}/lib/elmregister unstage %{modargs} exit $err %post tls # tls package postinstall script err=0 %{fix_prefix}/lib/elmregister replay -F %{fix_prefix}/lib/elm.filelist-tls.%{minor} -M tls || err=$? cat %{fix_prefix}/lib/elm.filelist-tls.%{minor} >> %{fix_prefix}/lib/elm.filelist rm %{fix_prefix}/lib/elm.filelist-tls.%{minor} %{fix_prefix}/lib/elmregister unstage -M tls exit $err %preun # Uninstall if this is is last install # This assumes that all other elm modules are already uninstalled if [ $1 = 0 ] ; then %{fix_prefix}/lib/elmregister uninstall -M all fi %preun mod # Uninstall if this is is last install if [ $1 = 0 ] ; then %{fix_prefix}/lib/elmregister uninstall %{modargs} fi %preun tls # Uninstall if this is is last install if [ $1 = 0 ] ; then %{fix_prefix}/lib/elmregister uninstall -M tls 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.mimetypes 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 F=%{fix_prefix}/lib/elm.rc.old-values rm $F fi %postun mod %{fix_prefix}/lib/elmlibregister -G -I %postun tls %{fix_prefix}/lib/elmlibregister -G -I %files -f %{buildroot}%{fix_prefix}/lib/elm.filelist-main.rpm %ghost %{fix_prefix}/lib/elm.filelist-main.rpm %defattr(-,root,root) %{fix_prefix}/lib/elm.filelist-main.%{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}/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/elmrc.samp %doc %{_docdir}/%{name}-%{ver_full}/doc/mime.charsets %doc %{_docdir}/%{name}-%{ver_full}/doc/mime.types %doc %{_docdir}/%{name}-%{ver_full}/doc/terminal.info %dir %{_docdir}/%{name}-%{ver_full}/shared_libs %files mod -f %{buildroot}%{fix_prefix}/lib/elm.filelist-mod.rpm %ghost %{fix_prefix}/lib/elm.filelist-mod.rpm %defattr(-,root,root) %{fix_prefix}/lib/elm.filelist-mod.%{minor} %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+ %files tls -f %{buildroot}%{fix_prefix}/lib/elm.filelist-tls.rpm %ghost %{fix_prefix}/lib/elm.filelist-tls.rpm %defattr(-,root,root) %{fix_prefix}/lib/elm.filelist-tls.%{minor} %dir %{_docdir}/%{name}-%{ver_full}/shared_libs/tls %doc %{_docdir}/%{name}-%{ver_full}/shared_libs/tls/README.ME+ %changelog # end of file