Fossil

Changes To Release Build How-To
Login

Changes to "Release Build How-To" between 2020-04-25 21:01:08 and 2020-04-26 12:38:22

1
2
3
4
5
6
7
8
9
10
11
12
13







14
15


16
17

18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

36
37
38
39
40
41
42
43
44

45
46
47
48

49
50

51
52
53
54
55

56
57
58
59










60
61
62
63

64
65
66
67
68
69
70
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20


21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

53
54
55
56

57
58
59
60
61
62
63
64

65
66



67
68
69
70
71
72
73
74
75
76



77
78
79
80
81
82
83
84
85













+
+
+
+
+
+
+
-
-
+
+


+


















+








-
+



-
+


+




-
+

-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-

+







# 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

  *  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`
     <li> `make`
     </ul>
  *  `./configure --static --disable-fusefs`
  *  Edit the Makefile to move -ldl to the end
  *  `./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
## Windows 32-bit using MINGW


  *  On the Windows 10 laptop in a MinGW shell in ~/fossil/m1
  *  `fossil clean -x`
  *  `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
## Windows 64-bit using MSVC

  *  Compile OpenSSL-1.1.1g.  (See below)
  *  Get a "x64 Native Tools Command Prompt" window.
  *  Cd to the win/ subfolder of the Fossil source tree.
  *  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.
  *  Edit Makefile.msc to make SSLDIR point to the top-level directory
     for the OpenSSL build.  Not necessary if it is already
     in the compat/openssl-1.1.1g subdirectory.
  *  `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`
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
94
95
96
97
98
99
100


















-
-
-
-
-
-
-
-
-
-
-
  *  `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`