]> git.pld-linux.org Git - packages/fcron.git/blobdiff - fcron.spec
This commit was manufactured by cvs2git to create branch 'AC-branch'.
[packages/fcron.git] / fcron.spec
index 5d6ceb3a4af7b9dc4173b50bd18185ccbbfd1aa9..0a0d0f83361304762bf958fb6fe4d6966c160fca 100644 (file)
@@ -1,33 +1,47 @@
+# TODO:
+# - check -mail_output_only_if_there_is_output.patch. I'm not sure we need it in >= 3.0.4 version
 Summary:       A periodical command scheduler which aims at replacing Vixie Cron
-Summary(pl):   Serwer okresowego uruchamiania poleceñ zastepuj±cy Vixie Crona
+Summary(pl.UTF-8):     Serwer okresowego uruchamiania poleceń zastępujący Vixie Crona
 Name:          fcron
-Version:       2.9.4
-Release:       1
-License:       GPL
+Version:       3.0.4
+Release:       2
+License:       GPL v2+
 Group:         Daemons
-Source0:       http://fcron.free.fr/%{name}-%{version}.src.tar.gz
-# Source0-md5: 4bfcff1002a7231f374591511bacadb2
+Source0:       http://fcron.free.fr/archives/%{name}-%{version}.src.tar.gz
+# Source0-md5: 5a26a1dfd91fdc7e87401e98aef870e6
 Source1:       %{name}.init
 Source2:       cron.logrotate
 Source3:       cron.sysconfig
 Source4:       %{name}.crontab
 Source5:       %{name}.pam
+Source6:       %{name}.conf
+Source7:       %{name}tab.pam
+Source8:       %{name}.systab
+Patch0:                %{name}-configure.patch
+Patch1:                %{name}-Makefile.patch
 URL:           http://fcron.free.fr/
+# configure tests -x (check can be removed, just like sendmail)
+BuildRequires: /bin/vi
+BuildRequires: autoconf
+BuildRequires: automake
 BuildRequires: libselinux-devel
 BuildRequires: pam-devel
-PreReq:                rc-scripts
-Requires(pre): /usr/bin/getgid
-Requires(pre): /usr/sbin/groupadd
-Requires(post,preun):  /sbin/chkconfig
+BuildRequires: rpmbuild(macros) >= 1.268
 Requires(post):        fileutils
+Requires(post,preun):  /sbin/chkconfig
 Requires(postun):      /usr/sbin/groupdel
+Requires(pre): /bin/id
+Requires(pre): /usr/bin/getgid
+Requires(pre): /usr/sbin/groupadd
+Requires(pre): /usr/sbin/useradd
 Requires:      /bin/run-parts
 Requires:      psmisc >= 20.1
-Provides:      crontabs >= 1.7
+Requires:      rc-scripts
 Provides:      crondaemon
-Obsoletes:     crontabs
+Provides:      crontabs = 1.7
+Provides:      group(crontab)
 Obsoletes:     crondaemon
-Obsoletes:     hc-cron
+Obsoletes:     crontabs
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %description
@@ -39,21 +53,27 @@ minutes of system up time or to do a job only once in a specified
 interval of time. You can also set a nice value to a job, run it
 depending on the system load average and much more !
 
-%description -l pl
-Fcron jest serwerem okresowego uruchamiania poleceñ maj±cym za cel
-zast±pienie Vixie Crona, posiadaj±cym zaimplementowane wiêkszo¶æ
-spo¶ród jego funkcji. Jednak¿e fcron nie zak³ada, ¿e system dzia³a
-ca³y czas, ani ¿e jest uruchamiany regularnie: mo¿na, na przyk³ad,
-kazaæ fcronowi uruchamiaæ zadanie co ka¿de x godzin y minut od
-uruchomienia systemu lub wykonywaæ zadanie dok³adnie raz w podanym
-okresie czasu. Umo¿liwia równie¿ ustawianie warto¶ci nice dla zadania,
-uruchamianie go w zale¿no¶ci od obci±¿enia systemu i du¿o wiêcej.
+%description -l pl.UTF-8
+Fcron jest serwerem okresowego uruchamiania poleceń mającym za cel
+zastąpienie Vixie Crona, posiadającym zaimplementowane większość
+spośród jego funkcji. Jednakże fcron nie zakłada, że system działa
+cały czas, ani że jest uruchamiany regularnie: można, na przykład,
+kazać fcronowi uruchamiać zadanie co każde x godzin y minut od
+uruchomienia systemu lub wykonywać zadanie dokładnie raz w podanym
+okresie czasu. Umożliwia również ustawianie wartości nice dla zadania,
+uruchamianie go w zależności od obciążenia systemu i dużo więcej.
 
 %prep
 %setup -q
