| Commit message (Expand) | Author | Age | Files | Lines |
... | |
* | base: Check 'run-job'...* tests/base.scm ("run-job: basic"): New test.
| Mathieu Lirzin | 2018-03-24 | 1 | -0/+16 |
* | base: Box 'number-children'...* src/mcron/base.scm (number-children): Box it using SRFI-111 to be
explicit about the mutability of this object.
(update-number-children!): New procedure.
(run-job, child-cleanup): Use it.
* tests/base.scm ("update-number-children!: 1+")
("number-children: init", "update-number-children!: 1-"): New tests.
| Mathieu Lirzin | 2018-03-24 | 2 | -6/+47 |
* | base: Rewrite 'child-cleanup'...* src/mcron/base.scm (child-cleanup): Use recursion instead of 'do'.
| Mathieu Lirzin | 2018-03-24 | 1 | -6/+6 |
* | utils: Add 'get-user'...* src/mcron/utils.scm (get-user): New procedure.
* src/mcron/job-specifier.scm (job): Use it.
* src/mcron/base.scm (remove-user-jobs): Likewise.
| Mathieu Lirzin | 2018-03-24 | 3 | -8/+17 |
* | base: Rewrite 'find-next-jobs' docstring....* src/mcron/base.scm (find-next-jobs): Don't explain the detail of
implementation in the docstring.
| Mathieu Lirzin | 2018-03-24 | 1 | -15/+4 |
* | tests: Add "tests/base.scm"...* tests/base.scm: New test.
* Makefile.am (TESTS): Add it.
| Mathieu Lirzin | 2018-03-24 | 2 | -0/+152 |
* | base: Add '<schedule>' record data type...Reifying the notion of a schedule helps reasoning about the code.
Passing a schedule as an argument to related procedures allows writing
simpler unit tests.
* src/mcron/base.scm(<schedule>): New record data type.
(make-schedule, schedule-user, set-schedule-user!)
(schedule-system, set-schedule-system!)
(schedule-current, set-schedule-current!): New procedures.
(system-job-list, user-job-list, configuration-source): Replace those
global variables with ...
(%global-schedule): ... this global <schedule> instance.
* src/mcron/base.scm (use-system-job-list, use-user-job-list)
(remove-user-jobs, clear-system-jobs, add-job, find-next-jobs)
(display-schedule, run-job-loop): Add '#:SCHEDULE' keyword argument.
* doc/mcron.texi (The base module): Update documentation.
| Mathieu Lirzin | 2018-03-24 | 2 | -71/+87 |
* | build: Check non-standard C functions at configure time...* configure.ac: Check 'argp_parse' and 'asprintf' presence.
| Mathieu Lirzin | 2018-03-23 | 1 | -0/+6 |
* | job-specifier: Use 'simple-format'...* src/mcron/job-specifier.scm (job): Use 'simple-format' instead of
'with-output-to-string'.
| Mathieu Lirzin | 2018-03-23 | 1 | -4/+3 |
* | maint: Update copyright years | Mathieu Lirzin | 2018-03-20 | 3 | -3/+3 |
* | utils: Use 'scandir' instead of custom 'for-each-file'...* src/mcron/utils.scm (for-each-file): Delete.
* src/mcron/scripts/cron.scm (process-files-in-system-directory): Use
'scandir' which has the benefit of being deterministic.
* src/mcron/scripts/mcron.scm (process-files-in-user-directory):
Likewise.
* tests/schedule.sh: Update expected output which is now more reliable.
* NEWS: Update.
Suggested-by: Ludovic Courtès <ludo@gnu.org>
| Mathieu Lirzin | 2018-03-20 | 5 | -36/+26 |
* | tests: Set timezone in "schedule.sh"...Previously the test environment was implicitly expecting the current
timezone to be UTC+1.
* tests/schedule.sh: Set TZ environment variable to 'UTC0'.
Update expected result.
Reported-by: Ludovic Courtès <ludo@gnu.org>
| Mathieu Lirzin | 2018-03-20 | 1 | -21/+26 |
* | maint: Update NEWS...* NEWS: Announce the availability of 'make installcheck'.
| Mathieu Lirzin | 2018-03-20 | 1 | -0/+5 |
* | build: Support 'make installcheck'...* configure.ac: Pass 'std-options' to AM_INIT_AUTOMAKE to check that the
"--help" and "--version" options can be passed to installed programs.
* Makefile.am (installcheck-local): New rule which checks the programs
presence and configuration.
| Mathieu Lirzin | 2018-03-20 | 2 | -1/+17 |
* | build: Properly set Guile load paths in programs...This fixes an issue where the installed Guile load paths were set by the
undefined 'moduledir' Make macro.
* Makefile.am (AM_CPPFLAGS): Define PACKAGE_LOAD_PATH with
'guilesitedir' macro and PACKAGE_LOAD_COMPILED_PATH with
'guilesitegodir'.
* NEWS: Update.
| Mathieu Lirzin | 2018-03-20 | 2 | -2/+5 |
* | build: Handle all programs names transformations...Previously only prepending a prefix was handled when installing 'crontab'.
Using the 'transform' Make macro allows the installation process to support
generic transformations as defined by the '--program-suffix' and
'--program-transform-name' configure options.
* configure.ac: Don't substitue '@real_program_prefix@'.
* Makefile.am (fpp): Remove.
(transform_exe): New macro.
[MULTI_USER] (install-exec-hook): Use it when installing 'crontab'.
| Mathieu Lirzin | 2018-03-20 | 2 | -11/+4 |
* | build: Reverse '--disable-multi-user' effect...This fixes a bug where the '--disable-multi-user' was actually having the
reverse effect of installing 'cron' and 'crontab'.
* configure.ac: Reverse equality test when setting 'MULTI_USER' Automake
conditional.
| Mathieu Lirzin | 2018-03-19 | 2 | -1/+5 |
* | maint: Remove obsolete configure checks...* configure.ac: Don't check for 'sed' and 'cp' programs which are
considered portable. Don't check for 'head' and 'which' programs which
are not required.
| Mathieu Lirzin | 2018-03-19 | 1 | -18/+0 |
* | maint: Post-release administrivia...* NEWS: Add header line for next release.
* .prev-version: Record previous version.
| Mathieu Lirzin | 2018-03-19 | 2 | -1/+4 |
* | version 1.1...* NEWS: Record release date.
v1.1 | Mathieu Lirzin | 2018-03-19 | 1 | -1/+1 |
* | maint: Add ".prev-version"...This file is used by the "build-aux/do-release-commit-and-tag" script.
* .prev-version: New file
| Mathieu Lirzin | 2018-03-18 | 1 | -0/+1 |
* | 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.
| Mathieu Lirzin | 2018-03-18 | 4 | -0/+1386 |
* | 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)'.
| Mathieu Lirzin | 2018-03-17 | 1 | -3/+3 |
* | 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.
| Mathieu Lirzin | 2018-03-16 | 3 | -1/+128 |
* | 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.
| Mathieu Lirzin | 2018-03-16 | 5 | -32/+32 |
* | crontab: Extract procedures from 'main'...* src/mcron/scripts/crontab.scm (in-access-file?)
(hit-server): New procedures.
| Mathieu Lirzin | 2018-03-16 | 1 | -35/+34 |
* | maint: Remove old mailing-lists from README...* README: Remove non-existing mailing-lists.
| Mathieu Lirzin | 2017-09-29 | 1 | -4/+1 |
* | maint: Replace "README--git" with "HACKING"...* README--git: Delete.
* HACKING: New file documenting how to contribute to Mcron.
* Makefile.am (EXTRA_DIST): Distribute it.
| Mathieu Lirzin | 2017-09-29 | 3 | -20/+77 |
* | maint: Add Ludovic Courtès to the authors...* AUTHORS: Add Ludovic Courtès.
| Mathieu Lirzin | 2017-09-29 | 1 | -0/+1 |
* | maint: Update NEWS...* NEWS: Update with changes made since last release.
| Mathieu Lirzin | 2017-09-29 | 1 | -0/+45 |
* | maint: Rewrite old NEWS...* NEWS: Follow the format used by GNU Coreutils.
| Mathieu Lirzin | 2017-09-28 | 1 | -69/+52 |
* | 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.
| Mathieu Lirzin | 2017-09-28 | 5 | -1/+647 |
* | doc: Use 'unless' form...* doc/mcron.texi (Invoking cron or crond): Use 'unless' form and put
"/etc/crontab" inside a @code command.
| Mathieu Lirzin | 2017-09-28 | 1 | -3/+3 |
* | utils: Add 'assq_symbol_set_x' function...* src/utils.c (assq_symbol_set_x): New function.
* src/mcron.c (parse_opt): Use it.
| Mathieu Lirzin | 2017-09-28 | 5 | -16/+18 |
* | 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.
| Mathieu Lirzin | 2017-09-28 | 2 | -61/+108 |
* | 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.
| Mathieu Lirzin | 2017-09-28 | 5 | -28/+113 |
* | 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'.
| Mathieu Lirzin | 2017-09-28 | 6 | -26/+83 |
* | 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.
| Mathieu Lirzin | 2017-09-28 | 2 | -15/+8 |
* | build: Remove "maintainer-mode" configure option....* configure.ac: Remove "maintainer-mode" configure option.
| Mathieu Lirzin | 2017-09-28 | 1 | -4/+0 |
* | 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.
| Mathieu Lirzin | 2017-09-28 | 2 | -35/+27 |
* | build: Separate "Makefile.am" into more sections....* Makefile.am: Add "Installation", "Distribution", "Test suite",
"Programs", and "Guile modules" sections.
| Mathieu Lirzin | 2017-09-28 | 1 | -28/+50 |
* | build: Add 'bootstrap' script....* bootstrap: New file.
* Makefile.am (EXTRA_DIST): Add it.
| Mathieu Lirzin | 2017-09-28 | 2 | -0/+6 |
* | 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.
| Mathieu Lirzin | 2017-09-28 | 2 | -0/+35 |
* | base: Add 'run-job' procedure....* src/mcron/base.scm (run-jobs): Delete.
(run-job): New procedure.
(run-job-loop): Use it.
| Mathieu Lirzin | 2017-09-28 | 1 | -31/+20 |
* | job-specifier: Remove dependency on SRFI-26....* src/mcron/job-specifier.scm (range): Use plain lambda instead of 'cut' and
'cute'.
| Mathieu Lirzin | 2017-09-28 | 1 | -3/+6 |
* | 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.
| Mathieu Lirzin | 2017-09-28 | 1 | -14/+15 |
* | build: Don't generate '.version' file....* Makefile.am (.version): Remove target which has no use.
(EXTRA_DIST): Adapt.
(BUILT_SOURCES): Delete.
* .gitignore: Update.
| Mathieu Lirzin | 2017-09-28 | 2 | -6/+0 |
* | 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.
| Mathieu Lirzin | 2017-09-28 | 2 | -14/+13 |
* | 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'.
| Mathieu Lirzin | 2017-09-28 | 1 | -11/+14 |
* | build: Define PACKAGE_LOAD_COMPILED_PATH macro....* Makefile.am (AM_CPPFLAGS): Define PACKAGE_LOAD_COMPILED_PATH macro.
* src/wrapper.c (main): Use it.
| Mathieu Lirzin | 2017-09-27 | 2 | -2/+6 |