Am 06.04.2013 19:53, schrieb ixlo...@sent.at:
> make upgrade
>       ...
>       make: Nothing to be done for `update'.
>       /bin/sh postfix-install -non-interactive
>       postfix-install: Error: "postdrop" needs an entry in the group
>       file.
>       Remember, "postdrop" needs a dedicated group id.
>       make: *** [upgrade] Error 1
> 
> 
> Since the distro already installed its version of postfix -- both
> version and config are not what I want/need, so that's why I'm building
> my own -- there exist users/groups for postfix

and why do you not build a package based on your distros one?

you can be pretty sure that Fedora 17 does not have Postfix 2.10
nor have pflogsumm in the same packages nor avoid "alternatives"
or build with mysql and without postgresql-deps

[builduser@buildserver:~]$ cat /rpmbuild/SPECS/postfix.spec
%define postfix_uid         89
%define postfix_user        postfix
%define postfix_gid         89
%define postfix_group       postfix
%define maildrop_group      postdrop
%define maildrop_gid        90
%define postfix_config_dir  %{_sysconfdir}/postfix
%define postfix_daemon_dir  %{_libexecdir}/postfix
%define postfix_command_dir %{_sbindir}
%define postfix_queue_dir   %{_var}/spool/postfix
%define postfix_data_dir    %{_var}/lib/postfix
%define postfix_doc_dir     %{_docdir}/%{name}-%{version}
%define postfix_sample_dir  %{postfix_doc_dir}/samples
%define postfix_readme_dir  %{postfix_doc_dir}/README_FILES
%define pflogsumm_ver       1.1.5

Name:              postfix
Summary:           Postfix Mail Transport Agent
Version:           2.10.0
Release:           17%{?dist}
Epoch:             2
Group:             System Environment/Daemons
URL:               http://www.postfix.org
License:           IBM
Requires:          shadow-utils, systemd-units
Requires(post):    shadow-utils, systemd-units
Requires(pre):     shadow-utils, systemd-units
Requires(preun):   shadow-utils, systemd-units
Requires(postun):  shadow-utils, systemd-units
Provides:          MTA smtpd smtpdaemon server(smtp)
Source0:           
ftp://ftp.porcupine.org/mirrors/postfix-release/official/%{name}-%{version}.tar.gz
Source53:          
http://jimsun.linxnet.com/downloads/pflogsumm-%{pflogsumm_ver}.tar.gz
Source101:         postfix-pam.conf
Source500:         postfix.service
BuildRoot:         %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} 
-n)
BuildRequires:     db4-devel, pkgconfig, zlib-devel, mysql-devel, 
cyrus-sasl-devel, pcre-devel, openssl-devel,
systemd-units
Obsoletes:         postfix-perl-scripts

Provides:          postfix-perl-scripts
Provides:          postfix-pflogsumm = %{epoch}:%{version}-%{release}

%description
Postfix is a Mail Transport Agent, supporting SMTP AUTH and TLS

%package           manpages
Summary:           Postfix manuals
Group:             Applications/System
%description       manpages

%prep
%setup -q  -n %{name}-%{version}

gzip -dc %{SOURCE53} | tar xf -
pushd pflogsumm-%{pflogsumm_ver}
popd

for f in README_FILES/TLS_{LEGACY_,}README TLS_ACKNOWLEDGEMENTS; do
 iconv -f iso8859-1 -t utf8 -o ${f}{_,} &&
 touch -r ${f}{,_} && mv -f ${f}{_,}
done

%build
CCARGS=-fPIC
AUXLIBS=

CCARGS="${CCARGS} -DHAS_PCRE -I%{_includedir}/pcre"
AUXLIBS="${AUXLIBS} -lpcre"

CCARGS="${CCARGS} -DHAS_MYSQL -I%{_includedir}/mysql"
AUXLIBS="${AUXLIBS} -L%{_libdir}/mysql -lmysqlclient -lm"

CCARGS="${CCARGS} -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I%{_includedir}/sasl"
AUXLIBS="${AUXLIBS} -L%{_libdir}/sasl2 -lsasl2"

CCARGS="${CCARGS} -DUSE_TLS -I/usr/include/openssl"
AUXLIBS="${AUXLIBS} -lssl -lcrypto"

CCARGS="${CCARGS} -DDEF_CONFIG_DIR=\\\"%{postfix_config_dir}\\\""
CCARGS="${CCARGS} $(getconf LFS_CFLAGS)"

AUXLIBS="${AUXLIBS} -pie -Wl,-z,relro"

%{__make} %{?_smp_mflags} -f Makefile.init makefiles CCARGS="${CCARGS}" 
AUXLIBS="${AUXLIBS}" DEBUG=""
OPT="$RPM_OPT_FLAGS -Wno-comment"
%{__make} %{?_smp_mflags} CCARGS="${CCARGS}" AUXLIBS="${AUXLIBS}" DEBUG="" 
OPT="$RPM_OPT_FLAGS -Wno-comment"

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT
sh postfix-install -non-interactive install_root=$RPM_BUILD_ROOT 
config_directory=%{postfix_config_dir}
daemon_directory=%{postfix_daemon_dir} command_directory=%{postfix_command_dir}
queue_directory=%{postfix_queue_dir} data_directory=%{postfix_data_dir}
sendmail_path=%{postfix_command_dir}/sendmail 
newaliases_path=%{_bindir}/newaliases mailq_path=%{_bindir}/mailq
mail_owner=%{postfix_user} setgid_group=%{maildrop_group} 
manpage_directory=%{_mandir}
sample_directory=%{postfix_sample_dir} readme_directory=%{postfix_readme_dir} 
|| exit 1
install -c auxiliary/rmail/rmail $RPM_BUILD_ROOT%{_bindir}/rmail

for i in active bounce corrupt defer deferred flush incoming private saved 
maildrop public pid saved trace; do
 mkdir -p $RPM_BUILD_ROOT%{postfix_queue_dir}/$i
done

cat $RPM_BUILD_ROOT%{postfix_daemon_dir}/postfix-files

mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/pam.d
install -m 644 %{SOURCE101} $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/smtp.postfix

mkdir -p $RPM_BUILD_ROOT%{postfix_doc_dir}
mkdir -p $RPM_BUILD_ROOT%{postfix_doc_dir}/examples{,/chroot-setup}
cp -pr examples/{qmail-local,smtpd-policy} 
$RPM_BUILD_ROOT%{postfix_doc_dir}/examples
cp -p examples/chroot-setup/LINUX2 
$RPM_BUILD_ROOT%{postfix_doc_dir}/examples/chroot-setup

mv $RPM_BUILD_ROOT/etc/postfix/bounce.cf.default 
$RPM_BUILD_ROOT%{postfix_doc_dir}
mv $RPM_BUILD_ROOT/etc/postfix/main.cf.default $RPM_BUILD_ROOT%{postfix_doc_dir}
mv $RPM_BUILD_ROOT/etc/postfix/makedefs.out $RPM_BUILD_ROOT%{postfix_doc_dir}
rm -f $RPM_BUILD_ROOT%{postfix_config_dir}/{TLS_,}LICENSE

find $RPM_BUILD_ROOT%{postfix_doc_dir} -type f | xargs chmod 644
find $RPM_BUILD_ROOT%{postfix_doc_dir} -type d | xargs chmod 755

install -c -m 644 pflogsumm-%{pflogsumm_ver}/pflogsumm-faq.txt 
$RPM_BUILD_ROOT%{postfix_doc_dir}/pflogsumm-faq.txt
install -c -m 644 pflogsumm-%{pflogsumm_ver}/pflogsumm.1 
$RPM_BUILD_ROOT%{_mandir}/man1/pflogsumm.1
install -c pflogsumm-%{pflogsumm_ver}/pflogsumm.pl 
$RPM_BUILD_ROOT%{postfix_command_dir}/pflogsumm

mantools/srctoman - auxiliary/qshape/qshape.pl > qshape.1
install -c qshape.1 $RPM_BUILD_ROOT%{_mandir}/man1/qshape.1
install -c auxiliary/qshape/qshape.pl 
$RPM_BUILD_ROOT%{postfix_command_dir}/qshape

mkdir -p $RPM_BUILD_ROOT/%{_unitdir}/
install -m 0644 %{SOURCE500} $RPM_BUILD_ROOT/%{_unitdir}/

rm -f $RPM_BUILD_ROOT%{postfix_config_dir}/aliases
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/postfix/main.cf
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/postfix/master.cf
rm -f $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/smtp

%post
/usr/bin/systemctl --system daemon-reload 2> /dev/null > /dev/null
%{_sbindir}/postfix set-permissions upgrade-configuration 
daemon_directory=%{postfix_daemon_dir}
command_directory=%{postfix_command_dir} mail_owner=%{postfix_user} 
setgid_group=%{maildrop_group}
manpage_directory=%{_mandir} sample_directory=%{postfix_sample_dir} 
readme_directory=%{postfix_readme_dir} &> /dev/null
%{_bindir}/unlink /etc/alternatives/mta 2> /dev/null
%{_bindir}/unlink /etc/alternatives/mta-aliasesman 2> /dev/null
%{_bindir}/unlink /etc/alternatives/mta-mailq 2> /dev/null
%{_bindir}/unlink /etc/alternatives/mta-mailqman 2> /dev/null
%{_bindir}/unlink /etc/alternatives/mta-newaliases 2> /dev/null
%{_bindir}/unlink /etc/alternatives/mta-newaliasesman 2> /dev/null
%{_bindir}/unlink /etc/alternatives/mta-pam 2> /dev/null
%{_bindir}/unlink /etc/alternatives/mta-rmail 2> /dev/null
%{_bindir}/unlink /etc/alternatives/mta-sendmail 2> /dev/null
%{_bindir}/unlink /etc/alternatives/mta-sendmailman 2> /dev/null
exit 0

%pre
%{_sbindir}/groupadd -g %{maildrop_gid} -r %{maildrop_group} 2> /dev/null
%{_sbindir}/groupadd -g %{postfix_gid} -r %{postfix_group} 2> /dev/null
%{_sbindir}/groupadd -g 12 -r mail 2> /dev/null
%{_sbindir}/useradd -d %{postfix_queue_dir} -s /sbin/nologin -g 
%{postfix_group} -G mail -M -r -u %{postfix_uid}
%{postfix_user} 2> /dev/null
exit 0

%preun
if [ "$1" == 0 ]; then
 /usr/bin/systemctl --no-reload disable postfix.service 2> /dev/null > /dev/null
 /usr/bin/systemctl stop postfix.service 2> /dev/null > /dev/null
fi
exit 0

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-, root, root)
%attr(0644, root, root) %{_unitdir}/postfix.service
%dir %attr(0755, root, root) %{postfix_config_dir}
%dir %attr(0755, root, root) %{postfix_daemon_dir}
%dir %attr(0755, root, root) %{postfix_queue_dir}
%dir %attr(0755, root, root) %{postfix_queue_dir}/pid
%dir %attr(0700, %{postfix_user}, root) %{postfix_data_dir}
%dir %attr(0700, %{postfix_user}, root) %{postfix_queue_dir}/active
%dir %attr(0700, %{postfix_user}, root) %{postfix_queue_dir}/bounce
%dir %attr(0700, %{postfix_user}, root) %{postfix_queue_dir}/corrupt
%dir %attr(0700, %{postfix_user}, root) %{postfix_queue_dir}/defer
%dir %attr(0700, %{postfix_user}, root) %{postfix_queue_dir}/deferred
%dir %attr(0700, %{postfix_user}, root) %{postfix_queue_dir}/flush
%dir %attr(0700, %{postfix_user}, root) %{postfix_queue_dir}/hold
%dir %attr(0700, %{postfix_user}, root) %{postfix_queue_dir}/incoming
%dir %attr(0700, %{postfix_user}, root) %{postfix_queue_dir}/saved
%dir %attr(0700, %{postfix_user}, root) %{postfix_queue_dir}/trace
%dir %attr(0730, %{postfix_user}, %{maildrop_group}) 
%{postfix_queue_dir}/maildrop
%dir %attr(0710, %{postfix_user}, %{maildrop_group}) %{postfix_queue_dir}/public
%dir %attr(0700, %{postfix_user}, root) %{postfix_queue_dir}/private
%attr(2755, root, %{maildrop_group}) %{postfix_command_dir}/postdrop
%attr(2755, root, %{maildrop_group}) %{postfix_command_dir}/postqueue
%attr(0755, root, root) %{postfix_command_dir}/sendmail
%attr(0755, root, root) %{postfix_command_dir}/postalias
%attr(0755, root, root) %{postfix_command_dir}/postcat
%attr(0755, root, root) %{postfix_command_dir}/postconf
%attr(0755, root, root) %{postfix_command_dir}/postfix
%attr(0755, root, root) %{postfix_command_dir}/postkick
%attr(0755, root, root) %{postfix_command_dir}/postlock
%attr(0755, root, root) %{postfix_command_dir}/postlog
%attr(0755, root, root) %{postfix_command_dir}/postmap
%attr(0755, root, root) %{postfix_command_dir}/postmulti
%attr(0755, root, root) %{postfix_command_dir}/postsuper
%attr(0755, root, root) %{postfix_command_dir}/qshape
%attr(0755, root, root) %{postfix_command_dir}/pflogsumm
%attr(0644, root, root) %config(noreplace) %{postfix_config_dir}/access
%attr(0644, root, root) %config(noreplace) %{postfix_config_dir}/canonical
%attr(0644, root, root) %config(noreplace) %{postfix_config_dir}/generic
%attr(0644, root, root) %config(noreplace) %{postfix_config_dir}/header_checks
%attr(0644, root, root) %config(noreplace) %{postfix_config_dir}/relocated
%attr(0644, root, root) %config(noreplace) %{postfix_config_dir}/transport
%attr(0644, root, root) %config(noreplace) %{postfix_config_dir}/virtual
%attr(0755, root, root) %{postfix_daemon_dir}/[^mp]*
%attr(0644, root, root) %{postfix_daemon_dir}/main.cf
%attr(0644, root, root) %{postfix_daemon_dir}/master.cf
%attr(0755, root, root) %{postfix_daemon_dir}/master
%attr(0755, root, root) %{postfix_daemon_dir}/pickup
%attr(0755, root, root) %{postfix_daemon_dir}/pipe
%attr(0755, root, root) %{postfix_daemon_dir}/post-install
%attr(0644, root, root) %{postfix_daemon_dir}/postfix-files
%attr(0755, root, root) %{postfix_daemon_dir}/postfix-script
%attr(0755, root, root) %{postfix_daemon_dir}/postfix-wrapper
%attr(0755, root, root) %{postfix_daemon_dir}/postmulti-script
%attr(0755, root, root) %{postfix_daemon_dir}/postscreen
%attr(0755, root, root) %{postfix_daemon_dir}/proxymap
%attr(0755, root, root) %{_bindir}/mailq
%attr(0755, root, root) %{_bindir}/newaliases
%attr(0755, root, root) %{_bindir}/rmail
%config(noreplace) %{_sysconfdir}/pam.d/smtp.postfix

%files manpages
%defattr(-, root, root)
%{postfix_doc_dir}
%attr(0644, root, root) %{_mandir}/man1/*
%attr(0644, root, root) %{_mandir}/man5/*
%attr(0644, root, root) %{_mandir}/man8/*

%changelog
* Fri Feb 1 2013 Reindl Harald <h.rei...@thelounge.net>
- remove all the "alternatives" crap - we only use postfix

* Mon Jan 28 2013 Reindl Harald <h.rei...@thelounge.net>
- remove distribution configs from package

* Thu Jan 24 2013 Reindl Harald <h.rei...@thelounge.net>
- combine postfix and pflogsum in one package
- split out all manpages in a sub-package

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to