Commit graph

154 commits

Author SHA1 Message Date
Mathieu Lirzin
2961ae8033
version 1.1
* NEWS: Record release date.
2018-03-19 00:19:13 +01:00
Mathieu Lirzin
28624af154
maint: Add ".prev-version"
This file is used by the "build-aux/do-release-commit-and-tag" script.

* .prev-version: New file
2018-03-18 22:05:15 +01:00
Mathieu Lirzin
b7640b81ed
maint: Include maintainer scripts from Gnulib
* build-aux/announce-gen: New script.
* build-aux/do-release-commit-and-tag: Likewise.
* build-aux/gnu-web-doc-update: Likewise.
* build-aux/gnupload: Likewise.
2018-03-18 21:58:41 +01:00
Mathieu Lirzin
d1fdb14a8a
build: Programs are not implicitly depending on libraries
Before that change, it was possible for 'make' to try linking programs
before 'src/libmcron.a' was built.

* Makefile.am (bin_mcron_DEPENDENCIES, bin_cron_DEPENDENCIES)
(bin_crontab_DEPENDENCIES): Add '$(noinst_LIBRARIES)'.
2018-03-17 16:37:42 +01:00
Mathieu Lirzin
2b9b54b729
tests: Add 'schedule.sh'
* tests/schedule.sh: New test.
* Makefile.am (TESTS): Add it.
* src/mcron/job-specifier.scm (configuration-time): Use
SOURCE_DATE_EPOCH for reproducible tests.
2018-03-16 21:41:52 +01:00
Mathieu Lirzin
5f83aef90f
base: Add 'display-schedule' procedure
This procedure is a more generic and less coupled version of
'get-schedule' which has been kept for backward compatibility and
deprecated.

* src/mcron/base.scm (display-schedule): New procedure.
(get-schedule): Move to ...
* src/mcron/core.scm: ... here.
* src/mcron/scripts/cron.scm (main): Use 'display-schedule'.
* src/mcron/scripts/mcron.scm (main): Likewise.
* doc/mcron.texi (The base module): Document it.
2018-03-16 21:41:14 +01:00
Mathieu Lirzin
b80020ef78
crontab: Extract procedures from 'main'
* src/mcron/scripts/crontab.scm (in-access-file?)
(hit-server): New procedures.
2018-03-16 21:41:06 +01:00
Mathieu Lirzin
266bcf8405
maint: Remove old mailing-lists from README
* README: Remove non-existing mailing-lists.
2017-09-29 18:01:01 +02:00
Mathieu Lirzin
319a1dbe4e
maint: Replace "README--git" with "HACKING"
* README--git: Delete.
* HACKING: New file documenting how to contribute to Mcron.
* Makefile.am (EXTRA_DIST): Distribute it.
2017-09-29 17:53:37 +02:00
Mathieu Lirzin
dc5a7a500e
maint: Add Ludovic Courtès to the authors
* AUTHORS: Add Ludovic Courtès.
2017-09-29 17:50:45 +02:00
Mathieu Lirzin
a0b896c9d5
maint: Update NEWS
* NEWS: Update with changes made since last release.
2017-09-29 17:50:45 +02:00
Mathieu Lirzin
4802dc976b
maint: Rewrite old NEWS
* NEWS: Follow the format used by GNU Coreutils.
2017-09-28 23:23:06 +02:00
Mathieu Lirzin
c285d36ab2
tests: Add 'basic.sh'
* tests/init.sh: New test framework from Gnulib.
* tests/basic.sh: New test.
* Makefile.am (TESTS): Add it.
(TEST_EXTENSIONS): Add '.sh'.
(SH_LOG_COMPILER): Use 'pre-inst-env'.
(EXTRA_DIST): Add 'tests/init.sh'.
* build-aux/pre-inst-env.in: export $srcdir for shell tests.
2017-09-28 18:48:49 +02:00
Mathieu Lirzin
811ad9167a
doc: Use 'unless' form
* doc/mcron.texi (Invoking cron or crond): Use 'unless' form and put
"/etc/crontab" inside a @code command.
2017-09-28 18:13:08 +02:00
Mathieu Lirzin
dd30cb9e54
utils: Add 'assq_symbol_set_x' function
* src/utils.c (assq_symbol_set_x): New function.
* src/mcron.c (parse_opt): Use it.
2017-09-28 18:13:08 +02:00
Mathieu Lirzin
d011957843
mcron: Handle command line arguments in C with argp
'argp' is a convenient and maintainable way to parse command line arguments.
Guile doesn't offer an equivalent of this, so the command line handling has
been moved to C.

