Re: [fossil-users] Building Windows binary with SSL support

2012-12-05 Thread Konstantin Khomoutov
On Wed, Dec 05, 2012 at 09:18:53PM -0500, Maxim Khitrov wrote:

> I just started playing with fossil, but the lack of client SSL/TLS
> support in the official binaries is a pretty major bump in the road
> for production use. I've read all the topics that I could find on this
> subject, and I understand the arguments, but this really gets in the
> way of the "simply download a precompiled binary" idea. Please
> consider building a separate set of binaries and letting the users
> select which version they want to use.

The real way to get real support for TLS on Windows is to use native
implementation (schannel).  Beyond enabling xcopy deployments without
also carrying the OpenSSL runtime of a matching version along with the
binary, it would also enable using the system's certificate storage.

___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users


[fossil-users] Building Windows binary with SSL support

2012-12-05 Thread Maxim Khitrov
Greetings,

I just started playing with fossil, but the lack of client SSL/TLS
support in the official binaries is a pretty major bump in the road
for production use. I've read all the topics that I could find on this
subject, and I understand the arguments, but this really gets in the
way of the "simply download a precompiled binary" idea. Please
consider building a separate set of binaries and letting the users
select which version they want to use.

After ~4 hours of trial and error, I finally managed to compile
everything with mingw-w64. The following steps seem to work ok, but
please let me know if anything should be done differently. I assume
that mingw-w64 will be installed to C:\MinGW; adjust the paths as
needed if this isn't the case. You might also be able to use TDM-GCC,
but I haven't tested it. If you already have the toolchain, MSYS, and
wget installed, then you can jump to the final step.

1. Download and run mingw-get-inst from:

http://sourceforge.net/projects/mingw/files/latest/download?source=files

2. At the component selection step, only the "MinGW Developer ToolKit"
is needed (uncheck the C compiler).

3. Download mingw-w64 from:

http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/rubenvb/gcc-4.7-release/x86_64-w64-mingw32-gcc-4.7.2-release-win64_rubenvb.7z/download

4. Extract the archive and move the contents of the resulting mingw64
directory to C:\MinGW, overwriting all existing files.

5. Start MSYS shell from the Start Menu or C:\MinGW\msys\1.0\msys.bat.

6. Install wget by running:

mingw-get install msys-wget-bin

7. cd to the directory where you want to build fossil and run the
following script:


# Download and extract fossil source
wget http://www.fossil-scm.org/download/fossil-src-20121022124804.tar.gz
tar -xzf fossil-src-20121022124804.tar.gz
cd fossil-src-20121022124804

# Download, extract, and build zlib
wget http://zlib.net/zlib-1.2.7.tar.gz
tar -xzf zlib-1.2.7.tar.gz
cd zlib-1.2.7
make -f win32/Makefile.gcc
cd ..

# Download, extract, and build openssl
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -xzf openssl-1.0.1c.tar.gz
cd openssl-1.0.1c
./Configure mingw64
make build_ssl build_crypto
cd ..

# Build fossil
make -f win/Makefile.mingw FOSSIL_ENABLE_SSL=1


You can now test the created binary by running:

fossil clone https://www.fossil-scm.org/ myclone.fossil

I should point out that zlib and openssl are not actually installed.
Fossil's win/Makefile.mingw makes special provisions for getting the
libraries and header files from the ./zlib-1.2.7 and ./openssl-1.0.1c
directories. If these library versions change, you may need to edit
Makefile.mingw by hand to update the directory names.

- Max
___
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users