Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-24 Thread Ian Jackson
Niko Tyni writes (Bug#774844: xfonts-traditional: fails to upgrade from 
'wheezy': Can't locate File/Find.pm in @INC):
 In that case the dependency on perl would be direct, but the script would
 fail in exactly the same way when a newer perl-modules is unpacked -
 because Time::Piece needs Time::Local from perl-modules, and that wouldn't
 be on the search path anymore.

Again, that would be an indirect dependency, although of a different
kind.

 I suspect it has more to do with the circular dependency between
 perl and perl-modules.

No, that's not it.  At the time when the bug occurs perl has always
been happily configured.

  We see the bug with xfonts-traditional because both (a) it has a
  trigger and (b) luck means that the usual ordering exposes the bug.
  But as I explained earlier, this situation is not limited to packages
  with triggers.  It can be repro'd with xfonts-traditional without
  triggers being involved.
 
 I don't quite buy this argument about triggers not being involved.

Earlier I described a repro where xfonts-traditional's postinst fails
the `configure' operation.  The trigger is not a necessary component
of the failure.

 Consider, in a wheezy chroot:
...
 In this situation dpkg would agree to install and configure a package
 that Depends on 'file' and uses that command in 'postinst configure',
 but the configure step would fail.  Does that imply that the new libmagic1
 package should Break older versions of file? I don't think that makes sense.

I think this does't normally actually arise because apt prefers to
configure things in a different order.

 So why does it after s/file/perl/ and s/libmagic1/perl-modules/ ?
 
 It looks to me like this new Breaks: requirement arises from the dpkg
 triggers implementation and possibly concerns only circular dependencies.
 The loop breaking logic that looks for postinst scripts (policy 7.2)
 seems related. Clearly we don't have this for triggers, only for the
 configure step.

The loop is nothing to do with it.  The problem is that the dependency
checking has always been a bit loose in these kind of cases, but it
hasn't mattered very much until now.

It would be better if dpkg would avoid configuring (or invoking
trigger processing for) A when A-B-C and C is not configured, but B
is.  That's not a practical solution for jessie.

I still think the Breaks as suggested earlier is the correct solution.

Ian.


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-24 Thread Ian Jackson
Niko Tyni writes (Re: Bug#774844: xfonts-traditional: fails to upgrade from 
'wheezy': Can't locate File/Find.pm in @INC):
 reassign 774844 perl 5.20.1-4
 thanks
...
 Fine by me, I'm not arguing against that. Clearly it's time to
 stop/postpone the discussion about theoretical wider effects and do
 what's necessary for jessie.

I think so, yes.

 So reassigning the bug. I'll be uploading the Breaks+Pre-Depends
 change hopefully tomorrow.

Thank you, and thanks for your careful attention and searching
questions.

Regards,
Ian.


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-24 Thread Niko Tyni
reassign 774844 perl 5.20.1-4
thanks

On Sat, Jan 24, 2015 at 06:39:02PM +, Ian Jackson wrote:

 It would be better if dpkg would avoid configuring (or invoking
 trigger processing for) A when A-B-C and C is not configured, but B
 is.  That's not a practical solution for jessie.
 
 I still think the Breaks as suggested earlier is the correct solution.

Fine by me, I'm not arguing against that. Clearly it's time to
stop/postpone the discussion about theoretical wider effects and do
what's necessary for jessie.

So reassigning the bug. I'll be uploading the Breaks+Pre-Depends
change hopefully tomorrow.

Thanks,
-- 
Niko Tyni   nt...@debian.org


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Processed: Re: Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-24 Thread Debian Bug Tracking System
Processing commands for cont...@bugs.debian.org:

 reassign 774844 perl 5.20.1-4
Bug #774844 [xfonts-traditional] xfonts-traditional: fails to upgrade from 
'wheezy': Can't locate File/Find.pm in @INC
Bug reassigned from package 'xfonts-traditional' to 'perl'.
No longer marked as found in versions xfonts-traditional/1.6.
Ignoring request to alter fixed versions of bug #774844 to the same values 
previously set
Bug #774844 [perl] xfonts-traditional: fails to upgrade from 'wheezy': Can't 
locate File/Find.pm in @INC
Marked as found in versions perl/5.20.1-4.
 thanks
Stopping processing here.

Please contact me if you need assistance.
-- 
774844: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=774844
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems


--
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-22 Thread Russ Allbery
Ian Jackson ijack...@chiark.greenend.org.uk writes:

 But it mostly occurs when a dependency is indirected through an
 intermediate package.  That is, A uses some feature in C, but the
 dependency is declared on B which depends on C.

 This is (perhaps surprisingly) not particularly common.

That's partly because those of us who work on Lintian have been annoying
maintainers about this as much as possible to try to get them not to do
that.  :)

 But in the case of perl it's nearly universal, because of the policy
 recommendation to depend on the metapackage `perl' rather than perl-base
 or perl-modules.

I suspect this is an outgrowth of the fact that we've always felt that the
split of the perl package was sort of wrong, in the sense that we did it
for internal reasons that are valid, but the average user should not
perceive it as being divided into multiple packages, and we generally
should try to avoid treating it as such.

 I don't think `requires strict dependencies' is a very useful concept
 here.  That xfonts-traditional uses (in a maintainer script) a perl
 module which has always been implied by `perl' can hardly be unusual.  I
 don't think it makes sense to regard that as a particularly `strict'.

There are certainly other packages in the archive with Perl maintainer
scripts, although the ones I'm aware of I don't think use modules that
have moved.

-- 
Russ Allbery (r...@debian.org)   http://www.eyrie.org/~eagle/


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-22 Thread Niko Tyni
On Mon, Jan 19, 2015 at 05:09:31PM +, Ian Jackson wrote:
 Niko Tyni writes (Re: Bug#774844: xfonts-traditional: fails to upgrade from 
 'wheezy': Can't locate File/Find.pm in @INC):
  My point was that this is potentially a much wider issue, not
  limited to perl.
 
 I should reply to this.  You are right that it is, potentially, a
 wider issue.
 
 But it mostly occurs when a dependency is indirected through an
 intermediate package.  That is, A uses some feature in C, but the
 dependency is declared on B which depends on C.

I don't think this indirection is the key here. The same issue could just
as well have happened if the xfonts-traditional postinst functionality
needed for example Time::Piece (which is in the perl package.)

In that case the dependency on perl would be direct, but the script would
fail in exactly the same way when a newer perl-modules is unpacked -
because Time::Piece needs Time::Local from perl-modules, and that wouldn't
be on the search path anymore.

I suspect it has more to do with the circular dependency between
perl and perl-modules.

 We see the bug with xfonts-traditional because both (a) it has a
 trigger and (b) luck means that the usual ordering exposes the bug.
 But as I explained earlier, this situation is not limited to packages
 with triggers.  It can be repro'd with xfonts-traditional without
 triggers being involved.

I don't quite buy this argument about triggers not being involved.

Consider, in a wheezy chroot:

  # apt-get install file
  # dpkg --unpack libmagic1_5.22+15-1_amd64.deb # from sid
  # file /usr/bin/perl
  file: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found 
(required by /usr/lib/x86_64-linux-gnu/libmagic.so.1)
  file: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.15' not found 
(required by /usr/lib/x86_64-linux-gnu/libmagic.so.1)
  # dpkg -l file
  [...]
  ii  file   5.11-2+deb7u6amd64Determines file 
type using magic numbers

In this situation dpkg would agree to install and configure a package
that Depends on 'file' and uses that command in 'postinst configure',
but the configure step would fail.  Does that imply that the new libmagic1
package should Break older versions of file? I don't think that makes sense.

So why does it after s/file/perl/ and s/libmagic1/perl-modules/ ?

It looks to me like this new Breaks: requirement arises from the dpkg
triggers implementation and possibly concerns only circular dependencies.
The loop breaking logic that looks for postinst scripts (policy 7.2)
seems related. Clearly we don't have this for triggers, only for the
configure step.
-- 
Niko Tyni   nt...@debian.org


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-19 Thread Niko Tyni
On Sun, Jan 18, 2015 at 10:37:19PM +0100, Andreas Beckmann wrote:
 On 2015-01-18 18:48, Niko Tyni wrote:
  a) - make xfonts-traditional 'postinst triggered' survive missing 
  dependencies
 - make perl-base+perl-modules+perl Break xfonts-traditional older than 
  that
 
 What about this rather simple solution:
 
 Package: perl-modules
 Breaks: xfonts-traditional ( 1.7~)
 
 The action to achieve is: before the new perl-modules is unpacked 
 (which would break xfonts-traditional.postinst due to missing (or 
 better: relocated) File/Find.pm, ensure xfonts-traditional is either 
 upgraded first or deconfigured - this should be sufficient for any old 
 dpkg not to do trigger processing any more (as long as it is not in a 
 configured state).

Unfortunately that doesn't help with partial upgrades. Nothing prevents
upgrading and configuring xfonts-traditional first, and only then
upgrading the rest of the system.
-- 
Niko Tyni   nt...@debian.org


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-19 Thread gregor herrmann
On Mon, 19 Jan 2015 11:39:29 +0100, Andreas Beckmann wrote:

 Maybe this leads to a rule like:
   If maintainer scripts (including triggers!) use some module
   from perl-modules, the package needs to depend on perl-modules.
   An indirect dependency through perl is not sufficient.

This sounds error-prone to me, as maintainers would have to find out
which package contains the module, and track this information when
modules are moved. I guess Niko's idea of adding a Breaks on the old
perl to perl-base and perl-modules is both less work and more
reliable.

Cheers,
gregor

-- 
 .''`.  Homepage: http://info.comodo.priv.at/ - OpenPGP key 0xBB3A68018649AA06
 : :' : Debian GNU/Linux user, admin, and developer  -  http://www.debian.org/
 `. `'  Member of VIBE!AT  SPI, fellow of the Free Software Foundation Europe
   `-   BOFH excuse #384:  it's an ID-10-T error 


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-19 Thread Andreas Beckmann
On 2015-01-19 09:14, Niko Tyni wrote:
 On Sun, Jan 18, 2015 at 10:37:19PM +0100, Andreas Beckmann wrote:
 Package: perl-modules
 Breaks: xfonts-traditional ( 1.7~)

 Unfortunately that doesn't help with partial upgrades. Nothing prevents
 upgrading and configuring xfonts-traditional first, and only then
 upgrading the rest of the system.

OK, how can we prevent trigger processing for xfonts-traditional if
perl-modules is not usable?

Package: xfonts-traditional
Depends: dpkg (= 1.17.triggerfixed), perl-modules

seems to work in my manual test.

dpkg/jessie seems not to run trigproc if the direct dependency
perl-modules is not configured (dpkg/wheezy does)
dpkg/jessie (and dpkg/wheezy) run trigproc if the direct dependency perl
is confgured, but the indirect dependency perl-modules is only unpacked.

Maybe this leads to a rule like:
  If maintainer scripts (including triggers!) use some module
  from perl-modules, the package needs to depend on perl-modules.
  An indirect dependency through perl is not sufficient.

Andreas


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-19 Thread Ian Jackson
Niko Tyni writes (Re: Bug#774844: xfonts-traditional: fails to upgrade from 
'wheezy': Can't locate File/Find.pm in @INC):
 My point was that this is potentially a much wider issue, not
 limited to perl.

I should reply to this.  You are right that it is, potentially, a
wider issue.

But it mostly occurs when a dependency is indirected through an
intermediate package.  That is, A uses some feature in C, but the
dependency is declared on B which depends on C.

This is (perhaps surprisingly) not particularly common.  But in the
case of perl it's nearly universal, because of the policy
recommendation to depend on the metapackage `perl' rather than
perl-base or perl-modules.

This is why I think the right fix is to add the Breaks to the perl
packages.

Andreas wrote:
 I think this list can be reduced to Uses 'perl stuff that requires
 strict dependencies' in their maintainer scripts.

I don't think `requires strict dependencies' is a very useful concept
here.  That xfonts-traditional uses (in a maintainer script) a perl
module which has always been implied by `perl' can hardly be unusual.
I don't think it makes sense to regard that as a particularly
`strict'.

We see the bug with xfonts-traditional because both (a) it has a
trigger and (b) luck means that the usual ordering exposes the bug.
But as I explained earlier, this situation is not limited to packages
with triggers.  It can be repro'd with xfonts-traditional without
triggers being involved.

I think searching the archive for other packages which are exposed to
similar issues with perl would be difficult.  At the very least we'd
have to search for every package which relies in its postinst on
modules which are moving between perl packages.

Thanks,
Ian.


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-18 Thread Niko Tyni
On Sat, Jan 17, 2015 at 04:24:58PM +0100, Andreas Beckmann wrote:
 On 2015-01-15 21:32, Niko Tyni wrote:
  So, even if we add the Breaks in perl-modules+perl-base, it looks like
  something else is needed. AFAICS either we need to somehow ensure that
  dpkg is upgraded first, or the xfonts-traditional trigger functionality
  needs to handle missing modules gracefully.
 
 Do we have a list of packages that trigger xfonts-traditional?
 Could they (or some of them or a common ancestor) depend on
 dpkg (= 1.17.triggerfixed)

From the xfonts-traditional triggers file:
 interest-noawait /usr/share/fonts/X11
 interest-noawait /etc/X11/app-defaults/XTerm
 interest-noawait /etc/X11/fonts/misc/xfonts-base.alias

apt-file finds 91 packages in sid matching /usr/share/fonts/X11. That's
a bit much.

  I'd love to hear thoughts on this. Also, my earlier questions still apply:
  does this imply that all packages with strict versioned dependencies
  and the like should more or less duplicate that information in Breaks
  entries ?
 
 I think this list can be reduced to Uses 'perl stuff that requires
 strict dependencies' in their maintainer scripts.

My point was that this is potentially a much wider issue, not limited to perl.

But concentrating on this specific issue which is clearly RC for jessie:
assuming we don't want to change all the 91 font packages, I see these
possibilities:

a) - make xfonts-traditional 'postinst triggered' survive missing dependencies
   - make perl-base+perl-modules+perl Break xfonts-traditional older than that

b) - make perl-base+perl-modules Break: perl ( 5.20.0~)
   - make perl-base+perl-modules+perl Pre-Depend on dpkg (= 1.17.17)

The second choice is a more generic fix that may benefit other packages
too, assuming those Breaks are the correct thing to do.

I'm inclined to do b) but at least the predependency needs a discussion
on -devel too so I'll go there next.
-- 
Niko Tyni   nt...@debian.org


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-18 Thread Andreas Beckmann
On 2015-01-18 18:48, Niko Tyni wrote:
 a) - make xfonts-traditional 'postinst triggered' survive missing dependencies
