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

Make alternative build-depends work on backports buildds (was: Give back ktorrent in squeeze-backports)



Hello,

On antradienis 26 Liepa 2011 15:58:08 Kurt Roeckx wrote:
> On Sat, Jun 18, 2011 at 12:42:02PM +0300, Modestas Vainius wrote:
> > Hello,
> > 
> > On antradienis 14 Birzelis 2011 18:58:51 Christoph Egger wrote:
> > > Modestas Vainius <modax@debian.org> writes:
> > > > Modestas Vainius <modax@debian.org> writes:
> > > >> please correct me if I'm wrong but I heard that you could give back
> > > >> packages in squeeze-backports. If so, please give back ktorrent on
> > > >> armel i386 ia64 kfreebsd-amd64 kfreebsd-i386 mips s390. What's more,
> > > >> libktorrent/powerpc (also in squeeze-backports) seems to be stuck at
> > > >> Uploaded state for 2 days already.
> > > > 
> > > > Is that the same for amarok which seems to have failed in a quite
> > > > similar way?
> > > 
> > > And it does not work. Still fails
> > 
> > This seems to be sbuild 0.61 problem (sbuild 0.60 works, e.g. mipsel
> 
> > succeeded):
> I'm not sure what you're trying to say, but we don't use the apt
> or aptitude resolvers, we use the internal one.  Except for
> experimental which uses the aptitude resolver.

Backport buildds use aptitude resolver. For example:

sbuild (Debian sbuild) 0.61.0 (23 Feb 2011) on biber.debian.org

╔══════════════════════════════════════════════════════════════════════════════╗
║ ktorrent 4.1.1-2~bpo60+1 (i386)                            10 Jun 2011 11:13 
║
╚══════════════════════════════════════════════════════════════════════════════╝

...

Merged Build-Depends: build-essential, fakeroot
Filtered Build-Depends: build-essential, fakeroot
dpkg-deb: building package `sbuild-build-depends-core-dummy' in 
`/build/buildd-ktorrent_4.1.1-2~bpo60+1-i386-YMPvJb/resolver-
XT4Q2t/apt_archive/sbuild-build-depends-core-dummy.deb'.
OK
Reading package lists...

┌──────────────────────────────────────────────────────────────────────────────┐
│ Install core build dependencies (aptitude-based resolver)                    
│
└──────────────────────────────────────────────────────────────────────────────┘

Reading package lists...
Building dependency tree...
Reading state information...
The following extra packages will be installed:
  libboost-iostreams1.42.0 libcwidget3 libept1 libncursesw5 libsigc++-2.0-0c2a
  libsqlite3-0 libxapian22
Suggested packages:
  tasksel debtags libcwidget-dev xapian-tools
Recommended packages:
  aptitude-doc-en aptitude-doc apt-xapian-index libparse-debianchangelog-perl
  libgpm2

https://buildd.debian.org/status/fetch.php?pkg=ktorrent&arch=i386&ver=4.1.1-2%7Ebpo60%2B1&stamp=1307704461

> I also fail to see how giving the package back is going to solve
> anything.  I think you need to take a closer look at your build
> dependencies.

I would like to maintain a list of Build-Depends which would work on both 
sid/wheezy and squeeze. Due to changes in the qt4-x11/qtwebkit packaging, I 
add:

libqtwebkit-dev | libqt4-dev (<< 4:4.7.0)

to Build-Depends. libqtwebkit-dev is for sid/wheezy while libqt4-dev (<< 
4:4.7.0) is for squeeze. Sure I could probably fix this by removing 
alternative build-depends but maybe sbuild could be configured/upgraded to 
handle these alternatives dependencies on backports buildds properly? Or is it 
a very unresonable request and why?

Since sbuild 0.61.0 dominates on the buildds, you can fix the problem by 
adding "$resolve_alternatives = 1" to ~/.sbuildrc. The changelog entry 
suggests doing the same so it is a very good idea to add it in general. I have 
tested this solution and I can confirm that it works fine with 0.61.0:

sbuild (0.61.0-1) unstable; urgency=low 
   * sbuild:
     - The apt and aptitude build dependency resolvers now use only the
       first alternative in alternative dependencies.  The other
       alternatives are stripped out entirely.  This makes the apt and
       aptitude resolvers behave exactly like the internal resolver.
       Note that this is configurable with the $resolve_alternatives
       option, so alternative resolving may be re-enabled with this
       option if desired.  This is useful for e.g. backports, but not
       for unstable where the strict consistency and reproducibility
       offered by only using the first alternative is required.

Alternatively, sbuild 0.62.5-1 works well on my system without any further 
tweaks (because aptitude resolver is smarter). So you can also upgrade sbuild 
to the later version to fix the problem (this helps since libqtwebkit-dev does 
not exist in squeeze as per changelog). Still adding "$resolve_alternatives = 
1" does not hurt.

sbuild (0.62.0-1) unstable; urgency=low 
...
       + The aptitude resolver can resolve complex dependencies, e.g.
         A | B, where A is uninstallable now correctly falls back to B.
         This is not the case for the internal or apt resolvers, which by
         intent do not make use of alternatives (they use the first
         alternative only.  sbuild now has full support for resolving
         alternatives, but this is not the default behaviour
         (Closes: #403246).  Please see #614807 for a proposed description
         of autobuilder-imposed build dependency restrictions in Policy.
...

If I have to contact somebody else, just let me know.

-- 
Modestas Vainius <modax@debian.org>

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


Reply to: