Re: Packages with /outdated/ packaging style
On 28/12/15 at 14:24 +0100, Bastien ROUCARIES wrote:
> *On Sat, Dec 26, 2015 at 12:20 PM, Lucas Nussbaum <lucas@debian.org> wrote:
> > Hi,
> >
> > Following my blog post yesterday with updated graphs about Debian
> > packaging evolution[1], I prepared lists of packages for each kind of
> > "outdatedness". Of course not all practices highlighted below are
> > deprecated, and there are good reasons to continue to do some of them.
> > But still, given that they all represent a clear minority of packages, I
> > thought that it would be useful to list the related packages. (I
> > honestly didn't know if some of my packages would show up in the lists!)
> >
> > [1] http://www.lucas-nussbaum.net/blog/?p=891
> >
> > The lists are available at https://people.debian.org/~lucas/qa-20151226/
> >
> > I also pushed them to alioth, so you can either do:
> > ssh people.debian.org 'grep -A 10 YOURNAME ~lucas/public_html/qa-20151226/*ddlist'
> > or:
> > ssh alioth.debian.org 'grep -A 10 YOURNAME ~lucas/qa-20151226/*ddst'
> >
> > the meaning of the lists is:
>
> Could you open a bug under lintian, with the code you use (snippet). I
> will add pedantic warning
Actually, adding checks to lintian for that kind of things was discussed
a long time ago, and was declined. That's why I did it outside lintian.
But I'm very happy that you are willing to add checks for this stuff to
lintian! :-)
My (quick and dirty) code is at
http://anonscm.debian.org/cgit/collab-qa/dhistory.git/tree/parse.rb#n146
> > qa-helper_classic_debhelper.txt (3647 packages)
> >
> > The package is still using "classic" debhelper (no dh, no CDBS).
>
> How do you check ?
The relevant code is:
# helper
res['pkghelper'] = []
if dsc =~ /debhelper/ or File::exists?("#{sdir}/debian/compat")
res['pkghelper'] << 'debhelper'
if rules =~ /\sdh\s/
res['pkghelper'] << 'dh'
end
if dsc =~ /cdbs/ or rules =~ /cdbs/
res['pkghelper'] << 'cdbs'
end
else
res['pkghelper'] << 'no-debhelper'
end
> > qa-helper_not_debhelper.txt (144 packages)
> >
> > The package is not using debhelper (nor dh, nor CDBS).
>
> How do you check ?
see above
> > qa-patch_dpatch.txt (170 packages)
> >
> > The package is using dpatch.
>
> How do you check ?
Relevant code:
# patch system
res['patch'] = []
if res['format'] == '3.0 (quilt)'
res['patch'] << '3.0 (quilt)'
elsif res['format'] == '1.0'
if File::exists?("#{sdir}/debian/patches/series") and rules =~ /quilt/
res['patch'] << 'quilt'
end
if File::exists?("#{sdir}/debian/patches/00list") and rules =~ /dpatch/
res['patch'] << 'dpatch'
end
if rules =~ /simple-patchsys.mk/
res['patch'] << 'simple-patchsys'
end
if res['patch'] == [] and File::exists?("#{sdir}/debian/patches/")
res['patch'] << 'other'
end
if diffgz and `zcat #{diffgz} | lsdiff --strip 1 | grep -v ^debian`.chomp != ""
res['patch'] << 'modified-files-outside-debian'
end
end
> > qa-patch_modified-files-outside-debian.txt (1156 packages)
> >
> > The package has modified files outside the debian/ directory (not tracked
> > using patches).
>
> How do you check ?
See above
> > qa-patch_more_than_one.txt (201 packages)
> >
> > The package uses more than one "patch system". In most cases, it means that
> > the package uses a patch system, but also has files modified directly outside
> > of debian/.
> >
> > qa-patch_other.txt (51 packages)
>
> How do you check ?
For "more_than_one", the trick is that the above code can match several patch
systems.
> > The package has patches, but uses an unidentified/unknown patch system.
> >
> > qa-patch_quilt.txt (445 packages)
> >
> > The package uses quilt (with 1.0 format, not 3.0 format).
>
> How do you check ? Depend on quilt ?
No:
if File::exists?("#{sdir}/debian/patches/series") and rules =~ /quilt/
but "debian/patches/series exists + depends on quilt" would be a more accurate
check.
> > qa-patch_simple-patchsys.txt (129 packages)
> >
> > The package uses simple-patchsys.
>
> How do you check ?
if rules =~ /simple-patchsys.mk/
> > qa-vcs_but_not_git_or_svn.txt (290 packages)
> >
> > The package is maintained using a VCS, which is not either Git or SVN.
>
> This one is really bellow pedantic...
>
> > qa-vcs_more_than_one_declared_vcs.txt (1 package)
> >
> > The package declares more than one VCS.
> >
> How do you check ?
Relevant code:
res['vcs'] = control.lines.grep(/^(XS-)?Vcs-/i).map { |l| l.chomp.gsub(/^(XS-)?Vcs-([^:]+):.*$/i, '\2').downcase }.uniq - ['browser', 'browse']
(I will open a lintian bug pointing to that discussion)
Lucas
Reply to: