-
-
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 |
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
openssl
git-lfs
libxcrypt-compat
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
Suggest to add ability to chose download Java or not, some people like me are building old Android versions, where Java wasn't prebuilt.
Add this to the top of the script (after root check) (first variant):
Add this to the top of the script (after root check) (second variant):
Add this to the end of packages to install:
$installJava
Full dnf command will be:
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 $installJava