[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
superfluous.
More information about the Aptitude-devel
mailing list