Re: new buildd dependency resolution breaks self depends?

2011-03-30 Thread Wesley W. Terpstra
On Tue, Mar 29, 2011 at 8:03 PM, Kurt Roeckx k...@roeckx.be wrote:

 On Tue, Mar 29, 2011 at 07:54:59PM +0200, Wesley W. Terpstra wrote:
  If I may ask, for what purpose do the buildds have a special list of
  packages above and beyond those in unstable?

 So that in case various packages have to be build in an order,
 where the seconds depends on the first being available and so on,
 that it doesn't take weeks to get them all build.  We would have
 to wait at least a dinstall before the next one could be build,
 assuming sometimes has the time to sign the package between
 dinstalls.

 It basicly just avoids a whole lot of delays.


Unfortunately, it seems also to add quite some delays in the self-compiling
case. :-/ Each time a buildd finishes, that buildd's Packages file gets
updated due to the completed binary upload and all other buildds go back
into the BD-Uninstallable state. (I assume this also means the package loses
its place in line on the busy buildd queues)

I wonder if the same rules applied to the unstable package list (don't
include the all for a package whose any is not done) could be applied also
to the buildd's Packages?


Re: new buildd dependency resolution breaks self depends?

2011-03-30 Thread Kurt Roeckx
On Wed, Mar 30, 2011 at 06:45:50PM +0200, Wesley W. Terpstra wrote:
 On Tue, Mar 29, 2011 at 8:03 PM, Kurt Roeckx k...@roeckx.be wrote:
 
  On Tue, Mar 29, 2011 at 07:54:59PM +0200, Wesley W. Terpstra wrote:
   If I may ask, for what purpose do the buildds have a special list of
   packages above and beyond those in unstable?
 
  So that in case various packages have to be build in an order,
  where the seconds depends on the first being available and so on,
  that it doesn't take weeks to get them all build.  We would have
  to wait at least a dinstall before the next one could be build,
  assuming sometimes has the time to sign the package between
  dinstalls.
 
  It basicly just avoids a whole lot of delays.
 
 
 Unfortunately, it seems also to add quite some delays in the self-compiling
 case. :-/ Each time a buildd finishes, that buildd's Packages file gets
 updated due to the completed binary upload and all other buildds go back
 into the BD-Uninstallable state. (I assume this also means the package loses
 its place in line on the busy buildd queues)

That actually doesn't seem to be that case.  I think ftp-master
just removed the old binary from unstable, and didn't give the
buildd's the chance to actually build against the old version,
and we're screwed now.

I suggest you ask them to restore the old binaries in unstable,
(and remove the arch all) packages for those arches it's not
yet build/uploaded for.


Kurt


-- 
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/20110330172213.ga32...@roeckx.be



Re: new buildd dependency resolution breaks self depends?

2011-03-30 Thread Goswin von Brederlow
Kurt Roeckx k...@roeckx.be writes:

 On Wed, Mar 30, 2011 at 06:45:50PM +0200, Wesley W. Terpstra wrote:
 On Tue, Mar 29, 2011 at 8:03 PM, Kurt Roeckx k...@roeckx.be wrote:
 
  On Tue, Mar 29, 2011 at 07:54:59PM +0200, Wesley W. Terpstra wrote:
   If I may ask, for what purpose do the buildds have a special list of
   packages above and beyond those in unstable?
 
  So that in case various packages have to be build in an order,
  where the seconds depends on the first being available and so on,
  that it doesn't take weeks to get them all build.  We would have
  to wait at least a dinstall before the next one could be build,
  assuming sometimes has the time to sign the package between
  dinstalls.
 
  It basicly just avoids a whole lot of delays.
 
 
 Unfortunately, it seems also to add quite some delays in the self-compiling
 case. :-/ Each time a buildd finishes, that buildd's Packages file gets
 updated due to the completed binary upload and all other buildds go back
 into the BD-Uninstallable state. (I assume this also means the package loses
 its place in line on the busy buildd queues)

 That actually doesn't seem to be that case.  I think ftp-master
 just removed the old binary from unstable, and didn't give the
 buildd's the chance to actually build against the old version,
 and we're screwed now.

 I suggest you ask them to restore the old binaries in unstable,
 (and remove the arch all) packages for those arches it's not
 yet build/uploaded for.


 Kurt

It used to be that any _all.deb uploaded was added to all archs
directly. Under that setup the build would never have succeeded.

Having it suceed with a delay between upload and builds is an
improvement already.

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/87pqp8s6i4.fsf@frosties.localnet



new buildd dependency resolution breaks self depends?

2011-03-29 Thread Wesley W. Terpstra
I've read that there was a recent change made to the buildd resolution with
regards to ensuring that consistent package versions are used on the builds
[0]. Is it possible that this changed also messed up self-dependency
resolution?

My package, mlton, has a versioned dependency on itself for version =
20070826. As it is a compiler for SML written in SML, it needs a previous
version of itself installed in order to compile the new version. Previously,
this has presented no problems; the buildd installed the old version and
compiled the new version. Now, the buildd demands that the same version be
installed as is to be built [1]:

*mlton/alpha dependency installability problem:*

  mlton (= 20100608-3) build-depends on one of:
  - mlton (= 20100608-3)

... this is, of course, impossible. The buildd must install the old version
in order to build the new. I have a suspicion that an overzealous 'use the
same version' rule in the dependency resolver might be the cause of this
bug.

Thanks for any help understanding why the buildd system will no longer
attempt to build my package!

[0] http://lists.debian.org/debian-policy/2011/03/msg00103.html
[1] https://buildd.debian.org/status/package.php?p=mlton


Re: new buildd dependency resolution breaks self depends?

2011-03-29 Thread Julien Cristau
On Tue, Mar 29, 2011 at 17:25:14 +0200, Wesley W. Terpstra wrote:

 I've read that there was a recent change made to the buildd resolution with
 regards to ensuring that consistent package versions are used on the builds
 [0]. Is it possible that this changed also messed up self-dependency
 resolution?
 
 My package, mlton, has a versioned dependency on itself for version =
 20070826. As it is a compiler for SML written in SML, it needs a previous
 version of itself installed in order to compile the new version. Previously,
 this has presented no problems; the buildd installed the old version and
 compiled the new version. Now, the buildd demands that the same version be
 installed as is to be built [1]:
 
 *mlton/alpha dependency installability problem:*
 
   mlton (= 20100608-3) build-depends on one of:
   - mlton (= 20100608-3)
 
 ... this is, of course, impossible. The buildd must install the old version
 in order to build the new. I have a suspicion that an overzealous 'use the
 same version' rule in the dependency resolver might be the cause of this
 bug.
 
As far as I can tell the problem is that you switched the mlton binary
package to 'Architecture: all'.  Which means it's available on all
architectures already in the new version, even though it's not
installable.

Cheers,
Julien


-- 
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/20110329155223.gg3...@radis.liafa.jussieu.fr



Re: new buildd dependency resolution breaks self depends?

2011-03-29 Thread Joachim Breitner
Hi,

Am Dienstag, den 29.03.2011, 17:52 +0200 schrieb Julien Cristau:
  *mlton/alpha dependency installability problem:*
  
mlton (= 20100608-3) build-depends on one of:
- mlton (= 20100608-3)
  
  ... this is, of course, impossible. The buildd must install the old version
  in order to build the new. I have a suspicion that an overzealous 'use the
  same version' rule in the dependency resolver might be the cause of this
  bug.
  
 As far as I can tell the problem is that you switched the mlton binary
 package to 'Architecture: all'.  Which means it's available on all
 architectures already in the new version, even though it's not
 installable.

sounds similar to what just happend to me with ghc:
http://lists.debian.org/debian-haskell/2011/03/msg00108.html

In this case, with some help of the ftp team this could be resolved. But
in your case, as it is not transitional, it looks harder. I guess you
need to ensure that version n+1 can be built using the arch:any packages
of version n and the arch:all packages of either version n or version n
+1... or undo the package split.

Greetings,
Joachim


-- 
Joachim nomeata Breitner
Debian Developer
  nome...@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C
  JID: nome...@joachim-breitner.de | http://people.debian.org/~nomeata


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


Re: new buildd dependency resolution breaks self depends?

2011-03-29 Thread Wesley W. Terpstra
On Tue, Mar 29, 2011 at 5:52 PM, Julien Cristau jcris...@debian.org wrote:

 As far as I can tell the problem is that you switched the mlton binary
 package to 'Architecture: all'.  Which means it's available on all
 architectures already in the new version, even though it's not
 installable.


Ahh! That makes a lot of sense, thanks.

I'll need to figure out a way to work-around this.


Re: new buildd dependency resolution breaks self depends?

2011-03-29 Thread Kurt Roeckx
On Tue, Mar 29, 2011 at 05:52:23PM +0200, Julien Cristau wrote:
 As far as I can tell the problem is that you switched the mlton binary
 package to 'Architecture: all'.  Which means it's available on all
 architectures already in the new version, even though it's not
 installable.

If I understand the situation, this means the buildd's already see
the new mlton arch all in the Packages file for the buildds.  But
you won't see in on the mirrors until the arch any package for
that arch is available.  And the arch all binary package has a
strict version requirement binary any package.

As long as the Packages file for the buildds mentions this arch
all package, no buildd can build it, because it only considers
installing the latest version.  But it should get removed
from that file after 24 or 32 hours or something.  In which case
we'll only see the old version, can install those, and things should
work from there.

So I think you either need to be patient, or have a less strict
version requirement.


Kurt


-- 
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/20110329164239.ga13...@roeckx.be



Re: new buildd dependency resolution breaks self depends?

2011-03-29 Thread Wesley W. Terpstra
On Tue, Mar 29, 2011 at 6:42 PM, Kurt Roeckx k...@roeckx.be wrote:

 As long as the Packages file for the buildds mentions this arch
 all package, no buildd can build it, because it only considers
 installing the latest version.  But it should get removed
 from that file after 24 or 32 hours or something.  In which case
 we'll only see the old version, can install those, and things should
 work from there.


I hope what you're telling me is true, because it will save  me a lot of
work! :)

What I don't understand about your explanation: once the new all+i386 .debs
hit unstable, won't the buildds see the new 'all' package in unstable and
thus want to install it in preference to the old 'any' package even after it
is removed from the Packages file? The 'all' package will still be
uninstallable since it depends on the missing 'any' packages.

While I can fix the problem at hand by removing the mlton 'all' package for
an upload,  I see a more troublesome problem on the horizon:

The basis, runtime, and compiler packages should all be at the same version
to compile correctly. The basis package is an 'all' package which includes
the cross-platform bits of the runtime library. The runtime and compiler are
'any' packages with compiled object code.

If the Build-Depends lists 'mlton-compiler' (ie: after I resolve the current
problem), any future uploads will see that it has these versions available:
mlton-compiler (= old-version) depends on runtime
mlton-runtime (= old-version) depends on basis
mlton-basis (= new version)
... which I believe means that the old-version mlton-compiler package will
be uninstallable since the old-version of the basis in unstable is hidden by
the new-version.

Have I understood this problem correctly?


Re: [buildd-tools-devel] new buildd dependency resolution breaks self depends?

2011-03-29 Thread Lennart Sorensen
On Tue, Mar 29, 2011 at 06:58:36PM +0200, Wesley W. Terpstra wrote:
 I hope what you're telling me is true, because it will save  me a lot of
 work! :)
 
 What I don't understand about your explanation: once the new all+i386 .debs
 hit unstable, won't the buildds see the new 'all' package in unstable and
 thus want to install it in preference to the old 'any' package even after it
 is removed from the Packages file? The 'all' package will still be
 uninstallable since it depends on the missing 'any' packages.
 
 While I can fix the problem at hand by removing the mlton 'all' package for
 an upload,  I see a more troublesome problem on the horizon:
 
 The basis, runtime, and compiler packages should all be at the same version
 to compile correctly. The basis package is an 'all' package which includes
 the cross-platform bits of the runtime library. The runtime and compiler are
 'any' packages with compiled object code.
 
 If the Build-Depends lists 'mlton-compiler' (ie: after I resolve the current
 problem), any future uploads will see that it has these versions available:
 mlton-compiler (= old-version) depends on runtime
 mlton-runtime (= old-version) depends on basis
 mlton-basis (= new version)
 ... which I believe means that the old-version mlton-compiler package will
 be uninstallable since the old-version of the basis in unstable is hidden by
 the new-version.
 
 Have I understood this problem correctly?