+%patch0 -p1
+%patch1 -p1
 
 %build
+%{__aclocal}
+%{__autoconf}
 %configure \
+       --with-sendmail=/usr/sbin/sendmail \
+       --with-sysfcrontab=systab \
        --with-spooldir=%{_var}/spool/cron \
        --with-run-non-privileged=no \
        --with-boot-install=no \
@@ -61,9 +81,14 @@ uruchamianie go w zale
        --with-username=crontab \
        --with-groupname=crontab \
        --with-pam=yes \
-       --with-selinux=yes
+       --with-selinux=yes \
+       --with-boot-install=no \
+       --with-editor=/bin/vi
 
-%{__make}
+%{__make} \
+       OPTION="%{rpmcflags}"
+
+echo "#!/bin/sh" > script/user-group
 
 %install
 rm -rf $RPM_BUILD_ROOT
@@ -71,66 +96,78 @@ install -d $RPM_BUILD_ROOT{/var/{log,spool/cron},%{_mandir}} \
        $RPM_BUILD_ROOT/etc/{rc.d/init.d,logrotate.d,sysconfig} \
        $RPM_BUILD_ROOT%{_sysconfdir}/{cron,cron.{d,hourly,daily,weekly,monthly},pam.d}
 
-%{__make} install \
+%{__make} install-staged \
        DESTDIR=$RPM_BUILD_ROOT \