- make perl-base+perl-modules+perl Break xfonts-traditional older than that

What about this rather simple solution:

Package: perl-modules
Breaks: xfonts-traditional ( 1.7~)

The action to achieve is: before the new perl-modules is unpacked 
(which would break xfonts-traditional.postinst due to missing (or 
better: relocated) File/Find.pm, ensure xfonts-traditional is either 
upgraded first or deconfigured - this should be sufficient for any old 
dpkg not to do trigger processing any more (as long as it is not in a 
configured state).

I tested this, and it seems to work:

  Preparing to replace xfonts-traditional 1.6 (using 
.../xfonts-traditional_1.7.1_all.deb) ...
  Checking configuration...
  Unpacking replacement xfonts-traditional ...
  Preparing to replace perl-modules 5.14.2-21+deb7u2 (using 
.../perl-modules_5.20.1-4.1_all.deb) ...
  Unpacking replacement perl-modules ...
  Selecting previously unselected package libdb5.3:amd64.
  Unpacking libdb5.3:amd64 (from .../libdb5.3_5.3.28-7~deb8u1_amd64.deb) ...
  Setting up libdb5.3:amd64 (5.3.28-7~deb8u1) ...
  Processing triggers for libc-bin ...
  (Reading database ... 8476 files and directories currently installed.)
  Preparing to replace perl 5.14.2-21+deb7u2 (using 
.../pl/./perl_5.20.1-4.1_amd64.deb) ...
  Unpacking replacement perl ...
  Preparing to replace libsys-cpu-perl 0.52-3 (using 
.../libsys-cpu-perl_0.61-1+b1_amd64.deb) ...
  Unpacking replacement libsys-cpu-perl ...
  Preparing to replace libtext-iconv-perl 1.7-5 (using 
.../libtext-iconv-perl_1.7-5+b2_amd64.deb) ...
  Unpacking replacement libtext-iconv-perl ...
  Preparing to replace perl-base 5.14.2-21+deb7u2 (using 
.../perl-base_5.20.1-4.1_amd64.deb) ...
  Unpacking replacement perl-base ...
  Setting up perl-base (5.20.1-4.1) ...
  (Reading database ... 7806 files and directories currently installed.)
  Preparing to replace liblocale-gettext-perl 1.05-7+b1 (using 
.../liblocale-gettext-perl_1.05-8+b1_amd64.deb) ...
  Unpacking replacement liblocale-gettext-perl ...
  Preparing to replace libgdbm3:amd64 1.8.3-11 (using 
.../libgdbm3_1.8.3-13.1_amd64.deb) ...
  Unpacking replacement libgdbm3:amd64 ...
  Preparing to replace dpkg 1.16.15 (using .../dpkg_1.17.23_amd64.deb) ...
  Unpacking replacement dpkg ...
  Setting up dpkg (1.17.23) ...
  Installing new version of config file /etc/cron.daily/dpkg ...
  (Reading database ... 7794 files and directories currently installed.)

No Pre-Depends or any other fancy stuff needed :-)


Andreas


xfonts-traditional_with_perl-modules-breaks.log.gz
Description: application/gzip


Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-17 Thread Andreas Beckmann
On 2015-01-15 21:32, Niko Tyni wrote:
 So, even if we add the Breaks in perl-modules+perl-base, it looks like
 something else is needed. AFAICS either we need to somehow ensure that
 dpkg is upgraded first, or the xfonts-traditional trigger functionality
 needs to handle missing modules gracefully.

Do we have a list of packages that trigger xfonts-traditional?
Could they (or some of them or a common ancestor) depend on
dpkg (= 1.17.triggerfixed)

 I'd love to hear thoughts on this. Also, my earlier questions still apply:
 does this imply that all packages with strict versioned dependencies
 and the like should more or less duplicate that information in Breaks
 entries ?

I think this list can be reduced to Uses 'perl stuff that requires
strict dependencies' in their maintainer scripts.

Andreas


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-15 Thread Niko Tyni
On Fri, Jan 09, 2015 at 09:13:03PM +0200, Niko Tyni wrote:
 On Thu, Jan 08, 2015 at 04:12:05PM +, Ian Jackson wrote:

  If my scenario above is correct, this problem is not confined to
  packages involving triggers, nor necessarily to xfonts-traditional.
  Rather the problem is that the policy implies that most packages will
  depend on just `perl', but `perl' can be `installed' despite some of
  the functionality it is supposed to provide (File/Find.pm in this
  case) being missing.
  
  I think the right fix therefore has to be in the Perl packages.
  
  Here is a suggestion: have perl-modules (jessie) declare a Breaks on
  perl (wheezy).

 Anyway, I guess I'll experiment with the perl-modules+perl-base - perl
 Breaks entries to see how well apt handles such upgrades, as I'm slightly
 worried about that.

