D 2019-09-27T21:49:22.077
L Release\sBuild\sHow-To
P e2f58c18e3345bec0e0d540576178fcfd1c0ab8244496035f080a1726fef7839
U drh
W 3054
Notes on how build and upload the precompiled binaries
Download Page
- Run "fossil uv edit download.js" to modify the "releases" variable
in the javascript to add the new release number and title and various
hyperlinks.
- Run "fossil uv sync" to propagate the changes from the previous step.
Linux
- On the machine named "bella", cd to ~/fossil/static
- rm -rf *
- ../m1/configure --static --disable-fusefs
- # Edit the Makefile to move -ldl to the end
- make
- strip fossil
- tar czf fossil-linux-x64-$VERSION.tar.gz fossil
OR:
- Log into www.fossil-scm.org
- cd to /home/www/fossil/b1
- Run the script ./rebuild.sh
- Logout
- Download the file www.fossil-scm.org:/home/www/usr/local/fossil
- tar czf fossil-linux-x64-$VERSION.tar.gz fossil
Windows
- Use MinGW instead of MSVC for windows builds since the resulting binary has
fewer kernel.dll dependencies and works with older versions of windows such as
XP → Does this argument still apply in late 2019? Can we start deliverying only 64-bit binaries for Windows now?
- On the Lenovo Yoga (Windows10) in a MinGW shell in ~/fossil/m1
- fossil clean -x
- make -f win/makefile.mingw FOSSIL_ENABLE_SSL=1
OPENSSLDIR=../../openssl-1.0.0l
- OR: tclsh ../mkfossil.tcl
- zip fossil-w32-$VERSION.zip fossil.exe
- Visit [https://submit.symantec.com/whitelist/isv/] to submit the new
binary for whitelisting. → On 2018-05-04 this link reported that
the whitelisting service is no longer available.
Windows-64
- Compile OpenSSL-1.1.1d. (See below)
- Get a "x64 Native Tools Command Prompt" window.
- Cd to the win/ subfolder of the Fossil source tree.
- Edit Makefile.msc to make SSLDIR point to the top-level directory
for the OpenSSL build.
- Run: nmake /f Makefile.msc FOSSIL_ENABLE_SSL=1 clean fossil.exe
- Run: zip fossil-w64-$VERSION.zip fossil.exe
Mac
- On 2015 MacPro in the ~/fossil/m1 directory
- fossil clean -f
- ./configure
- # Edit the Makefile to specify /usr/local/opt/openssl/lib/libcrypto.a
and /usr/local/opt/openssl/lib/libssl.a in place of
-lcrypto and -lssl, and to add -liconv at the end
- make
- # Verify dependencies using: otool -L ./fossil
- strip fossil
- tar czf fossil-macosx-$VERSION.tar.gz fossil
Source Tarball
- fossil tarball --name fossil-$VERSION version-$VERSION
fossil-src-$VERSION.tar.gz
Building OpenSSL 1.1.1 On Windows
- Download and unpack the tarball
- Install Strawberry perl
- Get a "x64 Native Tools Command Prompt"
- CD to the OpenSSL source directory
- Run: c:/strawberry/perl/bin/perl Configure VC-WIN64A no-asm no-ssl3 no-weak-ssl-ciphers no-shared
- Run: nmake /f makefile
Z fd684bc1b06b8abd3ba4648f2d9eb488