Artifact [6fd69490]

Artifact 6fd69490dc8d509972fb9577171d3aa1c40abf80e2238732388ae2795e3d9e56:

Wiki page [Release Build How-To] by drh 2020-05-19 18:01:06.
D 2020-05-19T18:01:06.826
L Release\sBuild\sHow-To
N text/x-markdown
P e5b5ccd8e87c83c66c5a24801157a951242de4e491bb8097338f0d917d075a73
U drh
W 3662
# Notes on how Fossil deliverables 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 --glob $PATTERN`
  *  `fossil uv sync`

## Linux

  *  Set up in-tree OpenSSL:
     <li> Download the OpenSSL tarball and unpack it into `compat/openssl`
     <li> `cd` into the `compat/openssl` directory
     <li> `./config no-ssl3 no-weak-ssl-ciphers no-shared no-threads --openssldir=/usr/lib/ssl`
     <li> `make`
  *  `./configure --with-openssl=tree --disable-fusefs`
  *  Edit the Makefile to move `-lpthread`
  *  `CFLAGS="-Os" make -e clean fossil`
  *  `strip fossil`
  *  Verify dependencies using "`ldd ./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
  *  cd to /home/www/fossil/b1
  *  Run the script ./
  *  Logout
  *  Download the file
  *  `strip fossil`
  *  `tar czf fossil-linux-x64-$VERSION.tar.gz fossil`
  *  `fossil uv add fossil-linux-x64-$VERSION.tar.gz`
  *  `fossil uv sync`

## Raspberry Pi

  *  `./configure`
  *  Edit Makefile so that instead of -lssl and -lcrypto
     there are complete paths to the libssl.a and
     libcrypto.a files.
  *  `CFLAGS="-Os" make -e clean fossil && strip fossil`
  *  `tar czf fossil-pi-$VERSION.tar.gz fossil`
  *  `fossil uv add fossil-pi-$VERSION.tar.gz`
  *  `fossil uv sync`

## Windows 32-bit using MINGW

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

## Windows 64-bit using MSVC

  *  Run all of the following from a "x64 Native Tools Command Prompt"
  *  Set up in-tree OpenSSL:
     <li> Install Strawberry-Perl if it is not already installed
     <li> Download the OpenSSL tarball and unpack under `compat/`
     <li> `cd` into the OpenSSL source directory
     <li> `c:/strawberry/perl/bin/perl Configure VC-WIN64A no-asm no-ssl3 no-weak-ssl-ciphers no-shared`
     <li> `nmake /f makefile`
  *  `cd` into the `win/` subfolder of the Fossil source tree.
  *  `nmake /f Makefile.msc FOSSIL_ENABLE_SSL=1 clean fossil.exe`
  *  Verify dependences: `dumpbin /dependents fossil.exe`
  *  `zip fossil-w64-$ fossil.exe`
  *  `fossil uv add fossil-w64-$`
  *  `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 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`

Z d7274a72a766c79a9b16dd7d49604482