1 # This spec supports two methods of RPM creation:
3 # 1) Start from an nmh workspace, run configure as desired and then "make rpm".
4 # For example, from a tarball:
5 # $ tar xpf nmh-1.6.tar.gz
7 # $ ./configure --with-cyrus-sasl --with-tls && make rpm
9 # Another example, starting from the source code repository:
10 # $ git clone git://git.savannah.nongnu.org/nmh.git
13 # $ ./configure --with-cyrus-sasl --with-tls && make rpm
15 # 2) Start with a source RPM and use rpmbuild. Configure options are hard
16 # coded below, but they can be overridden on the rpmbuild command line
17 # with --define 'configure_opts --opt=value [...]'.
19 # $ rpm -i nmh-1.4-0.fc16.src.rpm
20 # $ rpmbuild --rmsource --rmspec \
21 # --define '_sysconfdir /usr/local/nmh/etc' \
22 # --define 'configure_opts --with-cyrus-sasl --with-tls' \
23 # --bb ~/lib/rpmbuild/SPECS/nmh.spec
25 # If configure has previously been run successfully in the workspace,
26 # it will not be invoked again, even if configure_opts is defined.
28 # Note that "make rpm" sets _sysconfdir. If configuring to install
29 # anyplace other than the default _sysconfdir, typically /etc, and
30 # you're not using this through "make rpm", be sure to set _sysconfdir.
32 # With kernel (fcntl, flock, or lockf) locking, or with dot locking
33 # and a lockdir that's writable by the user, bin/inc does not need to
34 # be setgid. This spec assumes that. But if needed, add something
35 # like this to the %files section to make bin/inc setgid:
36 # %attr(2755,-,mail) /usr/local/nmh/bin/inc
38 # Note that Version cannot contain any dashes.
40 # The description, summary, and a few other tags were taken from the
41 # nmh.spec used to build the Fedora 15 nmh rpm.
44 Version: %
(sed "s
/-/_
/g" VERSION
)
45 %define rawversion %
(cat VERSION
)
47 Summary: A capable MIME
-email
-handling system with a
command-line interface
48 Group: Applications
/Internet
50 URL: http
://savannah.nongnu.org
/projects
/nmh
51 BuildRequires
: flex ncurses
-devel
52 %define tarfile nmh
-%rawversion.tar.gz
59 nmh is a collection of single
-purpose programs that send
, receive
,
60 show
, search
, and otherwise manipulate emails
, including MIME.
61 They combine well with other Unix programs
, easing the development
62 of custom shorthand commands as shell scripts.
63 Optional GUI interfaces are provided by the external xmh and exmh
64 projects. nmh is a descendant of the RAND MH
, Mail Handler
, project.
68 if [ ! -f $RPM_SOURCE_DIR
/%tarfile ]; then
69 #### The tarfile wasn't already installed and we started with a
70 #### workspace (using make rpm), so get it from there.
71 [ -f
%srcdir/%tarfile ] ||
(cd %srcdir && make dist
)
72 cp
-p
%srcdir/%tarfile $RPM_SOURCE_DIR
/%tarfile
74 [ -f $RPM_SOURCE_DIR
/VERSION
] || cp
-p
%srcdir/VERSION $RPM_SOURCE_DIR
75 %setup -q
-n
%name-%rawversion
79 if [ -f
%srcdir/config.status
]; then
80 echo reusing existing configuration
81 cp
-pf
%srcdir/config.status .
84 %if %{undefined configure_opts}
85 %define configure_opts
--with
-cyrus
-sasl
87 %configure %configure_opts
93 rm -rf $RPM_BUILD_ROOT
94 make install DESTDIR
=$RPM_BUILD_ROOT
98 if find $RPM_BUILD_ROOT
-name 'inc
.1*' | \
99 egrep
-q '
/usr
(/lib|
/share
)?
/man
/([^
/]+/)?man'
; then
100 #### brp-compress will gzip the man pages, so account for that.
101 gz_manpages
='
-e s
#\(/man/man./.*\)#\1.gz#'
104 #### etc is brought into files using %config{noreplace}
105 find $RPM_BUILD_ROOT
-name etc
-prune
-o
! -type d
-print | \
106 sed
-e "s
#^$RPM_BUILD_ROOT##" "$gz_manpages" > nmh_files
110 rm -rf $RPM_BUILD_ROOT $RPM_BUILD_DIR
/%buildsubdir
114 %defattr(-,root
,root
,-)
115 %config(noreplace
) %_sysconfdir/*