Re: Help identify packages that multiarch support will break

2011-03-23 Thread Raphael Hertzog
On Wed, 23 Mar 2011, Goswin von Brederlow wrote:
> > They can have conffiles but obviously the confffile must be the same
> > across all architectures (for a given version).
> 
> And if I change the conffile and upgrade does dpkg then ask twice if I
> want to keep my version?

No.

What about stopping to ask silly questions and try it for yourself if you
really want to find problems?

git clone git://git.debian.org/users/hertzog/dpkg.git -b pu/multiarch/full

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Follow my Debian News ▶ http://RaphaelHertzog.com (English)
  ▶ http://RaphaelHertzog.fr (Français)


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110323124007.ga15...@rivendell.home.ouaza.com



Re: Help identify packages that multiarch support will break

2011-03-23 Thread Goswin von Brederlow
Raphael Hertzog  writes:

> Hi,
>
> On Wed, 23 Mar 2011, Goswin von Brederlow wrote:
>> What is the policy on conffiles under multiarch? Can a Multi-Arch: same
>> package have conffiles? Or would that confuse dpkg too much?
>
> They can have conffiles but obviously the confffile must be the same
> across all architectures (for a given version).
>
> Cheers,

And if I change the conffile and upgrade does dpkg then ask twice if I
want to keep my version?

MfG
Goswin


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/87aagm9hmq.fsf@frosties.localnet



Re: Help identify packages that multiarch support will break

2011-03-23 Thread Raphael Hertzog
Hi,

On Wed, 23 Mar 2011, Goswin von Brederlow wrote:
> What is the policy on conffiles under multiarch? Can a Multi-Arch: same
> package have conffiles? Or would that confuse dpkg too much?

They can have conffiles but obviously the confffile must be the same
across all architectures (for a given version).

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Follow my Debian News ▶ http://RaphaelHertzog.com (English)
  ▶ http://RaphaelHertzog.fr (Français)


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110323105746.ga20...@rivendell.home.ouaza.com



Re: Help identify packages that multiarch support will break

2011-03-23 Thread Goswin von Brederlow
Raphael Hertzog  writes:

> [ Bcc to -dpkg for info ]
>
> Hello,
>
> since multiarch support in dpkg is on good track, it's about time to
> identify what will break when people start using multiarch packages...

A while back I already posted about a major problem cases. Specifically
packages violating Debian policy: 8.2 Shared library support files. That
includes conffiles in /etc and binaries in /usr/bin. Both are already a
problem if the library SONAME changes but will bite multiarch too.

A rough check over all packages in unstable back then resulted in 126
library packages with conffiles and a further 926 (excluding those with
conffiles) library packages with binaries. A library package being one
with a shlibs file.


What is the policy on conffiles under multiarch? Can a Multi-Arch: same
package have conffiles? Or would that confuse dpkg too much?

MfG
Goswin


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/87pqpi9krl.fsf@frosties.localnet



Re: Help identify packages that multiarch support will break

2011-03-03 Thread Stefano Zacchiroli
[ Cc-ing the bug log ]

On Thu, Mar 03, 2011 at 07:05:14PM +0100, Guillem Jover wrote:
> > For each package --status will do the trick, for all packages, yeah
> > it does not support patterns. I guess adding that would be fine. So
> > one could do something like: «dpkg-query -s '*'».
> 
> Or on a second though, just supporting «dpkg-query -s» would solve
> your problem too, as you don't seem to actually need pattern support,
> if there's a need for that we can always add them, obviously.

Yes, absolutely: for my "dump" needs, that would be enough. I'm not sure
there are other use cases who might benefit by globbing there though.

