Project

General

Profile

SourceCode » History » Version 47

Kurtis Hanna, 12/01/2020 08:54 PM
i accidentally had added GNUtoo's key here instead of F-Droid's signing key. fixed.

1 42 dl lud
h1. Source code
2 1 Paul Kocialkowski
3 25 Paul Kocialkowski
h2. Browsing the source code
4 2 Paul Kocialkowski
5 31 Wolfgang Wiedmeyer
The Replicant source code is currently hosted by the "FSF":https://www.fsf.org/ at: "git.replicant.us":https://git.replicant.us/replicant
6 27 Paul Kocialkowski
7
There is one branch per Replicant version, such as @replicant-2.2@.
8 2 Paul Kocialkowski
9 20 Paul Kocialkowski
h2. Disk space
10
11 36 Wolfgang Wiedmeyer
Before downloading the Replicant source code, make sure there is a considerable amount of disk space left on the drive you intend to build Replicant on.
12
It is advised to have 60-70GiB available for the Replicant source code and the produced files for one device. If you intend to build for multiple devices, every additional device will need ca. 17GiB.
13 20 Paul Kocialkowski
14 23 Paul Kocialkowski
h2. Source tree root folder
15 1 Paul Kocialkowski
16 23 Paul Kocialkowski
The path to the source tree root folder *must not contain spaces*.
17 1 Paul Kocialkowski
18 32 Wolfgang Wiedmeyer
h2. Installing the repo tool
19 1 Paul Kocialkowski
20 32 Wolfgang Wiedmeyer
To be able download the complete source code, the "@repo@ tool":https://android.googlesource.com/tools/repo needs to be installed. The distribution you are using may already have the tool packaged and it may already been installed as part of the [[BuildDependenciesInstallation|Build dependencies installation]].
21 1 Paul Kocialkowski
22 34 Wolfgang Wiedmeyer
It is recommended to install the @repo@ tool with the package manager. However, if the @repo@ tool is not available on your system, you can download and install it locally:
23 32 Wolfgang Wiedmeyer
24 1 Paul Kocialkowski
<pre>
25
mkdir tools
26
cd tools
27 30 Denis 'GNUtoo' Carikli
wget https://commondatastorage.googleapis.com/git-repo-downloads/repo
28 1 Paul Kocialkowski
chmod a+x repo
29
cd ../
30
</pre>
31 32 Wolfgang Wiedmeyer
32 35 Wolfgang Wiedmeyer
In the following, it is assumed that @repo@ is installed from your system's package manager. If you have installed @repo@ locally in @../tools/repo@, replace
33 32 Wolfgang Wiedmeyer
34
<pre>
35 35 Wolfgang Wiedmeyer
repo
36 1 Paul Kocialkowski
</pre>
37 32 Wolfgang Wiedmeyer
38 35 Wolfgang Wiedmeyer
with
39 32 Wolfgang Wiedmeyer
<pre>
40 35 Wolfgang Wiedmeyer
../tools/repo
41 32 Wolfgang Wiedmeyer
</pre>
42
43
at the beginning of the following commands.
44 1 Paul Kocialkowski
45 26 Paul Kocialkowski
h2. Initializing the repository
46 1 Paul Kocialkowski
47 16 Paul Kocialkowski
The source manifest is the list of all the git repositories that are present in the Replicant tree.
48 1 Paul Kocialkowski
Each Replicant version has a dedicated branch with the proper source manifest.
49
50 36 Wolfgang Wiedmeyer
h3. Replicant 6.0 release version
51
52 29 Loic Dachary
<pre>
53 36 Wolfgang Wiedmeyer
mkdir replicant-6.0
54
cd replicant-6.0
55 39 Wolfgang Wiedmeyer
repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-6.0
56 29 Loic Dachary
</pre>
57
58 43 Denis 'GNUtoo' Carikli
h3. Replicant 6.0 0004 RC2
59
60
<pre>
61
mkdir replicant-6.0
62
cd replicant-6.0
63
repo init -u https://git.replicant.us/replicant/manifest.git -b refs/tags/replicant-6.0-0004-rc2
64
</pre>
65
66 1 Paul Kocialkowski
h3. Replicant 6.0 development version
67 33 Wolfgang Wiedmeyer
68
<pre>
69
mkdir replicant-6.0-dev
70
cd replicant-6.0-dev
71 35 Wolfgang Wiedmeyer
repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-6.0-dev
72 33 Wolfgang Wiedmeyer
</pre>
73 1 Paul Kocialkowski
74 14 Denis 'GNUtoo' Carikli
h3. Replicant 4.2
75 1 Paul Kocialkowski
76 15 Denis 'GNUtoo' Carikli
<pre>
77 11 Paul Kocialkowski
mkdir replicant-4.2
78
cd replicant-4.2
79 35 Wolfgang Wiedmeyer
repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-4.2
80 1 Paul Kocialkowski
</pre>
81 11 Paul Kocialkowski
82 4 Paul Kocialkowski
h3. Replicant 4.0
83
84
<pre>
85
mkdir replicant-4.0
86
cd replicant-4.0
87 35 Wolfgang Wiedmeyer
repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-4.0
88 4 Paul Kocialkowski
</pre>
89
90 1 Paul Kocialkowski
h3. Replicant 2.3
91
92
<pre>
93
mkdir replicant-2.3
94
cd replicant-2.3
95 35 Wolfgang Wiedmeyer
repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-2.3
96 1 Paul Kocialkowski
</pre>
97
98
h3. Replicant 2.2
99
100
<pre>
101
mkdir replicant-2.2
102
cd replicant-2.2
103 35 Wolfgang Wiedmeyer
repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-2.2
104 1 Paul Kocialkowski
</pre>
105
106 26 Paul Kocialkowski
h2. Downloading/Updating the source code
107 1 Paul Kocialkowski
108 26 Paul Kocialkowski
Now that you have configured @repo@, you can start downloading Replicant sources for the desired version.
109 1 Paul Kocialkowski
110
*This step is very long and can take hours to complete!*
111
112
<pre>
113
repo sync
114
</pre>
115
116 38 Wolfgang Wiedmeyer
For the Replicant 6.0 release branch, it is possible and recommended to verify the signatures of the Git tags in all repositories:[[ReplicantSourceCodeTagsVerification]]
117 37 Wolfgang Wiedmeyer
118
h3. Prebuilt apps
119
120 36 Wolfgang Wiedmeyer
Once the source code is ready, you need to get the prebuilt applications (they are downloaded from F-Droid). Since Replicant 6.0, the prebuilt applications are checked if they were signed with the "F-Droid signing key":https://f-droid.org/wiki/page/Release_Channels_and_Signing_Keys. The signing key can be retrieved and added to your GPG keyring using:
121
122
<pre>
123 47 Kurtis Hanna
gpg --keyserver keys.gnupg.net --recv-key 37D2C98789D8311948394E3E41E7044E1DBA2E89
124 36 Wolfgang Wiedmeyer
</pre>
125
126
Then you can download the prebuilts:
127
128 17 Paul Kocialkowski
<pre>
129
vendor/replicant/get-prebuilts
130 18 Taro K.
</pre>
131
132 17 Paul Kocialkowski
You must redo these steps each time you want to sync your tree, in order to keep it up to date. Future syncs are faster than the first one.
133 44 Denis 'GNUtoo' Carikli
134
h2. Supported protocols for building Replicant
135
136 45 Denis 'GNUtoo' Carikli
While the git.replicant.us git server supports @http://@, @https://@, @git://@, and @ssh://@ only @http://@ and @https://@ are supported for building Replicant.
137 44 Denis 'GNUtoo' Carikli
138
This is because over time we need to move or rename repositories for various reasons. And in order to avoid breaking older Replicant versions (including specific releases that are tagged and that can't be modified anymore), we use @http://@ and @https://@ redirects, but we don't have any redirects with @git://@ or @ssh://@.
139
140
Using symlinks also doesn't scale as it has the side effect of making a repository appear multiple times in the cgit web interface that is used to display the repositories like the "Replicant specific repositories":https://git.replicant.us/replicant for instance.