[2018-12-30 23:09] Chris Lamb <la...@debian.org>
> > > > As of implementation side, given that Lintian by design do not use
> > > > network, it is possible to assume that Debian release happens once a 2.5
> > > > year (or so), so versions older then 5.5 years (possible to lookup in
> > > > d/changelog) are below threhold.
> > > 
> > > Alas, unless we can think of a more-reliable way of doing this I fear this
> > > will be far too full of false-positives or will simply not detect enough
> > > cases to be prioritised. :(
> > 
> > Well, we could hardcode dates of Debian releases in Lintian.
> 
> This is the easy part. The difficult parts I was referring to are:
> 
>   a) The dates in the debian/changelog file cannot "know" that that
>      was the version in a stable release.

Probably I missing something oblivious, but still: if you know that
version X is latest, such as

        date(X) < date(oldstable)

then all versions X' < X are too old, upgrade from them is not
supported.

>   b) The parsing of the maintainer scripts is going to be very messy
>      and error prone.

Again, maybe I miss something, but I believe this is as simple, as two
grep(1), like following:

        for v in ${too_old_versions} ; do
                if grep -v '#' $maintscript | grep -F "$v" ; then
                        echo "bad, bad"
                fi
        done

I got inspiration for this check during work on sysvinit, which keeps
checking upgrades from 10-years old versions.

But issue is not sysvinit-specific. I have number of packages, that have
code in maintainer scripts, that deals with upgrades from specific
versions. And in 5 years, this code should be removed. But I doubt I
will remember it then.

Reply via email to