build: Replace "--enable-no-vixie-clobber" with "--disable-multi-user".

* configure.ac: Define "--disable-multi-user" option instead of
"--enable-no-vixie-clobber".
* Makefile.am (install-exec-hook) [MULTI_USER]: Only set crontab setuid bit.
(bin_PROGRAMS): Keep only 'mcron' by default.
(bin_PROGRAMS) [MULTI_USER]: Add 'crontab'
(sbin_PROGRAMS) [MULTI_USER]: Add 'cron'.
(noinst_PROGRAMS) [!MULTI_USER]: Add 'cron' and 'crontab'.
(dist_man_MANS): Move 'crontab.1' and 'cron.8' ...
(extra_mans): here.  New variable.
(dist_man_MANS) [MULTI_USER]: Add it.
(all-local) [!MULTI_USER]: New target.  Depend on it.
(EXTRA_DIST) [!MULTI_USER]: Distribute it.
(MAINTAINERCLEANFILES): Clean it.
This commit is contained in:
Mathieu Lirzin 2017-02-22 15:49:18 +01:00
commit 245f1ae338
No known key found for this signature in database
GPG key ID: 0ADEE10094604D37
2 changed files with 27 additions and 35 deletions

View file

@ -21,8 +21,14 @@
## Programs. ## ## Programs. ##
## ---------- ## ## ---------- ##
bin_PROGRAMS = bin/mcron bin/crontab bin_PROGRAMS = bin/mcron
if MULTI_USER
bin_PROGRAMS += bin/crontab
sbin_PROGRAMS = bin/cron sbin_PROGRAMS = bin/cron
else
noinst_PROGRAMS = bin/cron bin/crontab
endif
AM_CPPFLAGS = \ AM_CPPFLAGS = \
-DPACKAGE_LOAD_PATH=\"$(moduledir)\" \ -DPACKAGE_LOAD_PATH=\"$(moduledir)\" \
@ -160,26 +166,10 @@ EXTRA_DIST = \
#full program prefix #full program prefix
fpp = $(DESTDIR)$(bindir)/@real_program_prefix@ fpp = $(DESTDIR)$(bindir)/@real_program_prefix@
if MULTI_USER
install-exec-hook: install-exec-hook:
@if [ "x@NO_VIXIE_CLOBBER@" != "xyes" -a "`id -u`" -eq "0" ]; then \ chmod u+s $(fpp)crontab$(EXEEXT)
rm -f $(fpp)cron$(EXEEXT) > /dev/null 2>&1; \ endif
$(INSTALL) --mode='u=rwx' mcron$(EXEEXT) $(fpp)cron$(EXEEXT); \
rm -f $(fpp)crontab$(EXEEXT) > /dev/null 2>&1; \
$(INSTALL) --mode='u=rwxs,og=rx' mcron$(EXEEXT) $(fpp)crontab$(EXEEXT); \
$(INSTALL) -d --mode='u=rwx' $(DESTDIR)/var/cron; \
$(INSTALL) -d --mode='u=rwx,og=rx' $(DESTDIR)/var/run; \
$(INSTALL) -d --mode='u=rwx,og=rx' $(DESTDIR)@GUILE_SITE@; \
$(INSTALL) -d --mode='u=rwx,og=rx' $(DESTDIR)@GUILE_SITE@/mcron; \
elif [ "x@NO_VIXIE_CLOBBER@" = "xyes" ]; then \
echo "Not installing Vixie-style programs"; \
else \
echo "+++ WARNING: NON-ROOT INSTALL: ONLY mcron WILL BE INSTALLED, NOT ANY OF THE VIXIE REPLACEMENT PROGRAMS"; \
fi
uninstall-hook:
if [ "`id -u`" -eq "0" ]; then \
rm -f $(fpp){cron,crontab}$(EXEEXT); \
fi
## --------------- ## ## --------------- ##
## Documentation. ## ## Documentation. ##
@ -188,11 +178,19 @@ uninstall-hook:
info_TEXINFOS = doc/mcron.texi info_TEXINFOS = doc/mcron.texi
doc_mcron_TEXINFOS = doc/fdl.texi doc_mcron_TEXINFOS = doc/fdl.texi
nodist_doc_mcron_TEXINFOS = doc/config.texi nodist_doc_mcron_TEXINFOS = doc/config.texi
dist_man_MANS = \ dist_man_MANS = $(srcdir)/doc/mcron.1
$(srcdir)/doc/mcron.1 \ extra_mans = \
$(srcdir)/doc/crontab.1 \ $(srcdir)/doc/crontab.1 \
$(srcdir)/doc/cron.8 $(srcdir)/doc/cron.8
if MULTI_USER
dist_man_MANS += $(extra_mans)
else
# Build, distribute, but do not install the extra man pages.
all-local: $(extra_mans)
EXTRA_DIST += $(extra_mans)
endif
# XXX: Allow the inclusion of 'doc/fdl.texi' and 'doc/config.texi' inside # XXX: Allow the inclusion of 'doc/fdl.texi' and 'doc/config.texi' inside
# 'doc/mcron.texi' for 'dvi' and 'pdf' targets. # 'doc/mcron.texi' for 'dvi' and 'pdf' targets.
TEXI2DVI = texi2dvi -I doc TEXI2DVI = texi2dvi -I doc
@ -218,7 +216,7 @@ $(srcdir)/doc/crontab.1: src/mcron/scripts/crontab.scm bin/crontab
$(srcdir)/doc/cron.8: src/mcron/scripts/cron.scm bin/cron $(srcdir)/doc/cron.8: src/mcron/scripts/cron.scm bin/cron
-@prog="cron"; man_section=8; $(gen_man) -@prog="cron"; man_section=8; $(gen_man)
MAINTAINERCLEANFILES = $(dist_man_MANS) MAINTAINERCLEANFILES = $(dist_man_MANS) $(extra_mans)
## -------------- ## ## -------------- ##
## Silent rules. ## ## Silent rules. ##

View file

@ -104,18 +104,12 @@ else
fi fi
SENDMAIL=$ac_cv_prog_SENDMAIL SENDMAIL=$ac_cv_prog_SENDMAIL
AC_ARG_ENABLE([multi-user],
# Find out if we are avoiding Vixie. [AS_HELP_STRING([--disable-multi-user],
[Don't Install legacy cron and crontab programs])],
AC_MSG_CHECKING([whether to avoid clobbering a Vixie installation]) [enable_multi_user="$enableval"],
AC_ARG_ENABLE(no-vixie-clobber, [enable_multi_user="yes"])
AC_HELP_STRING([--enable-no-vixie-clobber], AM_CONDITIONAL([MULTI_USER], [test "x$enable_multi_user" != xyes])
[do not install with program names that would override a legacy cron installation]),
NO_VIXIE_CLOBBER=$enableval,
NO_VIXIE_CLOBBER=[no])
AC_MSG_RESULT($NO_VIXIE_CLOBBER)
AC_SUBST(NO_VIXIE_CLOBBER)
# Configure the various files that mcron uses at runtime. # Configure the various files that mcron uses at runtime.