* src/mcron.c (parse_args, parse_opt): New functions.
(inner_main): Call 'parse_args'.
* src/mcron/scripts/mcron.scm (show-help, %options): Delete.
(main): Remove command line handling.
2017-09-28 18:12:27 +02:00
Mathieu Lirzin
c01106387f
Replace generic C wrapper with individual programs
* src/wrapper.c: Delete.
* src/crontab.c: New file.
* src/mcron.c: Likewise.
* src/cron.c: Likewise.
* configure.ac: Adapt 'AC_CONFIG_DIR' to use "src/mcron.c".
* Makefile.am (bin_crontab_SOURCES, bin_cron_SOURCES)
(bin_mcron_SOURCES): Use new files.
(bin_cron_CPPFLAGS, bin_mcron_CPPFLAGS, bin_crontab_CPPFLAGS): Delete.
2017-09-28 15:57:21 +02:00
Mathieu Lirzin
9b52c0d454
wrapper: Move 'wrap_env_path' to a new 'utils' module.
* src/wrapper.c: Move 'wrap_env_path' to ...
* src/utils.h: ... here.  New module.
* src/utils.c: New file.
* configure.ac: Use AC_PROG_RANLIB and AM_PROG_AR.
* Makefile.am (noinst_LIBRARIES, src_libmcron_a_SOURCES): New variables.
(LDADD): Add 'src/libmcron.a'.
2017-09-28 15:50:58 +02:00
Mathieu Lirzin
2b9828f303
build: Remove "--enable-debug" configure option
Unlike C code where debugging impose the "-g" compilation flags.  This
debugging option only affects Guile code, so using an environment variable
works better since it doesn't impose to recompile Mcron or to edit
"config.scm".

