Artifact
9aee069e7144a169fa7d7aa10052f7eef7ab6698fb096037d581a20ed1aad276:
Wiki page
[Release Build How-To] by
drh
2020-05-20 06:50:50.
D 2020-05-20T06:50:50.622
L Release\sBuild\sHow-To
N text/x-markdown
P 6fd69490dc8d509972fb9577171d3aa1c40abf80e2238732388ae2795e3d9e56
U drh
W 3773
# 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:
<ul>
<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`
</ul>
* `./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 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/bin/fossil
* `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: <ul>
<li> /usr/lib/arm-linux-gnueabihf/libssl.a
<li> /usr/lib/arm-linux-gnueabihf/libcrypto.a</ul>
* `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-$VERSION.zip fossil.exe`
* `fossil uv add fossil-w32-$VERSION.zip`
* `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:
<ul>
<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`
</ul>
* `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-$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`
Z 892a3406bdd49fd47db13a1aa3fcc8d4