I am attempting to get the subversion client running on z/OS. I am starting with svn 1.5.6 because I don't want to port SQLite first, at least not until I have a working "svn co". autogen.sh, configure, and make run to completion after some build hacks. Then make install dies with:
subversion/svnversion/svnversion . /repos/svn/trunk > /u/USER193/svn/cvs-1.5.6/subversion-1.5.6/built/include/subversion-1/svn-revision.txt ?\162?\165?\149: ?\229?\129?\147?\137?\132 ?\228?\227?\198-?\248 ?\132?\129?\163 ?\129 (?\136?\133?\167: ?\242?\133 ?\246?\241 ?\244?\130) ?\134?\150?\147?\147?\150?\166?\133?\132 ?\130?\168 ?\137?\149?\165?\129?\147?\1 37?\132 ?\228?\227?\198-?\248 ?\162?\133?\152?\164?\133?\149?\131?\133 (?\136?\133?\167: ?\129?\242 ?\129?\245 ?\249?\245 ?\246?\241) FSUM8226 make: Error code 8 With the following patch, the situation improves and I can read the error messages without looking at EBCDIC code point charts. subversion/svnversion/svnversion . /repos/svn/trunk > /u/USER193/svn/cvs-1.5.6/subversion-1.5.6/built/include/subversion-1/svn-revision.txt svn: Valid UTF-8 data (hex: 2e 61 4b) followed by invalid UTF-8 sequence (hex: a2 a5 95 61) FSUM8226 make: Error code 8 The error messages are in the native code page to start with, so running them through a UTF-8 -> native conversion doesn't do anything helpful. I have a handful of other patches that get subversion 1.5.6 to where svnversion and "svn help [subcommand]" work properly. I'm pretty confident that I can take it beyond that, but I want to start posting patches one baby step at a time. Regards, Greg Index: subversion/libsvn_subr/cmdline.c =================================================================== --- subversion/libsvn_subr/cmdline.c (revision 943316) +++ subversion/libsvn_subr/cmdline.c (working copy) @@ -318,24 +318,15 @@ svn_error_t * svn_cmdline_fputs(const char *string, FILE* stream, apr_pool_t *pool) { - svn_error_t *err; - const char *out; + /* "string" is native. do not try to convert from UTF-8 */ - err = svn_cmdline_cstring_from_utf8(&out, string, pool); - - if (err) - { - svn_error_clear(err); - out = svn_cmdline_cstring_from_utf8_fuzzy(string, pool); - } - /* On POSIX systems, errno will be set on an error in fputs, but this might not be the case on other platforms. We reset errno and only use it if it was set by the below fputs call. Else, we just return a generic error. */ errno = 0; - if (fputs(out, stream) == EOF) + if (fputs(string, stream) == EOF) { if (errno) return svn_error_wrap_apr(errno, _("Write error"));