Last active
July 3, 2024 09:35
-
-
Save cniw/98e204d7dbc73a3fa1bf61629b2a2fc1 to your computer and use it in GitHub Desktop.
Build Waydroid for Debian or Ubuntu based distro v8
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# script name: build_waydroid_v8.sh | |
# description: Build Waydroid for Debian or Ubuntu based distro v8 | |
# upstream : https://gist.github.com/cniw/98e204d7dbc73a3fa1bf61629b2a2fc1 | |
# author : Wachid Adi Nugroho <[email protected]> | |
# date : 2022-07-07 | |
NC='\033[0m' | |
RED='\033[1;91m' | |
GREEN='\033[1;92m' | |
if [ ! -f /usr/bin/dpkg ] | |
then | |
echo -e "\n${RED}==> Can't run this script because your distro doesn't have dpkg package manager.${NC}\n" | |
exit 1 | |
fi | |
echo | |
echo -e "${GREEN}==> Updating repository ...${NC}" | |
sudo apt update || exit 1 | |
echo -e "${GREEN}==> Updating repository, done.${NC}\n" | |
echo -e "${GREEN}==> Installing build tools packages ...${NC}" | |
sudo apt install -y \ | |
build-essential cdbs devscripts equivs fakeroot \ | |
git git-buildpackage git-lfs || exit 1 | |
echo -e "${GREEN}==> Installing build tools packages, done.${NC}\n" | |
echo -e "${GREEN}==> Setting up build_changelog command ...${NC}" | |
sudo curl https://raw.githubusercontent.com/MrCyjaneK/waydroid-build/main/build_changelog \ | |
-o /usr/bin/build_changelog || exit 1 | |
sudo chmod +x ${_} || exit 1 | |
echo -e "${GREEN}==> Setting up build_changelog command, done${NC}\n" | |
echo -e "${GREEN}==> Setting up build directory ...${NC}" | |
mkdir -p ~/waydroid-build/packages | |
cd ${_%/*} | |
echo -e "${GREEN}==> Setting up build directory, done${NC}\n" | |
repos=( | |
"https://github.com/sailfishos/libglibutil.git" | |
"https://github.com/mer-hybris/libgbinder.git" | |
"https://github.com/waydroid/gbinder-python.git" | |
"https://github.com/waydroid/waydroid.git" | |
) | |
for i in ${repos[@]} | |
do | |
url=${i} | |
i=${i%*.git}; i=${i##*\/} | |
echo -e "${GREEN}==========> Start preparing ${i} <==========${NC}" | |
echo -e "${GREEN}==> Cloning git repository ${i} ...${NC}" | |
[ -d ${i} ] && sudo rm -rf "${i}" | |
git clone "${url}" || exit 1 | |
echo -e "${GREEN}==> Cloning git repository ${i}, done.${NC}\n" | |
cd "${i}" | |
echo 12 > debian/compat | |
if [ ! -f debian/changelog ]; then | |
echo -e "${GREEN}==> Building changelog ${i} ...${NC}" | |
build_changelog $(git tag -l --sort=authordate | sed 's/[a-z/]//g' | uniq | tail -n1) || exit 1 | |
echo -e "${GREEN}==> Building changelog ${i}, done.${NC}\n" | |
fi | |
echo -e "${GREEN}==> Installing build dependencies for ${i} ...${NC}" | |
sudo mk-build-deps -ir -t "apt -o Debug::pkgProblemResolver=yes -y --no-install-recommends" || exit 1 | |
echo -e "${GREEN}==> Installing build dependencies for ${i}, done.${NC}" | |
echo -e "${GREEN}==========> Finish preparing ${i} <==========${NC}\n" | |
echo -e "${GREEN}==========> Start building ${i} <==========${NC}" | |
echo -e "${GREEN}==> Building package(s): ${i} ...${NC}" | |
sudo debuild -b -uc -us | |
if [ ! $? -eq 0 ] | |
then | |
echo -e "\n${RED}==> Building package(s): ${i}, failed.${NC}\n" | |
exit 1 | |
else | |
echo -e "${GREEN}==> Building package(s): ${i}, done.${NC}" | |
echo -e "${GREEN}==========> Finish building ${i} <==========${NC}\n" | |
cd ~/waydroid-build | |
echo -e "${GREEN}==========> Start installing ${i} <==========${NC}" | |
echo -e "${GREEN}==> Installing package(s): ${i} ...${NC}" | |
sudo dpkg -i *.deb | |
if [ ! $? -eq 0 ] | |
then | |
echo -e "${RED}==> Installing ${i}, error.${NC}" | |
echo -e "${GREEN}==> Trying to fix it ...${NC}" | |
sudo apt install -f -y || exit 1 | |
echo -e "${GREEN}==> Fixed.${NC}" | |
fi | |
echo -e "${GREEN}==> Installing ${i}, success.${NC}" | |
echo -e "${GREEN}==> Installing package(s): ${i}, done.${NC}" | |
echo -e "${GREEN}==========> Finish installing ${i} <==========${NC}\n" | |
mv *.deb packages 2> /dev/null | |
mv *.ddeb packages 2> /dev/null | |
sudo rm -rf ${i} | |
fi | |
done | |
echo -e "${GREEN}==> Successfully build and installing all packages${NC}" | |
echo -e "${GREEN}==> Packages archive saved in $(realpath ~)/waydroid-build/packages/${NC}" | |
ls -1 ~/waydroid-build/packages/ | |
echo | |
sudo rm -f ~/waydroid-build/*.* /usr/bin/build_changelog 2> /dev/null |
Try DEB_BUILD_OPTIONS="parallel=1" debuild -b -uc -us
The automatic parallel build breaks.
Try DEB_BUILD_OPTIONS="parallel=1" debuild -b -uc -us The automatic parallel build breaks.
Yes, I tried this and it worked.
However, other tasks are not completed.
So I directly received this script, opened it with an editor, modified it with -eDEB_BUILD_OPTIONS="parallel=1" after debuild
, and it was done. (Found on the Internet. Hint in this article)
However, the conclusion was that waydroid failed to run.
When I ran waydroid init, an error occurred saying that gbinder was not found, and in waydroid-script, an error occurred saying that libhoudini does not work on this CPU.
The conclusion is that z3735f is difficult to drive.
Sad...
- gbinder error fix.
I just install anbox-modules. It works.
but libhoudini is failed.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hello, what should i do?
==========> Start building libglibutil <==========
==> Building package(s): libglibutil ...
dpkg-buildpackage -us -uc -ui -b
dpkg-buildpackage: info: source package libglibutil
dpkg-buildpackage: info: source version 1.0.75
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Slava Monich [email protected]
dpkg-source --before-build .
dpkg-buildpackage: info: host architecture i386
debian/rules clean
dh clean
dh_auto_clean
make -j4 clean
make[1]: Enter directory '/home/kustale/waydroid-build/libglibutil'make -C test clean
make[2]: Entering directory '/home/kustale/waydroid-build/libglibutil/test' make[3]: Entering directory '/home/kustale/waydroid-build/libglibutil/test/test_datapack' make[3]: Warning : Job server cannot be used: Use -j1. Add '+' to the parent make rule.
make[3]: warning: jobserver not available: use -j1. Add '+' to the parent make rule.
make[3]: warning: jobserver not available: use -j1. Add '+' to the parent make rule.
../common/Makefile:110: *** Multi-target pattern. stoppage.
make[3]: exit directory '/home/kustale/waydroid-build/libglibutil/test/test_datapack' make[2]: *** [Makefile:5: clean] error 2
make[2]: exit directory '/home/kustale/waydroid-build/libglibutil/test' make[1]: *** [Makefile:166: clean] error 2
make[1]: Exiting directory '/home/kustale/waydroid-build/libglibutil' dh_auto_clean: error: make -j4 clean returned exit code 2
make: *** [debian/rules:16: clean] error 25
dpkg-buildpackage: error: debian/rules clean subprocess returned exit status 2
debuild: fatal error at line 1182:
dpkg-buildpackage -us -uc -ui -b failed
==> Building package(s): libglibutil, failed.