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: * `./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. * `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: * `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 d7274a72a766c79a9b16dd7d49604482