Timo Lilja <tlilja@cs.hut.fi> wrote on 11/02/2006 04:02:12 AM:
> I managed to compile Subversion 1.4.0 for IBM z/OS 1.6. I attach my
> notes below. There are few patches needed to make subversion compile
> but extra care should be if they are ever deemed to be applied to the
> subversion code base.
>
> Disclaimer: I am no mainframe expert so the approach taken here could
> be totally wrong but it works for me and we have been using Subversion
> in z/OS successfully for couple of weeks so far.
>
> The approach taken here is somewhat orthogonal to one taken by the
> AS/400 port. I decided to keep everything internally in ASCII and rely
> on the AUTOCVT ASCII->EBCDIC conversion functions when needed.
>
>
> Building Subversion 1.4.0 for z/OS
> ==================================
>
> cd $HOME
> zcat subversion-1.4.0.tar.gz | pax -ofrom=ISO8859-1,to=IBM-1047 -rv
> zcat subversion-deps-1.4.0.tar.gz | pax -ofrom=ISO8859-1,to=IBM-1047 -rv
>
> export _C89_CCMODE=1
> export _C89_OPTIONS="-Wc,ascii,xplink,nocsect,langlvl(extended)
-Wl,xplink"
> export CC=c89
> export LD=c89
> export _CXX_CXXSUFFIX=cc
> export MAKE=gmake
> export CPPFLAGS="-D_ALL_SOURCE -I$HOME/subversion-1.4.0/zlib"
> export LDFLAGS="-L$HOME/subversion-1.4.0/zlib"
> # currently we use Gnu cpp for deps, but these flags might do the job
with c89
> #export MKDEP=c89
> #export MKDEP_FLAGS=-EC
> #export _C89_ELINES=1
>
> Build zlib
> ----------
> export CPPFLAGS="-DSTDC"
> apply zconf.h.in.patch
> bash configure
> gmake
>
> Build subversion
> ----------------
> export CPPFLAGS="-D_ALL_SOURCE -I$HOME/subversion-1.4.0/zlib"
> apply apr-uri.patch
> apply neon-socket.patch
> apply svn-create-ascii.patch
> apply svn-ensure-ascii.patch
> bash configure
> gmake
>
> Known Issues
> ------------
> (Some of the notes below might be specific to our development
> environment only but I attach them all here anyway.)
>
> - Configuration of apr and apr-util may fail or produce empty
> Makefiles to some subdirectories. This might be because of the
> open file limit that is set to 400. I have no idea how to increase
> the limit. Workaround: run configure in apr/ and apr-util/
> directories again. (You can get the original configure invocation
> arguments from corresponding configure.log files.)
>
> - The port converts everything output with svn_cmdline_printf() to
EBCDIC.
>
> - The port writes every file in ASCII/UTF-8 and sets the encoding
attribute
> CCSID to 819 with __chattr(). That is, if you want to add a new file
> to the repository, you have to make it in ASCII format and use
>
> chtag -tc ISO8859-1 foo.c
>
> before adding/importing the file(s). Maybe svn add could
> convert EBCDIC to ASCII and set the file attributes automatically?
>
> - Binary files CCSID has to be manually switched to 1047 and the text
> flag has to be toggled off. Currently patched SVN toggles the text
> flag on and sets CCSID to 819 for every file that SVN accesses.
> Thus, binary files have to be chtag(3) every time they are updated.
> Maybe SVN should set the CCSID only for newly created files?
>
> - svn blame and svn cat do no ASCII->EBCDIC conversion
> Workaround: svn blame foo.c | iconv -f ISO8859-1 -t IBM-1047
>
> One way to fix this would be to modify svn_stream_write() in
> libsvn_subr/stream.c but this might break something else using
> svn_stream_write() that depends on not doing the conversion.
> (Not sure why blame-cmd.c:blame_receiver() uses svn_stream_printf()
> instead of svn_cmdline_printf()?)
>
> - Non-ASCII characters may be a problem: subversion uses internally
> UTF-8 and the auto-conversion doesn't seem to support UTF-8 at all?
>
> - I don't have access to python on z/OS, cannot gmake check.
Hi Timo,
This may be implied, but are you using just the client or are you actually
running a Subversion server on z/OS?
If you are running a server:
Have you tried or considered running the test suite on a Win32 box against
a Subversion server running on z/OS? The test suite doesn't handle this
as-is, but for testing the AS/400 port I've hacked it up a bit and run it
on my Win32 box against an iSeries server. I needed to map a Windows
drive to the iSeries IFS to make this work, is that possible for the
mainframe? If you are interested I can post my patch and a quick write-up
on how I did it. Can't help you with the lack of Python on z/OS, we were
fortunate that someone ported it to the i5.
Paul B.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Thu Nov 2 15:04:44 2006