You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
177 lines
6.3 KiB
177 lines
6.3 KiB
## |
|
## milter.spec -- OpenPKG RPM Package Specification |
|
## Copyright (c) 2000-2022 OpenPKG Project <http://openpkg.org/> |
|
## |
|
## Permission to use, copy, modify, and distribute this software for |
|
## any purpose with or without fee is hereby granted, provided that |
|
## the above copyright notice and this permission notice appear in all |
|
## copies. |
|
## |
|
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
|
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
|
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR |
|
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
|
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
|
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
|
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
|
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
|
## SUCH DAMAGE. |
|
## |
|
|
|
# package version |
|
%define V_libmilter 8.17.1 |
|
%define V_sendmail_pmilter 1.00 |
|
%define V_mail_milter 0.07 |
|
|
|
# package information |
|
Name: milter |
|
Summary: Mail Filtering API |
|
URL: http://www.sendmail.org/doc/sendmail-current/libmilter/docs/ |
|
Vendor: Eric Allman, Todd Vierling |
|
Packager: OpenPKG Project |
|
Distribution: OpenPKG Community |
|
Class: EVAL |
|
Group: Mail |
|
License: BSD/Artistic |
|
Version: %{V_libmilter} |
|
Release: 20210828 |
|
|
|
# package options |
|
%option with_perl no |
|
|
|
# list of sources |
|
Source0: ftp://ftp.sendmail.org/pub/sendmail/sendmail.%{V_libmilter}.tar.gz |
|
Source1: http://www.cpan.org/authors/id/A/AV/AVAR/Sendmail-PMilter-%{V_sendmail_pmilter}.tar.gz |
|
Source2: http://download.sourceforge.net/pmilter/Mail-Milter-%{V_mail_milter}.tar.gz |
|
Source3: milter.pc |
|
Patch0: milter.patch |
|
|
|
# build information |
|
BuildPreReq: OpenPKG, openpkg >= 20160101 |
|
PreReq: OpenPKG, openpkg >= 20160101 |
|
%if "%{with_perl}" == "yes" |
|
BuildPreReq: perl, perl-openpkg |
|
PreReq: perl |
|
%endif |
|
|
|
%description |
|
MILTER is the mail and SMTP protocol filtering API developed with |
|
the Sendmail 8 MTA. This package provides Sendmail's original |
|
client-side C API (libmilter) and optionally the alternative |
|
client-side Perl APIs (Sendmail::Milter, Sendmail::PMilter, |
|
Mail::Milter). |
|
|
|
%track |
|
prog milter:libmilter = { |
|
version = %{V_libmilter} |
|
url = ftp://ftp.sendmail.org/pub/sendmail/ |
|
regex = sendmail.(\d+\.\d+\.\d+)\.tar\.gz |
|
} |
|
prog milter:Sendmail-PMilter = { |
|
version = %{V_sendmail_pmilter} |
|
url = http://www.cpan.org/authors/id/A/AV/AVAR/ |
|
regex = Sendmail-PMilter-(__VER__)\.tar\.gz |
|
} |
|
prog milter:Mail-Milter = { |
|
version = %{V_mail_milter} |
|
url = http://sourceforge.net/projects/pmilter/files/ |
|
regex = Mail-Milter-(__VER__)\.tar\.gz |
|
} |
|
|
|
%prep |
|
%setup -q -c |
|
%setup -q -T -D -a 1 |
|
%setup -q -T -D -a 2 |
|
%patch -p0 |
|
|
|
%build |
|
# build C API |
|
( cd sendmail-%{V_libmilter} |
|
extlibs="%{l_fsl_libs} -ldb" |
|
case "%{l_platform -t}" in |
|
*-sunos* ) extlibs="$extlibs -lrt" ;; |
|
esac |
|
( echo "define(\`confCC', \`%{l_cc} %{l_cflags}')dnl" |
|
echo "APPENDDEF(\`confINCDIRS', \`%{l_cppflags}')dnl" |
|
echo "APPENDDEF(\`confLIBDIRS', \`%{l_ldflags}')dnl" |
|
echo "APPENDDEF(\`confLIBS', \`$extlibs')dnl" |
|
echo "define(\`confSTDIO_TYPE', \`portable')dnl" |
|
echo "APPENDDEF(\`conf_sendmail_ENVDEF', \`-DMILTER=1')dnl" |
|
echo "APPENDDEF(\`conf_libmilter_ENVDEF', \`-D_FFR_MILTER_ROOT_UNSAFE')dnl" |
|
) >devtools/Site/site.config.m4 |
|
( cd include |
|
ln -s libmilter milter |
|
) || exit $? |
|
( cd libmilter |
|
./Build |
|
) || exit $? |
|
) || exit $? |
|
|
|
# build Perl API |
|
%if "%{with_perl}" == "yes" |
|
%{l_prefix}/bin/perl-openpkg prepare |
|
%{l_prefix}/bin/perl-openpkg -d Sendmail-PMilter-%{V_sendmail_pmilter} configure build |
|
%{l_prefix}/bin/perl-openpkg -d Mail-Milter-%{V_mail_milter} configure build |
|
%endif |
|
|
|
%install |
|
# install C API |
|
( cd sendmail-%{V_libmilter} |
|
%{l_shtool} mkdir -f -p -m 755 \ |
|
$RPM_BUILD_ROOT%{l_prefix}/include/milter \ |
|
$RPM_BUILD_ROOT%{l_prefix}/lib/milter |
|
%{l_shtool} install -c -m 644 \ |
|
include/libmilter/*.h \ |
|
$RPM_BUILD_ROOT%{l_prefix}/include/milter/ |
|
%{l_shtool} install -c -m 644 \ |
|
obj.*/libmilter/libmilter.a \ |
|
$RPM_BUILD_ROOT%{l_prefix}/lib/ |
|
) || exit $? |
|
libs=`grep "^LDOPTS=" sendmail-%{V_libmilter}/obj.*/libmilter/Makefile | sed -e 's;^LDOPTS=;;'` |
|
libs="$libs -lmilter" |
|
case "%{l_platform -t}" in |
|
*-sunos* ) libs="$libs -lrt" ;; |
|
esac |
|
%{l_shtool} mkdir -f -p -m 755 \ |
|
$RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig |
|
%{l_shtool} install -c -m 644 %{l_value -s -a} \ |
|
-e "s;@version@;%{version};" \ |
|
-e "s;@libs@;$libs;" \ |
|
%{SOURCE milter.pc} $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig/ |
|
|
|
# install Perl API |
|
%if "%{with_perl}" == "yes" |
|
%{l_prefix}/bin/perl-openpkg -d Sendmail-PMilter-%{V_sendmail_pmilter} install |
|
%{l_prefix}/bin/perl-openpkg -d Mail-Milter-%{V_mail_milter} install |
|
%{l_prefix}/bin/perl-openpkg -F perl-openpkg-files fixate cleanup |
|
%else |
|
>perl-openpkg-files |
|
%endif |
|
|
|
# create parent run-time directory of MILTER application sockets |
|
%{l_shtool} mkdir -f -p -m 755 \ |
|
$RPM_BUILD_ROOT%{l_prefix}/var/milter |
|
|
|
# determine installation files |
|
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ |
|
%{l_files_std} `cat perl-openpkg-files` |
|
|
|
%files -f files |
|
|
|
%clean |
|
|
|
%post |
|
# create run-time directory of MILTER application sockets |
|
# (which are required to have particular user/group ownerships |
|
# in order to allow all MTAs to access it under run-time) |
|
mkdir $RPM_INSTALL_PREFIX/var/milter/socket 2>/dev/null || true |
|
chown %{l_rusr}:%{l_mgrp} $RPM_INSTALL_PREFIX/var/milter/socket |
|
chmod 2775 $RPM_INSTALL_PREFIX/var/milter/socket |
|
|
|
%preun |
|
# try to remove run-time directory of MILTER application sockets |
|
rmdir $RPM_INSTALL_PREFIX/var/milter/socket 2>/dev/null || true |
|
|
|
|