> > Currently something like «dpkg-query -l|tr -s ' ' '\t'|cut -f2» could
> > do the trick, altough I could agree it sucks a bit. If --status would
> > accept patterns that would be nicer.
> 
> Huh, disregard this, as pointed out by Raphaël, which I had forgotten
> somehow, just doing «dpkg-query -f '${Package}\n' -W» would work. In
> my defense (if that's possible :), I've now fixed the documentation:
> 
>   

Cheers.

-- 
Stefano Zacchiroli -o- PhD in Computer Science \ PostDoc @ Univ. Paris 7
zack@{upsilon.cc,pps.jussieu.fr,debian.org} -<>- http://upsilon.cc/zack/
Quando anche i santi ti voltano le spalle, |  .  |. I've fans everywhere
ti resta John Fante -- V. Capossela ...| ..: |.. -- C. Adams


signature.asc
Description: Digital signature


Re: Help identify packages that multiarch support will break

2011-03-03 Thread Guillem Jover
On Thu, 2011-03-03 at 18:20:01 +0100, Guillem Jover wrote:
> On Thu, 2011-03-03 at 17:30:42 +0100, Stefano Zacchiroli wrote:
> > Is there a way to ask dpkg-query to dump all the information contained
> > in /var/lib/dpkg/status without either having to: (1) list all fields
> > explicitly (using --show + --showformat)
> 
> For each package --status will do the trick, for all packages, yeah
> it does not support patterns. I guess adding that would be fine. So
> one could do something like: «dpkg-query -s '*'».

Or on a second though, just supporting «dpkg-query -s» would solve
your problem too, as you don't seem to actually need pattern support,
if there's a need for that we can always add them, obviously.

> > or (2) list all package names (using --status)?
> 
> Currently something like «dpkg-query -l|tr -s ' ' '\t'|cut -f2» could
> do the trick, altough I could agree it sucks a bit. If --status would
> accept patterns that would be nicer.

Huh, disregard this, as pointed out by Raphaël, which I had forgotten
somehow, just doing «dpkg-query -f '${Package}\n' -W» would work. In
my defense (if that's possible :), I've now fixed the documentation:

  

thanks,
guillem


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110303180514.ga2...@gaara.hadrons.org



Re: Help identify packages that multiarch support will break

2011-03-03 Thread Raphael Hertzog
Hi,

On Thu, 03 Mar 2011, Stefano Zacchiroli wrote:
> Is there a way to ask dpkg-query to dump all the information contained
> in /var/lib/dpkg/status without either having to: (1) list all fields
> explicitly (using --show + --showformat) or (2) list all package names
> (using --status)?
> 
> I co-maintain some utilities that parse /var/lib/dpkg/status and I'd be
> glad to migrate them to dpkg-query, but both solutions above have
> drawbacks. (1) is not future proof and will miss the addition of new
> fields unless the utility is updated; (2) has a race condition in asking
> the currently installed packages and providing them to --status (beside
> being a horrible hack in requiring to list all package names as
> arguments).  Am I missing something?
> 
> Having the ability to pass a package (wildcard) pattern to --show would
> be enough to solve this problem.

If you don't pass any argument to --show you have all the installed
packages. And wildcards are already supported in --show (but not in
--status).

We can add support for wildcards in --status, in fact it will be easily
doable. Do you want to file a wishlist bug for this ?

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Follow my Debian News ▶ http://RaphaelHertzog.com (English)
  ▶ http://RaphaelHertzog.fr (Français)


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110303172306.ga13...@rivendell.home.ouaza.com



Re: Help identify packages that multiarch support will break

2011-03-03 Thread Guillem Jover
On Thu, 2011-03-03 at 17:30:42 +0100, Stefano Zacchiroli wrote:
> On Thu, Mar 03, 2011 at 02:45:51PM +0100, Raphael Hertzog wrote:
> > And the status file is not a public interface. It's a file used by dpkg.
> > If tomorrow dpkg supports an optional SQLite internal database through a
> > plugin, dpkg-query will continue to work but your access to the status
> > file will not. (This is unlikely to happen any time soon, but you get the
> > idea)
> 
> Is there a way to ask dpkg-query to dump all the information contained
> in /var/lib/dpkg/status without either having to: (1) list all fields
> explicitly (using --show + --showformat)

For each package --status will do the trick, for all packages, yeah
it does not support patterns. I guess adding that would be fine. So
one could do something like: «dpkg-query -s '*'».

> or (2) list all package names (using --status)?

Currently something like «dpkg-query -l|tr -s ' ' '\t'|cut -f2» could
do the trick, altough I could agree it sucks a bit. If --status would
accept patterns that would be nicer.

> Having the ability to pass a package (wildcard) pattern to --show would
> be enough to solve this problem.

> Do you want a bug report about this?

Yes, please.

thanks,
guillem


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110303172001.ga2...@gaara.hadrons.org



Re: Help identify packages that multiarch support will break

2011-03-03 Thread Stefano Zacchiroli
On Thu, Mar 03, 2011 at 02:45:51PM +0100, Raphael Hertzog wrote:
> And the status file is not a public interface. It's a file used by dpkg.
> If tomorrow dpkg supports an optional SQLite internal database through a
> plugin, dpkg-query will continue to work but your access to the status
> file will not. (This is unlikely to happen any time soon, but you get the
> idea)

Is there a way to ask dpkg-query to dump all the information contained
in /var/lib/dpkg/status without either having to: (1) list all fields
explicitly (using --show + --showformat) or (2) list all package names
(using --status)?

I co-maintain some utilities that parse /var/lib/dpkg/status and I'd be
glad to migrate them to dpkg-query, but both solutions above have
drawbacks. (1) is not future proof and will miss the addition of new
fields unless the utility is updated; (2) has a race condition in asking
the currently installed packages and providing them to --status (beside
being a horrible hack in requiring to list all package names as
arguments).  Am I missing something?

Having the ability to pass a package (wildcard) pattern to --show would
be enough to solve this problem.

Do you want a bug report about this?

Thanks to the mighty dpkg maintainers!
Cheers.

-- 
Stefano Zacchiroli -o- PhD in Computer Science \ PostDoc @ Univ. Paris 7
zack@{upsilon.cc,pps.jussieu.fr,debian.org} -<>- http://upsilon.cc/zack/
Quando anche i santi ti voltano le spalle, |  .  |. I've fans everywhere
ti resta John Fante -- V. Capossela ...| ..: |.. -- C. Adams


signature.asc
Description: Digital signature


Re: Help identify packages that multiarch support will break

2011-03-03 Thread Guillem Jover
Hi!

On Wed, 2011-03-02 at 15:06:11 +0100, Raphael Hertzog wrote:
> Here's what might create troubles:

> 3/ Any program that assumes the current layout of control files
>(/var/lib/dpkg/info/.) will be broken (at least for
>some packages) since the layout will change to support Multi-Arch: same
>packages that can be co-installed.
> 
>You should use "dpkg-query --control-path  " to
>retrieve the path of the file. This has been introduced in dpkg 1.15.4
>and is thus in squeeze already.

An additional clarificaton, --control-path will not show internal
information control files (currently .list and .conffiles), for those
dpkg-query --listfiles or --status should be used instead, anything
else should be considered broken.

thanks,
guillem


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110303160836.gb1...@gaara.hadrons.org



Re: Help identify packages that multiarch support will break

2011-03-03 Thread Guillem Jover
Hi!

On Thu, 2011-03-03 at 14:45:51 +0100, Raphael Hertzog wrote:
> On Thu, 03 Mar 2011, Carsten Hey wrote:
> > * Raphael Hertzog [2011-03-02 15:06 +0100]:
> > >In general parsing the status file should not be done, instead you
> > >should use dpkg-query.
> > 
> > Is there any reason for this, except that the format of the status files
> > will evolve?
> 
> dpkg-query will automatically respect DPKG_ADMINDIR if it's set (and it's
> set in maintainer scripts). (this is a new feature in the upcoming version)
> 
> And the status file is not a public interface. It's a file used by dpkg.
> If tomorrow dpkg supports an optional SQLite internal database through a
> plugin, dpkg-query will continue to work but your access to the status
> file will not. (This is unlikely to happen any time soon, but you get the
> idea)

Well, the most important reason is that directly parsing the status file
does not take into account the journal files. So yes, nothing should
really be accessing anything under /var/lib/dpkg, although package
manager frontends can be considered currently grandfathered as there's
no sane interface provided by dpkg yet (read libdpkg) for their use,
and they correctly handle the journal files anyway.

> > >You should use "dpkg-query --control-path  " to
> > 
> > Jftr, there is a lot potential for performance improvements in
> > dpkg-query, some queries can be done way faster even in gawk.
> 
> JFTR, there are also 300+ bugs in the BTS and we are two active developers
> on dpkg.
> 
> dpkg-query is rarely used in performance sensitive situation, it's not
> really my priority to improve it. But if you want to help, you're welcome.

That's on my TODO list.

regards,
guillem


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110303160243.ga1...@gaara.hadrons.org



Re: Help identify packages that multiarch support will break

2011-03-03 Thread Raphael Hertzog
Hi,

On Thu, 03 Mar 2011, Carsten Hey wrote:
> * Raphael Hertzog [2011-03-02 15:06 +0100]:
> >In general parsing the status file should not be done, instead you
> >should use dpkg-query.
> 
> Is there any reason for this, except that the format of the status files
> will evolve?

dpkg-query will automatically respect DPKG_ADMINDIR if it's set (and it's
set in maintainer scripts). (this is a new feature in the upcoming version)

