SourceCode » History » Version 50
Fil Lupin, 03/04/2023 02:53 PM
typo
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 | 50 | Fil Lupin | *Warning: to install the repo tool for Replicant 6 and before, please follow instructions [[Replicant60BuildDependenciesInstallation#Debian-9-stretch|here]].* |
21 | 48 | Fil Lupin | *Following instructions are only to be followed for Replicant versions greater than 6.* |
22 | |||
23 | 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]]. |
24 | 1 | Paul Kocialkowski | |
25 | 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: |
26 | 32 | Wolfgang Wiedmeyer | |
27 | 1 | Paul Kocialkowski | <pre> |
28 | mkdir tools |
||
29 | cd tools |
||
30 | 30 | Denis 'GNUtoo' Carikli | wget https://commondatastorage.googleapis.com/git-repo-downloads/repo |
31 | 1 | Paul Kocialkowski | chmod a+x repo |
32 | cd ../ |
||
33 | </pre> |
||
34 | 32 | Wolfgang Wiedmeyer | |
35 | 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 |
36 | 32 | Wolfgang Wiedmeyer | |
37 | <pre> |
||
38 | 35 | Wolfgang Wiedmeyer | repo |
39 | 1 | Paul Kocialkowski | </pre> |
40 | 32 | Wolfgang Wiedmeyer | |
41 | 35 | Wolfgang Wiedmeyer | with |
42 | 32 | Wolfgang Wiedmeyer | <pre> |
43 | 35 | Wolfgang Wiedmeyer | ../tools/repo |
44 | 32 | Wolfgang Wiedmeyer | </pre> |
45 | |||
46 | at the beginning of the following commands. |
||
47 | 1 | Paul Kocialkowski | |
48 | 26 | Paul Kocialkowski | h2. Initializing the repository |
49 | 1 | Paul Kocialkowski | |
50 | 16 | Paul Kocialkowski | The source manifest is the list of all the git repositories that are present in the Replicant tree. |
51 | 1 | Paul Kocialkowski | Each Replicant version has a dedicated branch with the proper source manifest. |
52 | |||
53 | 36 | Wolfgang Wiedmeyer | h3. Replicant 6.0 release version |
54 | |||
55 | 29 | Loic Dachary | <pre> |
56 | 36 | Wolfgang Wiedmeyer | mkdir replicant-6.0 |
57 | cd replicant-6.0 |
||
58 | 39 | Wolfgang Wiedmeyer | repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-6.0 |
59 | 29 | Loic Dachary | </pre> |
60 | |||
61 | 43 | Denis 'GNUtoo' Carikli | h3. Replicant 6.0 0004 RC2 |
62 | |||
63 | <pre> |
||
64 | mkdir replicant-6.0 |
||
65 | cd replicant-6.0 |
||
66 | repo init -u https://git.replicant.us/replicant/manifest.git -b refs/tags/replicant-6.0-0004-rc2 |
||
67 | </pre> |
||
68 | |||
69 | 1 | Paul Kocialkowski | h3. Replicant 6.0 development version |
70 | 33 | Wolfgang Wiedmeyer | |
71 | <pre> |
||
72 | mkdir replicant-6.0-dev |
||
73 | cd replicant-6.0-dev |
||
74 | 35 | Wolfgang Wiedmeyer | repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-6.0-dev |
75 | 33 | Wolfgang Wiedmeyer | </pre> |
76 | 1 | Paul Kocialkowski | |
77 | 14 | Denis 'GNUtoo' Carikli | h3. Replicant 4.2 |
78 | 1 | Paul Kocialkowski | |
79 | 15 | Denis 'GNUtoo' Carikli | <pre> |
80 | 11 | Paul Kocialkowski | mkdir replicant-4.2 |
81 | cd replicant-4.2 |
||
82 | 35 | Wolfgang Wiedmeyer | repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-4.2 |
83 | 1 | Paul Kocialkowski | </pre> |
84 | 11 | Paul Kocialkowski | |
85 | 4 | Paul Kocialkowski | h3. Replicant 4.0 |
86 | |||
87 | <pre> |
||
88 | mkdir replicant-4.0 |
||
89 | cd replicant-4.0 |
||
90 | 35 | Wolfgang Wiedmeyer | repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-4.0 |
91 | 4 | Paul Kocialkowski | </pre> |
92 | |||
93 | 1 | Paul Kocialkowski | h3. Replicant 2.3 |
94 | |||
95 | <pre> |
||
96 | mkdir replicant-2.3 |
||
97 | cd replicant-2.3 |
||
98 | 35 | Wolfgang Wiedmeyer | repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-2.3 |
99 | 1 | Paul Kocialkowski | </pre> |
100 | |||
101 | h3. Replicant 2.2 |
||
102 | |||
103 | <pre> |
||
104 | mkdir replicant-2.2 |
||
105 | cd replicant-2.2 |
||
106 | 35 | Wolfgang Wiedmeyer | repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-2.2 |
107 | 1 | Paul Kocialkowski | </pre> |
108 | |||
109 | 26 | Paul Kocialkowski | h2. Downloading/Updating the source code |
110 | 1 | Paul Kocialkowski | |
111 | 26 | Paul Kocialkowski | Now that you have configured @repo@, you can start downloading Replicant sources for the desired version. |
112 | 1 | Paul Kocialkowski | |
113 | *This step is very long and can take hours to complete!* |
||
114 | |||
115 | <pre> |
||
116 | repo sync |
||
117 | </pre> |
||
118 | |||
119 | 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]] |
120 | 37 | Wolfgang Wiedmeyer | |
121 | h3. Prebuilt apps |
||
122 | |||
123 | 49 | Fil Lupin | *Warning: following instructions are only for Replicant 6.0 0003 and before.* |
124 | |||
125 | 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: |
126 | |||
127 | <pre> |
||
128 | 47 | Kurtis Hanna | gpg --keyserver keys.gnupg.net --recv-key 37D2C98789D8311948394E3E41E7044E1DBA2E89 |
129 | 36 | Wolfgang Wiedmeyer | </pre> |
130 | |||
131 | Then you can download the prebuilts: |
||
132 | |||
133 | 17 | Paul Kocialkowski | <pre> |
134 | vendor/replicant/get-prebuilts |
||
135 | 18 | Taro K. | </pre> |
136 | |||
137 | 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. |
138 | 44 | Denis 'GNUtoo' Carikli | |
139 | h2. Supported protocols for building Replicant |
||
140 | |||
141 | 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. |
142 | 44 | Denis 'GNUtoo' Carikli | |
143 | 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://@. |
||
144 | |||
145 | 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. |