Bug#468927: lintian: Should not rely on dpkg-source's output ...

2008-03-02 Thread Raphael Hertzog
Package: lintian
Version: 1.23.45
Severity: important

The dpkg team is heavily refactoring dpkg-source and while using the new
version on my system, I discovered that it broke lintian because the output
messages got changed (and also -q will quiet all messages, not only warnings).

The problem is the following:
internal error: dpkg-source didn't report unpack directory
internal error: could not unpack package to desired level: No such file or 
directory

The bug is in /usr/share/lintian/unpack/unpack-srcpkg-l2:
| my $IN = FileHandle-new;
| pipeline_open($IN, sub {
| my $ret=exec 'dpkg-source', '-q', '-x', 'dsc';
| $ret;
| }) or fail(cannot run dpkg-source: $!);
| 
| while ($IN) {
| chop;
| $unpack_dir = $1
| if (/^dpkg-source: extracting [^\s]+ in (\S+)/);
| }
| close($IN) or fail(error occured during execution of dpkg-source in 
$base_dir: $!);
| $unpack_dir or fail(dpkg-source didn't report unpack directory);

I really suggest you to add a supplementary parameter to the dpkg-source
invocation to explicitely specify the directory name where you want to
unpack it.

dpkg-source -q -x dsc unpacked

Note however that dpkg-source will exit if 'unpacked' exists. Thus you should
probably remove it before calling dpkg-source (if it exists that is).

Hopefully you can fix that in the next upload so that once the new dpkg-source
hits unstable people already have a fixed lintian. :)

Cheers,
-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 
'experimental')
Architecture: i386 (i686)

