[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: binNMUs scheduled



[@d-release: w-b-commands collected at the end]

Hi Erik,

Am Mittwoch, den 29.07.2009, 18:34 +1000 schrieb Erik de Castro Lopo:
> Joachim Breitner wrote:
> > I’ve scheduled the binNMUs to make all libraries recompile against ghc6.
> > I assume that this might break some packages. To track that, please keep
> > an eye on 
> 
> <horribl URL elided>
> 
> I'm looking at that and wondring why my package:
> 
>     https://buildd.debian.org/fetch.cgi?pkg=haskell-curl&arch=i386&ver=1.3.5-2%2Bb1&stamp=1248308903&file=log&as=raw
> 
> didn't build correctly. From the look of it, it looks like a failure
> due to an un-installable libghc6-network-dev. 
> 
> I may be wrong, but I think this is not somthing I should be fixing in
> my package, but rather that the binNMU should schedule haskell-curl to
> be built *after* libghc6-network-dev has been built by the new compiler.
> 
> Comments?
> 
> So, how do I get this fixed, should I do a source upload? Is there anything
> I can do help make this more reliable in future?

your package is fine, no upload should be necessary to fixed it.

In theory, when we do a ghc6 upload, we request a round of binNMUs from
d-release that rebuild everything, and add appropriate DepWaits to make
sure that things are rebuilt in order. This happened here:
http://lists.debian.org/debian-release/2009/07/msg00281.html
unfortunately, the output was not complete and there were problems on
the wanna-build side, so things are a mess now and need to be cleaned up
manually. I’ve done that on a case by case basis in the last days, as
you might have seen, but it seems with every mail sent to d-release, it
gets applied later. Currently pending is
http://lists.debian.org/debian-release/2009/07/msg00320.html

So in your case, what you would do, is this:
You check https://buildd.debian.org/pkg.cgi?pkg=haskell-curl
Any architecture in state Failed have other problems (did you
investigate them?) and can be ignored now.

Then, for every architecture that is in state "Installed", you check the
build-log whether it was actually built against ghc6-6.10.4, or if by
accident it has been built against ghc6-6.10.3. Things went wrong on
	armel, hppa, mipsel, s390, sparc
So these need binNMUs:

nmu haskell-curl . armel hppa mipsel s390 sparc . -m 'Rebuild against ghc6-6.10.4 for real'

Now you need to make sure that on all arches which you just binNMUed,
plus all in Building, are built against the right versions. For that,
you look at each build-dependency (including ghc6 and, if it’s not in
Build-Depends-Indep, haddock), find out what version will be built or
has been built against ghc6-6.10.4 (by checking the build-log of the
dependency) and add a dep-wait. You can skip it if the dependency is
already 'Installed'.

Build-dependencies are in this case ghc6, libghc6-network-dev. ghc6, by
now, has already been installed in all arches where it builds, so don’t
worry about it.

For some arches 2.2.1.3-1+b1 has not been built yet, not not successful,
so when it will, we know for sure it is built agaist ghc6-6.10.4.

dw haskell-curl . alpha  armel sparc mipsel . -m 'libghc6-network-dev (>= 2.2.1.3-1+b1)'
dw haskell-curl . ia64 mips . -m 'libghc6-network-dev (>= 2.2.1.3-1)'

Now, while we are at it, we will check haskell-curl’s dependency chain
network → parsec → mtl → ghc6.

mtl has wrongly been built on armel and sparc, so we need a nmu:

nmu haskell-mtl . armel sparc . -m 'Rebuild against ghc6-6.10.4 for real'

When these are built, parsec can be retried on these arches, and then
network (note the >= vs. >>):

dw haskell-parsec2 . armel sparc . -m 'libghc6-mtl-dev (>> 1.1.0.2-7+b1)'
dw haskell-network . armel sparc . -m 'libghc6-parsec2-dev (>= 3.0.0-5+b1)'

mtl is fine on other arches. parsec2 on alpha can be re-tried right
away, and then network:

gb haskell-parsec2 . alpha
dw haskell-network . alpha . -m 'libghc6-parsec2-dev (>= 3.0.0-5+b1)'

And now, I think, we have done everything to get -curl in shape again.

@d-release, please apply these wanna-build commands, here gathered together:

nmu haskell-mtl . armel sparc . -m 'Rebuild against ghc6-6.10.4 for real'
dw haskell-parsec2 . armel sparc . -m 'libghc6-mtl-dev (>> 1.1.0.2-7+b1)'
dw haskell-network . armel sparc . -m 'libghc6-parsec2-dev (>= 3.0.0-5+b1)'
gb haskell-parsec2 . alpha
dw haskell-network . alpha . -m 'libghc6-parsec2-dev (>= 3.0.0-5+b1)'
nmu haskell-curl . armel hppa mipsel s390 sparc . -m 'Rebuild against ghc6-6.10.4 for real'
dw haskell-curl . alpha armel sparc mipsel . -m 'libghc6-network-dev (>= 2.2.1.3-1+b1)'
dw haskell-curl . ia64 mips . -m 'libghc6-network-dev (>= 2.2.1.3-1)'

I hope this clarifies this process a bit,
Joachim

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

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil


Reply to: