Project

General

Profile

Actions

SourceCode » History » Revision 45

« Previous | Revision 45/51 (diff) | Next »
Denis 'GNUtoo' Carikli, 11/22/2020 04:40 PM


Source code

Browsing the source code

The Replicant source code is currently hosted by the FSF at: git.replicant.us

There is one branch per Replicant version, such as replicant-2.2.

Disk space

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.
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.

Source tree root folder

The path to the source tree root folder must not contain spaces.

Installing the repo tool

To be able download the complete source code, the repo tool 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 Build dependencies installation.

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:

mkdir tools
cd tools
wget https://commondatastorage.googleapis.com/git-repo-downloads/repo
chmod a+x repo
cd ../

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

repo

with

../tools/repo

at the beginning of the following commands.

Initializing the repository

The source manifest is the list of all the git repositories that are present in the Replicant tree.
Each Replicant version has a dedicated branch with the proper source manifest.

Replicant 6.0 release version

mkdir replicant-6.0
cd replicant-6.0
repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-6.0

Replicant 6.0 0004 RC2

mkdir replicant-6.0
cd replicant-6.0
repo init -u https://git.replicant.us/replicant/manifest.git -b refs/tags/replicant-6.0-0004-rc2

Replicant 6.0 development version

mkdir replicant-6.0-dev
cd replicant-6.0-dev
repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-6.0-dev

Replicant 4.2

mkdir replicant-4.2
cd replicant-4.2
repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-4.2

Replicant 4.0

mkdir replicant-4.0
cd replicant-4.0
repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-4.0

Replicant 2.3

mkdir replicant-2.3
cd replicant-2.3
repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-2.3

Replicant 2.2

mkdir replicant-2.2
cd replicant-2.2
repo init -u https://git.replicant.us/replicant/manifest.git -b replicant-2.2

Downloading/Updating the source code

Now that you have configured repo, you can start downloading Replicant sources for the desired version.

This step is very long and can take hours to complete!

repo sync

For the Replicant 6.0 release branch, it is possible and recommended to verify the signatures of the Git tags in all repositories:ReplicantSourceCodeTagsVerification

Prebuilt apps

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. The signing key can be retrieved and added to your GPG keyring using:

gpg --recv-key 37D2C98789D8311948394E3E41E7044E1DBA2E89

Then you can download the prebuilts:

vendor/replicant/get-prebuilts

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.

Supported protocols for building Replicant

While the git.replicant.us git server supports http://, https://, git://, and ssh:// only http:// and https:// are supported for building Replicant.

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://.

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 for instance.

Updated by Denis 'GNUtoo' Carikli almost 4 years ago · 45 revisions

Also available in: PDF HTML TXT