-
-
Save axxx007xxxz/60fea50f4b123e0163f972d1709068c2 to your computer and use it in GitHub Desktop.
#!/bin/bash | |
if [ $UID != "0" ]; then | |
echo "ERROR: You must run this script as root!" | |
exit 1 | |
fi | |
dnf install \ | |
@development-tools \ | |
android-tools \ | |
automake \ | |
bison \ | |
bzip2 \ | |
bzip2-libs \ | |
ccache \ | |
curl \ | |
dpkg-dev \ | |
gcc \ | |
gcc-c++ \ | |
gperf \ | |
libstdc++.i686 \ | |
libxml2-devel \ | |
lz4-libs \ | |
lzop \ | |
make \ | |
maven \ | |
ncurses-compat-libs \ | |
openssl-devel \ | |
pngcrush \ | |
python \ | |
python3 \ | |
python3-mako \ | |
python-mako \ | |
python-networkx \ | |
schedtool \ | |
squashfs-tools \ | |
syslinux-devel \ | |
zip \ | |
zlib-devel \ | |
zlib-devel.i686 | |
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > /usr/bin/repo && chmod +x /usr/bin/repo |
https://divestos.org/pages/build#deps
Divest OS has a comprehensive guide for the setup, even works for A7. You can ignore the firejail setup though, at least I did.
If you dont go that old (aka A9/up) you can ignore
sudo ln -sf /usr/share/crypto-policies/LEGACY/java.txt /etc/crypto-policies/back-ends/java.config;
and
openjdk-8-jdk
For A8/below you also need to dig into update-alternatives (or just alternatives) and set up python2 -> python and java symlinks
https://docs.fedoraproject.org/en-US/packaging-guidelines/Alternatives
For A10 I had to manually apply this fix
https://www.reddit.com/r/LineageOS/comments/18lej4b/if_your_build_is_failing_with_an_error_regarding
aka remove metadata_csum_seed
and orphan_file
from /etc/mke2fs.conf
I did run into issues since qpr2 since symbol_inject is now source built
https://android-review.googlesource.com/c/platform/prebuilts/build-tools/+/2671917/2/linux-x86/bin/symbol_inject
FAILED: out/soong/.intermediates/frameworks/base/tools/aapt2/aapt2/linux_glibc_x86_64/e560d7b19ebf7276b3e850d3d346dec8/aapt2
out/host/linux-x86/bin/symbol_inject -i out/soong/.intermediates/frameworks/base/tools/aapt2/aapt2/linux_glibc_x86_64/e560d7b19ebf7276b3e850d3d346dec8/unversioned/aapt2 -o out/soong/.intermediates/frameworks/base/tools/aapt2/aapt2/linux_glibc_x86_64/e560d7b19ebf7276b3e850d3d346dec8/aapt2 -s soong_build_number -from 'SOONG BUILD NUMBER PLACEHOLDER' -v $(cat out/soong/build_number.txt)
flag needs an argument: -v
Usage of out/host/linux-x86/bin/symbol_inject:
-dump
dump the symbol table for copying into a test
-from string
optional existing value of the symbol for verification
-i string
input file
-o string
output file
-s string
symbol to inject into
-v string
value to inject into symbol
Id be happy to know that Im not the only one having this issue on fedora 39 when trying to build lineage os 21/crdroid 10.3, so lmk if anyone of yall can replicate it.
I wasnt able to reproduce the error after a re-setup of fedora 39 on another PC without the legacy setup.
Needed to install libxcrypt-compat
for a successful build tho.
Update:
I built using jenkins before and it worked fine, but something in qpr2 broke building for me
It might be a jenkins issue or fedora specific, for now Im back to manual compilation, at least for A14.
A10/11/12/13 still work fine on jenkins, Im pretty sure I saw aosp building some tools from source now, which seems to have broken jenkins ig.
https://github.com/Jarlpenguin/releases
*can confirm, jenkins issue
trying to transition my workflow to docker
The compilation stopped because the "openssl" command was not found, I had already installed openssl-devel and it didn't work, so I had to install openssl was the solution.
I also think you need to add the "git-lfs" package as mentioned in the Lineage guide: https://wiki.lineageos.org/devices/merlinx/build#install-the-build-packages and https://wiki.lineageos.org/devices/merlinx/build#configure-git