On Tue, Aug 5, 2014 at 2:06 PM, Simon McVittie <
simon.mcvit...@collabora.co.uk> wrote:

> ... but this results in not having the source code to the build system
> you're building with in any sane form (the "compiled" waf script is a
> self-unpacking binary container, containing a copy of waf); and trying
> to consolidate onto fewer versions of waf within a distribution (i.e.
> not the precise version that upstream used) is not something that is
> supported by the authors of waf, because waf build systems that worked
> fine with one version will not necessarily work with another.
>

Distributions completely misunderstand the role of waf when they attempt to
do this. One of the biggest, most infuriating problems with autotools is
the lack of back- and future compatibility, which means that all developers
working on a project MUST use very similar versions of the entire autotools
stack.

waf was specifically designed to avoid this issue by being a tool that is
bundled as part of a PROJECT not as part of a distribution/platform. there
is frankly no reason for any distribution to ever package waf. that simply
isn't how it is intended to be used.

we've been using waf to build ardour for several years now, and other than
the need to add some i18n-generation functionality, it has been far better
than any other build i've ever used. we also bundle our own waf extensions
inside the ardour source tree as a normal python script and document how to
rebuild "waf" if and when necessary (e.g. if there is a decision to move a
new version of waf). it is very very easy (and not very common).

the only downside i've come across with waf so far was the initial mental
realignment needed to write our own wscript files. waf internally uses some
fairly different terminology and some slightly different concepts, and it
took me a short time to adjust to this. having done so, i could never go
back to the endless series of shell hacks they call autotools. note that we
also use waf to build ardour on linux, solaris, OS X and windows. same
build system on all platforms.



>
> The Autotools have the same issue to an extent, but at least their
> generated files (mainly configure and **/Makefile.in) are text, which
> you can patch directly if you're sufficiently desperate for a solution
> to a serious bug.
>
> Best-practice in at least Debian and Ubuntu is moving towards always
> discarding the upstream-supplied configure and Makefile.in, and
> re-running autoconf/automake to re-generate them during the build; this
> removes some of the perceived advantages of Autotools, but it means
> we're compiling from actual source code, not from something that looks
> vaguely like source code if you aren't really paying attention :-)
>
> Non-tarball-based packaging/meta-build systems like jhbuild and
> gnome-continuous also work from the actual source code.
>
>     S
>
> _______________________________________________
> gtk-devel-list mailing list
> gtk-devel-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/gtk-devel-list
>
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list

Reply via email to