| Commit message (Expand) | Author | Age | Files | Lines |
* | vixie-time: Adapt to '%find-best-next' possible infinite result...This is a follow up to commit ae6deb8ea23570c02a7b575a53bba37048aab59f.
* src/mcron/vixie-time.scm (increment-time-component): Check if
'%find-best-next' returns '+inf.0' not 9999.
| Mathieu Lirzin | 2018-04-01 | 1 | -10/+13 |
* | utils: Check 'show-version' and 'show-package-information'...* tests/utils.scm ("show-package-information")
("show-version"): New tests.
| Mathieu Lirzin | 2018-03-27 | 1 | -0/+18 |
* | utils: Remove 'parse-args'...It seems that it is not useful to catch 'misc-error exception when
calling 'getopt-long'. Since 'parse-args' purpose was only to catch
this particular error, it can be deleted.
* src/mcron/utils.scm (parse-args): Remove.
| Mathieu Lirzin | 2018-03-27 | 3 | -13/+5 |
* | job-specifier: Check 'job'...* tests/job-specifier.scm ("job: procedure timeproc")
("job: list timeproc", "job: string timeproc", "job: list action")
("job: invalid string timeproc", "job: invalid timeproc")
("job: procedure action", "job: string action")
("job: user name"): New tests.
| Mathieu Lirzin | 2018-03-27 | 1 | -0/+37 |
* | job-specifier: Box 'configuration-user' global variable...* src/mcron/job-specifier.scm (configuration-user): Box it using
SRFI-111 to be explicit about the mutability of this object.
(job): Adapt.
(set-configuration-user): Adapt and use 'get-user'.
* tests/job-specifier.scm ("set-configuration-user: passwd entry")
("set-configuration-user: invalid uid", "set-configuration-user: uid")
("set-configuration-user: invalid spec")
("set-configuration-user: name"): New tests.
| Mathieu Lirzin | 2018-03-27 | 2 | -6/+50 |
* | job-specifier: Check 'next-...' procedures...* tests/job-specifier.scm ("next-year", "next-month", "next-day")
("next-hour", "next-minute", "next-second"): New tests.
("next-hour-from"): Remove.
| Mathieu Lirzin | 2018-03-27 | 1 | -3/+36 |
* | job-specifier: Fix typo "implement" => "implementation"...* src/mcron/job-specifier.scm (%find-best-next): Fix typo.
| Mathieu Lirzin | 2018-03-27 | 1 | -1/+2 |
* | base: Check how child processes are handled...* tests/base.scm ("run-job: basic"): Check the number of children too.
("child-cleanup: one", "update-number-children!: set value"): New tests.
| Mathieu Lirzin | 2018-03-26 | 1 | -6/+23 |
* | job-specifier: Adapt 'bump-time' to 'next-...-from' procedures...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>
| Mathieu Lirzin | 2018-03-26 | 3 | -15/+19 |
* | job-specifier: Preserve '%find-best-next' arguments exactness...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>
| Mathieu Lirzin | 2018-03-26 | 2 | -3/+16 |
* | maint: Replace "build-aux/gnu-fetch" with 'fetch' maintainer rule...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.
| Mathieu Lirzin | 2018-03-26 | 3 | -98/+44 |
* | build: Add "maint.mk"...* maint.mk: New maintainer-only Makefile fragment.
* Makefile.am: Include it.
* configure.ac: Substitute "maint.mk" content when it exists.
| Mathieu Lirzin | 2018-03-26 | 3 | -0/+32 |
* | maint: Document how to get code coverage reports...* HACKING <Code coverage>: New section.
| Mathieu Lirzin | 2018-03-25 | 1 | -0/+8 |
* | maint: Update files from upstream with "build-aux/gnu-fetch"...* build-aux/test-driver.scm: Update.
| Mathieu Lirzin | 2018-03-25 | 1 | -9/+28 |
* | utils: It's 2018!...* src/mcron/utils.scm (show-version): Update copyright.
| Mathieu Lirzin | 2018-03-25 | 1 | -1/+1 |
* | utils: Check 'mcron-error'...* tests/utils.scm ("mcron-error: exit code", "mcron-error: output")
("mcron-error: output no-exit", "mcron-error: only stderr"): New tests.
| Mathieu Lirzin | 2018-03-25 | 1 | -1/+43 |
* | tests: Add "tests/utils.scm"...* tests/utils.scm: New test.
* Makefile.am (TESTS): Add it.
| Mathieu Lirzin | 2018-03-25 | 2 | -1/+53 |
* | maint: Update files from upstream with "build-aux/gnu-fetch"...* build-aux/gitlog-to-changelog: Update.
* build-aux/test-driver.scm: Likewise.
| Mathieu Lirzin | 2018-03-24 | 2 | -65/+92 |
* | maint: Add "build-aux/gnu-fetch" script....* build-aux/gnu-fetch: New script for fetching auxilary scripts
maintained in other GNU repositories.
* HACKING: Document how to run it.
| Mathieu Lirzin | 2018-03-24 | 2 | -1/+104 |
* | tests: Remove unused schedule stubs...* tests/base.scm ("number-children: init")
("update-number-children!: 1+", "update-number-children!: 1-"): Remove
'let' form defining the schedule stub.
| Mathieu Lirzin | 2018-03-24 | 1 | -13/+12 |
* | environment: Check configuration environment...* 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.
| Mathieu Lirzin | 2018-03-24 | 1 | -1/+54 |
* | environment: Refactor configuration environment handling...* 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.
| Mathieu Lirzin | 2018-03-24 | 1 | -35/+38 |
* | 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 |