I have some good news and some bad news. The good news is that those
Breaks seem to work fine with apt. I've tested upgrading quite a
few small chroots with no ill effects, and also successfully upgraded
one larger chroot with libapache2-mod-perl2, spamassassin, and
request-tracker4 installed.

The bad news is that the Breaks only help with the jessie dpkg.
They obviously prevent the scenario where xfonts-traditional is newly
installed while the new perl-modules is at 'unpacked', as dpkg now
refuses to configure the package because perl is deconfigured.  However,
simple upgrades involving xfonts-traditional still fail as before. It
looks like [1] the wheezy dpkg will still run the xfonts-traditional
'postinst triggered' even when its direct dependency perl is deconfigured.

I think this is #671711 (dpkg: runs trigger processing even if
depedencies are not satisfied), fixed between wheezy and jessie.

So, even if we add the Breaks in perl-modules+perl-base, it looks like
something else is needed. AFAICS either we need to somehow ensure that
dpkg is upgraded first, or the xfonts-traditional trigger functionality
needs to handle missing modules gracefully.

I'd love to hear thoughts on this. Also, my earlier questions still apply:
does this imply that all packages with strict versioned dependencies
and the like should more or less duplicate that information in Breaks
entries ?

[1] A test case would be (starting in a minimal wheezy chroot):

 apt-get install xfonts-traditional # from wheezy
 # (optionally, switch to jessie and apt-get install the newer dpkg)
 # (the version of xfonts-traditional seems to have no effect here)
 dpkg --auto-deconfigure --unpack perl-modules_5.20.1-5_all.deb # jessie + the 
