Wow, thanks for the incredibly quick response.
autorevision runs the command svn info to determine the revision information. Only if that fails, the file .svn/entries is parsed as a fallback.
This is a (unluckily not well-formed) xml file. Since tinyXML refuses to parse that file, I did a very simple string search, which is not nice but works out nevertheless.
Well, svn info would be looking in the .svn directory for the info, so either way it's not there if portage hasn't copied the .svn folder.
What you need is some entry file from some .svn directory (they should all have the same last-commit number). In the cbp, I used "." as the path, the makefile (which I did not write) uses "../.." for some reason, but it does the exact same thing (because the last-commit revisions are the same everywhere).
So actually you don't need to change one single line of code, only provide the correct path to some place where a .svn directory is found on the commandline.
That's actually the workaround I'm using at the moment to compile it. I changed the Makefile.am from
./auto_revision +int +wx +t $(top_srcdir) $(srcdir)/../../sdk/autorevision.h
to
./auto_revision +int +wx +t /usr/portage/distfiles/svn-src/codeblocks/trunk/src/ $(srcdir)/../../sdk/autorevision.h
at which point it works fine, but that's obviously not an acceptably generic solution either.
Could there perhaps be a new variable added? Then the Makefile.am could use $(top_checkoutdir) or something which would default to $(top_srcdir) but that I could set by passing the configure script the value? Unfortunatly I don't know enough about auto* to know how to do that.
I know of no other way to reliably determine the revision information. One could of course query the current HEAD revision directly from the repository via svn:// quite trivially, but that would
a) not guarantee that the revision on disk is the same as in the repository
b) cause the build to depend on the availability of the BerliOS server (i.e. if that server is down, nobody can compile)
Especially b) is prohibitive.
Agreed, that's not an acceptable solution. (a) is also prohibative, because it would wreak havok on bug reports.