Re: ddebs

2011-03-26 Thread Josselin Mouette
Le samedi 26 mars 2011 à 08:38 +, Emilio Pozuelo Monfort a écrit : 
> I have just skimmed over the dicussions from 2009 where we decided that it
> should be one ddeb per source package, and it seems that everyone preferred 
> one
> ddeb per binary package except the ftpmasters :) So that's fine with me.

You already know that, but for those who haven’t followed the
discussions: several binaries built from the same source package can
share the same build ID (which cannot happen in different source
packages).

Hence the need for what follows.

> I'd also mandate the use of build-ids for .ddebs and add refcounting support
> (like has been done for multiarch AFAIK) to dpkg for them, so we don't need to
> worry about Conflicts / Replaces.

-- 
 .''`.
: :' : “You would need to ask a lawyer if you don't know
`. `'   that a handshake of course makes a valid contract.”
  `---  J???rg Schilling


--
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/1301175428.6724.107.camel@pi0307572



Re: ddebs

2011-03-26 Thread Emilio Pozuelo Monfort
On 26/03/11 09:10, Raphael Hertzog wrote:
> On Sat, 26 Mar 2011, Emilio Pozuelo Monfort wrote:
>> I'd also mandate the use of build-ids for .ddebs and add refcounting support
>> (like has been done for multiarch AFAIK) to dpkg for them, so we don't need 
>> to
>> worry about Conflicts / Replaces.
> 
> For multi-arch, it's the _same_ package (but just another architecture of it) 
> that
> can share _identical_ files and where we have refcounting.
> 
> This can't be generalized to just any package, it's just contrary to the
> logic of our packaging tools.
> 
> When do you have such conflicts? I hear when you have the same binary in
> multiple package... but in that case both packages already conflict and
> you can just copy the existing conlict field and add the -ddeb suffix.

Not necessarily, e.g. you can have the same binary in different paths, or with
different names.

> Otherwise maybe there's a way to include the package name in the path
> to avoid such conflicts?

I don't think so. Otherwise gdb wouldn't know where to look for it.

Emilio


-- 
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/4d8db383.7010...@debian.org



Re: ddebs

2011-03-26 Thread Raphael Hertzog
On Sat, 26 Mar 2011, Emilio Pozuelo Monfort wrote:
> I'd also mandate the use of build-ids for .ddebs and add refcounting support
> (like has been done for multiarch AFAIK) to dpkg for them, so we don't need to
> worry about Conflicts / Replaces.

For multi-arch, it's the _same_ package (but just another architecture of it) 
that
can share _identical_ files and where we have refcounting.

This can't be generalized to just any package, it's just contrary to the
logic of our packaging tools.

When do you have such conflicts? I hear when you have the same binary in
multiple package... but in that case both packages already conflict and
you can just copy the existing conlict field and add the -ddeb suffix.

Otherwise maybe there's a way to include the package name in the path
to avoid such conflicts?

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/20110326091057.gb32...@rivendell.home.ouaza.com



Re: ddebs

2011-03-26 Thread Emilio Pozuelo Monfort
On 26/03/11 08:07, Torsten Werner wrote:
> On Fri, Mar 25, 2011 at 11:43 PM, Emilio Pozuelo Monfort
>  wrote:
>> The way I did it was one .ddeb per source package, not per binary. So it is
>> $src-ddeb. You can reject them if they are not for $src package (or if $src
>> package doesn't exist in the archive).
> 
> To simplify the archive processes i would prefer having a ddeb per
> binary package instead of source package. It must have the name
> $binary-ddeb and must have the same version as $binary. The ddebs will
> get separate Packages files similar to the udebs. It is even easier
> for our users that they don't need to find out the source package
> name. Can we agree on that?

I have just skimmed over the dicussions from 2009 where we decided that it
should be one ddeb per source package, and it seems that everyone preferred one
ddeb per binary package except the ftpmasters :) So that's fine with me.

I'd add to the requirements that foo-ddeb needs to Depend on foo (=
${binary:Version}).

I'd also mandate the use of build-ids for .ddebs and add refcounting support
(like has been done for multiarch AFAIK) to dpkg for them, so we don't need to
worry about Conflicts / Replaces.

Cheers,
Emilio


