Am 19.07.2013 14:21, schrieb Paul J Stevens: > On 07/19/2013 01:57 PM, Reindl Harald wrote: >> the current HEAD is broken, see errors below >> >> attached my RPM-SPEC, the only differnce in the builds is >> the used source tarball, config and systemd-units are the same > > Your build needs fixing, I assume.
i strictly disagree the SPEC file is compliant to fedora package / hardening guidelines > I cleaned up some of the autoconf stuff. Where are your modules > installed? Check the report generated after configure has completed. > Look for DM_PKGLIBDIR > > I've been trying to get dbmail to use sensible defaults. > > ../configure; make; make install but this should not break explicit configs https://fedoraproject.org/wiki/Packaging:RPMMacros http://fedoraproject.org/wiki/Packaging:Guidelines http://fedoraproject.org/wiki/Packaging:Guidelines#Compiler_flags http://fedoraproject.org/wiki/Packaging:Guidelines#Removing_Rpath > should autogenerated a dbmail.conf if /usr/local/etc/dbmail.conf is > writable /usr/local is *not* relevant - rpmbuild has it's virtual buildroot inside ~/rpmbuild/ > and will autogenerate a SQLite database in /tmp/, though that should > probably be in $HOME/dbmail.sqlite mysql - sqlite is no topic for me > I've also sanitized some of the configure switches: > --prefix > --libdir: modules go into LIBDIR/dbmail/ > --sysconfdir: location for dbmail.conf > --localstatedir: locate for the PID files maybe here is the problem > looks like you are doing some fonky edits on libtool and configure results in a hardened build (PIE, PIC, Full RELRO, canary/stack-protection, *no* RPATH) sed -i -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool removes the RPATH - that's why "/etc/ld.so.conf.d/dbmail-x86_64.conf" get installed http://fedoraproject.org/wiki/Packaging:Guidelines#Removing_Rpath [root@srv-rhsoft:~]$ cat /etc/ld.so.conf.d/dbmail-x86_64.conf /usr/lib64/dbmail export CFLAGS="%{optflags} -fPIC -fPIE -fstack-protector-all -I%{_includedir}/zdb" export CXXFLAGS="%{optflags} -fPIC -fPIE -fstack-protector-all -I%{_includedir}/zdb" export LDFLAGS="-Wl,-z,now -Wl,-z,relro,-z,noexecstack -pie" export SH_LDFLAGS="-Wl,-z,now -Wl,-z,relro,-z,noexecstack -pie" %configure --with-jemalloc=%{_prefix} --with-sieve --enable-manpages --enable-shared --enable-pie --with-pic --disable-static --without-ldap sed -i -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool %{__make} %{?_smp_mflags} > Those shouldn't be necessary if gentoo is LSB compliant Gentoo? this is Fedora - Gentoo has no RPM or rpmbuild
%global debug_package %{nil}
%define registry_uid 38
%define registry_name dbmail
%define services dbmail-imapd dbmail-pop3d dbmail-lmtpd dbmail-timsieved
%define git b2958774333d81a441061b2a36fd1f4ae8a45562
Name: dbmail
Version: 3.0.2
Release: 24%{?dist}.%git
Summary: A database backed mail storage system
Group: System Environment/Daemons
License: GPLv2+ and MIT
URL: http://www.dbmail.org
Source0: http://www.dbmail.org/download/3.0/%{name}-%{git}.tar.bz2
Source1: %{name}-imapd.service
Source2: %{name}-lmtpd.service
Source3: %{name}-pop3d.service
Source4: %{name}-timsieved.service
Source5: %{name}.cron
Source6: %{name}.logrotate
Source8: %{name}.sysconfig
Source9: %{name}.tmpfiles.d
BuildRequires: gmime-devel
BuildRequires: fileutils
BuildRequires: openssl-devel
BuildRequires: glib2-devel
BuildRequires: mhash-devel
BuildRequires: libsieve-devel
BuildRequires: libzdb-devel
BuildRequires: libevent-devel
BuildRequires: openldap-devel
BuildRequires: asciidoc
BuildRequires: xmlto
BuildRequires: jemalloc-devel
Requires: glib2
Requires: logrotate
Requires: vixie-cron
Requires: %{_sbindir}/sendmail
Requires: libzdb
Requires: sqlite
Requires: systemd-units
Provides: %{name}-sqlite = %{version}
Provides: %{name}-pgsql = %{version}
Provides: %{name}-mysql = %{version}
Requires(pre): shadow-utils, systemd-units
Requires(post): shadow-utils, systemd-units
Requires(preun): shadow-utils, systemd-units
%description
Dbmail is the name of a group of programs that enable the possiblilty of
storing and retrieving mail messages from a database
%package manpages
Group: System Environment/Daemons
Summary: %{name}-manpages and examples
%description manpages
%prep
%setup -q -n %{name}-%git
rm -f README*
sed -i 's/\(^driver\W*=\)\(\W*$\)/\1 sqlite/' %{name}.conf
sed -i -e 's,\(^db\W*=\)\(.*$\),\1 %{_sharedstatedir}/%{name}/%{name}.db,' -e 's/\(^authdriver\W*=\)\(\W*$\)/\1 sql/' -e 's/\(^EFFECTIVE_USER\W*=\)\(.*$\)/\1 %{name}/' -e 's/\(^EFFECTIVE_GROUP\W*=\)\(.*$\)/\1 %{name}/' %{name}.conf
sed -i 's/gmime-2.4/gmime-2.6/g' configure
%build
export CFLAGS="%{optflags} -fPIC -fPIE -fstack-protector-all -I%{_includedir}/zdb"
export CXXFLAGS="%{optflags} -fPIC -fPIE -fstack-protector-all -I%{_includedir}/zdb"
export LDFLAGS="-Wl,-z,now -Wl,-z,relro,-z,noexecstack -pie"
export SH_LDFLAGS="-Wl,-z,now -Wl,-z,relro,-z,noexecstack -pie"
%configure --with-jemalloc=%{_prefix} --with-sieve --enable-manpages --enable-shared --enable-pie --with-pic --disable-static --without-ldap
sed -i -e 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
%{__make} %{?_smp_mflags}
%install
make install-strip DESTDIR=%{buildroot}
mkdir -p %{buildroot}%{_mandir}/man{1,5,8}
mkdir -p %{buildroot}%{_sysconfdir}/cron.daily
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
mkdir -p %{buildroot}%{_sharedstatedir}/%{name}
install -p -m 755 %SOURCE5 %{buildroot}%{_sysconfdir}/cron.daily/%{name}
install -p -m 644 %SOURCE6 %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
install -p -m 644 %SOURCE8 %{buildroot}%{_sysconfdir}/sysconfig/%{name}
install -p -m 600 %{name}.conf %{buildroot}%{_sysconfdir}/
install -p -m 644 man/*1 %{buildroot}%{_mandir}/man1/
install -p -m 644 man/*5 %{buildroot}%{_mandir}/man5/
install -p -m 644 man/*8 %{buildroot}%{_mandir}/man8/
mkdir -p %{buildroot}%{_unitdir}/
install -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/
install -m 0644 %{SOURCE2} %{buildroot}%{_unitdir}/
install -m 0644 %{SOURCE3} %{buildroot}%{_unitdir}/
install -m 0644 %{SOURCE4} %{buildroot}%{_unitdir}/
mkdir -p %{buildroot}%{_prefix}/lib/tmpfiles.d
install -m 0644 %{SOURCE9} %{buildroot}%{_prefix}/lib/tmpfiles.d/%{name}.conf
find %{buildroot} -name \*\.la -print | xargs rm -f
rm -f %{buildroot}%{_libdir}/%{name}/libdbmail.so
mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d
echo "%{_libdir}/%{name}" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf
%pre
getent group %{name} >/dev/null || groupadd -r %{name}
getent passwd %{name} >/dev/null || useradd -r -M -g %{name} -d / -s %{_sbindir}/nologin -c "DBMail Daemon" %{name}
exit 0
%post
%{_bindir}/systemctl --system daemon-reload 2> /dev/null > /dev/null
%{_sbindir}/ldconfig
mkdir %{_var}/run/%{name} 2> /dev/null > /dev/null
chown %{name}:%{name} %{_var}/run/%{name} 2> /dev/null > /dev/null
chmod 755 %{_var}/run/%{name} 2> /dev/null > /dev/null
exit 0
%preun
if [ $1 == 0 ]; then
for s in %services; do
%{_bindir}/systemctl --no-reload disable $s.service 2> /dev/null > /dev/null
%{_bindir}/systemctl stop $s.service 2> /dev/null > /dev/null
done
fi
exit 0
%postun
if [ "$1" -eq "0" ]; then
%{_sbindir}/ldconfig
fi
%{_bindir}/systemctl --system daemon-reload 2> /dev/null > /dev/null
exit 0
%files
%exclude %{_mandir}/man1/*
%exclude %{_mandir}/man5/*
%exclude %{_mandir}/man8/*
%{_sbindir}/*
%dir %{_libdir}/%{name}
%{_libdir}/%{name}/libauth_sql*
%{_libdir}/%{name}/libdbmail*
%{_libdir}/%{name}/libsort_sieve*
%attr(0644, root, root) %{_unitdir}/%{name}-*.service
%config(noreplace) %{_sysconfdir}/%{name}.conf
%config(noreplace) %{_sysconfdir}/cron.daily/%{name}
%config(noreplace) %{_sysconfdir}/sysconfig/%{name}
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
%dir %attr(0775,root,%{name}) %{_sharedstatedir}/%{name}
%{_prefix}/lib/tmpfiles.d/%{name}.conf
%{_sysconfdir}/ld.so.conf.d/*
%files manpages
%doc INSTALL UPGRADING sql %{name}.schema
%{_mandir}/man1/*
%{_mandir}/man5/*
%{_mandir}/man8/*
%changelog
* Fri Jul 19 2013 Reindl Harald <[email protected]>
- CapabilityBoundingSet=CAP_CHOWN CAP_SETGID CAP_SETUID CAP_DAC_OVERRIDE CAP_NET_BIND_SERVICE CAP_IPC_LOCK
* Thu Jul 18 2013 Reindl Harald <[email protected]>
- update to dbmail-3.0.3-pre GIT-snapshot for internal testing
- CapabilityBoundingSet=CAP_CHOWN CAP_SETGID CAP_SETUID CAP_DAC_OVERRIDE CAP_KILL CAP_NET_BIND_SERVICE CAP_IPC_LOCK CAP_SYS_CHROOT
* Mon Jun 24 2013 Reindl Harald <[email protected]>
- update to dbmail-3.0.3-pre GIT-snapshot for internal testing
* Fri Jun 21 2013 Reindl Harald <[email protected]>
- update to dbmail-3.0.3-pre GIT-snapshot for internal testing
* Thu Jun 20 2013 Reindl Harald <[email protected]>
- update to dbmail-3.0.3-pre GIT-snapshot for internal testing
* Tue Jun 18 2013 Reindl Harald <[email protected]>
- fix rpath and add "%{_sysconfdir}/ld.so.conf.d/dbmail-x86_64.conf"
* Fri Mar 1 2013 Reindl Harald <[email protected]>
- split docs in "dbmail-manpages" subpackage
* Wed Jan 30 2013 Reindl Harald <[email protected]>
- use PrivateTmp
* Sat Apr 14 2012 Reindl Harald <[email protected]>
- Build without LDAP
* Sat Apr 14 2012 Reindl Harald <[email protected]>
- IMAP: fix leakage from optimize tokenizer change
* Thu Apr 12 2012 Reindl Harald <[email protected]>
- IMAP: config option MAX_MESSAGE_SIZE allowed by APPEND
- IMAP: optimize tokenizer for large APPENDs
- IMAP: fix back-propagation of append errors
- DELIVERY: make soft/hard bounce on over-quota configurable
* Tue Apr 10 2012 Reindl Harald <[email protected]>
- AUTOREPLY: check Precedence header
* Fri Apr 6 2012 Reindl Harald <[email protected]>
- fix literal-s2c
- IMAP: fix SORT-ing on multiple criteria
* Sun Mar 11 2012 Reindl Harald <[email protected]>
- Add precedence: bulk headers to auto-reply messages
- POP3: reset timeout after authentication
- IMAP: internal_date and memleaks cleanups
- IMAP: improve sorting by date
- IMAP: sanitize searchable storage of addresses
* Wed Mar 07 2012 Reindl Harald <[email protected]>
- IMAP: revert another misguided LIST/LSUB change 2/2
- IMAP: revert another misguided LIST/LSUB change
- IMAP: improve searchable cache value of address headers
- IMAP: improve reliabity of SEARCH SENTON
- IMAP: improve mailboxstate tracking
- IMAP: rework \recent flag handling
* Fri Mar 02 2012 Reindl Harald <[email protected]>
- push mailbox updates properly
- IMAP: fix FETCH regression
- IMAP: update test-runners
- IMAP: small leak in SEARCH unkeyword
- IMAP: fix validation of sequences
- IMAP: implement "SEARCH keyword"
* Thu Mar 01 2012 Reindl Harald <[email protected]>
- IMAP: update tests
- IMAP: test and fix sequence-set builder
- IMAP: test and fix date converter
- IMAP: re-organize tests
- IMAP: fix small leak
- SIEVE: fix broken vacation reply
* Mon Feb 27 2012 Reindl Harald <[email protected]>
- DELIVERY: fix check_destination during autoreply
- revert misguided LIST/LSUB change
- IMAP: small ENVELOPE fix
- IMAP: fix minor compiler warnings
- HTTP: update test-script
* Sat Feb 25 2012 Reindl Harald <[email protected]>
- LMTP: fix segfault
- check results from address parser for null values
- IMAP: improve LIST/LSUB response
- don't show \hasnochildren or \haschildren when using % matching pattern
- also show first level unsubscribed mailboxes with \noselect when using % pattern
* Thu Feb 23 2012 Reindl Harald <[email protected]>
- POP3: fix TOP command
- refactor regression from TOP fix in previous commit,
- bytestuff RETR response
- update the pop3 integration tests
- using the dovecot imaptest tool to test for IMAP compliance
- adds read-committed atomicity to mailbox state, if the database supports it
- LMTP: PEP8 integration tests
- add test for #960
* Wed Feb 22 2012 Reindl Harald <[email protected]>
- latest GIT-HEAD
- dbmail-3.0.1
* Thu Feb 21 2012 Reindl Harald <[email protected]>
- latest GIT-HEAD
- POP3 fix RETR regression
* Thu Feb 16 2012 Reindl Harald <[email protected]>
- speedup maintenance run
- don't run expensive queries twice
- move referencefield caching back to header cache
* Wed Feb 15 2012 Reindl Harald <[email protected]>
- several fixes from upstream
* Tue Feb 14 2012 Reindl Harald <[email protected]>
- fix LMTP bug destroying line with leading DOT
* Mon Feb 13 2012 Reindl Harald <[email protected]>
- several fixes from upstream
* Fri Feb 10 2012 Reindl Harald <[email protected]>
- mysql: use NOW() rather than CURRENT_TIMESTAMP
signature.asc
Description: OpenPGP digital signature
_______________________________________________ DBmail mailing list [email protected] http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail
