Re: 5.0 cron problem
Le 2003-02-08, CHOI Junho écrivait : Oh sorry... I didn't restart cron :P. It works well. 'cron -x pars' says that whitespaces is correctly parsed. OK, that's reassuring! Ollivier can you review the posted patch please? Thanks, Thomas. -- [EMAIL PROTECTED] To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: 5.0 cron problem
Le 2003-02-05, Tim Robbins écrivait : Since revision 1.11 of src/usr.sbin/cron/lib/env.c, you need to put the value of the environment variable inside quotes if it contains any spaces. I suspect that this change of behaviour was unintentional given that the implementation differs from the manual page. I'll investigate and fix it if it's a bug. In the mean time, use something like this instead: CVSUP=/usr/local/bin/cvsup -g -L2 -h localhost Right, the according to the man page inner whitespace in the unquoted right-hand part of an environment variable assignment should be preserved. Please try the following patch: Index: lib/env.c === RCS file: /home/ncvs/src/usr.sbin/cron/lib/env.c,v retrieving revision 1.11 diff -u -r1.11 env.c --- lib/env.c 23 May 2002 13:16:30 - 1.11 +++ lib/env.c 7 Feb 2003 10:34:48 - @@ -193,14 +193,16 @@ break; } } else { - if (isspace (*c)) { - state++; - c++; - break; - } - if (state == NAME *c == '=') { - state++; - break; + if (state == NAME) { + if (isspace (*c)) { + c++; + state++; + break; + } + if (*c == '=') { + state++; + break; + } } } *str++ = *c++; @@ -232,9 +234,14 @@ Set_LineNum(fileline); return (FALSE); } + if (state == VALUE) { + /* End of unquoted value: trim trailing whitespace */ + c = val + strlen (val); + while (c val isspace (*(c - 1))) + *(--c) = '\0'; + } - /* 2 fields from parser; looks like an env setting -*/ + /* 2 fields from parser; looks like an env setting */ if (strlen(name) + 1 + strlen(val) = MAX_ENVSTR-1) return (FALSE); -- [EMAIL PROTECTED] To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: 5.0 cron problem
I tried it to 5.0-RELEASE. It works with my previous crontab file. From: Thomas Quinot [EMAIL PROTECTED] Subject: Re: 5.0 cron problem Date: Fri, 7 Feb 2003 11:37:42 +0100 Right, the according to the man page inner whitespace in the unquoted right-hand part of an environment variable assignment should be preserved. Please try the following patch: Index: lib/env.c === RCS file: /home/ncvs/src/usr.sbin/cron/lib/env.c,v retrieving revision 1.11 diff -u -r1.11 env.c --- lib/env.c 23 May 2002 13:16:30 - 1.11 +++ lib/env.c 7 Feb 2003 10:34:48 - @@ -193,14 +193,16 @@ break; } } else { - if (isspace (*c)) { - state++; - c++; - break; - } - if (state == NAME *c == '=') { - state++; - break; + if (state == NAME) { + if (isspace (*c)) { + c++; + state++; + break; + } + if (*c == '=') { + state++; + break; + } } } *str++ = *c++; @@ -232,9 +234,14 @@ Set_LineNum(fileline); return (FALSE); } + if (state == VALUE) { + /* End of unquoted value: trim trailing whitespace */ + c = val + strlen (val); + while (c val isspace (*(c - 1))) + *(--c) = '\0'; + } - /* 2 fields from parser; looks like an env setting - */ + /* 2 fields from parser; looks like an env setting */ if (strlen(name) + 1 + strlen(val) = MAX_ENVSTR-1) return (FALSE); -- [EMAIL PROTECTED] -- CHOI Junho http://www.kr.FreeBSD.org/~cjh KFUG cjh at kr.FreeBSD.org FreeBSD Project cjh at FreeBSD.orgWeb Data Bank cjh at wdb.co.kr Key fingerprint = 1369 7374 A45F F41A F3C0 07E3 4A01 C020 E602 60F5 To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: 5.0 cron problem
From: CHOI Junho [EMAIL PROTECTED] Subject: Re: 5.0 cron problem Date: Fri, 07 Feb 2003 19:43:04 +0900 (KST) I tried it to 5.0-RELEASE. It works with my previous crontab file. Oops. It doesn't solve the problem. There is no error when editing crontab, but the variable is not substituted correctly(just blank). -- CHOI Junho http://www.kr.FreeBSD.org/~cjh KFUG cjh at kr.FreeBSD.org FreeBSD Project cjh at FreeBSD.orgWeb Data Bank cjh at wdb.co.kr Key fingerprint = 1369 7374 A45F F41A F3C0 07E3 4A01 C020 E602 60F5 To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: 5.0 cron problem
Le 2003-02-07, CHOI Junho écrivait : Oops. It doesn't solve the problem. There is no error when editing crontab, but the variable is not substituted correctly(just blank). Hum, strange, it seemed to work here. Can you send me your crontab and the output of 'cron -x pars' ? Thomas. -- [EMAIL PROTECTED] To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: 5.0 cron problem
Oh sorry... I didn't restart cron :P. It works well. 'cron -x pars' says that whitespaces is correctly parsed. From: Thomas Quinot [EMAIL PROTECTED] Subject: Re: 5.0 cron problem Date: Fri, 7 Feb 2003 14:07:24 +0100 Le 2003-02-07, CHOI Junho écrivait : Oops. It doesn't solve the problem. There is no error when editing crontab, but the variable is not substituted correctly(just blank). Hum, strange, it seemed to work here. Can you send me your crontab and the output of 'cron -x pars' ? Thomas. -- [EMAIL PROTECTED] -- CHOI Junho http://www.kr.FreeBSD.org/~cjh KFUG cjh at kr.FreeBSD.org FreeBSD Project cjh at FreeBSD.orgWeb Data Bank cjh at wdb.co.kr Key fingerprint = 1369 7374 A45F F41A F3C0 07E3 4A01 C020 E602 60F5 To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: 5.0 cron problem
On Wed, Feb 05, 2003 at 05:57:30PM +0900, CHOI Junho wrote: [...] -- CVSUP=/usr/local/bin/cvsup -g -L2 -h localhost CVSUPDIR=/b/FreeBSD/cvsup # source sync 0 */1 * * * $CVSUP $CVSUPDIR/4_7-supfile /dev/null 20*/1 * * * $CVSUP $CVSUPDIR/5_0-supfile /dev/null 40*/1 * * * $CVSUP $CVSUPDIR/current-supfile /dev/null -- When I install this crontab: # crontab my-crontab my-crontab:0: bad minute crontab: errors in crontab file, can't install 0 means line number. It means variable setting doesn't work... I used this crontab over years on 4.[4567]-RELEASE happily. What happen to cron? I suspected updating procedure(/usr/src/UPDATING) because my -current desktop(starting from -current snapshot a year ago) doesn't have such problem. Since revision 1.11 of src/usr.sbin/cron/lib/env.c, you need to put the value of the environment variable inside quotes if it contains any spaces. I suspect that this change of behaviour was unintentional given that the implementation differs from the manual page. I'll investigate and fix it if it's a bug. In the mean time, use something like this instead: CVSUP=/usr/local/bin/cvsup -g -L2 -h localhost Tim To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message
Re: 5.0 cron problem
Ok, the problem solved. Thanks. crontab(5) page of 4.7-RELEASE and 5.0-RELEASE cite the same thing about variable assignment: The name string may also be placed in quote(single or double, but matching) to preserver leading, trailing or inner blanks. I think the current implementation(r1.11 of env.c) is right according to the manual. But 4-stable is still r1.7.2.1, so it'll be good to wait until MFC... From: Tim Robbins [EMAIL PROTECTED] Subject: Re: 5.0 cron problem Date: Wed, 5 Feb 2003 20:42:50 +1100 On Wed, Feb 05, 2003 at 05:57:30PM +0900, CHOI Junho wrote: [...] -- CVSUP=/usr/local/bin/cvsup -g -L2 -h localhost CVSUPDIR=/b/FreeBSD/cvsup # source sync 0 */1 * * * $CVSUP $CVSUPDIR/4_7-supfile /dev/null 20 */1 * * * $CVSUP $CVSUPDIR/5_0-supfile /dev/null 40 */1 * * * $CVSUP $CVSUPDIR/current-supfile /dev/null -- When I install this crontab: # crontab my-crontab my-crontab:0: bad minute crontab: errors in crontab file, can't install 0 means line number. It means variable setting doesn't work... I used this crontab over years on 4.[4567]-RELEASE happily. What happen to cron? I suspected updating procedure(/usr/src/UPDATING) because my -current desktop(starting from -current snapshot a year ago) doesn't have such problem. Since revision 1.11 of src/usr.sbin/cron/lib/env.c, you need to put the value of the environment variable inside quotes if it contains any spaces. I suspect that this change of behaviour was unintentional given that the implementation differs from the manual page. I'll investigate and fix it if it's a bug. In the mean time, use something like this instead: CVSUP=/usr/local/bin/cvsup -g -L2 -h localhost Tim To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message -- CHOI Junho http://www.kr.FreeBSD.org/~cjh KFUG cjh at kr.FreeBSD.org FreeBSD Project cjh at FreeBSD.orgWeb Data Bank cjh at wdb.co.kr Key fingerprint = 1369 7374 A45F F41A F3C0 07E3 4A01 C020 E602 60F5 To Unsubscribe: send mail to [EMAIL PROTECTED] with unsubscribe freebsd-current in the body of the message