Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5d5fb1e1 authored by Romain Hunault's avatar Romain Hunault 💻
Browse files

First try

parent 4e4e8c50
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -8,7 +8,7 @@ source "https://rubygems.org"
#
# This will help ensure the proper Jekyll version is running.
# Happy Jekylling!
gem "jekyll", "~> 3.8.6"
gem "jekyll", "~> 4.0.0"

# This is the default theme for new Jekyll sites. You may change this to anything you like.
gem "minima", "~> 2.0"
@@ -32,3 +32,5 @@ end
# Performance-booster for watching directories on Windows
gem "wdm", "~> 0.1.0", :install_if => Gem.win_platform?

# i18n
gem 'jekyll-multiple-languages-plugin'
+30 −25
Original line number Diff line number Diff line
@@ -4,43 +4,48 @@ GEM
    addressable (2.7.0)
      public_suffix (>= 2.0.2, < 5.0)
    colorator (1.1.0)
    concurrent-ruby (1.1.5)
    concurrent-ruby (1.1.6)
    em-websocket (0.5.1)
      eventmachine (>= 0.12.9)
      http_parser.rb (~> 0.6.0)
    eventmachine (1.2.7)
    ffi (1.11.1)
    ffi (1.12.2)
    forwardable-extended (2.6.0)
    http_parser.rb (0.6.0)
    i18n (0.9.5)
    i18n (1.8.2)
      concurrent-ruby (~> 1.0)
    jekyll (3.8.6)
    jekyll (4.0.0)
      addressable (~> 2.4)
      colorator (~> 1.0)
      em-websocket (~> 0.5)
      i18n (~> 0.7)
      jekyll-sass-converter (~> 1.0)
      i18n (>= 0.9.5, < 2)
      jekyll-sass-converter (~> 2.0)
      jekyll-watch (~> 2.0)
      kramdown (~> 1.14)
      kramdown (~> 2.1)
      kramdown-parser-gfm (~> 1.0)
      liquid (~> 4.0)
      mercenary (~> 0.3.3)
      pathutil (~> 0.9)
      rouge (>= 1.7, < 4)
      rouge (~> 3.0)
      safe_yaml (~> 1.0)
      terminal-table (~> 1.8)
    jekyll-feed (0.12.1)
      jekyll (>= 3.7, < 5.0)
    jekyll-sass-converter (1.5.2)
      sass (~> 3.4)
    jekyll-multiple-languages-plugin (1.6.1)
      jekyll (>= 2.0, < 5.0)
    jekyll-sass-converter (2.1.0)
      sassc (> 2.0.1, < 3.0)
    jekyll-seo-tag (2.6.1)
      jekyll (>= 3.3, < 5.0)
    jekyll-watch (2.2.1)
      listen (~> 3.0)
    kramdown (1.17.0)
    kramdown (2.1.0)
    kramdown-parser-gfm (1.1.0)
      kramdown (~> 2.0)
    liquid (4.0.3)
    listen (3.1.5)
      rb-fsevent (~> 0.9, >= 0.9.4)
      rb-inotify (~> 0.9, >= 0.9.7)
      ruby_dep (~> 1.2)
    listen (3.2.1)
      rb-fsevent (~> 0.10, >= 0.10.3)
      rb-inotify (~> 0.9, >= 0.9.10)
    mercenary (0.3.6)
    minima (2.5.1)
      jekyll (>= 3.5, < 5.0)
@@ -48,31 +53,31 @@ GEM
      jekyll-seo-tag (~> 2.1)
    pathutil (0.16.2)
      forwardable-extended (~> 2.6)
    public_suffix (4.0.1)
    public_suffix (4.0.4)
    rb-fsevent (0.10.3)
    rb-inotify (0.10.0)
    rb-inotify (0.10.1)
      ffi (~> 1.0)
    rouge (3.10.0)
    ruby_dep (1.5.0)
    rouge (3.18.0)
    safe_yaml (1.0.5)
    sass (3.7.4)
      sass-listen (~> 4.0.0)
    sass-listen (4.0.0)
      rb-fsevent (~> 0.9, >= 0.9.4)
      rb-inotify (~> 0.9, >= 0.9.7)
    sassc (2.3.0)
      ffi (~> 1.9)
    terminal-table (1.8.0)
      unicode-display_width (~> 1.1, >= 1.1.1)
    thread_safe (0.3.6)
    tzinfo (1.2.5)
      thread_safe (~> 0.1)
    tzinfo-data (1.2019.2)
      tzinfo (>= 1.0.0)
    unicode-display_width (1.7.0)
    wdm (0.1.1)

PLATFORMS
  ruby

DEPENDENCIES
  jekyll (~> 3.8.6)
  jekyll (~> 4.0.0)
  jekyll-feed (~> 0.6)
  jekyll-multiple-languages-plugin
  minima (~> 2.0)
  tzinfo (~> 1.2)
  tzinfo-data
+7 −0
Original line number Diff line number Diff line
@@ -39,3 +39,10 @@ theme: minima
#   - vendor/cache/
#   - vendor/gems/
#   - vendor/ruby/

# i18n
languages: ["en", "fr"]
exclude_from_localizations: ["javascript", "images", "css"]

plugins:
  - jekyll-multiple-languages-plugin

_i18n/en.yml

0 → 100644
+0 −0

Empty file added.

_i18n/en/build-e.md

0 → 100644
+115 −0
Original line number Diff line number Diff line
---
layout: page
title: How to Build the /e/ ROM?
permalink: how-tos/build-e
---

## Definitions: Custom vs Unofficial vs Official

A **custom build** is a build that is using most of the /e/ source code to generate a new ROM. It can be modified in any manner by the developer, for any purpose.

An **unofficial /e/ build** is a build from the /e/ source code that is intended to generate the /e/ ROM for a new, not yet supported, device. It’s not been approved officially and is not included yet to the list of official /e/ ROMs. It can be published publicly tagged as "unofficial".

An **official /e/ build** is an unofficial build from /e/ source code that has reached a sufficient level of quality and has been validated. It has been published publicly as an official build on /e/ websites.

## Requirements for differents builds:

* **Custom builds**: if the source code has been modified and if the ROM is redistributed, we have several requirements:
    * any reference to /e/, including “/e/”, and our logo must be removed from the build
    * the redistribution must not let people think that it is /e/. **The name must be changed** and possibly say that it’s been forked from /e/
    * calls to our OTA server infrastructure should be removed
    * Custom ROMs can be built on /e/ servers only for exceptional reasons (special development…).

* **Unofficial /e/ builds**: source code can be modified only to reach full support on the target device. /e/ features, list of installed apps etc. shouldn’t be modified. Unofficial builds can be published on the /e/ website at a specific place with warnings and a list of what works/what doesn’t work. It doesn’t have nightly builds nor OTA updates.

* **Community builds**: the level of quality is considered high, security updates are applied if possible, but there is not yet or no more official maintainer. Community builds have nightly builds and can be updated OTA. Source code have to be hosted on our GitLab instance, or on trusted sources (LineageOS GitHub group, AOSP).

* **Official /e/ builds**: the level of quality must have reached our conditions. It must have an official maintainer. Official builds have nightly builds and can be updated OTA. Source code have to be hosted on our GitLab instance, or on trusted sources (LineageOS GitHub group, AOSP).

Any question about this? [contact us](https://e.foundation/contact/)

# How to build the ROM?

> WARNING : This process will only work on **case-sensitive** filesystems!
> * Windows: will not work
> * macOS: doesn't work either for HPS+ filesystem - adfs not tried
> * Linux: work on Ubuntu and CentOS

> System requirement: Your computer needs to be 64-bit and running a 64-bit operating system with at least 250GB of spare hard drive space and 8GB of RAM (or 16GB in a virtual machine).

## 1. Install docker

If you have not already done so, [install docker](https://docs.docker.com/install/)

## 2. Get our docker image

> Please run this step before each build, to be sure to get the last docker image.

```shell
$ sudo docker pull registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community
```

## 3. Create directories

```shell
$ sudo mkdir -p \
/srv/e/src \
/srv/e/zips \
/srv/e/logs \
/srv/e/ccache \
```

## 4. Start build

Run the following command. Don't forget to replace `<my-device>` with your device code !


```shell
$ sudo docker run \
-v "/srv/e/src:/srv/src" \
-v "/srv/e/zips:/srv/zips" \
-v "/srv/e/logs:/srv/logs" \
-v "/srv/e/ccache:/srv/ccache" \
-e "BRANCH_NAME=v1-nougat" \
-e "DEVICE_LIST=<my-device>" \
-e "OTA_URL=<ota-server-url>" \
-e "REPO=https://gitlab.e.foundation/e/os/android.git" \
registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community
```

List of values for `BRANCH_NAME`:
- v1-nougat
- v1-oreo
- v1-pie

> Example for Samsung Galaxy S8:
> ```shell
> $ sudo docker run \
> -v "/srv/e/src:/srv/src" \
> -v "/srv/e/zips:/srv/zips" \
> -v "/srv/e/logs:/srv/logs" \
> -v "/srv/e/ccache:/srv/ccache" \
> -e "BRANCH_NAME=v1-nougat" \
> -e "DEVICE_LIST=dreamlte" \
> -e "OTA_URL=<ota-server-url>" \
> -e "REPO=https://gitlab.e.foundation/e/os/android.git" \
> registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community
> ```



---
> The device code can be found on [/e/ devices list](../devices), [LineageOS wiki](https://wiki.lineageos.org/devices/) or with the following command:
> ```shell
> $ adb shell getprop ro.product.device
> ```

## 5. Get your image!

When your build is finished, please find your images inside `/srv/e/zips/<my-device>` folder. To install, please refer to our [documentation](../../devices).

If you need help, please join us on our [community support Telegram channel](https://t.me/joinchat/Fzzi3kUbP-AcoQz3zYHl5A).

To find more information about our docker image and its environment variables [here](https://gitlab.e.foundation/e/os/docker-lineage-cicd).

To report an issue about a build, please refer to [issues documentation](report-an-issue)
Loading