| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a follow-up to commit 913e3c65e4f56476e8ac69f4892cf92c125751ec.
Since 'next-...-from' procedures now uses an '#:optional' argument
instead of a dotted optional arguments list, 'bump-time' doesn't need to
unwrap VALUE-LIST anymore.
* src/mcron/job-specifier.scm (bump-time): Pass VALUE-LIST directly to
'%find-best-next'.
* tests/job-specifier.scm ("next-hour-from"): New test.
* NEWS: Update.
Reported-by: Ludovic Courtès <ludo@gnu.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The behavior of the 'min' procedure which converts its parameters to
inexact numbers when at least one of them is inexact was causing
'%find-best-next' to always return real numbers.
* src/mcron/job-specifier.scm (%find-best-next): Preserve the exactness
of numbers in NEXT-LIST.
* tests/job-specifier.scm ("%find-best-next: exact"): New test.
Reported-by: Ludovic Courtès <ludo@gnu.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Fetching third-party files inside a make rule is convenient and less
error prone since 'make' has access to '$srcdir'.
* build-aux/gnu-fetch: Delete.
* maint.mk (WGET, git_sv_host, sv_git_am, sv_git_gl)
(fetchfiles): New macros.
(fetch): New target.
* HACKING <Updating auxilary scripts>: Update instructions.
|
|
|
|
|
|
| |
* maint.mk: New maintainer-only Makefile fragment.
* Makefile.am: Include it.
* configure.ac: Substitute "maint.mk" content when it exists.
|
|
|
|
| |
* HACKING <Code coverage>: New section.
|
|
|
|
| |
* build-aux/test-driver.scm: Update.
|
|
|
|
| |
* src/mcron/utils.scm (show-version): Update copyright.
|
|
|
|
|
| |
* tests/utils.scm ("mcron-error: exit code", "mcron-error: output")
("mcron-error: output no-exit", "mcron-error: only stderr"): New tests.
|
|
|
|
|
| |
* tests/utils.scm: New test.
* Makefile.am (TESTS): Add it.
|
|
|
|
|
| |
* build-aux/gitlog-to-changelog: Update.
* build-aux/test-driver.scm: Likewise.
|
|
|
|
|
|
| |
* build-aux/gnu-fetch: New script for fetching auxilary scripts
maintained in other GNU repositories.
* HACKING: Document how to run it.
|
|
|
|
|
|
| |
* tests/base.scm ("number-children: init")
("update-number-children!: 1+", "update-number-children!: 1-"): Remove
'let' form defining the schedule stub.
|
|
|
|
|
|
|
| |
* tests/environment.scm ("current-environment-mods-copy: empty")
("current-environment-mods: init", "append-environment-mods: basic")
("append-environment-mods: twice", "clear-environment-mods: effect")
("current-environment-mods-copy: basic"): New tests.
|
|
|
|
|
|
|
|
| |
* src/mcron/environment.scm (current-environment-mods): Rename to ...
(%current-environment-mods): ... this. Box it using SRFI-111 to be
explicit about the mutability of this object.
(get-current-environment-mods-copy, clear-environment-mods)
(append-environment-mods): New '#:ENVIRON' argument.
|
|
|
|
| |
* tests/base.scm ("run-job: basic"): New test.
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
* src/mcron/base.scm (child-cleanup): Use recursion instead of 'do'.
|
|
|
|
|
|
| |
* src/mcron/utils.scm (get-user): New procedure.
* src/mcron/job-specifier.scm (job): Use it.
* src/mcron/base.scm (remove-user-jobs): Likewise.
|
|
|
|
|
| |
* src/mcron/base.scm (find-next-jobs): Don't explain the detail of
implementation in the docstring.
|
|
|
|
|
| |
* tests/base.scm: New test.
* Makefile.am (TESTS): Add it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
* configure.ac: Check 'argp_parse' and 'asprintf' presence.
|
|
|
|
|
| |
* src/mcron/job-specifier.scm (job): Use 'simple-format' instead of
'with-output-to-string'.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
* NEWS: Announce the availability of '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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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'.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* NEWS: Add header line for next release.
* .prev-version: Record previous version.
|
|
|
|
| |
* NEWS: Record release date.
|
|
|
|
|
|
| |
This file is used by the "build-aux/do-release-commit-and-tag" script.
* .prev-version: New file
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
| |
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)'.
|
|
|
|
|
|
|
| |
* tests/schedule.sh: New test.
* Makefile.am (TESTS): Add it.
* src/mcron/job-specifier.scm (configuration-time): Use
SOURCE_DATE_EPOCH for reproducible tests.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
* src/mcron/scripts/crontab.scm (in-access-file?)
(hit-server): New procedures.
|
|
|
|
| |
* README: Remove non-existing mailing-lists.
|
|
|
|
|
|
| |
* README--git: Delete.
* HACKING: New file documenting how to contribute to Mcron.
* Makefile.am (EXTRA_DIST): Distribute it.
|
|
|
|
| |
* AUTHORS: Add Ludovic Courtès.
|
|
|
|
| |
* NEWS: Update with changes made since last release.
|
|
|
|
| |
* NEWS: Follow the format used by GNU Coreutils.
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* doc/mcron.texi (Invoking cron or crond): Use 'unless' form and put
"/etc/crontab" inside a @code command.
|
|
|
|
|
| |
* src/utils.c (assq_symbol_set_x): New function.
* src/mcron.c (parse_opt): Use it.
|
|
|
|
|
|
|
|
|
|
|
| |
'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.
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|