[SCM] Debian package checker branch, master, updated. 2.5.6-81-g3595915
The following commit has been merged in the master branch:
commit 35959150ba6509ba16eb89dc686fcf95efdac7a9
Author: Niels Thykier <niels@thykier.net>
Date: Mon Apr 9 22:31:18 2012 +0200
c/menu-format: Move section list to a data file
Signed-off-by: Niels Thykier <niels@thykier.net>
diff --git a/checks/menu-format b/checks/menu-format
index c52a3ff..57970b1 100644
--- a/checks/menu-format
+++ b/checks/menu-format
@@ -65,73 +65,17 @@ my @known_tags=qw(
# in other words). It's case insensitive, use lower case here.
my @needs_tag_vals=qw(x11 text vc);
-# Authorative source of menu sections:
-# http://www.debian.org/doc/packaging-manuals/menu-policy/ch2#s2.1
-
-# This is a list of all valid section on the root menu.
-my @root_sections = ('Applications', 'Games', 'Help', 'Screen',
- 'Window Managers', 'FVWM Modules', 'Window Maker');
-
-# This is a list of all valid sections a menu item or submenu can go in.
-my @sections = ('Applications/Accessibility',
- 'Applications/Amateur Radio',
- 'Applications/Data Management',
- 'Applications/Editors',
- 'Applications/Education',
- 'Applications/Emulators',
- 'Applications/File Management',
- 'Applications/Graphics',
- 'Applications/Mobile Devices',
- 'Applications/Network/Communication',
- 'Applications/Network/File Transfer',
- 'Applications/Network/Monitoring',
- 'Applications/Network/Web Browsing',
- 'Applications/Network/Web News',
- 'Applications/Office',
- 'Applications/Programming',
- 'Applications/Project Management',
- 'Applications/Science/Astronomy',
- 'Applications/Science/Biology',
- 'Applications/Science/Chemistry',
- 'Applications/Science/Data Analysis',
- 'Applications/Science/Electronics',
- 'Applications/Science/Engineering',
- 'Applications/Science/Geoscience',
- 'Applications/Science/Mathematics',
- 'Applications/Science/Medicine',
- 'Applications/Science/Physics',
- 'Applications/Science/Social',
- 'Applications/Shells',
- 'Applications/Sound',
- 'Applications/System/Administration',
- 'Applications/System/Hardware',
- 'Applications/System/Language Environment',
- 'Applications/System/Monitoring',
- 'Applications/System/Package Management',
- 'Applications/System/Security',
- 'Applications/Terminal Emulators',
- 'Applications/Text',
- 'Applications/TV and Radio',
- 'Applications/Video',
- 'Applications/Viewers',
- 'Applications/Web Development',
- 'Games/Action',
- 'Games/Adventure',
- 'Games/Blocks',
- 'Games/Board',
- 'Games/Card',
- 'Games/Puzzles',
- 'Games/Simulation',
- 'Games/Strategy',
- 'Games/Tools',
- 'Games/Toys',
- 'Help',
- 'Screen/Saving',
- 'Screen/Locking',
- 'Window Managers',
- 'FVWM Modules',
- 'Window Maker'
- );
+sub _menu_sections {
+ my ($key, $val, $cur) = @_;
+ my $ret = undef;
+ $ret = $cur = {} unless defined $cur;
+ # $val is empty if this is just a root section
+ $cur->{$val} = 1 if $val;
+ return $ret;
+}
+
+my $MENU_SECTIONS = Lintian::Data->new ('menu-format/menu-sections',
+ qr|/|, \&_menu_sections);
# Authorative source of desktop keys:
# http://standards.freedesktop.org/desktop-entry-spec/1.0/
@@ -376,8 +320,6 @@ my @path = qw(usr/local/bin/ usr/bin/ bin/ usr/X11R6/bin/ usr/games/);
my %known_tags_hash = map { $_ => 1 } @known_tags;
my %needs_tag_vals_hash = map { $_ => 1 } @needs_tag_vals;
-my %root_sections_hash = map { $_ => 1 } @root_sections;
-my %sections_hash = map { $_ => 1 } @sections;
# -----------------------------------
@@ -672,13 +614,22 @@ sub VerifyLine {
}
# Check for Evil new root sections.
- my ($rootsection) = $section =~ m:([^/]*):;
- if (not $root_sections_hash{$rootsection}) {
- if (not $rootsection =~ m/$pkg/i) {
- tag 'menu-item-creates-new-root-section', "$rootsection $fullname:$linecount";
+ my ($rootsec, $sect) = split m:/:, $section, 2;
+ my $root_data = $MENU_SECTIONS->value ($rootsec);
+ if (not defined $root_data) {
+ if (not $rootsec =~ m/$pkg/i) {
+ tag 'menu-item-creates-new-root-section', "$rootsec $fullname:$linecount";
}
} else {
- if (not $sections_hash{$section}) {
+ my $ok = 1;
+ if ($sect) {
+ # Using unknown subsection of $rootsec?
+ $ok = 0 if not exists $root_data->{$sect};
+ } else {
+ # Using root menu when a subsection exists?
+ $ok = 0 if %$root_data;
+ }
+ unless ($ok) {
tag 'menu-item-creates-new-section', "$vals{section} $fullname:$linecount";
}
}
diff --git a/debian/changelog b/debian/changelog
index 76d28ba..8fd61c8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -65,6 +65,8 @@ lintian (2.5.7) UNRELEASED; urgency=low
* checks/manpages{,.desc}:
+ [RA] Detect hyphen used as minus sign following a groff \f[C] font
change. Thanks, Iustin Pop. (Closes: #664471)
+ * checks/menu-format:
+ + [NT] Move menu section lists into a data file.
* checks/menus{,.desc}:
+ [NT] Remove "manual" lazy load of data file.
* checks/nmu:
@@ -110,6 +112,8 @@ lintian (2.5.7) UNRELEASED; urgency=low
+ [NT] New file.
* data/changes-file/{debian-dists -> known-dists}:
+ [NT] Renamed file.
+ * data/menu-format/menu-sections:
+ + [NT] New file.
* frontend/lintian:
+ [JW] Fix typo in error message.
diff --git a/t/tests/menu-format-general/debian/debian/menu-section.menu b/t/tests/menu-format-general/debian/debian/menu-section.menu
index 31ac76c..f6d6893 100644
--- a/t/tests/menu-format-general/debian/debian/menu-section.menu
+++ b/t/tests/menu-format-general/debian/debian/menu-section.menu
@@ -1,9 +1,12 @@
?package(menu-section):needs="X11" section="Root"\
title="pargs (new root)" command="/usr/bin/pargs-section"\
longtitle="Argument printer"
-?package(menu-section):needs="X11" section="Apps/Games"\
+?package(menu-section):needs="X11" section="Apps/Games/Toys"\
title="pargs (apps/games)" command="/usr/bin/pargs-section"\
longtitle="Argument printer"
+?package(menu-section):needs="X11" section="Games"\
+ title="pargs (games)" command="/usr/bin/pargs-section"\
+ longtitle="Argument printer"
?package(menu-section):needs="X11" section="Apps/Programming"\
title="pargs (apps/prog)" command="/usr/bin/pargs-section"\
longtitle="Argument printer"
diff --git a/t/tests/menu-format-general/tags b/t/tests/menu-format-general/tags
index e52aac1..6ca7d24 100644
--- a/t/tests/menu-format-general/tags
+++ b/t/tests/menu-format-general/tags
@@ -1,7 +1,7 @@
E: menu-broken: bad-test-in-menu-item usr/share/menu/menu-broken:4
E: menu-broken: unparsable-menu-item usr/share/menu/menu-broken:12
E: menu-section: menu-item-creates-new-root-section Root usr/share/menu/menu-section:3
-E: menu-section: non-wm-in-windowmanager-menu-section x11 usr/share/menu/menu-section:12
+E: menu-section: non-wm-in-windowmanager-menu-section x11 usr/share/menu/menu-section:15
W: menu-broken: duplicated-tag-in-menu-item usr/share/menu/menu-broken longtitle:12
W: menu-broken: pkg-not-in-package-test wrong-package usr/share/menu/menu-broken
W: menu-cmd: menu-command-not-in-package usr/share/menu/menu-cmd:3 usr/bin/not-here
@@ -9,8 +9,8 @@ W: menu-none: menu-icon-missing non-existent.xpm
W: menu-none: menu-icon-missing usr/share/menu-none/non-existent16.xpm
W: menu-none: menu-icon-missing usr/share/menu-none/non-existent32.xpm
W: menu-none: menu-item-uses-icon-none usr/share/menu/menu-none:4
-W: menu-section: menu-item-creates-new-section Apps/Games usr/share/menu/menu-section:6
-W: menu-section: menu-item-creates-new-section WindowManagers/Programming usr/share/menu/menu-section:12
+W: menu-section: menu-item-creates-new-section Games usr/share/menu/menu-section:9
+W: menu-section: menu-item-creates-new-section WindowManagers/Programming usr/share/menu/menu-section:15
W: menu-section: menu-item-uses-apps-games-section usr/share/menu/menu-section:6
-W: menu-section: menu-item-uses-apps-section usr/share/menu/menu-section:9
-W: menu-section: menu-item-uses-windowmanagers-section usr/share/menu/menu-section:12
+W: menu-section: menu-item-uses-apps-section usr/share/menu/menu-section:12
+W: menu-section: menu-item-uses-windowmanagers-section usr/share/menu/menu-section:15
diff --git a/vendors/debian/ftp-master-auto-reject/data/menu-format/menu-sections b/vendors/debian/ftp-master-auto-reject/data/menu-format/menu-sections
new file mode 100644
index 0000000..74c5a95
--- /dev/null
+++ b/vendors/debian/ftp-master-auto-reject/data/menu-format/menu-sections
@@ -0,0 +1,71 @@
+# Data file of all the valid sections a menu item (or submenu) can go in.
+#
+# Authorative source of menu sections:
+# http://www.debian.org/doc/packaging-manuals/menu-policy/ch2#s2.1
+#
+# This file maps "root sections" to the valid sections in each root
+# sections.
+#
+# Format:
+# root-section[/section]
+#
+# Please keep it sorted.
+
+Applications/Accessibility
+Applications/Amateur Radio
+Applications/Data Management
+Applications/Editors
+Applications/Education
+Applications/Emulators
+Applications/File Management
+Applications/Graphics
+Applications/Mobile Devices
+Applications/Network/Communication
+Applications/Network/File Transfer
+Applications/Network/Monitoring
+Applications/Network/Web Browsing
+Applications/Network/Web News
+Applications/Office
+Applications/Programming
+Applications/Project Management
+Applications/Science/Astronomy
+Applications/Science/Biology
+Applications/Science/Chemistry
+Applications/Science/Data Analysis
+Applications/Science/Electronics
+Applications/Science/Engineering
+Applications/Science/Geoscience
+Applications/Science/Mathematics
+Applications/Science/Medicine
+Applications/Science/Physics
+Applications/Science/Social
+Applications/Shells
+Applications/Sound
+Applications/System/Administration
+Applications/System/Hardware
+Applications/System/Language Environment
+Applications/System/Monitoring
+Applications/System/Package Management
+Applications/System/Security
+Applications/Terminal Emulators
+Applications/Text
+Applications/TV and Radio
+Applications/Video
+Applications/Viewers
+Applications/Web Development
+Games/Action
+Games/Adventure
+Games/Blocks
+Games/Board
+Games/Card
+Games/Puzzles
+Games/Simulation
+Games/Strategy
+Games/Tools
+Games/Toys
+Help
+Screen/Saving
+Screen/Locking
+Window Managers
+FVWM Modules
+Window Maker
--
Debian package checker
Reply to: