You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by "Daniel Richard G." <sk...@iSKUNK.ORG> on 2010/04/28 06:21:25 UTC

Error with transform_sql.sh rule

I'm building Subversion 1.6.11 from a read-only source tree. I get this:

/nfs/subversion-1.6.11/build/transform_sql.sh /nfs/subversion-1.6.11/subversion/libsvn_fs_fs/rep-cache-db.sql < /nfs/subversion-1.6.11/subversion/libsvn_fs_fs/rep-cache-db.sql > /nfs/subversion-1.6.11/subversion/libsvn_fs_fs/rep-cache-db.h
/bin/sh: /nfs/subversion-1.6.11/subversion/libsvn_fs_fs/rep-cache-db.h: Read-only file system
gmake: *** [subversion/libsvn_fs_fs/rep-cache-db.h] Error 1

Given that rep-cache-db.h is always generated at build time, and is not
something that (I gather) can be bundled in the source tarball, it
should be written to builddir, not to srcdir.


--Daniel

(Please Cc: any replies to me, as I am not subscribed to this list.)


-- 
NAME = Daniel Richard G.     _\|/_    Remember, skunks
MAIL = skunk@iSKUNK.ORG     (/o|o\) _- don't smell bad---
MAIL+= skunk@alum.MIT.EDU   < (^),>     it's the people who
WWW  = (not there yet!)      /   \      annoy us that do!

Re: Error with transform_sql.sh rule

Posted by "Daniel Richard G." <sk...@iSKUNK.ORG>.
On Wed, 2010 Apr 28 09:33-0500, Hyrum K. Wright wrote:
> >
> > Given that rep-cache-db.h is always generated at build time, and is
> > not something that (I gather) can be bundled in the source tarball,
> > it should be written to builddir, not to srcdir.
>
> Yes, this is a bug in the build / distribution process.  In 1.7 and
> beyond, we pretransform the sql files, since they aren't platform-
> dependent, but those bits have yet to be backported to 1.6.x.

I was able to work around this by removing the $(top_srcdir)/ prefix in
the output of the .sql.h rule in the makefile, and updating INCLUDES
with -I$(top_builddir)/subversion/libsvn_fs_fs .


--Daniel


-- 
NAME = Daniel Richard G.     _\|/_    Remember, skunks
MAIL = skunk@iSKUNK.ORG     (/o|o\) _- don't smell bad---
MAIL+= skunk@alum.MIT.EDU   < (^),>     it's the people who
WWW  = (not there yet!)      /   \      annoy us that do!

Re: Error with transform_sql.sh rule

Posted by "Hyrum K. Wright" <hy...@mail.utexas.edu>.
On Wed, Apr 28, 2010 at 10:35 AM, Peter Samuelson <pe...@p12n.org> wrote:

>
> [Hyrum K. Wright]
> > Yes, this is a bug in the build / distribution process.  In 1.7 and
> beyond,
> > we pretransform the sql files, since they aren't platform-dependent, but
> > those bits have yet to be backported to 1.6.x.
>
> I'd rather see us go in the opposite direction: "output is not
> platform-dependent" is not, IMO, a sufficient reason to ship "compiled"
> code in source tarballs.  A better reason would be: requires tools that
> end-users shouldn't be required to install.  - Like autoconf, or Python
> 2.6.  When a compile / transform process does not add any build-time
> requirements, it should be done as part of the regular build.
>

On trunk, the transform script is Python, not shell.  IIRC, we don't require
end users to have Python installed, so pretransforming is the most prudent
step in this case.  Additionally, we have precedent in doing so: see the
swig bindings.


> Partly this is for transparency: the less "non-source" the downstream
> users have to trust our Release Manager to generate correctly from the
> same source that is shipped, the better.  (Of course, an automated
> release rolling process helps a lot with this.)
>

Understood, but these bits feel like they can reasonably be done a priori.

-Hyrum

Re: Error with transform_sql.sh rule

Posted by Peter Samuelson <pe...@p12n.org>.
[Hyrum K. Wright]
> Yes, this is a bug in the build / distribution process.  In 1.7 and beyond,
> we pretransform the sql files, since they aren't platform-dependent, but
> those bits have yet to be backported to 1.6.x.

I'd rather see us go in the opposite direction: "output is not
platform-dependent" is not, IMO, a sufficient reason to ship "compiled"
code in source tarballs.  A better reason would be: requires tools that
end-users shouldn't be required to install.  - Like autoconf, or Python
2.6.  When a compile / transform process does not add any build-time
requirements, it should be done as part of the regular build.

Partly this is for transparency: the less "non-source" the downstream
users have to trust our Release Manager to generate correctly from the
same source that is shipped, the better.  (Of course, an automated
release rolling process helps a lot with this.)
-- 
Peter Samuelson | org-tld!p12n!peter | http://p12n.org/

Re: Error with transform_sql.sh rule

Posted by "Hyrum K. Wright" <hy...@mail.utexas.edu>.
On Wed, Apr 28, 2010 at 1:21 AM, Daniel Richard G. <sk...@iskunk.org> wrote:

> I'm building Subversion 1.6.11 from a read-only source tree. I get this:
>
> /nfs/subversion-1.6.11/build/transform_sql.sh
> /nfs/subversion-1.6.11/subversion/libsvn_fs_fs/rep-cache-db.sql <
> /nfs/subversion-1.6.11/subversion/libsvn_fs_fs/rep-cache-db.sql >
> /nfs/subversion-1.6.11/subversion/libsvn_fs_fs/rep-cache-db.h
> /bin/sh: /nfs/subversion-1.6.11/subversion/libsvn_fs_fs/rep-cache-db.h:
> Read-only file system
> gmake: *** [subversion/libsvn_fs_fs/rep-cache-db.h] Error 1
>
> Given that rep-cache-db.h is always generated at build time, and is not
> something that (I gather) can be bundled in the source tarball, it
> should be written to builddir, not to srcdir.
>

Yes, this is a bug in the build / distribution process.  In 1.7 and beyond,
we pretransform the sql files, since they aren't platform-dependent, but
those bits have yet to be backported to 1.6.x.

-Hyrum