And the status file is not a public interface. It's a file used by dpkg.
If tomorrow dpkg supports an optional SQLite internal database through a
plugin, dpkg-query will continue to work but your access to the status
file will not. (This is unlikely to happen any time soon, but you get the
idea)

> >You should use "dpkg-query --control-path  " to
> 
> Jftr, there is a lot potential for performance improvements in
> dpkg-query, some queries can be done way faster even in gawk.

JFTR, there are also 300+ bugs in the BTS and we are two active developers
on dpkg.

dpkg-query is rarely used in performance sensitive situation, it's not
really my priority to improve it. But if you want to help, you're welcome.

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Follow my Debian News ▶ http://RaphaelHertzog.com (English)
  ▶ http://RaphaelHertzog.fr (Français)


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110303134551.gd11...@rivendell.home.ouaza.com



Re: Help identify packages that multiarch support will break

2011-03-03 Thread Carsten Hey
* Raphael Hertzog [2011-03-02 15:06 +0100]:
>In general parsing the status file should not be done, instead you
>should use dpkg-query.

Is there any reason for this, except that the format of the status files
will evolve?

>You should use "dpkg-query --control-path  " to

Jftr, there is a lot potential for performance improvements in
dpkg-query, some queries can be done way faster even in gawk.


Regards
Carsten


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110303130456.ga29...@furrball.stateful.de



