Fossil

Artifact [ec46783800]
Login

Artifact ec4678380055c280aca764cff805a20e854bc2e715eb24b6d378d42fbd23e0d2:

Wiki page [Release Build How-To] by drh 2019-10-14 16:52:24.
D 2019-10-14T16:52:24.893
L Release\sBuild\sHow-To
N text/x-markdown
P 320ab12ed7a0acf8629ec7ab8ac7583cebf5e630d93eae70c5bd50ad707f3a89
U drh
W 2968
# Notes on how Fossil precompiled binaries are built and uploaded

## Download Page

  *  `fossil uv edit download.js`
  *  Edit the "releases" variable in the javascript
     to add the new release number and title and various
     hyperlinks.  Perhaps also remove older releases.
  *  Remove obsolete build products: `fossil uv rm $FILETODELETE`
  *  `fossil uv sync`

## Linux

  *  `./configure --static --disable-fusefs`
  *  Edit the Makefile to move -ldl to the end
  *  `CFLAGS="-Os" make -e clean fossil`
  *  `strip fossil`
  *  `tar czf fossil-linux-x64-$VERSION.tar.gz fossil`
  *  `fossil uv add fossil-linux-x64-$VERSION.tar.gz`
  *  `fossil uv sync`

## Linux (alternative procedures)

  *  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
  *  `strip fossil`
  *  `tar czf fossil-linux-x64-$VERSION.tar.gz fossil`
  *  `fossil uv add fossil-linux-x64-$VERSION.tar.gz`
  *  `fossil uv sync`


## Windows 32-bit


  *  On the Windows 10 laptop in a MinGW shell in ~/fossil/m1
  *  `fossil clean -x`
  *  `make -f win/makefile.mingw FOSSIL_ENABLE_SSL=1 OPENSSLDIR=../../openssl-1.0.1t`
  *  **OR:** `tclsh ../mkfossil.tcl`
  *  `zip fossil-w32-$VERSION.zip fossil.exe`
  *  `fossil uv add fossil-w32-$VERSION.zip`
  *  `fossil uv sync`

## Windows 64-bit

  *  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.
  *  `nmake /f Makefile.msc FOSSIL_ENABLE_SSL=1 clean fossil.exe`
  *  `zip fossil-w64-$VERSION.zip fossil.exe`
  *  `fossil uv add fossil-w64-$VERSION.zip`
  *  `fossil uv sync`

## Mac

  *  `./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
  *  `CFLAGS="-Os" make -e clean fossil`
  *  Verify no shared library dependencies using:  `otool -L ./fossil`
  *  `strip fossil`
  *  `codesign -s drh@sqlite.org fossil`
  *  Verify the signature using: `codesign -d -v fossil`
  *  `tar czf fossil-macosx-$VERSION.tar.gz fossil`
  *  `fossil uv add fossil-macosx-$VERSION.tar.gz`
  *  `fossil uv sync`

## Source Tarball

  *  `fossil tarball --name fossil-$VERSION version-$VERSION fossil-src-$VERSION.tar.gz`

---------------------

## Building OpenSSL 1.1.1 On Windows 64-bit with MSVC

  *  Download and unpack the OpenSSL source tarball
  *  Install Strawberry perl
  *  Get a "x64 Native Tools Command Prompt"
  *  CD to the top of the OpenSSL source directory
  *  `c:/strawberry/perl/bin/perl Configure VC-WIN64A no-asm no-ssl3 no-weak-ssl-ciphers no-shared`
  *  `nmake /f makefile`

Z 2e54ab828778bca9d04090e2a898f3e0