Package: lintian Version: 1.23.34 Severity: wishlist Tags: patch As I have been told to always include a description in the patches, I wondered why there wasn't a check for that in lintian.
So I have created a simple check for dpatch files. It could probably be expanded to other types of patches, but I'm not used to the others. -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.21-1-686 (SMP w/1 CPU core) Locale: LANG=sv_SE.UTF-8, LC_CTYPE=sv_SE.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages lintian depends on: ii binutils 2.17cvs20070804-1 The GNU assembler, linker and bina ii diffstat 1.43-2 produces graph of changes introduc ii dpkg-dev 1.14.5 package building tools for Debian ii file 4.21-2 Determines file type using "magic" ii gettext 0.16.1-2 GNU Internationalization utilities ii intltool-debian 0.35.0+20060710.1 Help i18n of RFC822 compliant conf ii libparse-debianchangel 1.1-1 parse Debian changelogs and output ii man-db 2.4.4-3 The on-line manual pager ii perl [libdigest-md5-pe 5.8.8-7 Larry Wall's Practical Extraction lintian recommends no packages. -- no debconf information
# patch -- lintian check script -*- perl -*- # # Copyright © 2007 Carl Fürstenberg # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, you can find it on the World Wide # Web at http://www.gnu.org/copyleft/gpl.html, or write to the Free # Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, # MA 02110-1301, USA. package Lintian::dpatch; use strict; use Util; use Tags; use Cwd; use File::Find; use File::Basename; sub run { my $pkg = shift; my $type = shift; if( $type eq 'source' ) { my $cwd = cwd; my $dir = "$cwd/unpacked/debian/patches"; if( -d $dir ) { find({ wanted => \&process_dpatch, follow => 1 }, $dir); } } } sub process_dpatch { if(/^.*\.dpatch\z/s) { my $file = $_; open FILE, '<', $File::Find::name or die "Couldn't open $File::Find::name\: $!"; my $had_description = 0; while( <FILE> ) { last if $. > 50; #Usually on the fifth row, make it 50 for saftey if( /^#{2} DP\: No description./ ) { tag "dpatch-missing-description", $file; } elsif( /^#{2} DP\: \w+/ ) { $had_description = 1; last; } } close FILE; unless( $had_description ) { tag "dpatch-missing-description", $file; } } } 1; # vim: filetype=perl sw=4 ts=4 noet shiftround
Check-Script: dpatch Author: Carl Fürstenberg <[EMAIL PROTECTED]> Abbrev: deb Standards-Version: 3.6.1 Type: source Unpack-Level: 1 Info: This script checks debian/patches/*.dpatch in the source package Needs-Info: debfiles Tag: dpatch-missing-description Type: warning Info: The dpatch file in question lacks a description. Each dpatch file should have a descrption describing the abstract of the patch. All description lines shall start with "##DP:".