Re: Enabling builddir != srcdir by default in jhbuild



Hi Bastien;

On 3 June 2016 at 12:11, Bastien Nocera <hadess hadess net> wrote:
On Thu, 2016-06-02 at 23:50 +0100, Emmanuele Bassi wrote:
[ Picking this up again ]

As a last resource, we can mark modules that do not support non-
srcdir
builds in the various modulesets, but I'd rather avoid it as it
defeats the purpose.

Looks like this is uncovering more bugs.

Yes; right now I'm blocked on getting a WebKit build going because of
dependencies.

$ jhbuild buildone -afn gnome-documents
*** Configuring gnome-documents *** [1/1]
/home/hadess/Projects/jhbuild/gnome-documents/autogen.sh --prefix
/home/hadess/Projects/gnome-install --disable-Werror  --enable-getting-
started
/usr/bin/gnome-autogen.sh
fatal: Not a git repository (or any parent up to mount point /home)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not
set).
<carries on>

The autogen.sh tries to run:
git submodule update --init --recursive

Which might, or might not be a good idea. In any case, that won't work
if cwd isn't the git repo.

What's the proper fix for this then?

In general, everything that modifies the Git repository or the
autotools files, like `git submodule update` or `gtkdocize` or
`intltoolize` will need to be called inside the source directory; this
means switching to $srcdir, calling those tools, and then switch back
to the build directory.

In this case, I just fixed gnome-documents with this commit:

  https://git.gnome.org/browse/gnome-documents/commit/?id=7668513171a0e9812a3fc2fc396e8b8d960e9072

The main change is that jhbuild runs the autogen script from within
the build directory, instead of running it into the source directory
and then running the configure script from the build directory. This
means that the autogen script needs to cope with this case. Most of
the autogen scripts do, and gnome-autogen.sh does as well, assuming
the $srcdir variable is set appropriately.

The rest of the build failures I've seen mostly deal with:

 * Vala
 * the introspection scanner not being given the appropriate include paths
 * the assumption that you run a full build in the srcdir before
running in a separate builddir, which is fair (even if not really
appropriate) for `make distcheck`, but it obviously fails for
non-srcdir builds

Ciao,
 Emmanuele.

Ciao,
 Emmanuele.

-- 
https://www.bassi.io
[ ] ebassi [ gmail com]


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