Accepting request 280420 from server:mail

- Cleanup with spec-cleaner
- Remove support for <12.3 as it does not build anyway.
- Fix krb5 switches
- Provide proper rcbla controler for the service

- build with PIE

OBS-URL: https://build.opensuse.org/request/show/280420
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/fetchmail?expand=0&rev=64
This commit is contained in:
Dominique Leuenberger 2015-01-09 19:50:25 +00:00 committed by Git OBS Bridge
commit dc9b82541d
5 changed files with 56 additions and 308 deletions

2
.gitattributes vendored
View File

@ -21,5 +21,3 @@
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
## Specific LFS patterns
fetchmail.xpm filter=lfs diff=lfs merge=lfs -text

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Thu Jan 8 16:04:11 UTC 2015 - tchvatal@suse.com
- Cleanup with spec-cleaner
- Remove support for <12.3 as it does not build anyway.
- Fix krb5 switches
- Provide proper rcbla controler for the service
-------------------------------------------------------------------
Mon Dec 29 13:46:10 UTC 2014 - meissner@suse.com
- build with PIE
-------------------------------------------------------------------
Fri Dec 5 13:06:55 UTC 2014 - lmuelle@suse.com

View File

@ -1,223 +0,0 @@
#! /bin/sh
# Copyright (c) 1995-2008 SuSE Linux AG, Nuernberg, Germany.
# All rights reserved.
#
# Author: Stanislav Brabec <sbrabec@suse.cz>
#
# /etc/init.d/fetchmail
#
### BEGIN INIT INFO
# Provides: fetchmail
# Required-Start: $syslog $network $remote_fs sendmail
# Should-Start:
# Required-Stop: $syslog $network $remote_fs sendmail
# Should-Stop:
# Default-Start: 3 5
# Default-Stop: 0 1 2 6
# Short-Description: Fetch mails for configured users
# Description: Start fetchmail as root and fetch mails for configured users.
# You must create configuration file /etc/fetchmailrc first.
### END INIT INFO
#
# Check for missing binaries (stale symlinks should not happen)
# Note: Special treatment of stop for LSB conformance
FETCHMAIL_BIN=/usr/bin/fetchmail
test -x $FETCHMAIL_BIN || { echo "$FETCHMAIL_BIN not installed";
if [ "$1" = "stop" ]; then exit 0;
else exit 5; fi; }
# Check for existence of needed config file and read it
FETCHMAIL_CONFIG=/etc/sysconfig/fetchmail
test -r $FETCHMAIL_CONFIG || { echo "$FETCHMAIL_CONFIG not existing";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }
# Read config
FETCHMAIL_POLLING_INTERVAL="600"
FETCHMAIL_FETCHALL="yes"
FETCHMAIL_SILENT="no"
FETCHMAIL_USER="fetchmail"
FETCHMAIL_EXPERT_OPTIONS=""
. $FETCHMAIL_CONFIG
test -r $FETCHMAIL_RC_PATH || { echo "$FETCHMAIL_RC_PATH not existing";
if [ "$1" = "stop" ]; then exit 0;
else exit 6; fi; }
FETCHMAIL_FETCHALL_OPTION=
if [ "$FETCHMAIL_FETCHALL" = "yes" ] ; then
FETCHMAIL_FETCHALL_OPTION=" -a"
fi
FETCHMAIL_SILENT_OPTION=
if [ "$FETCHMAIL_SILENT" = "yes" ] ; then
FETCHMAIL_SILENT_OPTION=" -s"
fi
if [ "$FETCHMAIL_USER" = "fetchmail" ] ; then
if [ -z "$FETCHMAILHOME" ] ; then
export FETCHMAILHOME=/var/lib/fetchmail
fi
fi
# Shell functions sourced from /etc/rc.status:
# rc_check check and set local and overall rc status
# rc_status check and set local and overall rc status
# rc_status -v be verbose in local rc status and clear it afterwards
# rc_status -v -r ditto and clear both the local and overall rc status
# rc_status -s display "skipped" and exit with status 3
# rc_status -u display "unused" and exit with status 3
# rc_failed set local and overall rc status to failed
# rc_failed <num> set local and overall rc status to <num>
# rc_reset clear both the local and overall rc status
# rc_exit exit appropriate to overall rc status
# rc_active checks whether a service is activated by symlinks
# rc_splash arg sets the boot splash screen to arg (if active)
. /etc/rc.status
# Reset status of this service
rc_reset
# Return values acc. to LSB for all commands but status:
# 0 - success
# 1 - generic or unspecified error
# 2 - invalid or excess argument(s)
# 3 - unimplemented feature (e.g. "reload")
# 4 - user had insufficient privileges
# 5 - program is not installed
# 6 - program is not configured
# 7 - program is not running
# 8--199 - reserved (8--99 LSB, 100--149 distrib, 150--199 appl)
#
# Note that starting an already running service, stopping
# or restarting a not-running service as well as the restart
# with force-reload (in case signaling is not supported) are
# considered a success.
case "$1" in
oneshot)
# Check for mails once just now.
if checkproc $FETCHMAIL_BIN ; then
# Trigger fetching of existing daemon. Root UID is OK.
su $FETCHMAIL_USER -s /bin/sh -c $FETCHMAIL_BIN
else
startproc -u $FETCHMAIL_USER $FETCHMAIL_BIN -d 0$FETCHMAIL_FETCHALL_OPTION$FETCHMAIL_SILENT_OPTION $FETCHMAIL_EXPERT_OPTIONS -f $FETCHMAIL_RC_PATH -L /var/log/fetchmail 2>&1
fi
# Remember status and don'ŧ be verbose
rc_status
;;
start)
if [ $# -ge 2 ]; then
if echo "$2" | grep -E "^[0-9]+$" >& /dev/null ; then
FETCHMAIL_POLLING_INTERVAL="$2"
else
echo "Invalid polling interval specified: '$2', using default: $FETCHMAIL_POLLING_INTERVAL"
fi
fi
echo -n "Starting fetchmail"
## Start daemon with startproc(8). If this fails
## the return value is set appropriately by startproc.
startproc -u $FETCHMAIL_USER $FETCHMAIL_BIN -d $FETCHMAIL_POLLING_INTERVAL$FETCHMAIL_FETCHALL_OPTION$FETCHMAIL_SILENT_OPTION $FETCHMAIL_EXPERT_OPTIONS -f $FETCHMAIL_RC_PATH -L /var/log/fetchmail 2>&1
# Remember status and be verbose
rc_status -v
;;
stop)
echo -n "Shutting down fetchmail"
## Stop daemon with killproc(8) and if this fails
## killproc sets the return value according to LSB.
killproc -TERM $FETCHMAIL_BIN
# Remember status and be verbose
rc_status -v
;;
try-restart|condrestart)
## Do a restart only if the service was active before.
## Note: try-restart is now part of LSB (as of 1.9).
## RH has a similar command named condrestart.
if test "$1" = "condrestart"; then
echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
fi
$0 status
if test $? = 0; then
$0 restart $2
else
rc_reset # Not running is not a failure.
fi
# Remember status and be quiet
rc_status
;;
restart)
## Stop the service and regardless of whether it was
## running or not, start it again.
$0 stop
$0 start $2
# Remember status and be quiet
rc_status
;;
force-reload)
## Signal the daemon to reload its config. Most daemons
## do this on signal 1 (SIGHUP).
## If it does not support it, restart.
echo -n "Reload service fetchmail"
## if it supports it:
killproc -HUP $FETCHMAIL_BIN
#touch /var/run/fetchmail.pid
rc_status -v
## Otherwise:
#$0 stop && $0 start
#rc_status
;;
reload)
## Like force-reload, but if daemon does not support
## signaling, do nothing (!)
# If it supports signaling:
echo -n "Reload service fetchmail"
killproc -HUP $FETCHMAIL_BIN
#touch /var/run/fetchmail.pid
rc_status -v
## Otherwise if it does not support reload:
#rc_failed 3
#rc_status -v
;;
status)
echo -n "Checking for service fetchmail"
## Check status with checkproc(8), if process is running
## checkproc will return with exit status 0.
# Return value is slightly different for the status command:
# 0 - service up and running
# 1 - service dead, but /var/run/ pid file exists
# 2 - service dead, but /var/lock/ lock file exists
# 3 - service not running (unused)
# 4 - service status unknown :-(
# 5--199 reserved (5--99 LSB, 100--149 distro, 150--199 appl.)
# NOTE: checkproc returns LSB compliant status values.
checkproc $FETCHMAIL_BIN
# NOTE: rc_status knows that we called this init script with
# "status" option and adapts its messages accordingly.
rc_status -v
;;
probe)
## Optional: Probe for the necessity of a reload, print out the
## argument to this init script which is required for a reload.
## Note: probe is not (yet) part of LSB (as of 1.9)
test $FETCHMAIL_CONFIG -nt /var/run/fetchmail.pid || test $FETCHMAIL_RC_PATH -nt /var/run/fetchmail.pid && echo reload
;;
*)
echo "Usage: $0 {oneshot|start|stop|status|try-restart|restart|force-reload|reload} [polling interval]"
exit 1
;;
esac
rc_exit

View File

@ -1,7 +1,7 @@
#
# spec file for package fetchmail
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2015 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -17,6 +17,20 @@
Name: fetchmail
Version: 6.3.26
Release: 0
Summary: Full-Featured POP and IMAP Mail Retrieval Daemon
License: GPL-2.0+
Group: Productivity/Networking/Email/Utilities
Url: http://www.fetchmail.info/
Source: http://sourceforge.net/projects/fetchmail/files/branch_6.3/%{name}-%{version}.tar.xz
Source2: %{name}.logrotate
Source3: sysconfig.%{name}
Source4: http://sourceforge.net/projects/fetchmail/files/branch_6.3/%{name}-%{version}.tar.xz.asc
Source5: %{name}.keyring
Source6: %{name}.service
Source7: %{name}.tmpfiles
Patch0: fetchmail-6.3.8-smtp_errors.patch
BuildRequires: automake
BuildRequires: krb5-devel
BuildRequires: openssl-devel
@ -25,38 +39,15 @@ BuildRequires: postfix
BuildRequires: procmail
BuildRequires: pwdutils
BuildRequires: python-devel
Version: 6.3.26
Release: 0
Summary: Full-Featured POP and IMAP Mail Retrieval Daemon
License: GPL-2.0+
Group: Productivity/Networking/Email/Utilities
Url: http://www.fetchmail.info/
# The fetchmail-{EN,SA}-*.txt security advisories
# were relicensed to CC BY-ND 3.0, so there's no need
# to repack the tarball without them anymore (bnc#713698)
Source: http://sourceforge.net/projects/fetchmail/files/branch_6.3/%{name}-%{version}.tar.xz
Source1: %{name}.init
Source2: %{name}.logrotate
Source3: sysconfig.%{name}
Source4: http://sourceforge.net/projects/fetchmail/files/branch_6.3/%{name}-%{version}.tar.xz.asc
Source5: %{name}.keyring
Source6: %{name}.service
Source7: %{name}.tmpfiles
Patch0: fetchmail-6.3.8-smtp_errors.patch
%if 0%{?suse_version} >=1230
BuildRequires: pkgconfig(systemd)
%{?systemd_requires}
%else
Requires(pre): %insserv_prereq
%endif
BuildRequires: xz
Requires: logrotate
Requires(pre): %fillup_prereq
Requires(pre): coreutils
Requires(pre): pwdutils
BuildRequires: xz
Requires: logrotate
Suggests: smtp_daemon
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Icon: fetchmail.xpm
BuildRequires: pkgconfig(systemd)
%{?systemd_requires}
%description
Fetchmail is a robust and well-documented remote mail retrieval and
@ -81,31 +72,24 @@ A GUI configuration utility for generating fetchmail configuration
files (.fetchmailrc).
%prep
%setup -q -n %{name}-%{version}
%setup -q
%patch0 -p1
cp -a %{SOURCE1} %{SOURCE2} %{SOURCE3} .
cp -a %{SOURCE2} %{SOURCE3} .
ACLOCAL="aclocal -I m4 -I m4-local" autoreconf -fvi
%build
%if 0%{?suse_version} > 1010
ACLOCAL="aclocal -I m4 -I m4-local" autoreconf -f -i
%endif
if [ -f /usr/%{_lib}/libkrb5.so ] ; then
GSS="--with-gssapi"
else
GSS=""
fi
%configure\
--enable-POP2\
--enable-RPA\
--enable-NTLM\
--enable-SDPS\
--enable-opie\
%if 0%{?with_krb5}
--with-kerberos5\
$GSS\
%endif
export CFLAGS="%{optflags} -fPIE"
%configure \
--enable-POP2 \
--enable-RPA \
--enable-NTLM \
--enable-SDPS \
--enable-opie \
--with-kerberos5 \
--with-gssapi \
--with-ssl=/usr
make %{?_smp_mflags}
make %{?_smp_mflags} LDFLAGS="-pie"
%install
%make_install
@ -113,17 +97,12 @@ ln -sf fetchmail.1.gz %{buildroot}/%{_mandir}/man1/fetchmailconf.1.gz
mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d
cp fetchmail.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/fetchmail
mkdir -p %{buildroot}/sbin
%if 0%{?suse_version} >=1230
mkdir -p $RPM_BUILD_ROOT/%{_unitdir}
mkdir -p $RPM_BUILD_ROOT/%{_libexecdir}/tmpfiles.d
install -m 0644 %{S:6} $RPM_BUILD_ROOT/%{_unitdir}/%{name}.service
install -m 0644 %{S:7} $RPM_BUILD_ROOT/%{_libexecdir}/tmpfiles.d/%{name}.conf
%else
mkdir -p %{buildroot}%{_sysconfdir}/init.d
cp fetchmail.init %{buildroot}%{_initddir}/fetchmail
chmod +x %{buildroot}%{_initddir}/fetchmail
ln -s ../etc/init.d/fetchmail %{buildroot}/sbin/rcfetchmail
%endif
mkdir -p %{buildroot}/%{_unitdir}
mkdir -p %{buildroot}/%{_libexecdir}/tmpfiles.d
install -m 0644 %{SOURCE6} %{buildroot}/%{_unitdir}/%{name}.service
install -m 0644 %{SOURCE7} %{buildroot}/%{_libexecdir}/tmpfiles.d/%{name}.conf
mkdir -p %{buildroot}%{_sbindir}
ln -s service %{buildroot}%{_sbindir}/rc%{name}
touch %{buildroot}%{_sysconfdir}/fetchmailrc
mkdir -p %{buildroot}%{_localstatedir}/adm/fillup-templates
cp sysconfig.%{name} %{buildroot}%{_localstatedir}/adm/fillup-templates
@ -137,34 +116,22 @@ rm -r contrib/gai*
%pre
usr/sbin/useradd -r -g daemon -s /bin/false \
-c "mail retrieval daemon" -d /var/lib/fetchmail fetchmail 2>/dev/null || :
%if 0%{?suse_version} >=1230
-c "mail retrieval daemon" -d %{_localstatedir}/lib/fetchmail fetchmail 2>/dev/null || :
%service_add_pre %{name}.service
%endif
%post
%if 0%{?suse_version} >=1230
%{fillup_only}
%fillup_only
%service_add_post %{name}.service
%else
%{fillup_and_insserv}
%endif
# Ensure that all files are readable by fetchmail with non-root UID.
touch var/log/fetchmail
chown fetchmail var/log/fetchmail
chmod 0600 var/log/fetchmail
%preun
%if 0%{?suse_version} >=1230
%service_del_preun %{name}.service
%endif
%service_del_preun %{name}.service
%postun
%if 0%{?suse_version} >=1230
%service_del_postun %{name}.service
%else
%{insserv_cleanup}
%endif
if [ $1 = 0 ]; then
rm -rf var/lib/fetchmail
fi
@ -178,13 +145,9 @@ fi
%doc COPYING FAQ FEATURES NEWS NOTES OLDNEWS README README.NTLM README.SSL README.SSL-SERVER TODO contrib *.html *.txt *.pdf
%ghost %config(noreplace) %attr(0600, fetchmail, root) %{_sysconfdir}/fetchmailrc
%config(noreplace) %{_sysconfdir}/logrotate.d/fetchmail
%if 0%{?suse_version} >=1230
%{_unitdir}/%{name}.service
%{_sbindir}/rc%{name}
%{_libexecdir}/tmpfiles.d/%{name}.conf
%else
%{_sysconfdir}/init.d/fetchmail
/sbin/rcfetchmail
%endif
%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}
%files -n fetchmailconf

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a63b6193339d8541557d032922acdfa31ab62b3bb4c3c7fdf1ab91f3f8d24438
size 10639