From: Bob Aman Date: 2005-04-12T05:53:13+09:00 Subject: Re: Accessing SVN through Ruby > On Apr 8, 2005 10:37 PM, Kouhei Sutou wrote: > > I don't have Windows box, so I can't help you about the > > thing. But INSTALL file in Subversion repository may help > > you: > > I'll give it a whirl, see what happens. From the INSTALL file: E.1 Prerequisites * Visual Studio 6 and service pack. It can be built with Visual Studio 7 (aka Visual Studio.NET aka Visual Studio.NET 2002) but these instructions assumes VS6. * A recent Windows SDK, the one provided with Visual Studio 6 is too old. You only need the 'Core SDK'. You can get it from MSDN if you have it or from http://www.microsoft.com/msdownload/platformsdk/sdkupdate/ if you don't. * Python 2.2 or higher, downloaded from http://www.python.org/ which is used to generate the project files. * Perl 5.8 or higher from http://www.activestate.com/ * Awk, from http://cm.bell-labs.com/cm/cs/who/bwk/awk95.exe This is needed to compile Apache or APR. Note that this is the actual awk program, not an installer - just rename it to awk.exe and it is ready to use. * Neon 0.24.7 or higher, downloaded from http://www.webdav.org/neon/neon-0.24.7.tar.gz which is required for building the client components. Neon is included in the zip file distribution. * Berkeley DB is required for support for local server components, version 4.2.52 is available from http://subversion.tigris.org/servlets/ProjectDocumentList as db-4.2.52-win32.zip. For more information see Section I.5. * Apache 2 source, downloaded from http://httpd.apache.org/download.cgi, these instructions assume version 2.0.50. Only needed for building the server dso modules. * Apache 2 msi install file, also from http://httpd.apache.org/download.cgi (required for running the tests). Only needed for testing the server dso modules. * Apache apr, apr-util, and apr-iconv libraries, version 0.9.5. Included in both the Subversion ZIP file and the Apache 2 source tarball. If you are building from a Subversion checkout and have not downloaded Apache 2, then get these 3 libraries from http://www.apache.org/dist/apr/ * ZLib 1.1.4 or higher (version 1.1.x) binaries http://www.winimage.com/zLibDll/zlib114dll.zip. * Openssl 0.9.7d or higher obtained from http://www.openssl.org/source/openssl-0.9.7d.tar.gz * An assembler, e.g., nasm which is available from http://www.kernel.org/pub/software/devel/nasm/binaries/win32/ * For localization gnu gettext is needed. Get gettext-runtime-0.13.bin.woe32.zip, gettext-tools-0.13.bin.woe32.zip, and libiconv-1.9.1.bin.woe32.zip from http://mirrors.kernel.org/gnu/gettext/ and http://mirrors.kernel.org/gnu/libiconv/. * Either a Subversion client binary from http://subversion.tigris.org/ to do the initial checkout of the Subversion source or the zip file source distribution. See the section "Bootstrapping from a Zip or Installer File under Windows" above for more. * A means of unpacking the files. The Subversion tar.gz file uses the POSIX.1 standard for file names which exceed 100 characters. This format is not understood by all programs which claim to be able to unpack .tar.gz files. Notable examples of this are WinZip and the utilities which can be found at http://unxutils.sourceforge.net/. The version of tar at http://gnuwin32.sourceforge.net/ is derived from GNU tar, so it can handle POSIX.1. However, it is *not* able to unpack gzip files, although it is able to read a pipe from gzip. Cygwin can unpack this file, however cygwin is a large package to install such just to unpack the tarball on Windows. To avoid these problems use the Subversion zip file source distribution. The other required package which is packaged as a tar file (openssl) can be unpacked with any of the utilities mentioned. Please tell me that I don't need to do all of that just to generate the SWIG bindings for Windows... (mumble, grumble, why can't this be automated more easily?) I was looking through the pickaxe book and I saw that rubygems seems to make allowance for precompiled gems... Can I make use of this? Ultimately, what I'd like to create is a simple ruby-svn gem that can be installed anywhere with zero hassle. If it's possible, I'd like to just include the external libraries for svn for each of the possible platforms inside the gem or something like that. I don't want to rely on the library's user actually having all of the required build tools (especially for the windows platform). Is this possible? If so, how hard is it, and what do I have to watch out for as far as pitfalls? I'd prefer not to have to make seperate gems for each platform, is that possible, given what I want to do? For that matter, how hard would it be to make a pure-ruby svn client that conversed with svn only via http/apache? How bad of an idea is this? Be aware, I've never tried to make a gem before. (Heck, I'm only just getting started with ruby, so...) -- Bob Aman