-       DESTMAN=$RPM_BUILD_ROOT%{_mandir}
+       ROOTNAME=$(id -u) \
+       ROOTGROUP=$(id -g) \
+       USERNAME=$(id -u) \
+       GROUPNAME=$(id -g)
+
+#fix premission for rpmbuild
+chmod +rw $RPM_BUILD_ROOT%{_prefix}/*bin/*
+
+ln -sf %{_bindir}/fcrontab $RPM_BUILD_ROOT%{_bindir}/crontab
+mv -f $RPM_BUILD_ROOT%{_sbindir}/fcron $RPM_BUILD_ROOT%{_sbindir}/crond
 
 install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/crond
 install %{SOURCE2} $RPM_BUILD_ROOT/etc/logrotate.d/cron
 install %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/cron
 install %{SOURCE4} $RPM_BUILD_ROOT/etc/cron.d/crontab
-install %{SOURCE6} $RPM_BUILD_ROOT/etc/pam.d/cron
-
-for a in fi fr id ja ko pl ; do
-       if test -f $a/man1/crontab.1 ; then
-               install -d $RPM_BUILD_ROOT%{_mandir}/$a/man1
-               install $a/man1/crontab.1 $RPM_BUILD_ROOT%{_mandir}/$a/man1
-       fi
-       if test -f $a/man5/crontab.5 ; then
-               install -d $RPM_BUILD_ROOT%{_mandir}/$a/man5
-               install $a/man5/crontab.5 $RPM_BUILD_ROOT%{_mandir}/$a/man5
-       fi
-       if test -f $a/man8/cron.8 ; then
-               install -d $RPM_BUILD_ROOT%{_mandir}/$a/man8
-               install $a/man8/cron.8 $RPM_BUILD_ROOT%{_mandir}/$a/man8
-               echo .so cron.8 > $RPM_BUILD_ROOT%{_mandir}/$a/man8/crond.8
-       fi
-done
+install %{SOURCE5} $RPM_BUILD_ROOT/etc/pam.d/fcron
+install %{SOURCE6} $RPM_BUILD_ROOT%{_sysconfdir}/fcron.conf
+install %{SOURCE7} $RPM_BUILD_ROOT/etc/pam.d/fcrontab
+install %{SOURCE8} $RPM_BUILD_ROOT/etc/cron.hourly/fcron.systab
 
 touch $RPM_BUILD_ROOT/var/log/cron
 
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.allow << EOF
-# cron.allow   This file describes the names of the users which are
-#               allowed to use the local cron daemon
+cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.allow << 'EOF'
+# cron.allow   This file describes the names of the users which are
+#              allowed to use the local cron daemon
 root
 EOF
 
-cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.deny << EOF2
-# cron.deny    This file describes the names of the users which are
-#               NOT allowed to use the local cron daemon
-EOF2
+cat > $RPM_BUILD_ROOT%{_sysconfdir}/cron/cron.deny << 'EOF'
+# cron.deny    This file describes the names of the users which are
+#              NOT allowed to use the local cron daemon
+EOF
 
 %clean
 rm -rf $RPM_BUILD_ROOT
 
 %pre
-if [ -n "`/usr/bin/getgid crontab`" ]; then
-       if [ "`/usr/bin/getgid crontab`" != "117" ]; then
-               echo "Error: group crontab doesn't have gid=117. Correct this before installing cron." 1>&2
-               exit 1
+%groupadd -g 117 -r -f crontab
+%useradd -u 134 -r -d /var/spool/cron -s /bin/false -c "crontab User" -g crontab crontab
+
+%post
+if [ "$1" = "1" ]; then
+       if [ -d /var/spool/cron ]; then
+               FIND=`find /var/spool/cron -type f`
+               for FILE in $FIND; do
+                       mv -f $FILE $FILE.orig
+                       USER=`basename $FILE`
+                       chown crontab:crontab $FILE.orig
+                       chmod 640 $FILE.orig
+                       (test ! -z "$USER" && fcrontab -u $USER -z) > /dev/null 2>&1
+               done
+               if [ -f /var/spool/cron/root.orig ]; then
+                       chmod 600 /var/spool/cron/root.orig
+                       chown root:root /var/spool/cron/root.orig
+               fi
        fi
-else
-       echo "Adding group crontab GID=117."
-       /usr/sbin/groupadd -g 117 -r -f crontab
 fi
 
-%post
-/sbin/chkconfig --add crond
-if [ -f /var/lock/subsys/crond ]; then
-       /etc/rc.d/init.d/crond restart >&2
-else
-       echo "Run \"/etc/rc.d/init.d/crond start\" to start cron daemon."
+if [ "$1" = "2" ]; then
+       FIND=`find /var/spool/cron -name \*.orig`
+       for FILE in $FIND; do
+               BASENAME=`basename $FILE`
+               USER=`echo "$BASENAME"| sed 's/.orig//'`
+               [ ! -z "$USER" ] && fcrontab -u $USER -z > /dev/null 2>&1
+       done
 fi
+
+/sbin/chkconfig --add crond
+%service crond restart "Cron Daemon"
+
 umask 027
 touch /var/log/cron
 chgrp crontab /var/log/cron
@@ -138,85 +175,66 @@ chmod 660 /var/log/cron
 
 %preun
 if [ "$1" = "0" ]; then
-       if [ -f /var/lock/subsys/crond ]; then
-               /etc/rc.d/init.d/crond stop >&2
-       fi
+       %service crond stop
        /sbin/chkconfig --del crond
+
+       rm -f /var/spool/cron/systab*
+
+       FIND=`find /var/spool/cron -name '*.orig'`
+       for FILE in $FIND; do
+               BASENAME=`basename $FILE`
+               USER="${BASENAME%.orig}"
+               mv -f $FILE /var/spool/cron/$USER >/dev/null 2>&1
+               chown $USER:crontab /var/spool/cron/$USER >/dev/null 2>&1
+               chmod 600 /var/spool/cron/$USER >/dev/null 2>&1
+       done
+       rm -f /var/spool/cron/rm.*
+       rm -f /var/spool/cron/fcrontab.sig
+       rm -f /var/spool/cron/new.*
 fi
 
 %postun
 if [ "$1" = "0" ]; then
-       echo "Removing group crontab."
-       /usr/sbin/groupdel crontab
-fi
-
-%triggerpostun -- vixie-cron <= 3.0.1-85
-for i in `/bin/ls /var/spool/cron 2>/dev/null`
-do
-       chown ${i} /var/spool/cron/${i} 2>/dev/null || :
-done
-/bin/chmod 660 /var/log/cron
-/bin/chgrp crontab /var/log/cron
-/bin/chmod 640 /etc/cron/cron.*
-/bin/chgrp crontab /etc/cron/cron.*
-
-%triggerpostun -- vixie-cron <= 3.0.1-73
-if [ -f /etc/cron.d/cron.allow.rpmsave ]; then
-       mv -f /etc/cron.d/cron.allow.rpmsave /etc/cron/cron.allow
-fi
-if [ -f /etc/cron.d/cron.allow ]; then
-       mv -f /etc/cron.d/cron.allow /etc/cron/cron.allow
-fi
-if [ -f /etc/cron.d/cron.deny.rpmsave ]; then
-       mv -f /etc/cron.d/cron.deny.rpmsave /etc/cron/cron.deny
-fi
-if [ -f /etc/cron.d/cron.deny ]; then
-       mv -f /etc/cron.d/cron.deny /etc/cron/cron.deny
-fi
-
-%triggerpostun -- vixie-cron <= 3.0.1-70
-if [ -f /etc/cron.allow ]; then
-       mv -f /etc/cron.allow /etc/cron/cron.allow
-fi
-if [ -f /etc/cron.deny ]; then
-       mv -f /etc/cron.deny /etc/cron/cron.deny
+       %userremove crontab
+       %groupremove crontab
 fi
 
 %triggerpostun -- hc-cron
+# reinstall crond init.d links, which could be different
 /sbin/chkconfig --del crond
 /sbin/chkconfig --add crond
 
-%triggerpostun -- hc-cron <= 0.14-12
-for i in `/bin/ls /var/spool/cron 2>/dev/null`
-do
-       chown ${i} /var/spool/cron/${i} 2>/dev/null || :
-done
-/bin/chmod 660 /var/log/cron
-/bin/chgrp crontab /var/log/cron
-/bin/chmod 640 /etc/cron/cron.*
-/bin/chgrp crontab /etc/cron/cron.*
-
 %files
 %defattr(644,root,root,755)
-%doc CHANGES CONVERSION FEATURES MAIL README THANKS
-%attr(0750,root,crontab) %dir %{_sysconfdir}/cron*
-%attr(0644,root,crontab) %config(noreplace) /etc/cron.d/crontab
-%attr(0640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.allow
-%attr(0640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.deny
-%attr(0640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cron
-%config(noreplace) %verify(not md5 size mtime) /etc/pam.d/cron
-%attr(0754,root,root) /etc/rc.d/init.d/crond
-%config /etc/logrotate.d/cron
-%attr(0755,root,root) %{_sbindir}/crond
-%attr(2755,root,crontab) %{_bindir}/crontab
-
-%{_mandir}/man*/*
-%lang(fi) %{_mandir}/fi/man*/*
-%lang(fr) %{_mandir}/fr/man*/*
-%lang(id) %{_mandir}/id/man*/*
-%lang(ja) %{_mandir}/ja/man*/*
-%lang(ko) %{_mandir}/ko/man*/*
-%lang(pl) %{_mandir}/pl/man*/*
-
+%doc doc/en/HTML doc/en/txt/{faq.txt,changes.txt,readme.txt,thanks.txt,todo.txt}
+%attr(750,root,crontab) %dir %{_sysconfdir}/cron*
+%attr(750,root,root) %{_sysconfdir}/cron.hourly/%{name}.systab
+%attr(640,root,crontab) %config(noreplace) /etc/cron.d/crontab
+%attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.allow
+%attr(640,root,crontab) %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/cron/cron.deny
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/cron
+%attr(644,root,crontab) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/fcron
+%attr(644,root,crontab) %config(noreplace) %verify(not md5 mtime size) /etc/pam.d/fcrontab
+%attr(754,root,root) /etc/rc.d/init.d/crond
+%config(noreplace) %verify(not md5 mtime size) %attr(640,root,root) /etc/logrotate.d/cron
+%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/fcron.*
+%attr(640,root,crontab) %config(noreplace) %{_sysconfdir}/fcron.conf
+%attr(755,root,root) %{_sbindir}/crond
+%attr(6111,crontab,crontab) %{_bindir}/fcrontab
+%attr(6111,crontab,crontab) %{_bindir}/crontab
+%attr(4711,root,root) %{_bindir}/fcronsighup
+%attr(6111,crontab,crontab) %{_bindir}/fcrondyn
+%{_mandir}/man1/fcrondyn.1*
+%{_mandir}/man1/fcrontab.1*
+%{_mandir}/man3/bitstring.3*
+%{_mandir}/man5/fcron.conf.5*
+%{_mandir}/man5/fcrontab.5*
+%{_mandir}/man8/fcron.8*
+%lang(fr) %{_mandir}/fr/man1/fcrondyn.1*
+%lang(fr) %{_mandir}/fr/man1/fcrontab.1*
+%lang(fr) %{_mandir}/fr/man3/bitstring.3*
+%lang(fr) %{_mandir}/fr/man5/fcron.conf.5*
+%lang(fr) %{_mandir}/fr/man5/fcrontab.5*
+%lang(fr) %{_mandir}/fr/man8/fcron.8*
 %attr(1730,root,crontab) /var/spool/cron
-%attr(0660,root,crontab) %ghost /var/log/cron
+%attr(660,root,crontab) %ghost /var/log/cron
This page took 0.248821 seconds and 4 git commands to generate.