GNOME Bugzilla – Bug 681330
[regression] Build failure in 0.8
Last modified: 2012-08-16 18:00:26 UTC
I'm trying to build libsecret-0.8. The build goes well until the test phase, where it dies with: CCLD test-collection make[5]: *** No rule to make target `test-vala-lang.vala', needed by `test-vala-lang.c'. Stop. find shows no test-vala-lang.vala in the libsecret tree. I have vala-0.17.4 installed.
Created attachment 220495 [details] [review] Require valac in order to 'make distcheck' * Otherwise problems with vala files not being distributed
I tried applying the patch to the 0.8 sources. This worked; however, gnome-autogen complains about Running autoconf... configure.ac:98: error: possibly undefined macro: AM_PATH_LIBGCRYPT If this token and others are legitimate, please use m4_pattern_allow. See the Autoconf documentation. Looks like libgcrypt is a must.
I installed libgcrypt. Still no go. configure still finds valac even though the test-vala-lang.vala isn't installed. From config.log: configure:14992: checking for valac configure:15010: found /opt/garnome-3.5/bin/valac configure:15022: result: /opt/garnome-3.5/bin/valac I got it to build by adding --enable-vala=no to the configure args, but this is cheating.
Created attachment 220637 [details] [review] build: Fix build without libgcrypt * Needed to use m4_ifdef on the libgcrypt autoconf macro
Please include the complete build error (In reply to comment #3) > I installed libgcrypt. Still no go. configure still finds valac even though > the test-vala-lang.vala isn't installed. Could you please include the complete build error text. Thank you.
With both patches applied 0.8 no longer builds (i.e., without adding --enable-vala=no) As before I get: make[5]: Entering directory `/home/ronis/Project/notar/GNOME/garnome/desktop/libsecret/work/main.d/libsecret-0.8/libsecret/tests' make[5]: *** No rule to make target `test-vala-lang.vala', needed by `test-vala-lang.c'. Stop.
Right. You'll need to generate a new tarball from libsecret git. Or if you're not able to, then I can send you one. Let me know. I'll be releasing 0.9 shortly, but want to make sure the issues you've raised are fixed before I do.
A new tarball? Why? I applied the patches and autogen to a freshly unpacked 0.8. If you really want me to use a new tarball, you'll have to send me one.
Beca(In reply to comment #8) > A new tarball? Why? Because the first patch affects how the tarball is built, and doesn't change anything for an already created tarball.
I emailed you a tarball. Any updates? I want to release libsecret 0.9 shortly.
Hi Stef, I never got the tarball and AFAIK it wasn't trapped by my spam filter. Please try again. David
Evan, do you have time to figure this one out? When someone does 'make distcheck' we want to be able to display a message that they can't do that without the required vala installed. I tried to do that (see the patch below) but it doesn't do the trick. Especially if you delete libsecret/tests/test-vala-lang.c you can see this behavior. One gets the following message: am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory `/data/projects/libsecret/egg/tests' make[3]: Leaving directory `/data/projects/libsecret/egg/tests' make[2]: Leaving directory `/data/projects/libsecret/egg' (cd libsecret && make top_distdir=../libsecret-0.9 distdir=../libsecret-0.9/libsecret \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[2]: Entering directory `/data/projects/libsecret/libsecret' (cd tests && make top_distdir=../../libsecret-0.9 distdir=../../libsecret-0.9/libsecret/tests \ am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir) make[3]: Entering directory `/data/projects/libsecret/libsecret/tests' make[3]: *** No rule to make target `test-vala-lang.c', needed by `distdir'. Stop. make[3]: Leaving directory `/data/projects/libsecret/libsecret/tests' make[2]: *** [distdir] Error 1 make[2]: Leaving directory `/data/projects/libsecret/libsecret' make[1]: *** [distdir] Error 1 make[1]: Leaving directory `/data/projects/libsecret'
Created attachment 221346 [details] [review] vala: use nodist sources for vala test cases (In reply to comment #12) > Evan, do you have time to figure this one out? > > When someone does 'make distcheck' we want to be able to display a message that > they can't do that without the required vala installed. > > I tried to do that (see the patch below) but it doesn't do the trick. > Especially if you delete libsecret/tests/test-vala-lang.c you can see this > behavior. Interesting issue. According to the automake docs "If the dist-hook rule exists, it is run after the distribution directory is filled, but before the actual distribution archives are created." So it will expect test-vala-lang.c to exist before dist-hook is ever called. The attached patch will use nodist SOURCES for the Vala tests.
Thanks Evan, that seems to do the trick. Attachment 221346 [details] pushed as 8f3387c - vala: use nodist sources for vala test cases
I applied the patch in attachment 221346 [details] [review] to an unpacked 0.8 tarball. The build still fails: make[5]: Entering directory `/home/ronis/Project/notar/GNOME/garnome/desktop/libsecret/work/main.d/libsecret-0.8/libsecret/tests' make[5]: *** No rule to make target `test-vala-lang.vala', needed by `test-vala-lang.c'. Stop. I'm clearly not getting something.
Please use git master to test. You can run 'make distcheck' on git master to generate a new tarball. Thank you.