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 <h.rei...@thelounge.net>
- CapabilityBoundingSet=CAP_CHOWN CAP_SETGID CAP_SETUID CAP_DAC_OVERRIDE CAP_NET_BIND_SERVICE CAP_IPC_LOCK

* Thu Jul 18 2013 Reindl Harald <h.rei...@thelounge.net>
- 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 <h.rei...@thelounge.net>
- update to dbmail-3.0.3-pre GIT-snapshot for internal testing

* Fri Jun 21 2013 Reindl Harald <h.rei...@thelounge.net>
- update to dbmail-3.0.3-pre GIT-snapshot for internal testing

* Thu Jun 20 2013 Reindl Harald <h.rei...@thelounge.net>
- update to dbmail-3.0.3-pre GIT-snapshot for internal testing

* Tue Jun 18 2013 Reindl Harald <h.rei...@thelounge.net>
- fix rpath and add "%{_sysconfdir}/ld.so.conf.d/dbmail-x86_64.conf"

* Fri Mar 1 2013 Reindl Harald <h.rei...@thelounge.net>
- split docs in "dbmail-manpages" subpackage

* Wed Jan 30 2013 Reindl Harald <h.rei...@thelounge.net>
- use PrivateTmp

* Sat Apr 14 2012 Reindl Harald <h.rei...@thelounge.net>
- Build without LDAP

* Sat Apr 14 2012 Reindl Harald <h.rei...@thelounge.net>
- IMAP: fix leakage from optimize tokenizer change

* Thu Apr 12 2012 Reindl Harald <h.rei...@thelounge.net>
- 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 <h.rei...@thelounge.net>
- AUTOREPLY: check Precedence header

* Fri Apr 6 2012 Reindl Harald <h.rei...@thelounge.net>
- fix literal-s2c
- IMAP: fix SORT-ing on multiple criteria

* Sun Mar 11 2012 Reindl Harald <h.rei...@thelounge.net>
- 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 <h.rei...@thelounge.net>
- 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 <h.rei...@thelounge.net>
- 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 <h.rei...@thelounge.net>
- 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 <h.rei...@thelounge.net>
- 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 <h.rei...@thelounge.net>
- 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 <h.rei...@thelounge.net>
- 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 <h.rei...@thelounge.net>
- latest GIT-HEAD
- dbmail-3.0.1

* Thu Feb 21 2012 Reindl Harald <h.rei...@thelounge.net>
- latest GIT-HEAD
- POP3 fix RETR regression

* Thu Feb 16 2012 Reindl Harald <h.rei...@thelounge.net>
- speedup maintenance run
- don't run expensive queries twice
- move referencefield caching back to header cache

* Wed Feb 15 2012 Reindl Harald <h.rei...@thelounge.net>
- several fixes from upstream

* Tue Feb 14 2012 Reindl Harald <h.rei...@thelounge.net>
- fix LMTP bug destroying line with leading DOT

* Mon Feb 13 2012 Reindl Harald <h.rei...@thelounge.net>
- several fixes from upstream

* Fri Feb 10 2012 Reindl Harald <h.rei...@thelounge.net>
- mysql: use NOW() rather than CURRENT_TIMESTAMP

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
DBmail mailing list
DBmail@dbmail.org
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail

Reply via email to