Breaks
 dpkg -i xfonts-mona_2.90-7_all.deb # both wheezy/jessie

With wheezy dpkg, the last command with -D1 (trigger debugging) gives
  Unpacking xfonts-mona (from xfonts-mona_2.90-7_all.deb) ...
  D01: trigproc_enqueue_deferred pend=xfonts-traditional:all
  Setting up xfonts-mona (2.90-7) ...
  D01: trigproc_run_deferred
  D01: trigproc xfonts-traditional:all
  D01: check_triggers_cycle pnow=xfonts-traditional:all
  Processing triggers for xfonts-traditional ...
  Generating fonts...
  Can't locate File/Find.pm in @INC (@INC contains: /etc/perl 
/usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 
/usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 
/usr/local/lib/site_perl .) at /usr/bin/update-xfonts-traditional line 9.
  
and with jessie dpkg just
  Unpacking xfonts-mona (2.90-7) ...
  D01: trigproc_enqueue_deferred pend=xfonts-traditional:all
  Setting up xfonts-mona (2.90-7) ...
  D01: trigproc_run_deferred
  D01: trigproc xfonts-traditional:all
(The trigger gets run successfully later if perl is upgraded and configured.)

-- 
Niko Tyni   nt...@debian.org


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-09 Thread Niko Tyni
On Thu, Jan 08, 2015 at 04:12:05PM +, Ian Jackson wrote:
 Andreas Beckmann writes (Bug#774844: xfonts-traditional: fails to upgrade 
 from 'wheezy': Can't locate File/Find.pm in @INC):

  Since File/Find.pm moved to perl-base, [...]

 I think that the current dependency structure would permit:
  * Start with wheezy, without xfonts-traditional
  * Unpack perl-modules from jessie but do not configure it
  * Install xfonts-traditional

Yes, my tests indicate that dpkg will agree to do that if so instructed,
and the xfonts-traditional 'postinst configure' run will then fail.

 If my scenario above is correct, this problem is not confined to
 packages involving triggers, nor necessarily to xfonts-traditional.
 Rather the problem is that the policy implies that most packages will
 depend on just `perl', but `perl' can be `installed' despite some of
 the functionality it is supposed to provide (File/Find.pm in this
 case) being missing.
 
 I think the right fix therefore has to be in the Perl packages.
 
 Here is a suggestion: have perl-modules (jessie) declare a Breaks on
 perl (wheezy).

I suppose we can do that if it helps and doesn't break other things,
but I'd like to understand this requirement a bit better first.

There are probably lots of small package sets in the archive with strict
versioned dependencies because they must be upgraded more or less in
lockstep to stay functional.  Think foo_X.Y Depends: foo-data (=X.Y)
for example. So should every such newer foo-data package Break older
foo packages so that those get deconfigured during upgrades?

Also, File::Find hasn't moved to perl-base, although that was considered
and a few other modules did. Rather, every oldstable-stable upgrade
since etch-lenny in 2009 has had the new perl-modules package breaking
functionality of the old perl package, because the library path
(/usr/share/perl/VERSION/) changes between major upgrades. Likewise,
unpacking a newer perl-base will make the old perl and perl-modules
packages nonfunctional until they are upgraded.

(I've tested this by installing the dependencies of xfonts-traditional
 on wheezy and then unpacking a newer perl-base. That will make later
 manual dpkg -i installation of xfonts-traditional fail in postinst
 configure because Data::Dumper is not on the new library path yet and
 is therefore missing.)

So we seem to have managed three major upgrades without deconfiguring
the perl package during them.  My best guess is that this hasn't been a
problem earlier because apt (and other dpkg frontends?) will not tell dpkg
to configure a package if its recursive dependencies aren't configured
yet, or something like that. So this seems limited to triggers after all?

If perl-modules must Break older perl versions, so must apparently
perl-base.  Also, there are currently eight packages [1] in sid that
depend on perlapi-xxx and perl-base but not on perl. Should we make
perl-base Break older versions of those too, as they will be nonfunctional
until upgraded if perl-base is upgraded first? While this can probably
be done for wheezy-jessie, it doesn't seem to scale in the general case,
and binNMU version skew between architectures may make it rather ugly.

Anyway, I guess I'll experiment with the perl-modules+perl-base - perl
Breaks entries to see how well apt handles such upgrades, as I'm slightly
worried about that.

[1] these would be
 libapparmor-perl
 libapt-pkg-perl
 liblocale-gettext-perl
 libtext-charwidth-perl
 libtext-iconv-perl
 libuuid-perl
 libpurple0
 pidgin

-- 
Niko Tyni   nt...@debian.org


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-08 Thread Ian Jackson
Control: found -1 xfonts-traditional/1.6
Control: notfound -1 xfonts-traditional/1.7.1

Andreas Beckmann writes (Bug#774844: xfonts-traditional: fails to upgrade from 
'wheezy': Can't locate File/Find.pm in @INC):
 Package: xfonts-traditional
 Version: 1.7.1

Thanks for the report.  This is definitely a bad bug which must be
fixed for jessie.

 At the point where the error occurs we have these packages
 installed/unpacked:
  dpkg: wheezy
  perl-base: wheezy (no File/Find.pm, yet)
  perl-modules: jessie (no File/Find.pm any longer)
  xfonts-traditional: wheezy
 
 i.e. the triggers from xfonts-traditional/wheezy are run by dpkg/wheezy.
 What triggered them btw?

I think that the target package for this bug is perhaps wrong.  (That
is, that the change will have to be made to a different package.)
Certainly the version is wrong: at the point where this bug occurs,
xfonts-traditional_1.7.1_all.deb has not even been touched.

 Since File/Find.pm moved to perl-base, [...]

I think that the current dependency structure would permit:
 * Start with wheezy, without xfonts-traditional
 * Unpack perl-modules from jessie but do not configure it
 * Install xfonts-traditional

But xfonts-traditional depends on `perl', not `perl-modules' or
`perl-base'.  And `perl' is not deconfigured merely because one of its
dependencies goes from configured to unpacked.  So at this point
xfonts-traditional's postinst will run but the actual purpose of its
dependency on `perl' is not fully satisfied.  The postinst will fail.

This arises from the fact that in dpkg the `dependencies are
configured when postinst is run' requirement is not transitive: it
doesn't apply to the dependencies of one's dependencies.

AFAICT xfonts-traditional's use of dependencies conforms to the
recommendation in the perl policy:
  https://www.debian.org/doc/packaging-manuals/perl-policy/ch-programs.html

If my scenario above is correct, this problem is not confined to
packages involving triggers, nor necessarily to xfonts-traditional.
Rather the problem is that the policy implies that most packages will
depend on just `perl', but `perl' can be `installed' despite some of
the functionality it is supposed to provide (File/Find.pm in this
case) being missing.

I think the right fix therefore has to be in the Perl packages.

Here is a suggestion: have perl-modules (jessie) declare a Breaks on
perl (wheezy).

That declares it necessary to deconfigure perl (wheezy) to install
perl-modules (jessie).  perl (wheezy) cannot be re-configured until
perl-modules (which it depends on) is re-configured, but perl-modules
(jessie) depends on perl-base (jessie) so apt and dpkg will have to
unpack and configure perl-base (jessie) first.

Thus it will not be possible for `perl' to be `installed' while
File/Find.pm is absent.  And xfonts-traditional's (or some other
client package)'s postinst won't run until `perl' is `installed'
again.

 Since File/Find.pm moved to perl-base, maybe the Depends: perl can be
 changed to Depends: perl-base (= 5.20.1-3~)
 and perl-modules could add a Breaks: xfonts-traditional (= 1.7.1)

But, firstly, that's not an entirely accurate description of
xfonts-traditional dependencies.  The package does in fact work with
older perls.  And, this approach suggests that perl-modules should
grow a Breaks for every package in the archive which uses File::Find,
which doesn't seem like a very good approach.

Regards,
Ian.


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Processed: Re: Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-08 Thread Debian Bug Tracking System
Processing control commands:

 found -1 xfonts-traditional/1.6
Bug #774844 [xfonts-traditional] xfonts-traditional: fails to upgrade from 
'wheezy': Can't locate File/Find.pm in @INC
Marked as found in versions xfonts-traditional/1.6.
 notfound -1 xfonts-traditional/1.7.1
Bug #774844 [xfonts-traditional] xfonts-traditional: fails to upgrade from 
'wheezy': Can't locate File/Find.pm in @INC
No longer marked as found in versions xfonts-traditional/1.7.1.

-- 
774844: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=774844
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems


--
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-08 Thread Andreas Beckmann
Package: xfonts-traditional
Version: 1.7.1
Severity: serious
User: debian...@lists.debian.org
Usertags: piuparts

Hi,

during a test with piuparts I noticed your package fails to upgrade from
'wheezy'.
It installed fine in 'wheezy', then the upgrade to 'sid' fails.

From the attached log (scroll to the bottom...):


  Preparing to replace perl-modules 5.14.2-21+deb7u2 (using 
.../perl-modules_5.20.1-4_all.deb) ...
  Unpacking replacement perl-modules ...
  Selecting previously unselected package libdb5.3:amd64.
  Unpacking libdb5.3:amd64 (from .../libdb5.3_5.3.28-9_amd64.deb) ...
  Processing triggers for xfonts-traditional ...
  Generating fonts...
  Can't locate File/Find.pm in @INC (@INC contains: /etc/perl 
/usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 
/usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 
/usr/local/lib/site_perl .) at /usr/bin/update-xfonts-traditional line 9.
  BEGIN failed--compilation aborted at /usr/bin/update-xfonts-traditional line 