Kernel: Linux 2.6.24-1-686 (SMP w/1 CPU core)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages lintian depends on:
ii  binutils2.18.1~cvs20080103-1 The GNU assembler, linker and bina
ii  diffstat1.45-2   produces graph of changes introduc
ii  dpkg-dev1.14.17  package building tools for Debian
ii  file4.23-2   Determines file type using magic
ii  gettext 0.17-2   GNU Internationalization utilities
ii  intltool-debian 0.35.0+20060710.1Help i18n of RFC822 compliant conf
ii  libparse-debianchan 1.1.1-2  parse Debian changelogs and output
ii  liburi-perl 1.35.dfsg.1-1Manipulates and accesses URI strin
ii  man-db  2.5.1-2  on-line manual pager
ii  perl [libdigest-md5 5.8.8-12 Larry Wall's Practical Extraction 

lintian recommends no packages.

-- no debconf information



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#468927: lintian: Should not rely on dpkg-source's output

2008-03-02 Thread Raphael Hertzog
Note that /usr/share/lintian/checks/cruft relies on unpacked being
a symlink so you'll have to take care of that too...

Because I just did the suggested change and got this:
Use of uninitialized value in string at /usr/share/lintian/checks/cruft
line 131.
Can't stat : Aucun fichier ou répertoire de ce type
 at /usr/share/lintian/checks/cruft line 131

Cheers,
-- 
Raphaël Hertzog

Le best-seller français mis à jour pour Debian Etch :
http://www.ouaza.com/livre/admin-debian/




Bug#469018: lintian: Please check for a doc-base registration file

2008-03-02 Thread Runa Agate Sandvik
Package: lintian
Version: 1.23.45
Severity: normal

Hi lintian maintainers,

I just want to suggest doc-base registration when there are html/pdf
files shipped under /usr/share/doc.

Cheers,

--
Runa Sandvik
homepage: http://www.indentedlines.net

-- System Information:
Debian Release: lenny/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (i686)

Kernel: Linux 2.6.24-1-686 (SMP w/1 CPU core)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages lintian depends on:
ii  binutils2.18.1~cvs20080103-1 The GNU assembler, linker and bina
ii  diffstat1.45-2   produces graph of changes introduc
ii  dpkg-dev1.14.16.6package building tools for Debian
ii  file4.23-2   Determines file type using magic
ii  gettext 0.17-2   GNU Internationalization utilities
ii  intltool-debian 0.35.0+20060710.1Help i18n of RFC822 compliant conf
ii  libparse-debianchan 1.1.1-2  parse Debian changelogs and output
ii  liburi-perl 1.35.dfsg.1-1Manipulates and accesses URI strin
ii  man-db  2.5.1-2  on-line manual pager
ii  perl [libdigest-md5 5.8.8-12 Larry Wall's Practical Extraction

lintian recommends no packages.

-- no debconf information



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#469024: lintian: Check for make -i for ignores-make-clean-error

2008-03-02 Thread Jörg Sommer
Package: lintian
Version: 1.23.45
Severity: normal
Tags: patch

Hi,

there's another way to ignore the exit code of a failed make. You can
call make with -i to make it ignores errors:

,[ man make ]---
|-i, --ignore-errors
|   Ignore all errors in commands executed to remake files.
`

Bye, Jörg.

-- System Information:
Debian Release: unstable/experimental
  APT prefers unstable
  APT policy: (900, 'unstable'), (700, 'experimental')
Architecture: powerpc (ppc)

Kernel: Linux 2.6.25-rc3
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages lintian depends on:
ii  binutils2.18.1~cvs20080103-1 The GNU assembler, linker and bina
ii  diffstat1.45-2   produces graph of changes introduc
ii  dpkg-dev1.14.16.6package building tools for Debian
ii  file4.23-2   Determines file type using magic
ii  gettext 0.17-2   GNU Internationalization utilities
ii  intltool-debian 0.35.0+20060710.1Help i18n of RFC822 compliant conf
ii  libparse-debianchan 1.1.1-2  parse Debian changelogs and output
ii  liburi-perl 1.35.dfsg.1-1Manipulates and accesses URI strin
ii  man-db  2.5.1-2  on-line manual pager
ii  perl [libdigest-md5 5.8.8-12 Larry Wall's Practical Extraction 

lintian recommends no packages.

-- no debconf information
--- /usr/share/lintian/checks/rules	2007-12-04 03:54:18.0 +0100
+++ rules	2008-03-02 18:12:33.0 +0100
@@ -98,7 +98,8 @@
 if (/\$[\(\{]PWD[\)\}]/) {
 tag debian-rules-uses-pwd, line $.;
 }
-if (/^\t\s*-(?:\$[\(\{]MAKE[\}\)]|make)\s.*(?:dist)?clean/) {
+if (/^\t\s*-(?:\$[\(\{]MAKE[\}\)]|make)\s.*(?:dist)?clean/ ||
+	/^\t\s*(?:\$[\(\{]MAKE[\}\)]|make)\s(?:.*\s)-[:alpha:]*i.*(?:dist)?clean/) {
 tag debian-rules-ignores-make-clean-error, line $.;
 }
 
--- /usr/share/lintian/checks/rules.desc	2008-01-22 06:12:38.0 +0100
+++ rules.desc	2008-03-02 18:10:19.0 +0100
@@ -51,11 +51,13 @@
  package's clean or distclean target with a line like:
  .
   -$(MAKE) distclean
+ or
+  $(MAKE) -i distclean
  .
- The leading - tells make to ignore all errors.  Normally this is done
- for packages using Autoconf since Makefile may not exist.  However, this
- line ignores all other error messages, not just the missing Makefile
- error.  It's better to use:
+ The leading - or the option -i tells make to ignore all errors.
+ Normally this is done for packages using Autoconf since Makefile may not
+ exist.  However, this line ignores all other error messages, not just
+ the missing Makefile error.  It's better to use:
  .
   [ ! -f Makefile ] || $(MAKE) distclean
  .


signature.asc
Description: Digital signature http://en.wikipedia.org/wiki/OpenPGP


Bug#381485: Let's fix this

2008-03-02 Thread Amaya
Lars Wirzenius wrote:
 On su, 2008-03-02 at 19:33 +0100, Amaya wrote:
  Hey There, 
  
  As an effort to try to finish the invoke-rc.d transition for lenny, I
  feel I must prod you guys here. Any improvements so far?
  Lars, could you maybe look into providing a patch?
 
 Unfortunately, I'm able to provide patch perl code at the time being.

This does not parse. If you are unable to provide a patch atm, is it
because of perl?

Thanks!

-- 
  ·''`.Moi je voudrais bien, un beau matin, qu'il y ait
 : :' :   une fleur dans mon jardin
 `. `' -- Manu Chao 
   `-  Proudly running (unstable) Debian GNU/Linux




Bug#381485: Let's fix this

2008-03-02 Thread Lars Wirzenius
On su, 2008-03-02 at 19:33 +0100, Amaya wrote:
 Hey There, 
 
 As an effort to try to finish the invoke-rc.d transition for lenny, I
 feel I must prod you guys here. Any improvements so far?
 Lars, could you maybe look into providing a patch?

Unfortunately, I'm able to provide patch perl code at the time being.





-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#381485: Let's fix this

2008-03-02 Thread Lars Wirzenius
On su, 2008-03-02 at 19:59 +0100, Amaya wrote:
  Unfortunately, I'm able to provide patch perl code at the time being.
 
 This does not parse. If you are unable to provide a patch atm, is it
 because of perl?

I don't know Perl and so I'm unable to write a patch that will add a
lintian warning to check for this problem. I am, possibly, in the
process of learning Perl, but it's going to take a long time.





-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#381485: lintian check for direct init script invocation (was: Bug#438885: Not blocking anymore)

2008-03-02 Thread Russ Allbery
Amaya [EMAIL PROTECTED] writes:

 Important:
 lintian: Also check for not using invoke-rc.d in other scripts.
 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=381485

I don't have a tremendous amount of free time to work on Debian right now
and what time I do have for lintian I'm putting into merging patches.  I'd
welcome a patch implementing this feature (ideally with some test cases as
well).

-- 
Russ Allbery ([EMAIL PROTECTED])   http://www.eyrie.org/~eagle/



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Re: [checks/scripts] checkbashsims update

2008-03-02 Thread Russ Allbery
Adam D. Barratt [EMAIL PROTECTED] writes:

 Predictably, I then spotted another potential hiccup in the /file
 test. I've simplified it in svn which made the initial error a little more
 obvious.

 Please find attached a (hopefully for the final time) revised patch.

Thanks, applying in Subversion now.

-- 
Russ Allbery ([EMAIL PROTECTED])   http://www.eyrie.org/~eagle/


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



lintian: r1230 - in trunk: checks debian

2008-03-02 Thread rra
Author: rra
Date: 2008-03-03 05:30:12 +0100 (Mon, 03 Mar 2008)
New Revision: 1230

Modified:
   trunk/checks/scripts
   trunk/debian/changelog
Log:
  + [RA] Allow zsh-beta as an alternative to zsh.  Thanks, Joost van
Baal.  (Closes: #468362)

Modified: trunk/checks/scripts
===
--- trunk/checks/scripts2008-03-03 04:28:46 UTC (rev 1229)
+++ trunk/checks/scripts2008-03-03 04:30:12 UTC (rev 1230)
@@ -91,7 +91,7 @@
  trs   = [ '/usr/bin', 'konwert' ],
  xjed  = [ '/usr/bin', 'xjed' ],
  yforth= [ '/usr/bin', 'yforth' ],
- zsh   = [ '/bin' ],
+ zsh   = [ '/bin', 'zsh | zsh-beta' ],
 );
 
 # The more complex case of interpreters that may have a version number.

Modified: trunk/debian/changelog
===
--- trunk/debian/changelog  2008-03-03 04:28:46 UTC (rev 1229)
+++ trunk/debian/changelog  2008-03-03 04:30:12 UTC (rev 1230)
@@ -53,6 +53,8 @@
 + [RA] Update regexes based on checkbashisms to remove additional
   false positives and add additional checks.  Thanks, Adam D. Barratt.
 + [RA] Add kaptain.  Thanks, Tobias Toedter.  (Closes: #466701)
++ [RA] Allow zsh-beta as an alternative to zsh.  Thanks, Joost van
+  Baal.  (Closes: #468362)
 
   * frontend/lintian:
 + [CW] Make the presence of an Ubuntu release name in the version number


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



lintian: r1231 - in trunk: checks debian

2008-03-02 Thread rra
Author: rra
Date: 2008-03-03 05:31:46 +0100 (Mon, 03 Mar 2008)
New Revision: 1231

Modified:
   trunk/checks/scripts
   trunk/debian/changelog
Log:
  + [RA] Add yorick.  Thanks, Thibaut Paumard.  (Closes: #468370)

Modified: trunk/checks/scripts
===
--- trunk/checks/scripts2008-03-03 04:30:12 UTC (rev 1230)
+++ trunk/checks/scripts2008-03-03 04:31:46 UTC (rev 1231)
@@ -91,6 +91,7 @@
  trs   = [ '/usr/bin', 'konwert' ],
  xjed  = [ '/usr/bin', 'xjed' ],
  yforth= [ '/usr/bin', 'yforth' ],
+ yorick= [ '/usr/bin' ],
  zsh   = [ '/bin', 'zsh | zsh-beta' ],
 );
 

Modified: trunk/debian/changelog
===
--- trunk/debian/changelog  2008-03-03 04:30:12 UTC (rev 1230)
+++ trunk/debian/changelog  2008-03-03 04:31:46 UTC (rev 1231)
@@ -55,6 +55,7 @@
 + [RA] Add kaptain.  Thanks, Tobias Toedter.  (Closes: #466701)
 + [RA] Allow zsh-beta as an alternative to zsh.  Thanks, Joost van
   Baal.  (Closes: #468362)
++ [RA] Add yorick.  Thanks, Thibaut Paumard.  (Closes: #468370)
 
   * frontend/lintian:
 + [CW] Make the presence of an Ubuntu release name in the version number


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Processed: Lintian bugs fixed in revision r1230

2008-03-02 Thread Debian Bug Tracking System
Processing commands for [EMAIL PROTECTED]:

 package lintian
Ignoring bugs not assigned to: lintian

 # Fixed in r1230 by rra
 tag 468362 + pending
Bug#468362: lintian: [checks/scripts] fails to find zsh interpreter dependency
There were no tags set.
Tags added: pending

 thanks
Stopping processing here.

Please contact me if you need assistance.

Debian bug tracking system administrator
(administrator, Debian Bugs database)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Processed: Lintian bugs fixed in revision r1231

2008-03-02 Thread Debian Bug Tracking System
Processing commands for [EMAIL PROTECTED]:

 package lintian
Ignoring bugs not assigned to: lintian

 # Fixed in r1231 by rra
 tag 468370 + pending
Bug#468370: please add yorick as a known interpreter
There were no tags set.
Tags added: pending

 thanks
Stopping processing here.

Please contact me if you need assistance.

Debian bug tracking system administrator
(administrator, Debian Bugs database)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Processed: Re: Bug#468804: lintian: Please detect mismatch between bin/sbin and man1/man8, improperly located Perl modules and arch all when should be arch any

2008-03-02 Thread Debian Bug Tracking System
Processing commands for [EMAIL PROTECTED]:

 retitle 468804 [checks/files] detect *.pm files in /usr/lib
Bug#468804: lintian: Please detect mismatch between bin/sbin and man1/man8, 
improperly located Perl modules and arch all when should be arch any
Changed Bug title to `[checks/files] detect *.pm files in /usr/lib' from 
`lintian: Please detect mismatch between bin/sbin and man1/man8, improperly 
located Perl modules and arch all when should be arch any'.

 severity 468804 wishlist
Bug#468804: [checks/files] detect *.pm files in /usr/lib
Severity set to `wishlist' from `normal'

 clone 468804 -1
Bug#468804: [checks/files] detect *.pm files in /usr/lib
Bug 468804 cloned as bug 469103.

 retitle -1 [checks/files] warn of arch-dependent package all in /usr/share
Bug#469103: [checks/files] detect *.pm files in /usr/lib
Changed Bug title to `[checks/files] warn of arch-dependent package all in 
/usr/share' from `[checks/files] detect *.pm files in /usr/lib'.

 severity -1 wishlist
Bug#469103: [checks/files] warn of arch-dependent package all in /usr/share
Severity set to `wishlist' from `wishlist'

 thanks
Stopping processing here.

Please contact me if you need assistance.

Debian bug tracking system administrator
(administrator, Debian Bugs database)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#468804: lintian: Please detect mismatch between bin/sbin and man1/man8, improperly located Perl modules and arch all when should be arch any

2008-03-02 Thread Russ Allbery
retitle 468804 [checks/files] detect *.pm files in /usr/lib
severity 468804 wishlist
clone 468804 -1
retitle -1 [checks/files] warn of arch-dependent package all in /usr/share
severity -1 wishlist
thanks

Roberto C. Sánchez [EMAIL PROTECTED] writes:

 It appears that lintian misses some important problems.  In the process
 of preparing to sponsor a package for someone, I came across some
 oddities and asked about them in #debian-devel.  The discussion revealed
 more problems than I initially realized.  I have copied the exchange
 below, but the summary is:
 
  - files in /usr/bin with man pages in man/man8 (the binaries should be
either in /usr/sbin or the man pages in man/man1)
  - the package scatters perl modules about /usr/lib (which really ought
to be in /usr/share/perl5)
  - the package declares itself arch any, but really is arch all.

Hi Roberto,

In the future, please don't submit bug reports like this that combine
multiple problems into a single bug report.  Each separate issue should be
a separate bug report, since otherwise the maintainer has to clone the bug
and retitle it if one bug is fixed and not the other.

The first problem that you report is already an open lintian bug
(#348864).  Please see that bug report for information about why this is
harder than it sounds.  I think that bug report did arrive at a possible
solution for a more limited check, but as yet no one has had time to write
the check.

The third problem is a consequence of the second problem.  lintian has no
way of knowing that those files in /usr/lib aren't arch-dependent.  If
they were all in /usr/share (and with no files in /usr/bin; again, lintian
can't know if the Perl scripts contain arch-dependent constants or other
code), lintian could warn.  I'll clone another bug report for that.

The severity of all of these requests is wishlist.  lintian doesn't claim
to catch everything that's wrong with a package.  Bug severities higher
than wishlist are for errors in lintian or program malfunctions, not for
things that it misses.

Thanks for keeping this in mind in the future!

-- 
Russ Allbery ([EMAIL PROTECTED])   http://www.eyrie.org/~eagle/




lintian: r1229 - in trunk: checks debian

2008-03-02 Thread rra
Author: rra
Date: 2008-03-03 05:28:46 +0100 (Mon, 03 Mar 2008)
New Revision: 1229

Modified:
   trunk/checks/scripts
   trunk/debian/changelog
Log:
Update regexes from checkbashisms.


Modified: trunk/checks/scripts
===
--- trunk/checks/scripts2008-02-22 17:18:57 UTC (rev 1228)
+++ trunk/checks/scripts2008-03-03 04:28:46 UTC (rev 1229)
@@ -541,8 +541,12 @@
  '[EMAIL PROTECTED]',# bash arrays, ${name[0|*|@]}
  '[EMAIL PROTECTED]', # ${!prefix[*|@]}
  '\$\{!\w+\}',# ${!name}
- '(\$\(|\`)\s*\\s*\S.+(\)|\`)', # $(\ foo) should be $(cat 
foo)
+ '(\$\(|\`)\s*\\s*\S+\s*(\)|\`)', # $(\ foo) should be $(cat 
foo)
  '\$RANDOM\b',# $RANDOM
+ '\$(OS|MACH)TYPE\b', # $(OS|MACH)TYPE
+ '\$HOST(TYPE|NAME)\b',   # $HOST(TYPE|NAME)
+ '\$DIRSTACK\b',  # $DIRSTACK
+ '\$EUID\b',  # $EUID should be id -u
);
my @bashism_regexs = (
  'function \w+\(\s*\)',   # function is useless
@@ -556,6 +560,7 @@
  '(?:^|\s+)kill\s+-[^sl]\w*', # kill -[0-9] or -[A-Z]
  '(?:^|\s+)trap\s+[\']?.*[\']?\s+.*[1-9]', # trap with 
signal numbers
  '\',   # cshism
+ '(\|\)\s*((-|\d+)[^\s;|\)\`]|[^-\d])', # should be word 
21
  '\[\[(?!:)', # alternative test command
  '(?:^|\s+)select\s+\w+', # 'select' is not POSIX
  '\$\(\([A-Za-z]',# cnt=$((cnt + 1)) does not work 
in dash
@@ -564,6 +569,7 @@
  '(?:^|\s+)let\s',# let ...
  '(?![\$\(])\(\(.*\)\)', # '((' should be '$(('
  '(\[|test)\s+-a',# test with unary -a (should be 
-e)
+ '',   #  here string
);
 
# since this test is ugly, I have to do it by itself
@@ -610,7 +616,7 @@
 
# Only look for the beginning of a heredoc here, after we've
# stripped out quoted material, to avoid false positives.
-   if (m/\\\s*[\'\]?(\w+)[\'\]?/) {
+   if (m/(?:^|[^])\\\s*[\'\]?(\w+)[\'\]?/) {
$cat_string = $1;
}
}

Modified: trunk/debian/changelog
===
--- trunk/debian/changelog  2008-02-22 17:18:57 UTC (rev 1228)
+++ trunk/debian/changelog  2008-03-03 04:28:46 UTC (rev 1229)
@@ -51,7 +51,7 @@
   doesn't seem to have any actual code.  Based on an idea
   by Justin Pryzby.  (Closes: #410042)
 + [RA] Update regexes based on checkbashisms to remove additional
-  false positives.  Thanks, Adam D. Barratt.
+  false positives and add additional checks.  Thanks, Adam D. Barratt.
 + [RA] Add kaptain.  Thanks, Tobias Toedter.  (Closes: #466701)
 
   * frontend/lintian:


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



lintian: r1232 - in trunk: checks debian unpack

2008-03-02 Thread rra
Author: rra
Date: 2008-03-03 06:06:59 +0100 (Mon, 03 Mar 2008)
New Revision: 1232

Modified:
   trunk/checks/cruft
   trunk/debian/changelog
   trunk/unpack/unpack-srcpkg-l2
Log:
  + [RA] Remove now-unnecessary workarounds for calling File::Find with
symlink starting directory.
* unpack/unpack-srcpkg-l2:
  + [RA] Don't rely on the output format of dpkg-source to learn the
source directory and create a symlink.  Instead, tell dpkg-source to
unpack the source directly into the unpacked directory.  Discard
output of dpkg-source to allow for the current version, which prints
things even with -q (fixed in later versions).  Thanks, Raphael
Hertzog.  (Closes: #468927)

Modified: trunk/checks/cruft
===
--- trunk/checks/cruft  2008-03-03 04:31:46 UTC (rev 1231)
+++ trunk/checks/cruft  2008-03-03 05:06:59 UTC (rev 1232)
@@ -125,11 +125,8 @@
 $atdinbd = 1 if Dep::implies(Dep::parse($bd), Dep::parse($autotools_pkgs));
 }
 
-my $cwd = cwd;
-$dir = readlink $cwd/unpacked; # File::Find in Perl 5.8 appears to need it
-
 check_diffstat(diffstat);
-find(\find_cruft, $dir);
+find(\find_cruft, 'unpacked');
 
 } # /run
 
@@ -192,7 +189,7 @@
 # source-contains tag.  The tag isn't entirely accurate, but it's better
 # than creating yet a third set of tags, and this gets the severity right.
 sub find_cruft {
-(my $name = $File::Find::name) =~ s,^\Q$dir\E/,,;
+(my $name = $File::Find::name) =~ s,^(\./)?unpacked/,,;
 my $prefix = ($native ? diff-contains : source-contains);
 if (-d and not $warned{$name}) {
 for my $rule (@directory_checks) {

Modified: trunk/debian/changelog
===
--- trunk/debian/changelog  2008-03-03 04:31:46 UTC (rev 1231)
+++ trunk/debian/changelog  2008-03-03 05:06:59 UTC (rev 1232)
@@ -26,6 +26,8 @@
 + [FL] Add hg to the list of vcs-control-dir tags.
 + [RA] In the long description of outdated-autotools-helper-file,
   point to autotool-dev's documentation.  (Closes: #465132)
++ [RA] Remove now-unnecessary workarounds for calling File::Find with
+  symlink starting directory.
   * checks/debian-readme{.desc,}:
 + [RA] Warn of references to /usr/doc in README.Debian.  Thanks,
   Guillem Jover.  (Closes: #465192)
@@ -73,6 +75,14 @@
   * reporting/templates:
 + [TK] Correct Lintian maintainers address in page footers.
 
+  * unpack/unpack-srcpkg-l2:
++ [RA] Don't rely on the output format of dpkg-source to learn the
+  source directory and create a symlink.  Instead, tell dpkg-source to
+  unpack the source directly into the unpacked directory.  Discard
+  output of dpkg-source to allow for the current version, which prints
+  things even with -q (fixed in later versions).  Thanks, Raphael
+  Hertzog.  (Closes: #468927)
+
  -- Thijs Kinkhorst [EMAIL PROTECTED]  Tue, 19 Feb 2008 11:31:41 +0100
 
 lintian (1.23.45) unstable; urgency=low

Modified: trunk/unpack/unpack-srcpkg-l2
===
--- trunk/unpack/unpack-srcpkg-l2   2008-03-03 04:31:46 UTC (rev 1231)
+++ trunk/unpack/unpack-srcpkg-l2   2008-03-03 05:06:59 UTC (rev 1232)
@@ -30,31 +30,27 @@
 
 ($#ARGV == 0) or fail(syntax: unpack-srcpkg-l2 base-dir);
 my $base_dir = shift;
-my $unpack_dir;
 
 print N: Unpacking source package in directory $base_dir ...\n if $verbose;
-chdir($base_dir);
 
-my $IN = FileHandle-new;
-pipeline_open($IN, sub {
-   my $ret=exec 'dpkg-source', '-q', '-x', 'dsc';
-   $ret;
-}) or fail(cannot run dpkg-source: $!);
-
-while ($IN) {
-chop;
-$unpack_dir = $1
-   if (/^dpkg-source: extracting [^\s]+ in (\S+)/);
+# We can't use spawn yet because older versions of dpkg-source print things
+# out even with -q.  This can be fixed to use spawn once that newer version of
+# dpkg is in oldstable.
+my $pid = fork;
+if (not defined $pid) {
+fail(cannot fork: $!);
+} elsif ($pid == 0) {
+open(STDOUT, '', '/dev/null');
+exec('dpkg-source', '-q', '-x', $base_dir/dsc, $base_dir/unpacked);
+} else {
+waitpid($pid, 0);
+unless ($? == 0) {
+fail(cannot run dpkg-source: $!);
+}
 }
-close($IN) or fail(error occured during execution of dpkg-source in 
$base_dir: $!);
-$unpack_dir or fail(dpkg-source didn't report unpack directory);
 
-# create link to unpack directory
-symlink($unpack_dir, unpacked)
-or fail(cannot symlink to unpack directory $unpack_dir);
-
 # fix permissions
-spawn('chmod', '-R', 'u+rwX,o+rX,o-w', $unpack_dir) == 0 or fail();
+spawn('chmod', '-R', 'u+rwX,o+rX,o-w', $base_dir/unpacked) == 0 or fail();
 
 exit 0;
 
@@ -70,3 +66,9 @@
   }
   exit 1;
 }
+
+# Local Variables:
+# indent-tabs-mode: nil
+# cperl-indent-level: 4
+# End:
+# vim: syntax=perl sw=4 sts=4 ts=4 et shiftround


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact 

lintian: r1233 - in trunk: debian frontend

2008-03-02 Thread rra
Author: rra
Date: 2008-03-03 06:09:56 +0100 (Mon, 03 Mar 2008)
New Revision: 1233

Modified:
   trunk/debian/changelog
   trunk/frontend/lintian
Log:
Fix more problems with the option parsing in lintian.


Modified: trunk/debian/changelog
===
--- trunk/debian/changelog  2008-03-03 05:06:59 UTC (rev 1232)
+++ trunk/debian/changelog  2008-03-03 05:09:56 UTC (rev 1233)
@@ -63,7 +63,7 @@
 + [CW] Make the presence of an Ubuntu release name in the version number
   trigger the Ubuntu distribution field checks.
 + [RA] Fix option parsing bug leading lintian to incorrectly reject -a
-  without a package.
+  or -p without a package.
 
   * lib/Spelling.pm:
 + [RA] Add another spelling correction.

Modified: trunk/frontend/lintian
===
--- trunk/frontend/lintian  2008-03-03 05:06:59 UTC (rev 1232)
+++ trunk/frontend/lintian  2008-03-03 05:09:56 UTC (rev 1233)
@@ -326,7 +326,7 @@
 $action = 'check' if not $action;
 
 # check for arguments
-if ($action =~ /^(check|unpack|remove)$/ and $#ARGV == -1 and not 
$check_everything) {
+if ($action =~ /^(check|unpack|remove)$/ and $#ARGV == -1 and not 
$check_everything and not $packages_file) {
 syntax();
 }
 


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Processed: Lintian bugs fixed in revision r1232

2008-03-02 Thread Debian Bug Tracking System
Processing commands for [EMAIL PROTECTED]:

 package lintian
Ignoring bugs not assigned to: lintian

 # Fixed in r1232 by rra
 tag 468927 + pending
Bug#468927: lintian: Should not rely on dpkg-source's output ...
There were no tags set.
Tags added: pending

 thanks
Stopping processing here.

Please contact me if you need assistance.

Debian bug tracking system administrator
(administrator, Debian Bugs database)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#468876: lintian: please warn when icons are installed in the wrong dirs

2008-03-02 Thread Russ Allbery
Paul Wise [EMAIL PROTECTED] writes:

 Package: lintian
 Version: 1.23.45
 Severity: wishlist

 The password-gorilla package that I recently sponsored contains the
 following files:

 /usr/share/icons/hicolor/16x16/password-gorilla.png
 /usr/share/icons/hicolor/32x32/password-gorilla.png
 /usr/share/icons/hicolor/48x48/password-gorilla.png

 These are incorrect and will not show up in freedesktop menus because
 the directory is not listed in the index.theme file. Please check that
 icons in /usr/share/icons/hicolor are in one of the below directories.

[snipped tons of directories]

This looks rather unmaintainable from a lintian perspective unless there's
some (rarely-changing) standard that specifies those directories.  If I'm
reading the implications of your message correctly, that list could change
arbitrarily with each release of the hicolor theme package.  I don't see
any clean way that we could maintain this.  (Also, this only applies to
desktop files that don't give a full path to the icon, no?)

 Also, when there is a package that contains an index.theme file, it
 would be good if lintian could validate the locations of images in the
 package against the Directories parameter in it.

Hm, I guess.  Parsing desktop files and trying to verify things in them is
really hard due to the lack of standardization of desktop files, but this
looks reasonably self-contained.

-- 
Russ Allbery ([EMAIL PROTECTED])   http://www.eyrie.org/~eagle/



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



lintian: r1234 - in trunk: checks debian testset testset/binary/debian testset/diffs/debian

2008-03-02 Thread rra
Author: rra
Date: 2008-03-03 06:21:41 +0100 (Mon, 03 Mar 2008)
New Revision: 1234

Modified:
   trunk/checks/rules
   trunk/checks/rules.desc
   trunk/debian/changelog
   trunk/testset/binary/debian/rules
   trunk/testset/diffs/debian/rules
   trunk/testset/tags.binary
Log:
  + [RA] Also check for make -i when checking if errors from make clean or
distclean are ignored.  Thanks, J?\195?\182rg Sommer.  (Closes: #469024)

Modified: trunk/checks/rules
===
--- trunk/checks/rules  2008-03-03 05:09:56 UTC (rev 1233)
+++ trunk/checks/rules  2008-03-03 05:21:41 UTC (rev 1234)
@@ -98,7 +98,8 @@
 if (/\$[\(\{]PWD[\)\}]/) {
 tag debian-rules-uses-pwd, line $.;
 }
-if (/^\t\s*-(?:\$[\(\{]MAKE[\}\)]|make)\s.*(?:dist)?clean/) {
+if (/^\t\s*-(?:\$[\(\{]MAKE[\}\)]|make)\s.*(?:dist)?clean/ ||
+   /^\t\s*(?:\$[\(\{]MAKE[\}\)]|make)\s(?:.*\s)?-\w*i.*(?:dist)?clean/) {
 tag debian-rules-ignores-make-clean-error, line $.;
 }
 

Modified: trunk/checks/rules.desc
===
--- trunk/checks/rules.desc 2008-03-03 05:09:56 UTC (rev 1233)
+++ trunk/checks/rules.desc 2008-03-03 05:21:41 UTC (rev 1234)
@@ -51,11 +51,13 @@
  package's clean or distclean target with a line like:
  .
   -$(MAKE) distclean
+ or
+  $(MAKE) -i distclean
  .
- The leading - tells make to ignore all errors.  Normally this is done
- for packages using Autoconf since Makefile may not exist.  However, this
- line ignores all other error messages, not just the missing Makefile
- error.  It's better to use:
+ The leading - or the option -i tells make to ignore all errors.
+ Normally this is done for packages using Autoconf since Makefile may not
+ exist.  However, this line ignores all other error messages, not just
+ the missing Makefile error.  It's better to use:
  .
   [ ! -f Makefile ] || $(MAKE) distclean
  .

Modified: trunk/debian/changelog
===
--- trunk/debian/changelog  2008-03-03 05:09:56 UTC (rev 1233)
+++ trunk/debian/changelog  2008-03-03 05:21:41 UTC (rev 1234)
@@ -4,6 +4,8 @@
 + [RA] Anchor file matches for Perl libraries and debugging symbols so
   as to not match partial paths.  Based on a patch from Niko Tyni.
   (Closes: #466501)
++ [RA] Also check for make -i when checking if errors from make clean or
+  distclean are ignored.  Thanks, Jörg Sommer.  (Closes: #469024)
   * checks/changelog-file:
 + [RA] Adjust for the extra space added by Parse::DebianChangelog when
   checking line length.  Thanks, Robert Millan.  (Closes: #467019)

Modified: trunk/testset/binary/debian/rules
===
--- trunk/testset/binary/debian/rules   2008-03-03 05:09:56 UTC (rev 1233)
+++ trunk/testset/binary/debian/rules   2008-03-03 05:21:41 UTC (rev 1234)
@@ -9,7 +9,7 @@
echo $(PWD)
 
 clean:
-   make clean
+   make -i clean
rm -f debian/files debian/substvars
 
 binary-arch: build

Modified: trunk/testset/diffs/debian/rules
===
--- trunk/testset/diffs/debian/rules2008-03-03 05:09:56 UTC (rev 1233)
+++ trunk/testset/diffs/debian/rules2008-03-03 05:21:41 UTC (rev 1234)
@@ -24,7 +24,7 @@
 
 clean:
rm -rf $(tmp)
-#  make clean
+   make clean
rm -f subdir-good/config.cache subdir-good/config.log 
subdir-good/config.status
 
 .PHONY: build binary-arch binary-indep binary clean

Modified: trunk/testset/tags.binary
===
--- trunk/testset/tags.binary   2008-03-03 05:09:56 UTC (rev 1233)
+++ trunk/testset/tags.binary   2008-03-03 05:21:41 UTC (rev 1234)
@@ -50,6 +50,7 @@
 I: binary: desktop-entry-contains-encoding-key 
/usr/share/applications/hello.desktop:13 Encoding
 I: binary: no-md5sums-control-file
 W: binary source: ancient-standards-version 3.2.1 (current is 3.7.3)
+W: binary source: debian-rules-ignores-make-clean-error line 12
 W: binary source: debian-rules-uses-pwd line 9
 W: binary source: maintainer-upload-has-incorrect-version-number 4-1.1
 W: binary source: native-package-with-dash-version


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Processed: Lintian bugs fixed in revision r1234

2008-03-02 Thread Debian Bug Tracking System
Processing commands for [EMAIL PROTECTED]:

 package lintian
Ignoring bugs not assigned to: lintian

 # Fixed in r1234 by rra
 tag 469024 + pending
Bug#469024: lintian: Check for make -i for ignores-make-clean-error
Tags were: patch
Tags added: pending

 thanks
Stopping processing here.

Please contact me if you need assistance.

Debian bug tracking system administrator
(administrator, Debian Bugs database)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



lintian: r1235 - trunk/testset

2008-03-02 Thread rra
Author: rra
Date: 2008-03-03 06:37:39 +0100 (Mon, 03 Mar 2008)
New Revision: 1235

Modified:
   trunk/testset/runtests
Log:
Add a -d option that enables debug.


Modified: trunk/testset/runtests
===
--- trunk/testset/runtests  2008-03-03 05:21:41 UTC (rev 1234)
+++ trunk/testset/runtests  2008-03-03 05:37:39 UTC (rev 1235)
@@ -22,7 +22,7 @@
 
 sub usage {
 print END;
-Usage: $0 [-k] [-v] testset-directory testing-directory [test]
+Usage: $0 [-k] [-v] [-d] testset-directory testing-directory [test]
 
 The -k option means do not stop after one failed test, but try
 them all and report all errors.
@@ -30,6 +30,8 @@
 The -v option will also display those tests that have a description, but are
 not tested in any testset-package.
 
+The -d option will display debugging information.
+
 The optional 3rd parameter causes runtests to only run that particular test.
 END
 exit 2;
@@ -70,6 +72,8 @@
$run_all_tests = 1;
 } elsif ($ARGV[0] eq '-v') {
$verbose = 1;
+} elsif ($ARGV[0] eq '-d') {
+   $debug = 1;
 } else {
usage;
 }


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



lintian: r1236 - trunk/unpack

2008-03-02 Thread rra
Author: rra
Date: 2008-03-03 06:38:12 +0100 (Mon, 03 Mar 2008)
New Revision: 1236

Modified:
   trunk/unpack/unpack-srcpkg-l2
Log:
We still have to do the chdir to work around a bug in the current
dpkg-source.


Modified: trunk/unpack/unpack-srcpkg-l2
===
--- trunk/unpack/unpack-srcpkg-l2   2008-03-03 05:37:39 UTC (rev 1235)
+++ trunk/unpack/unpack-srcpkg-l2   2008-03-03 05:38:12 UTC (rev 1236)
@@ -32,6 +32,7 @@
 my $base_dir = shift;
 
 print N: Unpacking source package in directory $base_dir ...\n if $verbose;
+chdir($base_dir);
 
 # We can't use spawn yet because older versions of dpkg-source print things
 # out even with -q.  This can be fixed to use spawn once that newer version of
@@ -41,7 +42,7 @@
 fail(cannot fork: $!);
 } elsif ($pid == 0) {
 open(STDOUT, '', '/dev/null');
-exec('dpkg-source', '-q', '-x', $base_dir/dsc, $base_dir/unpacked);
+exec('dpkg-source', '-q', '-x', 'dsc', 'unpacked');
 } else {
 waitpid($pid, 0);
 unless ($? == 0) {
@@ -50,7 +51,7 @@
 }
 
 # fix permissions
-spawn('chmod', '-R', 'u+rwX,o+rX,o-w', $base_dir/unpacked) == 0 or fail();
+spawn('chmod', '-R', 'u+rwX,o+rX,o-w', 'unpacked') == 0 or fail();
 
 exit 0;
 


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#467642: new check for unneeded control scripts

2008-03-02 Thread Russ Allbery
Bernhard R. Link [EMAIL PROTECTED] writes:

 Package: lintian
 Version: 1.23.45
 Severity: wishlist

 Attached patch should enable lintian to warn against unneeded control
 files. It adds a warning against (semantically) empty control files
 and against some ancient checks. (I don't think package need still check
 in preinst if the version of dpkg running is newer than from 1999).

Frank already added something very similar to this content check and I
just enhanced it to warn on scripts containing nothing but the dh-make
boilerplate.

I'm now also adding these checks for ancient dpkg assertions.  Thanks!

-- 
Russ Allbery ([EMAIL PROTECTED])   http://www.eyrie.org/~eagle/



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



lintian: r1237 - in trunk: checks debian testset testset/dh-test/debian testset/maintainer-scripts/debian

2008-03-02 Thread rra
Author: rra
Date: 2008-03-03 07:03:37 +0100 (Mon, 03 Mar 2008)
New Revision: 1237

Added:
   trunk/testset/dh-test/debian/postinst
Modified:
   trunk/checks/scripts
   trunk/checks/scripts.desc
   trunk/debian/changelog
   trunk/testset/maintainer-scripts/debian/preinst
   trunk/testset/tags.dh-test
   trunk/testset/tags.maintainer-scripts
Log:
* checks/scripts{.desc,}:
  + [RA] Add warnings for dpkg --assert* flags for features that have
been guaranteed for nearly a decade.  Thanks, Bernhard R. Link.
(Closes: #467642)

Also enhance maintainer-script-empty to catch scripts that contain only
boilerplate for option parsing.


Modified: trunk/checks/scripts
===
--- trunk/checks/scripts2008-03-03 05:38:12 UTC (rev 1236)
+++ trunk/checks/scripts2008-03-03 06:03:37 UTC (rev 1237)
@@ -470,11 +470,6 @@
}
 }
 
-# the control-files check already has an unknown-control-file error
-# so there's no need for anything like this here:
-# my %maintainer_scripts = map { $_ = 1 } qw(preinst postinst prerm postrm 
config);
-# print E: something unless exists $maintainer_scripts{$file}
-
 # now scan the file contents themselves
 open (C, '', $filename)
or fail(cannot open maintainer script $filename for reading: $!);
@@ -489,9 +484,16 @@
s/\#.*$//; # eat comments
chomp();
 
+   # Don't consider the standard dh-make boilerplate to be code.  This
+   # means ignoring the framework of a case statement, the labels, the
+   # echo complaining about unknown arguments, and an exit.
unless ($has_code
+   || m/^\s*set\s+-\w+\s*$/
+   || m/^\s*case\s+\?\$1\?\s+in\s*$/
+   || m/^\s*(?:[a-z|-]+|\*)\)\s*$/
|| m/^\s*[:;]+\s*$/
-   || m/^\s*set\s+-\w+\s*$/
+   || m/^\s*echo\s+\[^\]+\(?:\s*2)?\s*$/
+   || m/^\s*esac\s*$/
|| m/^\s*exit\s+\d+\s*$/) {
$has_code = 1;
}
@@ -655,6 +657,20 @@
tag maintainer-script-modifies-inetd-conf, $file:$.
unless Dep::implies($deps{provides}, 
Dep::parse('inet-superserver'));
}
+
+   # Ancient dpkg feature tests.
+   if (m/^\s*dpkg\s+--assert-support-predepends\b/) {
+   tag ancient-dpkg-predepends-check, $file:$.;
+   }
+   if (m/^\s*dpkg\s+--assert-working-epoch\b/) {
+   tag ancient-dpkg-epoch-check, $file:$.;
+   }
+   if (m/^dpkg\s+--assert-long-filenames\b/) {
+   tag ancient-dpkg-long-filenames-check, $file:$.;
+   }
+   if (m/^dpkg\s+--assert-multi-conrep\b/) {
+   tag ancient-dpkg-multi-conrep-check, $file:$.;
+   }
}
}
if (m,\bsuidregister\b,) {

Modified: trunk/checks/scripts.desc
===
--- trunk/checks/scripts.desc   2008-03-03 05:38:12 UTC (rev 1236)
+++ trunk/checks/scripts.desc   2008-03-03 06:03:37 UTC (rev 1237)
@@ -391,7 +391,36 @@
 
 Tag: maintainer-script-empty
 Type: warning
-Info: The maintainer script doesn't seem to contain any code. While this
- is harmless in most cases it is probably not what you wanted and may even
- lead to problems in rare situations where dpkg would fail if no maintainer
- script was present.
+Info: The maintainer script doesn't seem to contain any code other than
+ comments and boilerplate (set -e, exit statements, and the case statement
+ to parse options).  While this is harmless in most cases, it is probably
+ not what you wanted, may mean the package will leave unnecessary files
+ behind until purged, and may even lead to problems in rare situations
+ where dpkg would fail if no maintainer script was present.
+ .
+ If the package currently doesn't need to do anything in this maintainer
+ script, it shouldn't be included in the package.
+
+Tag: ancient-dpkg-predepends-check
+Type: warning
+Info: The package calls dpkg --assert-support-predepends in a maintainer
+ script.  This check is obsolete and has always returned true since dpkg
+ 1.1.0, released 1996-02-11.
+
+Tag: ancient-dpkg-epoch-check
+Type: warning
+Info: The package calls dpkg --assert-working-epoch in a maintainer
+ script.  This check is obsolete and has always returned true since dpkg
+ 1.4.0.7, released 1997-01-25.
+
+Tag: ancient-dpkg-long-filenames-check
+Type: warning
+Info: The package calls dpkg --assert-long-filenames in a maintainer
+ script.  This check is obsolete and has always returned true since dpkg
+ 1.4.1.17, released 1999-10-21.
+
+Tag: ancient-dpkg-multi-conrep-check
+Type: warning
+Info: The package calls dpkg --assert-multi-conrep in a maintainer
+ script.  This check is obsolete and has always returned true since dpkg
+ 1.4.1.19, released 1999-10-30.

Modified: 

Processed: Lintian bugs fixed in revision r1237

2008-03-02 Thread Debian Bug Tracking System
Processing commands for [EMAIL PROTECTED]:

 package lintian
Ignoring bugs not assigned to: lintian

 # Fixed in r1237 by rra
 tag 467642 + pending
Bug#467642: new check for unneeded control scripts
There were no tags set.
Tags added: pending

 thanks
Stopping processing here.

Please contact me if you need assistance.

Debian bug tracking system administrator
(administrator, Debian Bugs database)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#468876: lintian: please warn when icons are installed in the wrong dirs

2008-03-02 Thread Russ Allbery
Paul Wise [EMAIL PROTECTED] writes:
 On Sun, 2008-03-02 at 21:18 -0800, Russ Allbery wrote:

 [snipped tons of directories]

 This looks rather unmaintainable from a lintian perspective unless
 there's some (rarely-changing) standard that specifies those
 directories.  If I'm reading the implications of your message
 correctly, that list could change arbitrarily with each release of the
 hicolor theme package.  I don't see any clean way that we could
 maintain this.

 See the Context table at the top if this:

 http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html

That only lists some of the subdirectories of your list (it's missing all
the stock/* ones) and doesn't use the same names (international instead of
intl, applications instead of apps).  All of those seem like things that
could change on us, no?

I wonder if desktop-file-validate would understand all of this.  It's on
the list to look at whether we can replace the desktop checks in lintian
with it.

 The hicolor standard theme is specified in this:

 http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html

Interesting, thanks.

It would be really good if some of this information could be written up
from the perspective of a Debian package maintainer, since right now
there's approximately zero information anywhere for how to deal with
desktop files if one doesn't personally use Gnome or KDE and isn't
familiar with this whole system.  I tried to figure this out for gnubg and
didn't have a lot of luck.

 Yah, which is most of them since it gives the icon system theme-ability.
 On my system, 32 desktop files out of 321 use an absolute icon path. IMO
 the ones that do are buggy since users cannot override the icons. Ones
 that use an extension like .png, .svg or .xpm in the Icon field are also
 buggy because users may want to provide their own versions in a
 different format.

I expect that a lot of the people (like me) who are doing that had no idea
what else to do, or that it was even kosher to install files into the
hicolor directory.

There's a lot of Debian communication missing in this area, I think.
lintian can help somewhat, but right now people are working in a void, and
adding a few lintian checks probably wouldn't be nearly as useful as
writing a comprehensive guide to how a Debian maintainer should tackle
these issues.  (And then lintian checks can reference the guide.)

 Isn't this the standard for desktop files?

 http://standards.freedesktop.org/desktop-entry-spec/latest/

It claims to be, but it's actually the standard for Gnome desktop files.
*wry grin*.  As I discovered when writing lintian checks against that
standard, KDE does something different and uses various fields that aren't
listed there.  Let alone GnuSTEP, which is even weirder.

lintian is currently trying to check sort of a subset of that
specification, only desktop files of a particular type, and with
additional workarounds for KDE-specific stuff that can't be checked.

 I'd also like to see a lintian info/warning when a menu file is
 installed in the package, but a .desktop file is not. The reason for
 this is that in that case, GNOME users will not have the application in
 their menu unless they turned the Debian menu on, since it is off by
 default.

The last time someone proposed this, it sparked a huge flamewar on
debian-devel.  I'm not sure I want to wade back into that.  Apparently the
GNOME maintainers disabled the Debian menu because they think it's largely
worthless, and just blindly reintroducing .desktop files for every .menu
file would restore the previous situation.

Logically, if every .menu file should correspond to a .desktop file, the
GNOME maintainers could just include the Debian menu.  Since they don't,
that indicates to me that some logic (not yet documented) should be
applied by Debian maintainers to decide whether or not to include a
desktop file.

-- 
Russ Allbery ([EMAIL PROTECTED])   http://www.eyrie.org/~eagle/



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of unsubscribe. Trouble? Contact [EMAIL PROTECTED]



Bug#468876: lintian: please warn when icons are installed in the wrong dirs

2008-03-02 Thread Paul Wise
On Sun, 2008-03-02 at 22:21 -0800, Russ Allbery wrote:

 That only lists some of the subdirectories of your list (it's missing all
 the stock/* ones) and doesn't use the same names (international instead of
 intl, applications instead of apps).  All of those seem like things that
 could change on us, no?

Argh, I guess that is true.

I'm wondering if it would be OK to build-depend on the hicolor theme and
extract the list of directories at build time. Hmm, seems error-prone
though and build-dep bloating. Alternatively you could have the theme
installed and have a pre-release hook that generates the directories
from the hicolor theme package and sticks them in the lintian source
package.

 I wonder if desktop-file-validate would understand all of this.  It's on
 the list to look at whether we can replace the desktop checks in lintian
 with it.

I think that only understands .desktop files, not this icon stuff.

  The hicolor standard theme is specified in this:
 
  http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
 
 Interesting, thanks.
 
 It would be really good if some of this information could be written up
 from the perspective of a Debian package maintainer, since right now
 there's approximately zero information anywhere for how to deal with
 desktop files if one doesn't personally use Gnome or KDE and isn't
 familiar with this whole system.  I tried to figure this out for gnubg and
 didn't have a lot of luck.
 
 I expect that a lot of the people (like me) who are doing that had no idea
 what else to do, or that it was even kosher to install files into the
 hicolor directory.
 
 There's a lot of Debian communication missing in this area, I think.
 lintian can help somewhat, but right now people are working in a void, and
 adding a few lintian checks probably wouldn't be nearly as useful as
 writing a comprehensive guide to how a Debian maintainer should tackle
 these issues.  (And then lintian checks can reference the guide.)

I definitely agree with this, unfortunately I have little time to spare
on it. Perhaps the gtk/gnome  kde teams could contact upstream to help
get such a guide, or maybe Ubuntu already has one 

  Isn't this the standard for desktop files?
 
  http://standards.freedesktop.org/desktop-entry-spec/latest/
 
 It claims to be, but it's actually the standard for Gnome desktop files.
 *wry grin*.  As I discovered when writing lintian checks against that
 standard, KDE does something different and uses various fields that aren't
 listed there.  Let alone GnuSTEP, which is even weirder.
 
 lintian is currently trying to check sort of a subset of that
 specification, only desktop files of a particular type, and with
 additional workarounds for KDE-specific stuff that can't be checked.

Ugh.

  I'd also like to see a lintian info/warning when a menu file is
  installed in the package, but a .desktop file is not. The reason for
  this is that in that case, GNOME users will not have the application in
  their menu unless they turned the Debian menu on, since it is off by
  default.
 
 The last time someone proposed this, it sparked a huge flamewar on
 debian-devel.  I'm not sure I want to wade back into that.  Apparently the
 GNOME maintainers disabled the Debian menu because they think it's largely
 worthless, and just blindly reintroducing .desktop files for every .menu
 file would restore the previous situation.
 
 Logically, if every .menu file should correspond to a .desktop file, the
 GNOME maintainers could just include the Debian menu.  Since they don't,
 that indicates to me that some logic (not yet documented) should be
 applied by Debian maintainers to decide whether or not to include a
 desktop file.

Right, I forgot about that flamewar. IMO, there should either be both,
or none or just a .desktop file. The menu package should become a
conduit from .desktop files to desktop systems that don't support the
fdo specs. I don't think Debian will make progress on this for at least
a release or two though.

-- 
bye,
pabs

http://wiki.debian.org/PaulWise


signature.asc
Description: This is a digitally signed message part