X-Git-Url: http://git.marmaro.de/?a=blobdiff_plain;f=nmh.spec;h=08a0b915d0ed4d6315e954ff9333367f5d370b2f;hb=f247cc1de541243bd1c1635e95c8772d45f9bc6e;hp=b736dc8a3e231f74e157c46ef646dec5444c3c03;hpb=cc9254b17cbfe044120d58053212eb9983631c11;p=mmh diff --git a/nmh.spec b/nmh.spec index b736dc8..08a0b91 100644 --- a/nmh.spec +++ b/nmh.spec @@ -1,17 +1,54 @@ -# Assumes that rpmbuild was invoked main nmh directory using "make rpm". -# "make rpm" uses an RPM directory below the current directory. +# This spec supports two methods of RPM creation: +# +# 1) Start from an nmh workspace, run configure as desired and then "make rpm". +# For example: +# $ git clone git://git.savannah.nongnu.org/nmh.git +# $ cd nmh +# $ ./autogen.sh +# $ ./configure --with-cyrus-sasl --with-locking=fcntl && make rpm +# +# 2) Start with a source RPM and use rpmbuild. Configure options are hard +# coded below, but they can be overridden on the rpmbuild command line +# with --define 'configure_opts --opt=value [...]'. +# For example: +# $ rpm -i nmh-1.4-0.fc16.src.rpm +# $ rpmbuild --rmsource --rmspec \ +# --define '_sysconfdir /usr/local/nmh/etc' \ +# --define 'configure_opts --with-cyrus-sasl --with-locking=fcntl' \ +# --bb ~/lib/rpmbuild/SPECS/nmh.spec +# +# If configure has previously been run successfully in the workspace, +# it will not be invoked again, even if configure_opts is defined. +# +# Note that "make rpm" sets _sysconfdir. If configuring to install +# anyplace other than the default _sysconfdir, typically /etc, and +# you're not using this through "make rpm", be sure to set _sysconfdir. +# +# With kernel (fcntl, flock, or lockf) locking, or with dot locking +# and a lockdir that's writable by the user, bin/inc does not need to +# be setgid. This spec assumes that. But if needed, add something +# like this to the %files section to make bin/inc setgid: +# %attr(2755,-,mail) /usr/local/nmh/bin/inc +# # Note that Version cannot contain any dashes. +# +# The description, summary, and a few other tags were taken from the +# nmh.spec used to build the Fedora 15 nmh rpm. -Name: nmh -Version: 1.4.dev -Release: 1%{?dist} -Summary: A capable mail handling system with a command line interface. +Name: nmh +Version: %(sed "s/-/_/g" VERSION) +%define rawversion %(cat VERSION) +Release: 1%{?dist} +Summary: A capable mail handling system with a command line interface +Group: Applications/Internet +License: BSD +URL: http://savannah.nongnu.org/projects/nmh +BuildRequires: gdbm-devel ncurses-devel +%define tarfile nmh-%rawversion.tar.gz +Source0: %tarfile +Source1: VERSION +%define srcdir %(pwd) -Group: Applications/Internet -License: BSD -URL: http://savannah.nongnu.org/projects/nmh -Source0: nmh-1.4-dev.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-build %description Nmh is an email system based on the MH email system and is intended to @@ -24,41 +61,53 @@ scripts which utilize nmh commands. If you want to use nmh as a true email user agent, you'll want to also install exmh to provide a user interface for it--nmh only has a command line interface. + %prep -cp -p %{srcdir}/nmh-1.4-dev.tar.gz $RPM_SOURCE_DIR +if [ ! -f $RPM_SOURCE_DIR/%tarfile ]; then + #### The tarfile wasn't already installed and we started with a + #### workspace (using make rpm), so get it from there. + [ -f %srcdir/%tarfile ] || (cd %srcdir && make dist) + cp -p %srcdir/%tarfile $RPM_SOURCE_DIR/%tarfile +fi +[ -f $RPM_SOURCE_DIR/VERSION ] || cp -p %srcdir/VERSION $RPM_SOURCE_DIR +%setup -q -n %name-%rawversion %build +if [ -f %srcdir/config.status ]; then + echo reusing existing configuration + cp -pf %srcdir/config.status . + ./config.status +else + %if %{undefined configure_opts} + %define configure_opts --enable-pop --with-cyrus-sasl --with-locking=fcntl + %endif + %configure %configure_opts +fi +make all dist %install rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT SETGID_MAIL= -#### Assumes that configure was run with --prefix=/usr, at least. -#### The directory placements need to be cleaned up. -(cd %{srcdir} && \ - make install DESTDIR=$RPM_BUILD_ROOT SETGID_MAIL=) +gz_manpages='-e ' -#### Not sure why .gz needs to be appended to man file names here. -#### But without it, the man files don't show the .gz extension: -find $RPM_BUILD_ROOT ! -type d -print | sed "s#^$RPM_BUILD_ROOT##g" > files +if find $RPM_BUILD_ROOT -name 'inc.1*' | \ + egrep -q '/usr(/lib|/share)?/man/([^/]+/)?man'; then + #### brp-compress will gzip the man pages, so account for that. + gz_manpages='-e s#\(/man/man./.*\)#\1.gz#' +fi -#### Should do the following with an install target in docs/Makefile. -#### Note that these are excluded from files above because they're -#### added with doc's in the %files section below. -mkdir -p docs -cp -p %{srcdir}/VERSION %{srcdir}/COPYRIGHT . -for i in COMPLETION-* DIFFERENCES FAQ MAIL.FILTERING README* TODO; do - cp -p %{srcdir}/docs/$i docs -done +#### etc is brought into files using %config{noreplace} +find $RPM_BUILD_ROOT -name etc -prune -o ! -type d -print | \ + sed -e "s#^$RPM_BUILD_ROOT##" "$gz_manpages" > nmh_files %clean -rm -rf files $RPM_BUILD_ROOT docs COPYRIGHT VERSION +rm -rf $RPM_BUILD_ROOT $RPM_BUILD_DIR/%buildsubdir -%files -f files +%files -f nmh_files %defattr(-,root,root,-) -%doc COPYRIGHT VERSION -%doc docs/COMPLETION-* docs/DIFFERENCES docs/FAQ docs/MAIL.FILTERING -%doc docs/README* docs/TODO +%config(noreplace) %_sysconfdir/*