[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

AW: Making the Windows Build Easier

From: Markus Schaber <m.schaber_at_codesys.com>
Date: Mon, 22 Apr 2013 14:35:21 +0000

Hi,

Berts SharpSVN build also includes a way to pull all the dependencies, using msbuild.

However, it does not work with the express editions yet, AFAICS, so your script clearly has at least one advantage. :-)

Will it work using the VS 2010 command prompt?

Best regards

Markus Schaber

CODESYS® a trademark of 3S-Smart Software Solutions GmbH

Inspiring Automation Solutions

3S-Smart Software Solutions GmbH
Dipl.-Inf. Markus Schaber | Product Development Core Technology
Memminger Str. 151 | 87439 Kempten | Germany
Tel. +49-831-54031-979 | Fax +49-831-54031-50

E-Mail: m.schaber@codesys.com | Web: http://www.codesys.com | CODESYS store: http://store.codesys.com
CODESYS forum: http://forum.codesys.com

Managing Directors: Dipl.Inf. Dieter Hess, Dipl.Inf. Manfred Werner | Trade register: Kempten HRB 6186 | Tax ID No.: DE 167014915

> -----Ursprüngliche Nachricht-----
> Von: Ben Reser [mailto:ben_at_reser.org]
> Gesendet: Sonntag, 14. April 2013 02:46
> An: Subversion Development
> Betreff: Making the Windows Build Easier
>
> As we've discussed previously a big part of the problem in getting the
> Windows build working has been getting the dependencies built.
> Everyone I've talked to manages to get this done, then has no idea how
> to duplicate what they've done.
>
> This past week I wanted to use some static analysis tools that were only
> available on Windows. So I set out to build Subversion on Windows. I
> spent about 2 days fighting with it, taking notes the whole way so I
> could try and reproduce it. On the 3rd day I realized that taking notes
> wasn't going to work and that by the time I finished I'd have some
> instructions that left some important detail out or didn't explain it
> fully. So I started writing a script to automate this annoying process.
>
> The result is the build-svn-deps-win.pl script that I've commited in
> r1467714.
>
> This script is far from perfect. It still needs some work on it, but
> it's probably about 90% of the way there to turning setting up a Windows
> development environment into about an hour effort from a couple day slog
> that you have no hope of being able to reproduce.
>
> A lot of credit goes to pburba for his blog post here:
> http://blogs.collab.net/subversion/building-subversion-on-windows-a-
> walk-through
>
> Without it I would have spent even more time doing this than I did.
>
> So with all that said, here are some details.
>
> It downloads the following things:
> bdb
> zlib
> pcre
> httpd
> apr
> apr-util
> apr-iconv
> sqlite-amalgamation
> serf
>
> It builds all of the above expect for sqlite and serf which get built as
> part of the Subversion build itself (zlib could be built there as well
> but I built it so that mod_deflate would work in httpd).
>
> The script is built to use an entirely modern tool chain and
> dependencies. Everything is the current released version. That means
> httpd-2.4.4, Visual Studio 2012, etc... It does not build or deal with
> neon, though that could be trivially added.
>
> Unfortunately, it does not work with Visual Studio 2012 Windows Desktop
> Express due to the lack of devenv.(com|exe). However, the script is
> written to produce a the binaries in a way that they can be packaged.
> There's still some work to do here in making the package as minimal as
> possible (some of it possibly in our build system).
>
> At current the script only builds a Win32 Release build. But I expect
> to change that in the near future.
>
> So without further ado, here are some instructions:
>
> 1) Get the dependencies. If you have a full version of Visual Studio
> (not an Express version) you can follow a) or b) depending on your
> preference. For Visual Studio Express you have to follow b).
>
> a) Pick a location to do the build and make a directory to build the
> deps, in my case I put it in C:\Users\breser\svn-trunk-deps. Download
> the script at
> http://svn.apache.org/repos/asf/subversion/trunk/tools/dev/build-svn-
> deps-win.pl
> and put it in this directory. Open the script in a text editor and make
> sure you install the few dependencies you'll need (Perl, Python, 7-Zip
> and CMake). Python actually may not be needed for this but it's needed
> for the Subversion build itself. If presented the option to add the
> commands to your path accept it (Python and Perl will do this by default,
> CMake you have to explicitly decide to do this). 7-zip doesn't have one
> so make a note of where you installed it for later.
> Once you have the dependencies downloaded open the "VS2012 x86 Native
> Tools Command Prompt" (usually found in the Visual Studio Tools group).
> cd to your directory and run build-svn-deps-win.pl. If 7z.exe is not in
> "C:\Program Files\7-Zip\7z.exe" you can override this by passing
> "SEVEN_ZIP=C:\Path\To\7z.exe" to the script. The script will then
> download and build the dependencies for you. For me on my VM setup it
> takes about 45 minutes for this to run.
>
> b) Download http://ben.reser.org/svn-windows-deps/svn-trunk-deps-win32-
> release-20130413.7z
> and extract it. You can rename the folder but it should be named svn-
> trunk-deps. In my case I put it in C:\Users\breser\svn-trunk-deps. The
> file is 116MB and it's compressed with 7-zip (sorry but it was less than
> half the size using 7-zip over normal zip). You'll need at least Python
> which you can find a URL to at the top of the build-svn-deps-win.pl
> script in the svn-trunk-deps.
> You may need Perl but I'm not sure, I had it on my setup since I was
> originally trying to do step a with Express. You won't need CMake for
> sure though. There is a GPG signature of the file for the appropriately
> cautious:
> http://ben.reser.org/svn-windows-deps/svn-trunk-deps-win32-release-
> 20130413.7z.asc
>
> 2) Get Subversion's source. At this point I haven't tested this with
> anything other than trunk, so you'll need a Subversion client to do a
> checkout.
>
> 3) Configure Subversion. In the VS2012 Command Prompt cd into the
> Subversion source you checked out and run the following (adjusting the
> paths so that C:\Users\breser\svn-trunk-deps is wherever you put the
> dependencies:
> gen-make.py -t vcproj --vsnet-version=2012 --with-berkeley-
> db=c:\Users\breser\svn-trunk-deps
> --with-httpd=c:\Users\breser\svn-trunk-deps\build\httpd
> --with-serf=c:\Users\breser\svn-trunk-deps\serf
> --with-sqlite=c:\Users\breser\svn-trunk-deps\sqlite-amalgamation
> --with-zlib=c:\Users\breser\svn-trunk-deps\build\httpd\srclib\zlib
> --with-openssl=c:\Users\breser\svn-trunk-deps\build\httpd\srclib\openssl
>
> 4) Build Subversion. Once that finishes run the following in the came
> command prompt:
> msbuild subversion_vcnet.sln /t:__ALL_TESTS__ /p:Configuration=Release
>
> 5) Test Subversion.
>
> Before testing Subversion you need to set the PATH to include the bin
> dir in the deps directory (otherwise tests will fail due to missing
> libapriconv-1.dll):
> set PATH=c:\Users\breser\svn-trunk-deps\bin;%PATH%
>
> The following command can be used to test Subversion with ra_local:
> win-tests.py --release --parallel
>
> The following command can test it with ra_serf (and will start httpd for
> you):
> win-tests.py --release --httpd-dir=C:\Users\breser\svn-trunk-deps --
> httpd-daemon [For some reason for me ra_serf fails with parallel, which
> speeds up the tests]
>
> The following command can test it with ra_svn (and will start svnserve
> for you):
> win-tests.py --release --parallel --url=svn://localhost
Received on 2013-04-22 16:35:54 CEST

This is an archived mail posted to the Subversion Dev mailing list.