[Buildroot] [PATCH v2 09/15] fakedate: new package

Jérôme Pouiller jezz at sysmic.org
Sat Nov 19 13:06:46 UTC 2016


On Saturday 19 November 2016 11:21:39 Arnout Vandecappelle wrote:
> On 18-11-16 10:10, Jérôme Pouiller wrote:
[...]
> > +    for i in "$@"; do
> > +        case $i in
> > +        -d|-[!-]*d|--date=*|-f|-[!-]*f|--file=*)
> 
>  We use [^-] everywhere else.

It seems this syntax is a bashism. From glob(7): "POSIX has declared
the effect of a wildcard pattern "[^...]" to be undefined" (and I
confirm it does not work with dash)

>  Note that this pattern will also match something
> like -rfrood, i.e. --reference=frood. Fixing that becomes tricky without regexp.

hmmm... yes, it matches -rfrood (and it is what we want), but it does not
match --reference=frood, isn't?

 
>  Anyway, the -d option doesn't really need to be checked. 'date -d foo -d bar'
> will ignore the first -d, so things work OK. It's just that you get the spurious
> warning. So we could limit to checking -f, and limit to -f|--file=*). In that
> case, if someone passes something like -uf we'll get an error and the build will
> most likely terminate, so that particular error can be fixed.

You are right. However, since it may produce unexpected situation, I
prefer to identify precisely the cases where fakedate is used. 

[...]
> > +            ;;
> > +        esac
> > +    done
> > +    if [ $INHIBIT -eq 0 ]; then
> > +        echo "date: Warning: using \$SOURCE_DATE_EPOCH instead of true time" >&2
> 
>  Is it really needed to print this warning?

>From user point of view, result of `date' when fakedate is installed
is unexpected. I prefer to warn.


-- 
Jérôme Pouiller, Sysmic
Embedded Linux specialist
http://www.sysmic.fr



More information about the buildroot mailing list