Import vixie cron 4.0


Import vixie cron 4.0

Specifically, import the diff from commit e745bd4c10ab to
commit 83563783cc2 in https://github.com/vixie/cron.git

My sole motivation is changing to the common MIT license.
The old license, especially the "buildable source" clause,
is unfriendly for commercial users of this code. Simply
changing the license without importing [most of] the code
accompanying that license seemed legally dubious.

The most regrettable change is losing Paul's uucp path.
I partially atone for this loss by restoring the upstream
$Id$ tags, since $FreeBSD$ is no longer useful.

This is [intended to be] a complete list of the functional
changes in this commit. Some changes were made so that we
could consider vixie cron to be our upstream and reduce our
diffs against it, while others were simply a good idea.

  • main() - use putenv instead of setenv for PATH
  • open_pidfile no longer needs snprintf to build pidfile
  • crontab main() - abort() on impossible errors
  • check for truncation when building strings with snprintf
  • getdtablesize() -> sysconf(_SC_OPEN_MAX)

These changes were not taken from upstream's 4.0 diff because
they [could] actually change behavior. Some of them might be
beneficial, but should be taken separately.

  • config.h - sendmail args: remove -oi and add -or0s
  • call setlocale(LC_ALL, "") at the top of main()
  • acquire_daemonlock - we already use pidfile
  • cast getpid(), uid_t, and gid_t to long for printf
  • remove unnecessary braces - I consider them beneficial
  • BSDi support
  • glue_strings() - use snprintf(), as we often already did

MFC after: on demand
Sponsored by: Dell EMC Isilon
Differential Revision: https://reviews.freebsd.org/D40260


vangyzenAuthored on Jun 1 2023, 7:14 PM
Differential Revision
D40260: Import vixie cron 4.0
rGbe75e578549f: libpmc: expand PMC_OP* defines