Fossil

Changes To Release Build How-To
Login

Changes to "Release Build How-To" between 2019-09-27 21:49:22 and 2019-09-28 00:30:14

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
86
87
88








89

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

-
+

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

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

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

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

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

+
-
-
-
-
+
+
+
+
-

-
-
-
+
+
+
-
-
-
-
-

+

-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
<h1>Notes on how build and upload the precompiled binaries</h1>
# Notes on how build and upload the precompiled binaries


<h2>Download Page</h2>
<ul>
<li>Run "fossil uv edit download.js" to modify the "releases" variable
    in the javascript to add the new release number and title and various
    hyperlinks.
<li>Run "fossil uv sync" to propagate the changes from the previous step.
## Download Page

  *  Run "fossil uv edit download.js" to modify the "releases" variable
     in the javascript to add the new release number and title and various
     hyperlinks.
  *  Run "fossil uv sync" to propagate the changes from the previous step.
</ul>

<h2>Linux</h2>
<ul>
<li>On the machine named "bella", cd to ~/fossil/static</li>
<li>rm -rf *</li>
<li>../m1/configure --static --disable-fusefs</li>
<li># Edit the Makefile to move -ldl to the end
<li>make</li>
<li>strip fossil</li>
<li>tar czf fossil-linux-x64-$VERSION.tar.gz fossil
<p><b>OR:</b>
<li>Log into www.fossil-scm.org
<li>cd to /home/www/fossil/b1
<li>Run the script ./rebuild.sh
<li>Logout
<li>Download the file www.fossil-scm.org:/home/www/usr/local/fossil
<li>tar czf fossil-linux-x64-$VERSION.tar.gz fossil
## Linux

  *  On the machine named "bella", cd to ~/fossil/static
  *  rm -rf *
  *  ../m1/configure --static --disable-fusefs
  *  Edit the Makefile to move -ldl to the end
  *  Make change -O2 to -Os
  *  make
  *  strip fossil
  *  tar czf fossil-linux-x64-$VERSION.tar.gz fossil
  *  **OR**
  *  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/local/fossil
  *  strip fossil
  *  tar czf fossil-linux-x64-$VERSION.tar.gz fossil
</ul>

<h2>Windows</h2>
<ul>
<li>Use MinGW instead of MSVC for windows builds since the resulting binary has
## Windows 32-bit


fewer kernel.dll dependencies and works with older versions of windows such as
XP &rarr; Does this argument still apply in late 2019?  Can we start deliverying only 64-bit binaries for Windows now?</li>
<li>On the Lenovo Yoga (Windows10) in a MinGW shell in ~/fossil/m1</li>
<li>fossil clean -x</li>
<li>make -f win/makefile.mingw FOSSIL_ENABLE_SSL=1
  *  On the Windows 10 laptop in a MinGW shell in ~/fossil/m1
  *  fossil clean -x
  *  make -f win/makefile.mingw FOSSIL_ENABLE_SSL=1 OPENSSLDIR=../../openssl-1.0.1t
OPENSSLDIR=../../openssl-1.0.0l</li>
<li><b>OR:</b> tclsh ../mkfossil.tcl
<li>zip fossil-w32-$VERSION.zip fossil.exe
  *  **OR:** tclsh ../mkfossil.tcl
  *  zip fossil-w32-$VERSION.zip fossil.exe
<li>Visit [https://submit.symantec.com/whitelist/isv/] to submit the new
    binary for whitelisting. &rarr; On 2018-05-04 this link reported that
    the whitelisting service is no longer available.
</ul>

<h2>Windows-64</h2>
<ul>
<li>Compile OpenSSL-1.1.1d.  (See below)
<li>Get a "x64 Native Tools Command Prompt" window.
<li>Cd to the win/ subfolder of the Fossil source tree.
<li>Edit Makefile.msc to make SSLDIR point to the top-level directory
    for the OpenSSL build.
<li>Run: nmake /f Makefile.msc FOSSIL_ENABLE_SSL=1 clean fossil.exe
<li>Run: zip fossil-w64-$VERSION.zip fossil.exe
## Windows 64-bit

  *  Compile OpenSSL-1.1.1d.  (See below)
  *  Get a "x64 Native Tools Command Prompt" window.
  *  Cd to the win/ subfolder of the Fossil source tree.
  *  Edit Makefile.msc to make SSLDIR point to the top-level directory
     for the OpenSSL build.
  *  nmake /f Makefile.msc FOSSIL_ENABLE_SSL=1 clean fossil.exe
  *  zip fossil-w64-$VERSION.zip fossil.exe
</ul>

<h2>Mac</h2>
<ul>
## Mac

<li>On 2015 MacPro in the ~/fossil/m1 directory</li>
<li>fossil clean -f</li>
<li>./configure</li>
<li># Edit the Makefile to specify /usr/local/opt/openssl/lib/libcrypto.a 
and /usr/local/opt/openssl/lib/libssl.a in place of
  *  fossil clean -f
  *  ./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
  *  Maybe:  Change -O0 to -Os
<li>make</li>
<li># Verify dependencies using:  otool -L ./fossil
<li>strip fossil</li>
<li>tar czf fossil-macosx-$VERSION.tar.gz fossil
  *  make
  *  Verify no shared library dependencies using:  otool -L ./fossil
  *  strip fossil
  *  tar czf fossil-macosx-$VERSION.tar.gz fossil
</ul>

<h2>Source Tarball</h2>
<ul>
<li>fossil tarball --name fossil-$VERSION version-$VERSION
## Source Tarball

  * fossil tarball --name fossil-$VERSION version-$VERSION fossil-src-$VERSION.tar.gz<br>
fossil-src-$VERSION.tar.gz<br>
</li>
</ul>
<ul>
</ul>

---------------------

<hr>
<h2>Building OpenSSL 1.1.1 On Windows</h2>
<ul>
<li> Download and unpack the tarball
<li> Install Strawberry perl
<li> Get a "x64 Native Tools Command Prompt"
<li> CD to the OpenSSL source directory
<li> Run: c:/strawberry/perl/bin/perl Configure VC-WIN64A no-asm no-ssl3 no-weak-ssl-ciphers no-shared
<li> Run: nmake /f makefile
## 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
</ul>