Does mlton-basis depend on mlton-runtime or mlton-compiler to build?

If the answer is yes, then most likely these should not be three seperate
source packages.

If no, then why doesn't it just work or is the problem a previous version
causing a mess?

I hate circular build dependancies. :)

-- 
Len Sorensen


-- 
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/20110329171048.ga...@caffeine.csclub.uwaterloo.ca



Re: new buildd dependency resolution breaks self depends?

2011-03-29 Thread Kurt Roeckx
On Tue, Mar 29, 2011 at 06:58:36PM +0200, Wesley W. Terpstra wrote:
 On Tue, Mar 29, 2011 at 6:42 PM, Kurt Roeckx k...@roeckx.be wrote:
 
  As long as the Packages file for the buildds mentions this arch
  all package, no buildd can build it, because it only considers
  installing the latest version.  But it should get removed
  from that file after 24 or 32 hours or something.  In which case
  we'll only see the old version, can install those, and things should
  work from there.
 
 
 
 What I don't understand about your explanation: once the new all+i386 .debs
 hit unstable, won't the buildds see the new 'all' package in unstable and
 thus want to install it in preference to the old 'any' package even after it
 is removed from the Packages file? The 'all' package will still be
 uninstallable since it depends on the missing 'any' packages.

Let's take a look at all current Packages files:
- The buildd Packages file, as seen by *all* the buildds, not only
  the i386 one:
kroeckx@grieg:~$ zcat 
/org/wanna-build/tmp/archive/debian/buildd-sid/Packages.gz | grep-dctrl -F 
Package mlton -s Package,version,Architecture
Package: mlton-basis
version: 20100608-3
Architecture: all

Package: mlton-compiler
version: 20100608-3
Architecture: i386

Package: mlton
version: 20100608-3
Architecture: all

Package: mlton-tools
version: 20100608-3
Architecture: i386

Package: mlton-runtime-native
version: 20100608-3
Architecture: i386

Package: mlton-runtime-i486-linux-gnu
version: 20100608-3
Architecture: i386

Package: mlton-doc
version: 20100608-3
Architecture: all

The i386 unstable one:
kroeckx@grieg:~$ zcat 
/org/wanna-build/tmp/archive/debian/archive/sid/main/binary-i386/Packages.gz | 
grep-dctrl -F Package mlton -s Package,version,Architecture
Package: mlton-basis
version: 20100608-3
Architecture: all

Package: mlton-compiler
version: 20100608-3
Architecture: i386

Package: mlton-doc
version: 20100608-3
Architecture: all

Package: mlton-runtime-i486-linux-gnu
version: 20100608-3
Architecture: i386
[...]

The amd64 one:
kroeckx@grieg:~$ zcat 
/org/wanna-build/tmp/archive/debian/archive/sid/main/binary-amd64/Packages.gz | 
grep-dctrl -F Package mlton -s Package,version,Architecture
Package: mlton
version: 20100608-2
Architecture: amd64

Note that in unstable you don't see the arch arch all version
until the arch any version is also available.  Or you would see
the old arch all version until the new arch any version is
available.

This means that the version from unstable should always be
installable, unless there is some other reason it's not like
a transition of some other library.

The problem is that the buildds currently also see the newer
arch all version.  But this version will go away after some
time and it will only see the version from unstable.

 The basis, runtime, and compiler packages should all be at the same version
 to compile correctly. The basis package is an 'all' package which includes
 the cross-platform bits of the runtime library. The runtime and compiler are
 'any' packages with compiled object code.
 
 If the Build-Depends lists 'mlton-compiler' (ie: after I resolve the current
 problem), any future uploads will see that it has these versions available:
 mlton-compiler (= old-version) depends on runtime
 mlton-runtime (= old-version) depends on basis
 mlton-basis (= new version)
 ... which I believe means that the old-version mlton-compiler package will
 be uninstallable since the old-version of the basis in unstable is hidden by
 the new-version.

The new version of mlton-basis will only be visible to the buildds
for about a day, after which they should have no problem building
it.


Kurt


-- 
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/20110329172733.ga14...@roeckx.be



Re: new buildd dependency resolution breaks self depends?

2011-03-29 Thread Kurt Roeckx
On Tue, Mar 29, 2011 at 07:54:59PM +0200, Wesley W. Terpstra wrote:
 The problem is that the buildds currently also see the newer
  arch all version.  But this version will go away after some
  time and it will only see the version from unstable.
 
 
 If I may ask, for what purpose do the buildds have a special list of
 packages above and beyond those in unstable?

So that in case various packages have to be build in an order,
where the seconds depends on the first being available and so on,
that it doesn't take weeks to get them all build.  We would have
to wait at least a dinstall before the next one could be build,
assuming sometimes has the time to sign the package between
dinstalls.

It basicly just avoids a whole lot of delays.


Kurt


-- 
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/20110329180343.ga14...@roeckx.be



Re: new buildd dependency resolution breaks self depends?

2011-03-29 Thread Wesley W. Terpstra
On Tue, Mar 29, 2011 at 7:27 PM, Kurt Roeckx k...@roeckx.be wrote:

 Note that in unstable you don't see the arch arch all version
 until the arch any version is also available.  Or you would see
 the old arch all version until the new arch any version is
 available.


That's great! My thanks to whomever had the foresight to prevent this
temporary dependency breakage for all-any dependencies. I guess this would
otherwise have annoyed unstable users for packages that had yet to be built
for their architecture..?

This means that the version from unstable should always be
 installable, unless there is some other reason it's not like
 a transition of some other library.


Yes, the libgmp3-dev - libgmp-dev transition already bit me this way. I
assumed I was in for more of the same with the self dependency.

The problem is that the buildds currently also see the newer
 arch all version.  But this version will go away after some
 time and it will only see the version from unstable.


If I may ask, for what purpose do the buildds have a special list of
packages above and beyond those in unstable?

The new version of mlton-basis will only be visible to the buildds
 for about a day, after which they should have no problem building
 it.


Thank god. :)


Re: [buildd-tools-devel] new buildd dependency resolution breaks self depends?

2011-03-29 Thread Wesley W. Terpstra
On Tue, Mar 29, 2011 at 7:10 PM, Lennart Sorensen 
lsore...@csclub.uwaterloo.ca wrote:

 Does mlton-basis depend on mlton-runtime or mlton-compiler to build?

If the answer is yes, then most likely these should not be three seperate

source packages.


It's all one source package. I split it up the binaries because:
1) about 60% of the package could be in an 'all' package.
2) the runtime components for different architectures can be installed
side-by-side... thus enabling cross-compilation.

If no, then why doesn't it just work or is the problem a previous version
 causing a mess?


According to Kurt, there is no problem. It's all in my head. :)


Re: [buildd-tools-devel] new buildd dependency resolution breaks self depends?

2011-03-29 Thread Lennart Sorensen
On Tue, Mar 29, 2011 at 07:59:12PM +0200, Wesley W. Terpstra wrote:
 It's all one source package. I split it up the binaries because:
 1) about 60% of the package could be in an 'all' package.
 2) the runtime components for different architectures can be installed
 side-by-side... thus enabling cross-compilation.

Oh OK, so there is no build dependancy issue at all then (since no one
would be dumb enough to make a package that build depends on one of its
own binaries, would they?).

 According to Kurt, there is no problem. It's all in my head. :)

Oh good.

-- 
Len Sorensen


-- 
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/20110329190808.gb...@caffeine.csclub.uwaterloo.ca



Re: [buildd-tools-devel] new buildd dependency resolution breaks self depends?

2011-03-29 Thread Peter Samuelson

[Lennart Sorensen]
 Oh OK, so there is no build dependancy issue at all then (since no one
 would be dumb enough to make a package that build depends on one of its
 own binaries, would they?).

You didn't read the beginning of the thread, I guess?  This is a
situation much like gcc, where the compiler is self-hosting.  gcc
avoids the (explicit) self-dependency by being in Build-Essential.
-- 
Peter Samuelson | org-tld!p12n!peter | http://p12n.org/


-- 
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/20110329222820.gg10...@p12n.org