Debian Bug report logs - #609162
package names with dots/periods ('.') and crontab files: packagers beware

version graph

Package: debian-policy; Maintainer for debian-policy is Debian Policy List <debian-policy@lists.debian.org>; Source for debian-policy is src:debian-policy.

Reported by: "Karl E. Jorgensen" <karl@jorgensen.org.uk>

Date: Thu, 6 Jan 2011 22:45:01 UTC

Severity: normal

Fixed in version debian-policy/3.9.3.0

Done: Russ Allbery <rra@debian.org>

Bug is archived. No further changes may be made.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#609162; Package debian-policy. (Thu, 06 Jan 2011 22:45:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Karl E. Jorgensen" <karl@jorgensen.org.uk>:
New Bug report received and forwarded. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Thu, 06 Jan 2011 22:45:04 GMT) Full text and rfc822 format available.

Message #5 received at submit@bugs.debian.org (full text, mbox):

From: "Karl E. Jorgensen" <karl@jorgensen.org.uk>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: debian-policy: package names with dots/periods ('.') and crontab files: packagers beware
Date: Thu, 06 Jan 2011 22:23:19 +0000
Package: debian-policy
Severity: minor


The debian policy section 9.5 [1] suggests using the package name as a
file name when creating files in /etc/cron.d, /etc/cron.hourly,
/etc/cron.daily etc.  This works well *unless* the package name
includes a dot ('.'), as this forces the file name to include a
dot. And cron will ignore the files as a result.

It can be a real nightmare for packagers to figure out *why* their
crontabs do not run - cron silently ignores them, and no useful
logging occurs.

Could the the policy should be amended to suggest hyphens ('-')
instead of dots when naming these files?

I will not demand a change of cron's behaviour, as there is a good
rationale behind ignoring files with dots. And changing cron's
behaviour is unlikely to be 100% backward-compatible.

If the Debian Policy manual is changed, then this should cascade onto
other changes, for example:
* the Debian New Maintainer's Guide - section 5.4 [2]
* dh-make ?
* debhelper ? It could make sense to rename the files when building a package

and probably others that I cannot think of.  I will be happy to file
bugs on those packages if the decision is made to change the policy
manual.

Related bugs:
* #607209 : request-tracker3.8 got caught out by this
* #324922 : cron ignores files whose name contain a period (with rationale)

[1] http://www.debian.org/doc/debian-policy/ch-opersys.html#s9.5
[2] http://www.debian.org/doc/maint-guide/ch-dother.en.html#s-crond

-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (500, 'testing'), (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-5-vserver-686 (SMP w/2 CPU cores)
Locale: LANG=en_GB.ISO-8859-15, LC_CTYPE=en_GB.ISO-8859-15 (charmap=ISO-8859-15)
hell: /bin/sh linked to /bin/bash




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#609162; Package debian-policy. (Wed, 02 Mar 2011 03:27:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jonathan Nieder <jrnieder@gmail.com>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Wed, 02 Mar 2011 03:27:02 GMT) Full text and rfc822 format available.

Message #10 received at 609162@bugs.debian.org (full text, mbox):

From: Jonathan Nieder <jrnieder@gmail.com>
To: "Karl E. Jorgensen" <karl@jorgensen.org.uk>
Cc: 609162@bugs.debian.org
Subject: Re: debian-policy: package names with dots/periods ('.') and crontab files: packagers beware
Date: Tue, 1 Mar 2011 21:22:22 -0600
user debian-policy@packages.debian.org
usertags 609162 + normative discussion
severity 609162 normal
quit

Hi Karl,

Karl E. Jorgensen wrote:

> The debian policy section 9.5 [1] suggests using the package name as a
> file name when creating files in /etc/cron.d, /etc/cron.hourly,
> /etc/cron.daily etc.  This works well *unless* the package name
> includes a dot ('.'), as this forces the file name to include a
> dot. And cron will ignore the files as a result.

Thanks for raising this.  I agree that we should change the advice

	If a certain job has to be executed at some other frequency or
	at a specific time, the package should install a file
	/etc/cron.d/<package>

to reflect the run-parts rule

	If neither the --lsbsysinit option nor the --regex option is
	given then the names must consist entirely of ASCII upper- and
	lower-case letters, ASCII digits, ASCII underscores, and ASCII
	minus-hyphens.

The current rule for package names (from §5.6.1) is

	[a-z0-9][-+a-z0-9.]+

so the problematic characters are dot ('.'), which you mentioned,
and plus ('+').

You proposed to advocate substituting hyphens for dots, but that
would create problems when the names of two packages differ only
by punctuation:

	great-package
	great.package

Maybe we don't have to worry about such an insane case.  In any event,
it's easy to avoid that problem by substituting underscores for dots
and P for plus signs.

Sensible?  If so, would you like to propose wording for this?

Regards,
Jonathan




Severity set to 'normal' from 'minor' Request was from Jonathan Nieder <jrnieder@gmail.com> to control@bugs.debian.org. (Wed, 02 Mar 2011 03:27:04 GMT) Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#609162; Package debian-policy. (Sun, 13 Mar 2011 20:39:38 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Karl E. Jorgensen" <karl@jorgensen.org.uk>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Sun, 13 Mar 2011 20:39:38 GMT) Full text and rfc822 format available.

Message #17 received at 609162@bugs.debian.org (full text, mbox):

From: "Karl E. Jorgensen" <karl@jorgensen.org.uk>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: 609162@bugs.debian.org
Subject: Re: debian-policy: package names with dots/periods ('.') and crontab files: packagers beware
Date: Sun, 13 Mar 2011 20:12:38 +0000
Hi!

On Tue, Mar 01, 2011 at 09:22:22PM -0600, Jonathan Nieder wrote:
> Hi Karl,
> 
> Karl E. Jorgensen wrote:
> 
> > The debian policy section 9.5 [1] suggests using the package name as a
> > file name when creating files in /etc/cron.d, /etc/cron.hourly,
> > /etc/cron.daily etc.  This works well *unless* the package name
> > includes a dot ('.'), as this forces the file name to include a
> > dot. And cron will ignore the files as a result.
> 
> Thanks for raising this.  I agree that we should change the advice
> 
> 	If a certain job has to be executed at some other frequency or
> 	at a specific time, the package should install a file
> 	/etc/cron.d/<package>
> 
> to reflect the run-parts rule
> 
> 	If neither the --lsbsysinit option nor the --regex option is
> 	given then the names must consist entirely of ASCII upper- and
> 	lower-case letters, ASCII digits, ASCII underscores, and ASCII
> 	minus-hyphens.
> 
> The current rule for package names (from §5.6.1) is
> 
> 	[a-z0-9][-+a-z0-9.]+
> 
> so the problematic characters are dot ('.'), which you mentioned,
> and plus ('+').

Oh - I hadn't spotted that one. You are quite correct.

> You proposed to advocate substituting hyphens for dots, but that
> would create problems when the names of two packages differ only
> by punctuation:
> 
> 	great-package
> 	great.package
> 
> Maybe we don't have to worry about such an insane case.  In any event,
> it's easy to avoid that problem by substituting underscores for dots
> and P for plus signs.

That _would_ be an almost insane case, and I hope that the packages
avoid having such nearly-indistinguishable package names. Not only
will it cause problems for the crontab entries, but (more importantly)
affect the sanity of users...

One thing that should be considered here is other implementations of
cron... I'm not familiar with any, if you know of any please flag it
up.

> Sensible?  If so, would you like to propose wording for this?

Can do. are two sentences in secion 9.5 which will need to be changed. 

The 2nd sentence in 9.5, which currently reads:

    If a package wants to install a job that has to be executed via
    cron, it should place a file with the name of the package in one
    or more of the following directories:

could be changed to:

    If a package wants to install a job that has to be executed via
    cron, it should place a file with the name of the package (with a
    file name as specified in section 9.5.1) in one or more of the
    following directories:

And further down, the sentence which currently reads:

    If a certain job has to be executed at some other frequency or at
    a specific time, the package should install a file
    /etc/cron.d/package

could be changed to:

    If a certain job has to be executed at some other frequency or at
    a specific time, the package should install a file
    /etc/cron.d/package (with a file name as specified in section
    9.5.1)

and a new section:

    9.5.1 File Names for Cron Jobs

    File names representing cron jobs should generally be named
    according to the package from which it comes.

    If a package supplies multiple crontab files in the same
    directory, the file names should all start with the name of the
    package followed by a hyphen ('-') and a suitable suffix.

    The resulting file name must not include any '.' or '+' characters
    as this will cause cron to ignore them.  Underscores ('_') should
    be used instead of '.' and '+' characters.

How does that sound?

-- 
Karl E. Jorgensen




Changed Bug title to 'package names with dots/periods ('.') and crontab files: packagers beware' from 'debian-policy: package names with dots/periods ('.') and crontab files: packagers beware' Request was from Russ Allbery <rra@debian.org> to control@bugs.debian.org. (Mon, 04 Apr 2011 03:27:13 GMT) Full text and rfc822 format available.

Added tag(s) patch. Request was from Russ Allbery <rra@debian.org> to control@bugs.debian.org. (Mon, 04 Apr 2011 03:27:14 GMT) Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#609162; Package debian-policy. (Mon, 04 Apr 2011 03:33:07 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Mon, 04 Apr 2011 03:33:08 GMT) Full text and rfc822 format available.

Message #26 received at 609162@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: "Karl E. Jorgensen" <karl@jorgensen.org.uk>
Cc: 609162@bugs.debian.org, Jonathan Nieder <jrnieder@gmail.com>
Subject: Re: Bug#609162: debian-policy: package names with dots/periods ('.') and crontab files: packagers beware
Date: Sun, 03 Apr 2011 20:25:17 -0700
"Karl E. Jorgensen" <karl@jorgensen.org.uk> writes:

> Can do. are two sentences in secion 9.5 which will need to be changed. 

> The 2nd sentence in 9.5, which currently reads:

>     If a package wants to install a job that has to be executed via
>     cron, it should place a file with the name of the package in one
>     or more of the following directories:

> could be changed to:

>     If a package wants to install a job that has to be executed via
>     cron, it should place a file with the name of the package (with a
>     file name as specified in section 9.5.1) in one or more of the
>     following directories:

> And further down, the sentence which currently reads:

>     If a certain job has to be executed at some other frequency or at
>     a specific time, the package should install a file
>     /etc/cron.d/package

> could be changed to:

>     If a certain job has to be executed at some other frequency or at
>     a specific time, the package should install a file
>     /etc/cron.d/package (with a file name as specified in section
>     9.5.1)

> and a new section:

>     9.5.1 File Names for Cron Jobs

>     File names representing cron jobs should generally be named
>     according to the package from which it comes.

>     If a package supplies multiple crontab files in the same
>     directory, the file names should all start with the name of the
>     package followed by a hyphen ('-') and a suitable suffix.

>     The resulting file name must not include any '.' or '+' characters
>     as this will cause cron to ignore them.  Underscores ('_') should
>     be used instead of '.' and '+' characters.

> How does that sound?

Looks good to me.  Seconded, with the minor correction in the
second-to-last paragraph of s/crontab files/cron job files/ since,
properly speaking, only the files in /etc/cron.d are actually crontab
files.  The rest are just executables.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#609162; Package debian-policy. (Tue, 13 Sep 2011 22:07:38 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jonathan Nieder <jrnieder@gmail.com>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Tue, 13 Sep 2011 22:07:54 GMT) Full text and rfc822 format available.

Message #31 received at 609162@bugs.debian.org (full text, mbox):

From: Jonathan Nieder <jrnieder@gmail.com>
To: 609162@bugs.debian.org
Cc: "Karl E. Jorgensen" <karl@jorgensen.org.uk>
Subject: Re: debian-policy: package names with dots/periods ('.') and crontab files: packagers beware
Date: Tue, 13 Sep 2011 17:02:27 -0500
(bcc: cron maintainers, request-tracker3.8 maintainers, debianutils
 maintainers, jtmd)
Hi,

Karl E. Jorgensen noticed that the current advice for naming files in
cron.d breaks for packages with a dot in their name and proposed a
small policy change to fix that.  Seconds?  Objections?

The proposed change follows:

Russ Allbery wrote:
> "Karl E. Jorgensen" <karl@jorgensen.org.uk> writes:

>> Can do. are two sentences in secion 9.5 which will need to be changed. 
>>
>> The 2nd sentence in 9.5, which currently reads:
>>
>>     If a package wants to install a job that has to be executed via
>>     cron, it should place a file with the name of the package in one
>>     or more of the following directories:
>>
>> could be changed to:
>>
>>     If a package wants to install a job that has to be executed via
>>     cron, it should place a file with the name of the package (with a
>>     file name as specified in section 9.5.1) in one or more of the
>>     following directories:
>>
>> And further down, the sentence which currently reads:
>>
>>     If a certain job has to be executed at some other frequency or at
>>     a specific time, the package should install a file
>>     /etc/cron.d/package
>>
>> could be changed to:
>>
>>     If a certain job has to be executed at some other frequency or at
>>     a specific time, the package should install a file
>>     /etc/cron.d/package (with a file name as specified in section
>>     9.5.1)
>>
>> and a new section:
>>
>>     9.5.1 File Names for Cron Jobs
>>
>>     File names representing cron jobs should generally be named
>>     according to the package from which it comes.
>>
>>     If a package supplies multiple crontab files in the same
>>     directory, the file names should all start with the name of the
>>     package followed by a hyphen ('-') and a suitable suffix.
>>
>>     The resulting file name must not include any '.' or '+' characters
>>     as this will cause cron to ignore them.  Underscores ('_') should
>>     be used instead of '.' and '+' characters.
>>
>> How does that sound?
>
> Looks good to me.  Seconded, with the minor correction in the
> second-to-last paragraph of s/crontab files/cron job files/ since,
> properly speaking, only the files in /etc/cron.d are actually crontab
> files.  The rest are just executables.

Thanks,
Jonathan




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#609162; Package debian-policy. (Tue, 13 Sep 2011 22:57:16 GMT) Full text and rfc822 format available.

Acknowledgement sent to Dominic Hargreaves <dom@earth.li>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Tue, 13 Sep 2011 22:57:28 GMT) Full text and rfc822 format available.

Message #36 received at 609162@bugs.debian.org (full text, mbox):

From: Dominic Hargreaves <dom@earth.li>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: 609162@bugs.debian.org, "Karl E. Jorgensen" <karl@jorgensen.org.uk>, pkg-request-tracker-maintainers@lists.alioth.debian.org
Subject: Re: [request-tracker-maintainers] debian-policy: package names with dots/periods ('.') and crontab files: packagers beware
Date: Tue, 13 Sep 2011 23:39:19 +0100
On Tue, Sep 13, 2011 at 05:02:27PM -0500, Jonathan Nieder wrote:
> (bcc: cron maintainers, request-tracker3.8 maintainers, debianutils
>  maintainers, jtmd)
> Hi,
> 
> Karl E. Jorgensen noticed that the current advice for naming files in
> cron.d breaks for packages with a dot in their name and proposed a
> small policy change to fix that.  Seconds?  Objections?
> 
> The proposed change follows:
> 
> Russ Allbery wrote:
> > "Karl E. Jorgensen" <karl@jorgensen.org.uk> writes:
> 
> >> Can do. are two sentences in secion 9.5 which will need to be changed. 
> >>
> >> The 2nd sentence in 9.5, which currently reads:
> >>
> >>     If a package wants to install a job that has to be executed via
> >>     cron, it should place a file with the name of the package in one
> >>     or more of the following directories:
> >>
> >> could be changed to:
> >>
> >>     If a package wants to install a job that has to be executed via
> >>     cron, it should place a file with the name of the package (with a
> >>     file name as specified in section 9.5.1) in one or more of the
> >>     following directories:
> >>
> >> And further down, the sentence which currently reads:
> >>
> >>     If a certain job has to be executed at some other frequency or at
> >>     a specific time, the package should install a file
> >>     /etc/cron.d/package
> >>
> >> could be changed to:
> >>
> >>     If a certain job has to be executed at some other frequency or at
> >>     a specific time, the package should install a file
> >>     /etc/cron.d/package (with a file name as specified in section
> >>     9.5.1)

This should presumably say "should install a file in /etc/cron.d (with
a file name...".

> >> and a new section:
> >>
> >>     9.5.1 File Names for Cron Jobs
> >>
> >>     File names representing cron jobs should generally be named
> >>     according to the package from which it comes.
> >>
> >>     If a package supplies multiple crontab files in the same
> >>     directory, the file names should all start with the name of the
> >>     package followed by a hyphen ('-') and a suitable suffix.
> >>
> >>     The resulting file name must not include any '.' or '+' characters
> >>     as this will cause cron to ignore them.  Underscores ('_') should
> >>     be used instead of '.' and '+' characters.
> >>
> >> How does that sound?
> >
> > Looks good to me.  Seconded, with the minor correction in the
> > second-to-last paragraph of s/crontab files/cron job files/ since,
> > properly speaking, only the files in /etc/cron.d are actually crontab
> > files.  The rest are just executables.

Seconded, with my above correction.

Thanks to all for taking the time to improve the situation.

Dominic.

-- 
Dominic Hargreaves | http://www.larted.org.uk/~dom/
PGP key 5178E2A5 from the.earth.li (keyserver,web,email)




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#609162; Package debian-policy. (Tue, 13 Sep 2011 22:57:35 GMT) Full text and rfc822 format available.

Acknowledgement sent to Javier Fernández-Sanguino Peña <jfs@computer.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Tue, 13 Sep 2011 22:57:36 GMT) Full text and rfc822 format available.

Message #41 received at 609162@bugs.debian.org (full text, mbox):

From: Javier Fernández-Sanguino Peña <jfs@computer.org>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: 609162@bugs.debian.org, "Karl E. Jorgensen" <karl@jorgensen.org.uk>
Subject: Re: debian-policy: package names with dots/periods ('.') and crontab files: packagers beware
Date: Wed, 14 Sep 2011 00:52:07 +0200
[Message part 1 (text/plain, inline)]
On Tue, Sep 13, 2011 at 05:02:27PM -0500, Jonathan Nieder wrote:
> (bcc: cron maintainers, request-tracker3.8 maintainers, debianutils
>  maintainers, jtmd)
> Hi,
> 
> Karl E. Jorgensen noticed that the current advice for naming files in
> cron.d breaks for packages with a dot in their name and proposed a
> small policy change to fix that.  Seconds?  Objections?

Yes, that issue has been recently documented more in detail in cron's manpage
(in version 3.0pl1-119). In any case, this issue is still open as bug 618317
and bug 631884. We (the cron maintainers) are yet undecided on whether we are
going to keep it as it is or if we are going to change the default behaviour
in future releases.

Mainly because this seems to be a constant frustation for users since other
distributions do not impose this requirement in their own cron forks.

> The proposed change follows:
> 
> Russ Allbery wrote:
> > "Karl E. Jorgensen" <karl@jorgensen.org.uk> writes:
> 
> >> Can do. are two sentences in secion 9.5 which will need to be changed. 
> >>
> >> The 2nd sentence in 9.5, which currently reads:
> >>
> >>     If a package wants to install a job that has to be executed via
> >>     cron, it should place a file with the name of the package in one
> >>     or more of the following directories:
> >>
> >> could be changed to:
> >>
> >>     If a package wants to install a job that has to be executed via
> >>     cron, it should place a file with the name of the package (with a
> >>     file name as specified in section 9.5.1) in one or more of the
> >>     following directories:

Ok with this change.

> >>
> >> And further down, the sentence which currently reads:
> >>
> >>     If a certain job has to be executed at some other frequency or at
> >>     a specific time, the package should install a file
> >>     /etc/cron.d/package
> >>
> >> could be changed to:
> >>
> >>     If a certain job has to be executed at some other frequency or at
> >>     a specific time, the package should install a file
> >>     /etc/cron.d/package (with a file name as specified in section
> >>     9.5.1)

Ok with this change. But please notice that there are some restrictions
to the file permissions of the files under /etc/cron.d (from cron's manpage:
"must be owned by root, and must not be group- or other-writable."). 

Maybe those restrictions should be included there too?

> >>
> >> and a new section:
> >>
> >>     9.5.1 File Names for Cron Jobs
> >>
> >>     File names representing cron jobs should generally be named
> >>     according to the package from which it comes.
> >>
> >>     If a package supplies multiple crontab files in the same
> >>     directory, the file names should all start with the name of the
> >>     package followed by a hyphen ('-') and a suitable suffix.
> >>
> >>     The resulting file name must not include any '.' or '+' characters
> >>     as this will cause cron to ignore them.  Underscores ('_') should
> >>     be used instead of '.' and '+' characters.

Agree with this change, as it is the current situation. But please note that
we might change this in the future and lift this requirement for future
Debian releases.

In addition, strictly speacking, the filename restriction  does not necessarily
apply to the files under /etc/cron.d (there is a '-l' switch in our Vixie
cron implementation for those sysadmins that want LSB-style filenames there).
But, for the sake of brevity, we might want to put the general case.

> >> How does that sound?
> >
> > Looks good to me.  Seconded, with the minor correction in the
> > second-to-last paragraph of s/crontab files/cron job files/ since,
> > properly speaking, only the files in /etc/cron.d are actually crontab
> > files.  The rest are just executables.

Looks good to me too.


Regards

Javier
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#609162; Package debian-policy. (Mon, 26 Dec 2011 17:51:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Mon, 26 Dec 2011 17:51:06 GMT) Full text and rfc822 format available.

Message #46 received at 609162@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: 609162@bugs.debian.org, "Karl E. Jorgensen" <karl@jorgensen.org.uk>, Javier Fernández-Sanguino Peña <jfs@computer.org>, Dominic Hargreaves <dom@earth.li>
Subject: Re: Bug#609162: debian-policy: package names with dots/periods ('.') and crontab files: packagers beware
Date: Mon, 26 Dec 2011 09:49:06 -0800
[Message part 1 (text/plain, inline)]
Javier Fernández-Sanguino Peña <jfs@computer.org> writes:
> On Tue, Sep 13, 2011 at 05:02:27PM -0500, Jonathan Nieder wrote:

>> (bcc: cron maintainers, request-tracker3.8 maintainers, debianutils
>>  maintainers, jtmd)
>> Hi,
>> 
>> Karl E. Jorgensen noticed that the current advice for naming files in
>> cron.d breaks for packages with a dot in their name and proposed a
>> small policy change to fix that.  Seconds?  Objections?

> Yes, that issue has been recently documented more in detail in cron's
> manpage (in version 3.0pl1-119). In any case, this issue is still open
> as bug 618317 and bug 631884. We (the cron maintainers) are yet
> undecided on whether we are going to keep it as it is or if we are going
> to change the default behaviour in future releases.

Hi everyone,

Thank you for the review of the cron job file naming, and sorry about the
long delay in processing the results.  I've just now committed this change
to the Policy repository for the next release.  I reworked the wording a
little bit; the final version is attached.

> Ok with this change. But please notice that there are some restrictions
> to the file permissions of the files under /etc/cron.d (from cron's
> manpage:  "must be owned by root, and must not be group- or
> other-writable.").

> Maybe those restrictions should be included there too?

We should be okay to leave this out since it just duplicates the existing
general requirement in Policy concerning all file permissions in 10.9:

    Files should be owned by root:root, and made writable only by the
    owner and universally readable (and executable, if appropriate), that
    is mode 644 or 755.

> Agree with this change, as it is the current situation. But please note
> that we might change this in the future and lift this requirement for
> future Debian releases.

If you do end up doing this, could you try to remember to let us know so
that Policy can also be changed?

> In addition, strictly speacking, the filename restriction does not
> necessarily apply to the files under /etc/cron.d (there is a '-l' switch
> in our Vixie cron implementation for those sysadmins that want LSB-style
> filenames there).  But, for the sake of brevity, we might want to put
> the general case.

Yeah, I think it's better to document the default case since that's what
packages have to assume and rely on.  If the local sysadmin wants to
change the behavior for their own cron jobs, that's great, but packages
can't assume that's been done.

Here is the patch as applied.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>

[0001-Document-cron-job-file-naming-restrictions.patch (text/x-diff, inline)]
From a694cff01eb1dfd7073ddf7a58051cbd4e3553fc Mon Sep 17 00:00:00 2001
From: Russ Allbery <rra@debian.org>
Date: Mon, 26 Dec 2011 09:39:17 -0800
Subject: [PATCH] Document cron job file naming restrictions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Cron job file names need to avoid . and + and should use _ for those
characters instead.  Also document a convention for packages that need
to include multiple cron job files.

Wording: Karl E. Jorgensen <karl@jorgensen.org.uk>
Wording: Russ Allbery <rra@debian.org>
Seconded: Russ Allbery <rra@debian.org>
Seconded: Dominic Hargreaves <dom@earth.li>
Seconded: Javier Fernández-Sanguino Peña <jfs@computer.org>
Closes: #609162
---
 policy.sgml |   50 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 39 insertions(+), 11 deletions(-)

diff --git a/policy.sgml b/policy.sgml
index 854fde6..55a33ba 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -7140,18 +7140,20 @@ Reloading <var>description</var> configuration...done.
 	</p>
       </sect>
 
-      <sect>
+      <sect id="cron-jobs">
 	<heading>Cron jobs</heading>
 
 	<p>
 	  Packages must not modify the configuration file
 	  <file>/etc/crontab</file>, and they must not modify the files in
-	  <file>/var/spool/cron/crontabs</file>.</p>
+	  <file>/var/spool/cron/crontabs</file>.
+	</p>
 
 	<p>
-	  If a package wants to install a job that has to be executed
-	  via cron, it should place a file with the name of the
-	  package in one or more of the following directories:
+	  If a package wants to install a job that has to be executed via
+	  cron, it should place a file named as specified
+	  in <ref id="cron-files"> into one or more of the following
+	  directories:
 	  <example compact="compact">
 /etc/cron.hourly
 /etc/cron.daily
@@ -7161,7 +7163,8 @@ Reloading <var>description</var> configuration...done.
 	  As these directory names imply, the files within them are
 	  executed on an hourly, daily, weekly, or monthly basis,
 	  respectively. The exact times are listed in
-	  <file>/etc/crontab</file>.</p>
+	  <file>/etc/crontab</file>.
+	</p>
 
 	<p>
 	  All files installed in any of these directories must be
@@ -7172,15 +7175,18 @@ Reloading <var>description</var> configuration...done.
 
 	<p>
 	  If a certain job has to be executed at some other frequency or
-	  at a specific time, the package should install a file
-	  <file>/etc/cron.d/<var>package</var></file>. This file uses the
-	  same syntax as <file>/etc/crontab</file> and is processed by
-	  <prgn>cron</prgn> automatically. The file must also be
+	  at a specific time, the package should install a file in
+	  <file>/etc/cron.d</file> with a name as specified
+	  in <ref id="cron-files">.  This file uses the same syntax
+	  as <file>/etc/crontab</file> and is processed
+	  by <prgn>cron</prgn> automatically. The file must also be
 	  treated as a configuration file. (Note that entries in the
 	  <file>/etc/cron.d</file> directory are not handled by
 	  <prgn>anacron</prgn>. Thus, you should only use this
 	  directory for jobs which may be skipped if the system is not
-	  running.)</p>
+	  running.)
+	</p>
+
 	<p>
           Unlike <file>crontab</file> files described in the IEEE Std
           1003.1-2008 (POSIX.1) available from
@@ -7223,6 +7229,28 @@ Reloading <var>description</var> configuration...done.
           execute scripts in
           <file>/etc/cron.{hourly,daily,weekly,monthly}</file>.
         </p>
+
+	<sect1 id="cron-files">
+	  <p>
+	    The file name of a cron job file should normally match the
+	    name of the package from which it comes.
+	  </p>
+
+	  <p>
+	    If a package supplies multiple cron job files files in the
+	    same directory, the file names should all start with the name
+	    of the package (possibly modified as described below) followed
+	    by a hyphen (<tt>-</tt>) and a suitable suffix.
+	  </p>
+
+	  <p>
+	    A cron job file name must not include any period or plus
+	    characters (<tt>.</tt> or <tt>+</tt>) characters as this will
+	    cause cron to ignore the file.  Underscores (<tt>_</tt>)
+	    should be used instead of <tt>.</tt> and <tt>+</tt>
+	    characters.
+	  </p>
+	</sect1>
       </sect>
 
       <sect id="menus">
-- 
1.7.7.3


Added tag(s) pending; removed tag(s) patch. Request was from Russ Allbery <rra@debian.org> to control@bugs.debian.org. (Mon, 26 Dec 2011 17:51:07 GMT) Full text and rfc822 format available.

Reply sent to Russ Allbery <rra@debian.org>:
You have taken responsibility. (Thu, 23 Feb 2012 04:06:16 GMT) Full text and rfc822 format available.

Notification sent to "Karl E. Jorgensen" <karl@jorgensen.org.uk>:
Bug acknowledged by developer. (Thu, 23 Feb 2012 04:06:16 GMT) Full text and rfc822 format available.

Message #53 received at 609162-close@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: 609162-close@bugs.debian.org
Subject: Bug#609162: fixed in debian-policy 3.9.3.0
Date: Thu, 23 Feb 2012 04:02:13 +0000
Source: debian-policy
Source-Version: 3.9.3.0

We believe that the bug you reported is fixed in the latest version of
debian-policy, which is due to be installed in the Debian FTP archive:

debian-policy_3.9.3.0.dsc
  to main/d/debian-policy/debian-policy_3.9.3.0.dsc
debian-policy_3.9.3.0.tar.gz
  to main/d/debian-policy/debian-policy_3.9.3.0.tar.gz
debian-policy_3.9.3.0_all.deb
  to main/d/debian-policy/debian-policy_3.9.3.0_all.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 609162@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Russ Allbery <rra@debian.org> (supplier of updated debian-policy package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Wed, 22 Feb 2012 19:40:36 -0800
Source: debian-policy
Binary: debian-policy
Architecture: source all
Version: 3.9.3.0
Distribution: unstable
Urgency: low
Maintainer: Debian Policy List <debian-policy@lists.debian.org>
Changed-By: Russ Allbery <rra@debian.org>
Description: 
 debian-policy - Debian Policy Manual and related documents
Closes: 23712 89038 498300 532120 578421 593533 609162 617315 617516 619275 620870 621479 623050 626338 626408 626779 626796 627490 628540 633797 637614 640735 640737 641071 643690 644230 646119 646166 648387 649674 651020 658209
Changes: 
 debian-policy (3.9.3.0) unstable; urgency=low
 .
   [ Russ Allbery ]
   * Update the copyright format document to the version of DEP-5 from the
     DEP web site and apply additional changes from subsequent discussion
     in debian-devel and debian-project.  Revise for clarity, to add more
     examples, and to update the GFDL license versions.  Thanks, Steve
     Langasek, Charles Plessy, Justin B Rye, and Jonathan Nieder.
     (Closes: #658209, #648387)
   * Publish the copyright format specification as copyright-format-1.0 so
     that later versions can be added without removing previous versions of
     the standard.  Patch from Charles Plessy.  (Closes: #646119)
   * Policy: Improve Architecture field in source package
     Wording: Raphaël Hertzog <hertzog@debian.org>
     Seconded: Russ Allbery <rra@debian.org>
     Seconded: Charles Plessy <plessy@debian.org>
     Seconded: Guillem Jover <guillem@debian.org>
     Closes: #626779
   * Policy: Initial Debian maintainers need not be listed in copyright
     Wording: Charles Plessy <plessy@debian.org>
     Seconded: Russ Allbery <rra@debian.org>
     Seconded: Raphaël Hertzog <hertzog@debian.org>
     Seconded: Andrew McMillan <andrew@morphoss.com>
     Closes: #593533
   * Policy: Document cron job file naming restrictions
     Wording: Karl E. Jorgensen <karl@jorgensen.org.uk>
     Wording: Russ Allbery <rra@debian.org>
     Seconded: Russ Allbery <rra@debian.org>
     Seconded: Dominic Hargreaves <dom@earth.li>
     Seconded: Javier Fernández-Sanguino Peña <jfs@computer.org>
     Closes: #609162
   * Policy: Document issues with conflicting packages sharing a conffile
     Wording: Russ Allbery <rra@debian.org>
     Seconded: Cyril Brulebois <kibi@debian.org>
     Seconded: Raphaël Hertzog <hertzog@debian.org>
     Closes: #23712
   * Policy: Add /run FHS exception, clarify rules for /run and /var/run
     Wording: Russ Allbery <rra@debian.org>
     Seconded: Steve Langasek <vorlon@debian.org>
     Seconded: Roger Leigh <rleigh@codelibre.net>
     Closes: #620870, #532120
   * Policy: Architecture restrictions in a dependency must be non-empty
     Wording: Stefano Zacchiroli <zack@debian.org>
     Seconded: Russ Allbery <rra@debian.org>
     Seconded: Julien Cristau <jcristau@debian.org>
     Seconded: Colin Watson <cjwatson@debian.org>
     Closes: #498300
   * MIME Policy: Retire this document and merge it with Policy
     Wording: Ben Finney <ben+debian@benfinney.id.au>
     Seconded: Russ Allbery <rra@debian.org>
     Seconded: Raphaël Hertzog <hertzog@debian.org>
     Seconded: Andrew McMillan <andrew@morphoss.com>
     Closes: #89038
   * Consistently use "Debian source control file" for *.dsc files and
     "Source package control file" for debian/control files.  Patch from
     Charles Plessy.  (Closes: #626796)
   * Clarify that continuation lines of the Description control field must
     contain at least one non-whitespace character.  Thanks, Guillem Jover.
     (Closes: #627490)
   * Fix the example of creating a /usr/local subdirectory to not fail if
     the chown or chmod fail.  Thanks, Joey Hess.  (Closes: #617315)
   * Clarify the requirements for symlinks from inside one top-level
     directory to another and add examples and a rationale.  Thanks,
     Carsten Hey.  (Closes: #626338)
   * Clarify that Perl Policy 2.4 is for packages built from the perl
     source package and the manual page extensions are different for
     separate module packages.  Thanks, Steve Langasek.  (Closes: #643690)
   * Say that packages in main may also not recommend packages in non-free,
     bringing the main text in line with the list of fields and in line
     with the long-standing release goal.  (Closes: #646166)
   * Resynchronize the archive section list with ftp-master, adding
     education, introspection, and metapackages.  Patch from Charles
     Plessy.  (Closes: #651020)
   * Clarify that packages in main may not declare Pre-Depends or
     Build-Depends-Indep relationships outside of main either.  Partly
     addresses #587279.
   * Fix typo in the version numbers in the dpkg-divert examples.  Thanks,
     Slavko.
   * Add the release date of 3.9.2.0 to upgrading-checklist.
   * Fix ordering of the last entries in the 3.9.2.0 upgrading-checklist.
   * Fix typo in upgrading-checklist entry for multiarch paths.  Thanks,
     Michael Dorrington.  (Closes: #626408)
   * Add id tags for each version entry in upgrading-checklist so that,
     when eventually published somewhere, other Debian web sites can link
     to specific entries.  Patch from Charles Plessy.
   * Add AGPL-3 to tools/license-count.
   * Update tools/license-count to work with the new Lintian lab layout.
   * Add build-arch and build-indep targets to debian/rules.
 .
   [ Bill Allombert ]
   * Policy: Link relationship fields (7.1) to architecture specification
     strings (11.1).
     Patch from Charles Plessy in #628174.
   * Policy: Retire legacy Motif policy (11.8.8)
     Proposed by: Justin B Rye
     Wording: Russ Allbery <rra@debian.org>
     Seconded: Jakub Wilk <jwilk@debian.org>
     Seconded: Steve Langasek <vorlon@debian.org>
     Seconded: Charles Plessy <plessy@debian.org>
     Closes: #621479
   * copyright-format: Fix URL for the Eiffel Forum License.
     Reported by Thomas Preud'homme, patch by Charles Plessy.
     Closes: #623050
   * copyright-format: Update SPDX link to point to the SPDX license registry.
     Patch by Charles Plessy.  Closes: #628540
   * copyright-format: Correct or add links to SPDX.
     Wording: Charles Plessy <plessy@debian.org>
     Seconded: Gregor Herrmann <gregoa@debian.org>
     Closes: #641071
   * Policy: Clarify that 'machine-extractable' referer the copyright
     files (12.5)
     Wording:  Charles Plessy <plessy@debian.org>
     Seconded: Bill Allombert <ballombe@debian.org>
     Seconded: Jakub Wilk <jwilk@debian.org>
     Closes: #617516
   * copyright-format: remove drivers from abstract and useless appendix
     Wording: Lars Wirzenius <liw@liw.fi>
     Seconded: Charles Plessy <plessy@debian.org>
     Seconded: Jakub Wilk <jwilk@debian.org>
     Closes: #640735
   * copyright-format: Fix syntax of examples.
     Proposed by: Charles Plessy <plessy@debian.org>
     Wording: Jonathan Nieder <jrnieder@gmail.com>
     Closes: #649674
   * copyright-format: Clarify specification of multiple license exception:
     Wording: Steve Langasek <vorlon@debian.org>
     Seconded: Craig Small <csmall@debian.org>
     Seconded: Gregor Herrmann <gregoa@debian.org>
     Seconded: Jakub Wilk <jwilk@debian.org>
     Seconded: Jonas Smedegaard <dr@jones.dk>
     Closes: #633797
   * copyright-format: Specify URL on www.debian.org
     Wording: Charles Plessy <plessy@debian.org>
     Seconded: David Prévot <taffit@debian.org>
     Seconded: Gregor Herrmann <gregoa@debian.org>
     Closes: #640737
   * Perl policy: Document major version upgrade trigger
     Wording: Dominic Hargreaves <dom@debian.org>
     Seconded: Russ Allbery <rra@debian.org>
     Seconded: Niko Tyni <ntyni@debian.org>
     Seconded: Gregor Herrmann <gregoa@debian.org>
     Closes: #619275
   * Virtual: change ttf-japanese-{mincho, gothic} to
     fonts-japanese-{mincho, gothic}.
     Proposed by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
     Seconded: Charles Plessy <plessy@debian.org>
     Seconded: Bill Allombert <ballombe@debian.org>
     Closes: #644230
   * Virtual: Retire java-compiler, java2-compiler, and java-virtual-machine.
     Proposed by: Niels Thykier <niels@thykier.net>
     Seconded: tony mancill <tmancill@debian.org>
     Seconded: Bill Allombert <ballombe@debian.org>
     Closes: #578421
   * Policy 9.10: No more recommend to call install-docs for doc-base.
     Wording: Charles Plessy <plessy@debian.org>
     Seconded: Robert Luberda <robert@debian.org>
     Seconded: Raphael Hertzog <hertzog@debian.org>
     Closes: #637614
Checksums-Sha1: 
 f09d426468f56b6049b9125da20653929839ab3d 1518 debian-policy_3.9.3.0.dsc
 ccf8018f8d0bd2e362c9af50622ddd003ea52ac7 692844 debian-policy_3.9.3.0.tar.gz
 ee6c63e2c39db3cb1478ebe4115fc856a455d92b 1926768 debian-policy_3.9.3.0_all.deb
Checksums-Sha256: 
 5466d21ba0c6ede59969da1092d140eb0039e2d0fcc73911db2fcf41d193a80a 1518 debian-policy_3.9.3.0.dsc
 3d04d02064329136765d0e5926aca956d9d55ca171ad12efcbb890cffaad4a73 692844 debian-policy_3.9.3.0.tar.gz
 e456bf496aeb792c90cbbf7a8192c8cb13e5421252779d5f9cb6114a47321c3e 1926768 debian-policy_3.9.3.0_all.deb
Files: 
 d2c6604b9c75c57536ac42b04abb3eba 1518 doc optional debian-policy_3.9.3.0.dsc
 01d3630a3393d484ad765d53aca0f0fc 692844 doc optional debian-policy_3.9.3.0.tar.gz
 88e00d9c8508884a9403ae403332325a 1926768 doc optional debian-policy_3.9.3.0_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQEcBAEBCAAGBQJPRbldAAoJEH2AMVxXNt51FqYH/222GABCa953WNu1SRxP7s7k
HttTjAFekZkxGz+EfjujDteiJg3j6ep0ebOSQXSDm2EoTJY4RtpzmSigTqw0wGC4
+uv4StQTZTK/SJD8BYq3gkrxTy2YvzmVnfh1JIr8xLy3+l7jK7zykIDlg2nwUann
rUk5mY5x0Us8XK7U6TEjyudhPqppinARoolS+bSLBlkpGokOqXILRN2V6S5q1sAN
5I0YfL3coD/b2CEpJnieSMQagsO8H0Vn0n2RgT4T8L2fXuKo2dKCWfFAv3XlwPb0
RwmIz/pl8kqsdf+fJnUGXGqxfpy+TdUAdTlPIYQTaM5dn5E1i3oH8r2hOkEHQYU=
=AEmv
-----END PGP SIGNATURE-----





Bug archived. Request was from Debbugs Internal Request <owner@bugs.debian.org> to internal_control@bugs.debian.org. (Sun, 01 Apr 2012 07:46:09 GMT) Full text and rfc822 format available.

Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Wed Apr 16 16:09:15 2014; Machine Name: beach.debian.org

Debian Bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.