9.
  dpkg: error processing xfonts-traditional (--unpack):
   subprocess installed post-installation script returned error exit status 2
  Errors were encountered while processing:
   xfonts-traditional

This seems to be a regression by dpkg having added a versioned Breaks
due to trigger cycles ...

At the point where the error occurs we have these packages
installed/unpacked:
 dpkg: wheezy
 perl-base: wheezy (no File/Find.pm, yet)
 perl-modules: jessie (no File/Find.pm any longer)
 xfonts-traditional: wheezy

i.e. the triggers from xfonts-traditional/wheezy are run by dpkg/wheezy.
What triggered them btw?

Since File/Find.pm moved to perl-base, maybe the Depends: perl can be
changed to Depends: perl-base (= 5.20.1-3~)
and perl-modules could add a Breaks: xfonts-traditional (= 1.7.1)


cheers,

Andreas


xfonts-traditional_1.7.1.log.gz
Description: application/gzip


Bug#774844: xfonts-traditional: fails to upgrade from 'wheezy': Can't locate File/Find.pm in @INC

2015-01-08 Thread Ian Jackson
(Resending with debian-perl in the CC.)

Andreas Beckmann writes (Bug#774844: xfonts-traditional: fails to upgrade from 
'wheezy': Can't locate File/Find.pm in @INC):
 Package: xfonts-traditional
 Version: 1.7.1

Thanks for the report.  This is definitely a bad bug which must be
fixed for jessie.

 At the point where the error occurs we have these packages
 installed/unpacked:
  dpkg: wheezy
  perl-base: wheezy (no File/Find.pm, yet)
  perl-modules: jessie (no File/Find.pm any longer)
  xfonts-traditional: wheezy
 
 i.e. the triggers from xfonts-traditional/wheezy are run by dpkg/wheezy.
 What triggered them btw?

I think that the target package for this bug is perhaps wrong.  (That
is, that the change will have to be made to a different package.)
Certainly the version is wrong: at the point where this bug occurs,
xfonts-traditional_1.7.1_all.deb has not even been touched.

 Since File/Find.pm moved to perl-base, [...]

I think that the current dependency structure would permit:
 * Start with wheezy, without xfonts-traditional
 * Unpack perl-modules from jessie but do not configure it
 * Install xfonts-traditional

But xfonts-traditional depends on `perl', not `perl-modules' or
`perl-base'.  And `perl' is not deconfigured merely because one of its
dependencies goes from configured to unpacked.  So at this point
xfonts-traditional's postinst will run but the actual purpose of its
dependency on `perl' is not fully satisfied.  The postinst will fail.

This arises from the fact that in dpkg the `dependencies are
configured when postinst is run' requirement is not transitive: it
doesn't apply to the dependencies of one's dependencies.

AFAICT xfonts-traditional's use of dependencies conforms to the
recommendation in the perl policy:
  https://www.debian.org/doc/packaging-manuals/perl-policy/ch-programs.html

If my scenario above is correct, this problem is not confined to
packages involving triggers, nor necessarily to xfonts-traditional.
Rather the problem is that the policy implies that most packages will
depend on just `perl', but `perl' can be `installed' despite some of
the functionality it is supposed to provide (File/Find.pm in this
case) being missing.

I think the right fix therefore has to be in the Perl packages.

Here is a suggestion: have perl-modules (jessie) declare a Breaks on
perl (wheezy).

That declares it necessary to deconfigure perl (wheezy) to install
perl-modules (jessie).  perl (wheezy) cannot be re-configured until
perl-modules (which it depends on) is re-configured, but perl-modules
(jessie) depends on perl-base (jessie) so apt and dpkg will have to
unpack and configure perl-base (jessie) first.

Thus it will not be possible for `perl' to be `installed' while
File/Find.pm is absent.  And xfonts-traditional's (or some other
client package)'s postinst won't run until `perl' is `installed'
again.

 Since File/Find.pm moved to perl-base, maybe the Depends: perl can be
 changed to Depends: perl-base (= 5.20.1-3~)
 and perl-modules could add a Breaks: xfonts-traditional (= 1.7.1)

But, firstly, that's not an entirely accurate description of
xfonts-traditional dependencies.  The package does in fact work with
older perls.  And, this approach suggests that perl-modules should
grow a Breaks for every package in the archive which uses File::Find,
which doesn't seem like a very good approach.

Regards,
Ian.


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org