Unable to build for PPA when there are patches to vala source

Bug #570908 reported by Darren Warner
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Vala
Fix Released
Medium
vala (Ubuntu)
Fix Released
Wishlist
Vibhav Pant

Bug Description

When source code changes have been made to the vala compiler, it will fail to build in a clean (pbuilder) environment because a pre-existing valac is not available. Trying to resolve this using the existing method of including the generated C files and relying on timestamps to avoid rebuilds is very cumbersome to workaround (and requires a nasty hack in debian/rules because the patch process updates timestamps anyway - I found 'find . -name "*.vala.stamp" -exec touch "{}" \;' was needed).

I've resolved the problem by applying the attached patch (02_fix_vapi_dirs), and adding valac (>= 0.7.0) to Build-Depends. The cyclical reference appears to be Ok with the build environment.

This patch was applied against vala-0.8.0-0ubuntu1 on Lucid.

Revision history for this message
Darren Warner (launchpad-dazwin) wrote :
Lorenzo De Liso (blackz)
tags: added: patch
Changed in vala (Ubuntu):
importance: Undecided → Wishlist
Revision history for this message
Sebastien Bacher (seb128) wrote :

Thank you for your bug report. The issue is an upstream one and it would be nice if somebody having it could send the bug the to the people writting the software (https://wiki.ubuntu.com/Bugs/Upstream/GNOME)

Revision history for this message
Sebastien Bacher (seb128) wrote :

not sure what the issue there is exactly but the circular depends would be wrong

Revision history for this message
Darren Warner (launchpad-dazwin) wrote :

Thanks Sebastian - I've created a GNOME bug here: https://bugzilla.gnome.org/show_bug.cgi?id=620048. As the problem only manifests itself in Ubuntu's sanitized build environment, I felt the issue originally belonged here.

The problem is that valac requires valac to build. I'm sure the same thing applies to gcc, except that either I haven't been able to trace the chain of dependencies in the gcc package, or it 'just works' because gcc is always there. I also looked at mono-gmcs, which appears to include a pre-built mcs.exe for building itself - which is Ok for a platform-independent tool but obviously no good for a self-hosting compiler that builds native object files. So, my solution works and the fact that it adds itself to Build-Depends is technically correct, even if 'wrong' in another, bigger, sense. Any better solution would be welcome.

This is not a wishlist bug - it is a functional problem with the current, documented, Launchpad toolchain and otherwise correct source package. Could you please change this?

Revision history for this message
Sebastien Bacher (seb128) wrote :

the vala build is first building valac then it's doing the normal build, the issue is likely that changes should be applied only to the second build once valac is available for use

Revision history for this message
Jürg Billeter (j-bitron) wrote :

If you want to be able to build the vala package with modified sources, I see only two ways how to achieve that. Either build-depend the package on (an earlier version of) valac or also apply the updated .c files with the patch. I strongly recommend the former as it avoids timestamp issues and it is probably what is done for other self-hosting compilers such as gcc as well.

Revision history for this message
Victor Vargas (kamus) wrote :

According to upstream comments this issue was solved, but checking in vala changelogs there is not exists an entry that mention something about, please could you check if is still occuring in latest release included in Ubuntu Maverick? Thanks.

Changed in vala (Ubuntu):
status: New → Incomplete
tags: added: patch-forwarded-upstream
removed: patch
Revision history for this message
Darren Warner (launchpad-dazwin) wrote :

Upstream doesn't maintain the debian control files, so it did not include the Build-Depends fix I mentioned in comment #1. I've attached a patch to debian/control here against 10.04 (maverick valac source package doesn't appear to be available for some reason).

Revision history for this message
Darren Warner (launchpad-dazwin) wrote :

Same patch as above, except it applies cleanly to Maverick Alpha 1

Changed in vala:
importance: Unknown → Medium
status: Unknown → Fix Released
Vibhav Pant (vibhavp)
Changed in vala (Ubuntu):
assignee: nobody → Vibhav Pant (vibhavp)
status: Incomplete → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.