Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Artifact ID: | e274f19142aa9b2c1e1284f87292f84207da0a68d37efa72fde3f6227907df79 |
---|---|
Page Name: | Release Build How-To |
Date: | 2022-02-21 19:51:14 |
Original User: | drh |
Mimetype: | text/x-markdown |
Parent: | e59c3149026793355b7a0a48074ab9524f39362448f79004fb5ba21505ede501 (diff) |
Next | 5f861d44ab4281c91f587239ec3136917c4e0fb403336823ff3d504613c5e8ea |
Content
Notes on how Fossil deliverables are built and uploaded
- All builds statically link against OpenSSL, which is a library that is often missing from systems on which Fossil might be installed. By statically linking with OpenSSL, the dependency on OpenSSL is omitted, making the precompiled binaries more portable.
- As of 2022-01-05, OpenSSL 3.0.1 is used for all builds.
After-Release Checklist (This section is to jog the memory of the release manager)
- Verify that all items on the Before-Release Checklist have been run
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 edit latest-release.md
- Update the latest result tarball link
fossil uv sync
Linux
- Set up in-tree OpenSSL:
- Download the OpenSSL tarball and unpack it into
compat/openssl
-
cd
into thecompat/openssl
directory -
./config no-ssl3 no-weak-ssl-ciphers no-shared no-threads --openssldir=/usr/lib/ssl
-
CFLAGS=-Os make -e
- Download the OpenSSL tarball and unpack it into
./configure --with-openssl=tree --disable-fusefs
- If the Makefile contains a reference to
-lpthread
, remove it. 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
Mac
- For x64 builds, use the circa 2010 Macbook Air running MacOS 10.13.6. For arm64 builds use the 2020 miniMac running MacOS 12.0.1.
- Set up in-tree OpenSSL:
- Download the OpenSSL tarball and unpack it into
compat/openssl
-
cd
into thecompat/openssl
directory -
./config no-ssl3 no-weak-ssl-ciphers no-shared no-threads no-asm --openssldir=/etc/ssl
-
CFLAGS=-Os make -e
- Download the OpenSSL tarball and unpack it into
./configure --with-openssl=tree
CFLAGS=-Os make -e clean fossil
- Verify no shared library dependencies using:
otool -L ./fossil
strip fossil
- Optional:
codesign -s drh@sqlite.org fossil
then verify the signature usingcodesign -d -v fossil
tar czf fossil-mac-ARCH-VERSION.tar.gz fossil
where ARCH is either x64 or arm64.fossil uv add fossil-mac-ARCH-VERSION.tar.gz
fossil uv sync
Raspberry Pi
- Set up in-tree OpenSSL:
- Download the OpenSSL tarball and unpack it into
compat/openssl
-
cd
into thecompat/openssl
directory -
./config no-ssl3 no-weak-ssl-ciphers no-shared no-threads --openssldir=/usr/lib/ssl
-
CFLAGS=-Os make
- Download the OpenSSL tarball and unpack it into
./configure --with-openssl=tree
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 MSVC
- Run all of the following from a "x32 Native Tools Command Prompt"
- Set up in-tree OpenSSL:
- Install Strawberry-Perl if it is not already installed
- Download the OpenSSL tarball and unpack under
compat/
-
cd
into the OpenSSL source directory -
C:/Strawberry/perl/bin/perl Configure VC-WIN32 no-asm no-ssl3 no-weak-ssl-ciphers no-shared /D_WIN32_WINNT=0x0501
-
The _WIN32_WINT definition on the
perl Configure
command, and the FOSSIL_ENABLE_WINXP=1 term on the secondnmake
command below, are necessary in order for this build to work on older WindowsXP machines. See forum thread 66f106195aaf289e.
-
The _WIN32_WINT definition on the
-
nmake /f makefile
cd
into thewin/
subfolder of the Fossil source tree.nmake /f Makefile.msc FOSSIL_ENABLE_SSL=1 FOSSIL_ENABLE_WINXP=1 OPTIMIZATIONS=4 clean fossil.exe
- Verify dependencies:
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:
- Install Strawberry-Perl if it is not already installed
- Download the OpenSSL tarball and unpack under
compat/
-
cd
into 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
cd
into thewin/
subfolder of the Fossil source tree.nmake /f Makefile.msc FOSSIL_ENABLE_SSL=1 OPTIMIZATIONS=4 clean fossil.exe
- Verify dependencies:
dumpbin /dependents fossil.exe
zip fossil-w64-$VERSION.zip fossil.exe
fossil uv add fossil-w64-$VERSION.zip
fossil uv sync