Disclaimers
I’m somewhere between a beginner and an intermediate when it comes to this. A few years ago I was able to follow documentation to build a LineageOS ROM. I frankly didn’t try very hard to do my own build after failing and just used the provided official build. I also don’t have access to original error messages anymore.
Environment
I was using these steps which I followed from the device page.
I spun up a VPS on a cloud provider temporarily to do the build. I was using Ubuntu 20.04. Why? Short story - because I made a mistake/assumption and only caught it now as I write this.
The build command I was using was
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=v2.8-t" \
-e "DEVICE_LIST=herolte" \
-e "REPO=https://gitlab.e.foundation/e/os/releases.git" \
registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community
The only change I experimented with was switching v2.8-t to v2.8-s after learning about the official builds and seeing that’s the version they were using.
Feedback
In no particular order.
-
I met the listed system requirements of 400GB available space and 16GB of RAM but the build with docker would fail without much verbose detail as to what went wrong. I’m not particularly familiar with docker/containers/etc so updating documentation to help people figure out what failed and giving them an error message would be ideal. Currently this is the nearly equivalent of the infamous “Something happened” Windows error message.
- Describing to users how to bump up the verbosity the container outputs would be particularly helpful for everyone.
-
Step 5 regarding proprietary blobs is pretty unhelpful and looks to be pulled right from the LineageOS builds but it doesn’t really work the same. The path (for me) did not exist after waiting for (what I presume to be) repo sync to finish. According to a response in this thread it seems it isn’t required but documentation wasn’t updated to reflect this.
- It’s also not clear if this is “optional” or “required”. If it’s required, it feels like a paradox because that implies you need a working /e/ ROM to get the files. If it’s optional, it’s not clear what the consequences of not having the firmware blobs are.
-
As a new user, the guidance on what branch name or tag to use is quite vague and not very helpful.
- I don’t know what release will work for my device. The only clue on the device page is the build version of “S” but that doesn’t provide me with any context as to whether that’s just what is being officially/community maintained or what is compatible/possible.
- There’s probably hundreds of tags. What is 2.8 in relation to 2.9? What is t compared to s? Why do some release tags have an extra “
Release:” hyperlink? I assumed those ones were what I should focus on if I wanted something stable/that would work.
- Why do the build guides reference the “candy” versions of Android such as nougat/oreo/pie but these seem missing from the (latest) release tags?
Closing
I would like to thank the volunteers who work on /e/, LineageOS, etc.
I’m not looking for support here - I found some things I don’t like about /e/ (maybe they’re bugs, I don’t know) and I’ll probably switch back to LineageOS for now.