* configure.ac: Remove "--enable-debug" configure option.
* src/mcron/config.scm.in (config-debug): Use MCRON_DEBUG environment variable
to trigger the debug mode at runtime.
2017-09-28 15:43:21 +02:00
Mathieu Lirzin
02d67e7f0e
build: Remove "maintainer-mode" configure option.
* configure.ac: Remove "maintainer-mode" configure option.
2017-09-28 14:50:05 +02:00
Mathieu Lirzin
245f1ae338
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.
2017-09-28 13:19:28 +02:00
Mathieu Lirzin
f284b52446
build: Separate "Makefile.am" into more sections.
* Makefile.am: Add "Installation", "Distribution", "Test suite",
"Programs", and "Guile modules" sections.
2017-09-28 13:19:28 +02:00
Mathieu Lirzin
a0a82a2ef4
build: Add 'bootstrap' script.
* bootstrap: New file.
* Makefile.am (EXTRA_DIST): Add it.
2017-09-28 13:19:28 +02:00
Mathieu Lirzin
ab07cf296b
Add (mcron core) module.
This module is an alias for (mcron base) module.  This modules is added to
keep backward compatibility with Mcron 1.x.
2017-09-28 13:19:11 +02:00
Mathieu Lirzin
ec5ece53d6
base: Add 'run-job' procedure.
* src/mcron/base.scm (run-jobs): Delete.
(run-job): New procedure.
(run-job-loop): Use it.
2017-09-28 13:18:29 +02:00
Mathieu Lirzin
10df45c659
job-specifier: Remove dependency on SRFI-26.
* src/mcron/job-specifier.scm (range): Use plain lambda instead of 'cut' and
'cute'.
2017-09-28 13:18:29 +02:00
Mathieu Lirzin
f1c498c2dd
build: Install '.go' files under LIBDIR.
* Makefile.am (compiled_modules): New variable.
(bin_mcron_DEPENDENCIES, bin_cron_DEPENDENCIES)
(bin_crontab_DEPENDENCIES): Use it.
(guilesitegodir, pkgmodulegodir, pkgmodulego_DATA)
(pkgscriptgodir, pkgscriptgo_DATA): New variables
(pkgmodule_DATA): Remove compiled modules.
(pkgscript_DATA): Delete.
(DISTCLEANFILES, CLEANFILES): Update.
2017-09-28 13:18:28 +02:00
Mathieu Lirzin
3b5195ed33
build: Don't generate '.version' file.
* Makefile.am (.version): Remove target which has no use.
(EXTRA_DIST): Adapt.
(BUILT_SOURCES): Delete.
* .gitignore: Update.
2017-09-28 13:18:28 +02:00
Mathieu Lirzin
c2cdfefaca
build: Rename variables for Guile install directories.
* configure.ac (moduledir, mcronmoduledir): Rename to ...
* Makefile.am (guilesitedir, pkgmoduledir): ... these.
(dist_mcronmodule_DATA, mcronmodule_DATA, mcronscriptdir)
(dist_mcronscript_DATA, mcronscript_DATA): Rename to ...
(dist_pkgmodule_DATA, pkgmodule_DATA, pkgscriptdir, dist_pkgscript_DATA)
(pkgscript_DATA): ... these.
(modules): Adapt.
2017-09-28 13:18:27 +02:00
Mathieu Lirzin
ade37c96b7
build: Support Guile 2.2.
* configure.ac: Use 'GUILE_PKG' and 'GUILE_PROGS'.  Remove explicit Guile
version check and check for 'guild'.  Honor $GUILE_EFFECTIVE_VERSION in
'moduledir'.
2017-09-28 13:15:24 +02:00
Mathieu Lirzin
44e0e6f305
build: Define PACKAGE_LOAD_COMPILED_PATH macro.
* Makefile.am (AM_CPPFLAGS): Define PACKAGE_LOAD_COMPILED_PATH macro.
* src/wrapper.c (main): Use it.
2017-09-27 23:21:54 +02:00
Mathieu Lirzin
57b9294277
wrapper: Avoid 'scm_c_eval_string' usage.
* src/wrapper.c (wrap_env_path): New function.
(main): Use it.
(inner_main): Let 'wrap_env_path' set the environment variables.
Don't use 'scm_c_eval_string' when calling 'main' procedure.
* Makefile.am (AM_CPPFLAGS): Define _GNU_SOURCE for 'asprintf'.
2017-09-27 23:21:54 +02:00
Mathieu Lirzin
d72716ce16
Merge branch 'devel' 2017-09-27 23:16:54 +02:00
Mathieu Lirzin
a0b580448c
Revert "Add missing 'makefile.am'."
This reverts commit 2039060a1d.
2017-09-27 23:11:01 +02:00
Mathieu Lirzin
d96ede0b09
Revert "Fix build of the manual."
This reverts commit e6a94adeb3.
2017-09-27 23:10:55 +02:00
Mathieu Lirzin
3eb1889f89
Revert "Remove derived doc/mcron.1 with maintainer-clean."
This reverts commit eca341bd82.
2017-09-27 23:10:51 +02:00
Mathieu Lirzin
54a0887f1a
Revert "Fix package name and bug reports email address."
This reverts commit df4fa60a03.
2017-09-27 23:10:42 +02:00
Mathieu Lirzin
de58e99aa5
Revert "Have a new directory to get rid of with maintainer-clean."
This reverts commit 024027ae2d.
2017-09-27 23:10:36 +02:00
Mathieu Lirzin
41b427e1b2
Revert "Taken on board suggestions of Mathieu Lirzin as per e-mails to the bug-mcron@gnu.org mailing list around September 2015."
This reverts commit c0a6eb14c2.
2017-09-27 23:10:29 +02:00
Mathieu Lirzin
ba294d6a3b
build: Use portable substitution references.
* Makefile.am (bin_mcron_DEPENDENCIES, bin_cron_DEPENDENCIES)
(bin_crontab_DEPENDENCIES, mcronmodule_DATA, mcronscript_DATA)
(CLEANFILES): Use portable substitution references.
2016-12-28 23:59:54 +01:00
Mathieu Lirzin
aaf1b08404
build: Add "build-aux/guix.scm".
* build-aux/guix.scm: New file.
* Makefile.am (EXTRA_DIST): Add it.
2016-12-28 23:55:20 +01:00
Mathieu Lirzin
ea648c0730
build: Move executable to "bin" directory.
* Makefile.am (bin_PROGRAMS, sbin_PROGRAMS): Prepend "bin/" to every program.
(mcron_SOURCES, mcron_CPPFLAGS, mcron_DEPENDENCIES): Rename to ...
(bin_mcron_SOURCES, bin_mcron_CPPFLAGS, bin_mcron_DEPENDENCIES): ... this.
(cron_SOURCES, cron_CPPFLAGS, cron_DEPENDENCIES): Rename to ...
(bin_cron_SOURCES, bin_cron_CPPFLAGS, bin_cron_DEPENDENCIES): ... this.
(crontab_SOURCES, crontab_CPPFLAGS, crontab_DEPENDENCIES): Rename to ...
(bin_crontab_SOURCES, bin_crontab_CPPFLAGS, bin_crontab_DEPENDENCIES):
($(srcdir)/doc/cron.8, $(srcdir)/doc/crontab.1, $(srcdir)/doc/mcron.1): Update
prerequisite.
* build-aux/pre-inst-env.in (PATH): Use "bin" directory.
* .gitignore: Update.
2016-12-28 23:39:14 +01:00
Mathieu Lirzin
a3051133c0
maint: Generate version number.
* build-aux/git-version-gen: New script.
* configure.ac (AC_INIT): Use it.
(AC_REQUIRE_AUX_FILE): Distribute it.
* Makefile.am (.version): New target.
(BUILT_SOURCES, EXTRA_DIST): Add it.
(dist-hook): Generate ".tarball-version".
* .gitignore: Update.
2016-12-28 23:06:03 +01:00
Mathieu Lirzin
5e6233a58d
base: find-next-jobs: Use functional style.
* src/mcron/base.scm (find-next-jobs): Rewrite it using functional
style.  Add docstring.
2016-12-28 22:19:04 +01:00
Mathieu Lirzin
c1d2c765ef
vixie-specification: Do not use 'and-let*'.
* src/mcron/vixie-specification.scm (parse-vixie-environment): Use
'and=>' instead of 'and-let*'
2016-12-28 22:19:04 +01:00
Mathieu Lirzin
4d518fd3f1
all: Gather module imports.
* src/mcron/base.scm: Gather module imports.
* src/mcron/redirect.scm: Likewise.
* src/mcron/vixie-specification.scm: Likewise.
* src/mcron/vixie-time.scm: Likewise.
2016-12-28 22:19:04 +01:00
Mathieu Lirzin
d4b4ac5708
utils: Remove unneeded 'stdin->string' procedure.
* src/mcron/utils.scm: Re-export 'read-string'.
(stdin->string): Delete.
* src/mcron/scripts/crontab.scm (main): Use 'read-string' instead.
* src/mcron/scripts/mcron.scm (process-user-file): Likewise.
2016-12-28 22:19:04 +01:00
Mathieu Lirzin
2d6c072b47
utils: for-each-file: Use named let.
* src/mcron/utils.scm (for-each-file): Use named 'let' instead of 'do'.
2016-12-28 22:19:03 +01:00
Mathieu Lirzin
61f85be19d
build: Rename (mcron main) to (mcron utils).
* src/mcron/main.scm: Rename to ...
* src/mcron/utils.scm: ... this.
* src/mcron/scripts/cron.scm: Adapt.
* src/mcron/scripts/crontab.scm: Likewise.
* src/mcron/scripts/mcron.scm: Likewise.
* Makefile.am (dist_mcronmodule_DATA): Likewise.
2016-12-28 22:19:03 +01:00
Mathieu Lirzin
2c9139f623
maint: Delete BUGS.
* BUGS: Delete.
* Makefile.am (EXTRA_DIST): Adapt.
* README: Likewise.
2016-12-28 22:19:03 +01:00