[Aptitude-devel] Targets in aptitude's building system and debian/rules's build-arch/build-indep -- was Re: Bug#465076:

Daniel Hartwig mandyke at gmail.com
Wed Feb 22 10:23:32 UTC 2012

On 22 February 2012 17:33, Manuel A. Fernandez Montecelo
<manuel.montezelo at gmail.com> wrote:
> 2012/2/22 Daniel Hartwig <mandyke at gmail.com>:
>> tags 465076 + pending
>> tags 648490 + pending
>> thanks
>> These two will be fixed with the next version:
>> #465076 [w|+|  ] [aptitude] aptitude: mass bug filing for cross build support
>> #648490 [w|+|  ] [src:aptitude] aptitude: Please add support for
>> build-arch and build-indep targets
> Are you working on this?

Finished.  The changes required to get these two working *usefully*
are not that big but are more than the supplied patches.

I have already pushed a required change to master.  The changes to
debian/rules depend on that, so I will upload them closer to the end
of this release (after "git-importorig" etc.).

> Actually I am knee-deep entangled in revamping the whole packaging
> according to newer debhelper compat level 9, and I am stumbling in
> some nasty problems.  I am no expert on autotools so I don't know very
> well what to do and I was already going to write about this.
> Currently, what debian/rules does is to compile the project twice, one
> for aptitude-curses (the target binary named 'aptitude', then moved as
> 'aptitude-curses') and then another time from scratch to aptitude-gtk
> (again, target binary named 'aptitude' and then renamed), adding the
> necessary GTK flags to compiler/linker.  Then, for creating the deb
> packages, it performs some... not black, but grey magic here and there
> in a not very clear way (or a way that I haven't seen before in my
> days of Debian Maintainer).
> I got a quite clean and much more straightforward than the current
> debian/rules, but then things need to be complicated again due to this
> double-pass (which would be triple-pass if Qt build was activated).
> The ideal situation would be to compile only once, producing the two
> binary targets, and then pick the necessary files for each binary
> debian package.
> If you stumbled upon this, what are your ideas?

Multiple passes are required to support both aptitude-gtk and a useful
build-indep target.

Debhelper handles this fairly easily.  All you have to do is make sure
that the files end up in their correct places inside of
debian/aptitude, debian/aptitude-gtk, etc.  This is primarily done by
the install- targets and plain debhelper in binary- targets turn that
in to the packages.

aptitude-gtk is initially built inside debian/tmp and the very few
required files are copied over manually.  The other files
(aptitude-defaults, etc.) are just borrowed by it's dependency on
package aptitude.

Building multiple binary packages from the same source is always going
to complicate debhelper usage a little.  There is definitely room for
improvement in aptitude's case, but I wouldn't burn too much time
on it.

> PS: Wild idea: we could also ditch aptitude-gtk, there are many
> reports complaining that it's not any good because it lacks the
> sophistication of aptitude-curses, it's very crashy, etc.  The main
> point is whether there would be somebody to step up and maintain it
> and improve it (I don't know almost anything about GTK and I am not
> inclined to learn it).

I agree.  I also am not able to support the GTK+ interface at this
time.  There are still a few people using this according to popcon,
so I wouldn't be ditching it just yet.

> PS2: The compilation is very slow, I think that by cutting out clutter
> (e.g. undue loads of includes for targets not needing them) it can be
> made much quicker.

Something to look in to.  Feel free to drop any you find to be

More information about the Aptitude-devel mailing list