-- 
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/4d8da614.30...@debian.org



Re: ddebs

2011-03-26 Thread Torsten Werner
On Fri, Mar 25, 2011 at 11:43 PM, Emilio Pozuelo Monfort
 wrote:
> The way I did it was one .ddeb per source package, not per binary. So it is
> $src-ddeb. You can reject them if they are not for $src package (or if $src
> package doesn't exist in the archive).

To simplify the archive processes i would prefer having a ddeb per
binary package instead of source package. It must have the name
$binary-ddeb and must have the same version as $binary. The ddebs will
get separate Packages files similar to the udebs. It is even easier
for our users that they don't need to find out the source package
name. Can we agree on that?

Cheers,
Torsten


-- 
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/AANLkTinQanOtm_Ua_=usmudt9mpfuttykggr6d_ih...@mail.gmail.com



Re: ddebs

2011-03-25 Thread Emilio Pozuelo Monfort
On 25/03/11 23:13, Philipp Kern wrote:
> Are there dependencies from the -ddeb to the binary?  Because you'd want to
> update/upgrade your ddeb when you update the library, otherwise it becomes
> useless.  I imagine there can't be given that the binaries of our source
> package might not be co-installable.

This is handled by

# If the ddeb appears in the control file, we let the
# packager override our defaults there.
my $arch=package_arch($package);
my $srcpackage=sourcepackage();

my $depends="";
foreach my $pkg (getpackages("same")) {
if ($pkg ne $package) {
addsubstvar($package,"ddeb:Conflicts","$pkg","<< 
\${binary:Version}");
addsubstvar($package,"ddeb:Conflicts","$pkg",">> 
\${binary:Version}");
$depends="$depends | $pkg (= \${binary:Version})";
}
}
$depends=~s/^ \| //;
addsubstvar($package,"ddeb:Depends","$depends","");

> Is there a rationale why this was done differently from Ubuntu?

There probably was, though I don't remember it. You can search in the
debian-devel archives on July and August 2009.

Cheers,
Emilio


-- 
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/4d8d26d3.6080...@debian.org



Re: ddebs

2011-03-25 Thread Philipp Kern
On 2011-03-25, Emilio Pozuelo Monfort  wrote:
> On 25/03/11 22:24, Torsten Werner wrote:
>> On Fri, Mar 25, 2011 at 10:54 PM, Emilio Pozuelo Monfort
>>  wrote:
>>> http://people.debian.org/~pochu/debhelper_8.1.2+nmu1_all.deb
>> Thanks. The name of the ddeb for gzip is gzip-ddeb. Can we rely on
>> that schema or is there another way to find the name of a deb package
>> from its ddeb package? Rationale: whenever a ddeb gets uploaded we
>> need to check if there is already a matching deb in the archive (or at
>> least in the same upload). If not we will reject the upload.
> The way I did it was one .ddeb per source package, not per binary. So it is
> $src-ddeb. You can reject them if they are not for $src package (or if $src
> package doesn't exist in the archive).

Are there dependencies from the -ddeb to the binary?  Because you'd want to
update/upgrade your ddeb when you update the library, otherwise it becomes
useless.  I imagine there can't be given that the binaries of our source
package might not be co-installable.

Is there a rationale why this was done differently from Ubuntu?

Kind regards
Philipp Kern


-- 
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/slrnioq8dg.2ji.tr...@kelgar.0x539.de



Re: ddebs

2011-03-25 Thread Emilio Pozuelo Monfort
On 25/03/11 22:24, Torsten Werner wrote:
> On Fri, Mar 25, 2011 at 10:54 PM, Emilio Pozuelo Monfort
>  wrote:
>> http://people.debian.org/~pochu/debhelper_8.1.2+nmu1_all.deb
> 
> Thanks. The name of the ddeb for gzip is gzip-ddeb. Can we rely on
> that schema or is there another way to find the name of a deb package
> from its ddeb package? Rationale: whenever a ddeb gets uploaded we
> need to check if there is already a matching deb in the archive (or at
> least in the same upload). If not we will reject the upload.

The way I did it was one .ddeb per source package, not per binary. So it is
$src-ddeb. You can reject them if they are not for $src package (or if $src
package doesn't exist in the archive).

Cheers,
Emilio


-- 
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/4d8d1a9f.5030...@debian.org



Re: ddebs

2011-03-25 Thread Torsten Werner
On Fri, Mar 25, 2011 at 10:54 PM, Emilio Pozuelo Monfort
 wrote:
> http://people.debian.org/~pochu/debhelper_8.1.2+nmu1_all.deb

Thanks. The name of the ddeb for gzip is gzip-ddeb. Can we rely on
that schema or is there another way to find the name of a deb package
from its ddeb package? Rationale: whenever a ddeb gets uploaded we
need to check if there is already a matching deb in the archive (or at
least in the same upload). If not we will reject the upload.

Torsten


-- 
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/AANLkTimoQQoD6M5qT8CFU908fJF4st=rtpygmcznk...@mail.gmail.com



Re: ddebs

2011-03-25 Thread Emilio Pozuelo Monfort
On 25/03/11 21:46, Torsten Werner wrote:
> Thanks for the explaination.
> 
> On Fri, Mar 25, 2011 at 10:38 PM, Emilio Pozuelo Monfort
>  wrote:
>> Apply the attached patch to debhelper (applies cleanly on debhelper 8.1.2).
> 
> May I download a pre-built debhelper from somewhere?

http://people.debian.org/~pochu/debhelper_8.1.2+nmu1_all.deb

And you'll also need

http://people.debian.org/~pochu/ptools/ptools_0.1-1_amd64.deb

Cheers,
Emilio


-- 
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/4d8d0ef9.7090...@debian.org



Re: ddebs

2011-03-25 Thread Torsten Werner
Thanks for the explaination.

On Fri, Mar 25, 2011 at 10:38 PM, Emilio Pozuelo Monfort
 wrote:
> Apply the attached patch to debhelper (applies cleanly on debhelper 8.1.2).

May I download a pre-built debhelper from somewhere?

Thanks,
Torsten


-- 
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/aanlktikc_stw4rkp6etvqqomzyh-o+6phf8z1j6ax...@mail.gmail.com



Re: ddebs

2011-03-25 Thread Emilio Pozuelo Monfort
On 25/03/11 18:22, Torsten Werner wrote:
> are there any example packages that build ddebs? That we can use for
> testing dak?

It should happen automatically if you patch debhelper (and CDBS to automatically
get .ddebs out of CDBS-using packages) with my patches. I have just refreshed my
debhelper patch so it applies cleanly again, and I've tested it.

What you need:

ptools (for build-id support, should be easy to remove that part from my patch,
see the pbuildid call in dh_strip). I've put it in [1].

Apply the attached patch to debhelper (applies cleanly on debhelper 8.1.2).

Install the resulting debhelper and build any package that
- produces at least one arch:any package
- doesn't have a -dbg package

E.g. I've tested it with gzip. Just dpkg-buildpackage it with the new debhelper
installed and you'll get:

[...]
dpkg-deb: building package `gzip-ddeb' in `../gzip-ddeb_1.3.12-9_amd64.ddeb'.

$ dpkg --contents gzip-ddeb_1.3.12-9_amd64.ddeb
drwxr-xr-x root/root 0 2011-03-25 21:21 ./
drwxr-xr-x root/root 0 2011-03-25 21:21 ./usr/
drwxr-xr-x root/root 0 2011-03-25 21:21 ./usr/share/
drwxr-xr-x root/root 0 2011-03-25 21:21 ./usr/share/doc/
drwxr-xr-x root/root 0 2011-03-25 21:21 ./usr/share/doc/gzip-ddeb/
-rw-r--r-- root/root 24028 2007-04-13 22:41
./usr/share/doc/gzip-ddeb/changelog.gz
-rw-r--r-- root/root  1101 2011-03-25 20:54 
./usr/share/doc/gzip-ddeb/copyright
-rw-r--r-- root/root  6637 2011-03-25 20:54
./usr/share/doc/gzip-ddeb/changelog.Debian.gz
drwxr-xr-x root/root 0 2011-03-25 21:21 ./usr/lib/
drwxr-xr-x root/root 0 2011-03-25 21:21 ./usr/lib/debug/
drwxr-xr-x root/root 0 2011-03-25 21:21 ./usr/lib/debug/.build-id/
drwxr-xr-x root/root 0 2011-03-25 21:21 ./usr/lib/debug/.build-id/93/
-rw-r--r-- root/root151197 2011-03-25 21:21
./usr/lib/debug/.build-id/93/6c3dda20627d866fd42cb8a7b05247d7707367.debug

FWIW, build-id and .ddebs don't need to be done at the same time. The only
problem with build-id is that we could get file conflicts if two packages have
*exactly* the same ELF binary. May happen if you build two flavours of the same
package and one binary isn't affected by the different build flags / options. We
could solve this by making dpkg not complain if this happens, ref-counting the
files so it doesn't remove it until all the packages that shipped that file are
removed. Note that this is hypothetical, and if it happened, it would be the
exception.

Also see http://wiki.debian.org/AutomaticDebugPackages

Let me know if you any questions.

Cheers,
Emilio

[1] http://people.debian.org/~pochu/ptools/ptools_0.1-1.dsc
diff -Nru debhelper-8.1.2/debian/changelog debhelper-8.1.2+nmu1/debian/changelog
--- debhelper-8.1.2/debian/changelog2011-02-14 18:22:19.0 +
+++ debhelper-8.1.2+nmu1/debian/changelog   2011-03-25 20:52:21.0 
+
@@ -1,3 +1,10 @@
+debhelper (8.1.2+nmu1) UNRELEASED; urgency=low
+
+  * Non-maintainer upload.
+  * Add ddebs support.
+
+ -- Emilio Pozuelo Monfort   Fri, 25 Mar 2011 20:52:10 +
+
 debhelper (8.1.2) unstable; urgency=low
 
   * Fix logging at end of an override target that never actually runs
diff -Nru debhelper-8.1.2/debian/control debhelper-8.1.2+nmu1/debian/control
--- debhelper-8.1.2/debian/control  2011-02-10 23:51:37.0 +
+++ debhelper-8.1.2+nmu1/debian/control 2011-03-25 20:50:47.0 +
@@ -10,7 +10,7 @@
 
 Package: debhelper
 Architecture: all
-Depends: ${perl:Depends}, ${misc:Depends}, perl-base (>= 5.10), file (>= 
3.23), dpkg-dev (>= 1.14.19), html2text, binutils, po-debconf, man-db (>= 
2.5.1-1)
+Depends: ${perl:Depends}, ${misc:Depends}, perl-base (>= 5.10), file (>= 
3.23), dpkg-dev (>= 1.14.19), html2text, binutils, po-debconf, man-db (>= 
2.5.1-1), ptools
 Suggests: dh-make
 Conflicts: dpkg-cross (<< 1.18), python-support (<< 0.5.3), python-central (<< 
0.5.6)
 Description: helper programs for debian/rules
diff -Nru debhelper-8.1.2/Debian/Debhelper/Dh_Lib.pm 
debhelper-8.1.2+nmu1/Debian/Debhelper/Dh_Lib.pm
--- debhelper-8.1.2/Debian/Debhelper/Dh_Lib.pm  2011-02-10 23:53:58.0 
+
+++ debhelper-8.1.2+nmu1/Debian/Debhelper/Dh_Lib.pm 2011-03-25 
20:50:12.0 +
@@ -18,7 +18,8 @@
&inhibit_log &load_log &write_log &commit_override_log
&dpkg_architecture_value &sourcepackage
&is_make_jobserver_unavailable &clean_jobserver_makeflags
-   &cross_command);
+   &cross_command &is_ddeb &ddeb_filename &ddeb_in_control
+   &ddeb_is_empty &ddebpackage);
 
 my $max_compat=8;
 
@@ -749,6 +750,9 @@
my $package="";
my $arch="";
my $package_type;
+   my $has_arch_dep=0;
+   my $has_ddeb_pkg=0;
+   my $has_dbg_pkg=0;
my @list=();
 

ddebs (was: Upcoming FTPMaster meeting)

2011-03-25 Thread Torsten Werner
Hi Josselin,

Am -10.01.-28163 20:59, schrieb Josselin Mouette:
> Would it be possible to add support for ddebs?

are there any example packages that build ddebs? That we can use for
testing dak?

Cheers,
Torsten


-- 
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/4d8cdd7d.1000...@debian.org