Help identify packages that multiarch support will break

2011-03-02 Thread Raphael Hertzog
[ Bcc to -dpkg for info ]

Hello,

since multiarch support in dpkg is on good track, it's about time to
identify what will break when people start using multiarch packages...

I have started filing a few bugs for some packages where I knew of
the problems but I need your help to identify other possible offenders.
http://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=multiarch;users=debian-d...@lists.debian.org

Here's what might create troubles:

1/ Anywhere where the user might specify a package name, he should be able
   to specifiy "package:arch" to cope with Multi-Arch: same packages that
   can be co-installed (e.g. libc6:i386 and libc6:amd64 on the same
   system). Those package names can also appear in outputs of dpkg-query
   commands (dpkg -l, dpkg -S, dpkg-query -W).

2/ Any program that parses /var/lib/dpkg/status with the assumption that
   there's only one entry with "Package: foo" is wrong. Uniqueness is now
   only guaranteed on the tuple (Package, Architecture).
   
   In general parsing the status file should not be done, instead you
   should use dpkg-query.

3/ Any program that assumes the current layout of control files
   (/var/lib/dpkg/info/.) will be broken (at least for
   some packages) since the layout will change to support Multi-Arch: same
   packages that can be co-installed.

   You should use "dpkg-query --control-path  " to
   retrieve the path of the file. This has been introduced in dpkg 1.15.4
   and is thus in squeeze already.


Do you know packages that will be affected by the above problems? Please
file a bug and usertag it with this command:
$ bts user debian-d...@lists.debian.org . usertag $bug + multiarch

Thanks in advance.

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Follow my Debian News ▶ http://RaphaelHertzog.com (English)
  ▶ http://RaphaelHertzog.fr (Français)


-- 
To UNSUBSCRIBE, email to debian-devel-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20110302140611.gh20...@rivendell.home.ouaza.com