On 09.08.2017 23:40, Philip Martin wrote:
> I recently modified release.py and this has meant I have been recreating
> old tarballs to test my changes.  This has highlighted the file
>
>   subversion/libsvn_subr/errorcode.inc
>
> which is generated by gen-make.py, has content that is produced via
> Python's errno module with the result that the tarball content depends
> on the Python version used to roll the tarball.
>
> When I recreate 1.9.0-rc2 I see this difference:
>
> diff -r subversion-1.9.0-rc2/subversion/libsvn_subr/errorcode.inc 
> subversion-1.9
> .0-rc2-orig/subversion/libsvn_subr/errorcode.inc
> 99c99
> <   { 95, "ENOTSUP" },
> ---
>>   { 95, "EOPNOTSUPP" },
> To an extent the change is trivial, this code is only used in SVN_DEBUG
> builds and even then it doesn't have much effect on how Subversion
> works.
>
> Arguably more important is having our tarballs be reproducible.  These
> symbolic names are a bit tricky to generate and the choice of python
> means it has be done by gen-make.py rather than configure.  There are
> comments in gen_base.py about this.  There is also the question about
> how portable these symbolic names are to other systems, i.e. Windows.
>
> I'm considering a --release flag for gen-make.py that omits this
> information from the file and thus the tarball.

Since OS-specific error codes are, by definition, OS-specific, it's more
or less impossible to generate errorcode.inc on one platform and use it
on another. Even "POSIX" errno values are not consistent across platforms.

Would be better to generate this header at build time ... but to do that
in a cross-platform manner, we'd have to write a C program to do that.

-- Brane

Reply via email to