termux-packages/scripts/setup-ubuntu.sh

349 lines
7.8 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
set -e -u
2015-07-27 20:12:06 +00:00
PACKAGES=""
# For en_US.UTF-8 locale.
PACKAGES+=" locales"
# To provide /usr/bin/python as symlink to /usr/bin/python3
PACKAGES+=" python-is-python3"
# Used by build-package.sh and CI/CD scripts.
PACKAGES+=" curl"
PACKAGES+=" gnupg"
# Used for fetching package sources from Git repositories.
PACKAGES+=" git"
# Used for extracting package sources.
PACKAGES+=" lzip"
PACKAGES+=" tar"
PACKAGES+=" unzip"
PACKAGES+=" lrzip"
PACKAGES+=" lzop"
PACKAGES+=" lz4"
PACKAGES+=" zstd"
# Used by common build systems.
PACKAGES+=" autoconf"
PACKAGES+=" autogen"
PACKAGES+=" automake"
2019-07-21 15:57:09 +00:00
PACKAGES+=" autopoint"
PACKAGES+=" bison"
PACKAGES+=" flex"
PACKAGES+=" g++"
PACKAGES+=" g++-multilib"
PACKAGES+=" gawk"
PACKAGES+=" gettext"
PACKAGES+=" gperf"
PACKAGES+=" intltool"
PACKAGES+=" libglib2.0-dev"
PACKAGES+=" libltdl-dev"
PACKAGES+=" libtool-bin"
PACKAGES+=" m4"
PACKAGES+=" pkg-config"
PACKAGES+=" scons"
# Used to generate package documentation.
PACKAGES+=" asciidoc"
PACKAGES+=" asciidoctor"
PACKAGES+=" go-md2man"
PACKAGES+=" groff"
PACKAGES+=" help2man"
PACKAGES+=" pandoc"
PACKAGES+=" python3-docutils"
PACKAGES+=" python3-recommonmark"
2024-03-03 03:09:22 +00:00
PACKAGES+=" python3-myst-parser"
PACKAGES+=" python3-sphinx"
PACKAGES+=" python3-sphinx-rtd-theme"
PACKAGES+=" python3-sphinxcontrib.qthelp"
PACKAGES+=" scdoc"
PACKAGES+=" texinfo"
PACKAGES+=" txt2man"
PACKAGES+=" xmlto"
2020-12-07 23:10:42 +00:00
PACKAGES+=" xmltoman"
# Needed by python modules (e.g. asciinema) and some build systems.
2020-10-08 14:49:24 +00:00
PACKAGES+=" python3.9"
PACKAGES+=" python3.10"
PACKAGES+=" python3.11"
2020-06-13 15:49:52 +00:00
PACKAGES+=" python3-pip"
PACKAGES+=" python3-setuptools"
PACKAGES+=" python-wheel-common"
PACKAGES+=" python3.10-venv"
PACKAGES+=" python3.11-venv"
# Needed by package bc.
PACKAGES+=" ed"
2022-03-13 11:23:25 +00:00
# Needed by gnunet.
PACKAGES+=" recutils"
# Provides utility hexdump which is needed by package bitcoin.
PACKAGES+=" bsdmainutils"
# Needed by package seafile-client.
PACKAGES+=" valac"
# Needed by package libgcrypt.
PACKAGES+=" fig2dev"
2022-05-01 08:15:21 +00:00
# Needed by package gimp.
PACKAGES+=" gegl"
# Needed by package libidn2.
PACKAGES+=" gengetopt"
# Needed by package dbus-glib.
PACKAGES+=" libdbus-1-dev"
2022-03-24 21:10:33 +00:00
# Needed by package below.
2023-07-01 12:53:06 +00:00
PACKAGES+=" clang-15"
2022-03-24 21:10:33 +00:00
PACKAGES+=" libelf-dev"
# Needed by package ghostscript.
PACKAGES+=" libexpat1-dev"
PACKAGES+=" libjpeg-dev"
2022-10-26 20:16:05 +00:00
# Needed by package gimp3.
PACKAGES+=" librsvg2-dev"
2022-05-08 10:12:24 +00:00
# Needed by package news-flash-gtk.
PACKAGES+=" libsqlite3-dev"
2022-11-23 10:03:09 +00:00
# Needed by package fennel.
PACKAGES+=" lua5.3"
2022-04-08 04:19:36 +00:00
# Needed by package vlc.
PACKAGES+=" lua5.2"
# Needed by package luarocks.
PACKAGES+=" lua5.1"
# Used bt host build of package mariadb.
PACKAGES+=" libncurses5-dev"
# Needed to build neovim >= 8.0.0
PACKAGES+=" lua-lpeg"
PACKAGES+=" lua-mpack"
2022-12-23 05:25:51 +00:00
# Needed by host build of package ruby.
PACKAGES+=" libyaml-dev"
# Needed by package mkvtoolnix.
PACKAGES+=" ruby"
# Needed by host build of package nodejs.
PACKAGES+=" libc-ares-dev"
PACKAGES+=" libc-ares-dev:i386"
PACKAGES+=" libicu-dev"
# Needed by php.
PACKAGES+=" re2c"
# Needed by composer.
PACKAGES+=" php"
2023-03-08 13:29:19 +00:00
PACKAGES+=" php-xml"
PACKAGES+=" composer"
# Needed by package rust.
PACKAGES+=" libssl-dev" # Needed to build Rust
PACKAGES+=" llvm-16-dev"
PACKAGES+=" llvm-16-tools"
PACKAGES+=" clang-16"
# Needed for package smalltalk.
PACKAGES+=" libsigsegv-dev"
PACKAGES+=" zip"
# Needed for package sqlcipher.
PACKAGES+=" tcl"
# Needed by package swi-prolog.
PACKAGES+=" openssl"
PACKAGES+=" zlib1g-dev"
PACKAGES+=" libssl-dev:i386"
PACKAGES+=" zlib1g-dev:i386"
2020-04-09 15:23:07 +00:00
# For swift.
PACKAGES+=" lld"
2020-04-09 15:23:07 +00:00
# Needed by wrk.
PACKAGES+=" luajit"
2021-10-05 14:25:05 +00:00
# Needed by libduktape
PACKAGES+=" bc"
2020-08-24 19:21:18 +00:00
# needed by ovmf
PACKAGES+=" libarchive-tools"
2021-06-28 18:27:37 +00:00
# Needed by cavif-rs
PACKAGES+=" nasm"
# Needed by debianutils
PACKAGES+=" po4a"
2021-09-03 20:02:53 +00:00
# Needed by dgsh
PACKAGES+=" rsync"
2021-10-13 07:20:37 +00:00
# Needed by megacmd
PACKAGES+=" wget"
# Needed by codeblocks
PACKAGES+=" libwxgtk3.0-gtk3-dev"
PACKAGES+=" libgtk-3-dev"
# Needed by packages in unstable repository.
PACKAGES+=" comerr-dev"
PACKAGES+=" docbook-to-man"
PACKAGES+=" docbook-utils"
PACKAGES+=" erlang-nox"
PACKAGES+=" heimdal-multidev"
PACKAGES+=" libconfig-dev"
PACKAGES+=" libevent-dev"
PACKAGES+=" libgc-dev"
PACKAGES+=" libgmp-dev"
PACKAGES+=" libjansson-dev"
2020-06-18 23:54:45 +00:00
PACKAGES+=" libparse-yapp-perl"
PACKAGES+=" libreadline-dev"
PACKAGES+=" libunistring-dev"
# Needed by packages in X11 repository.
PACKAGES+=" alex"
PACKAGES+=" docbook-xsl-ns"
PACKAGES+=" gnome-common"
PACKAGES+=" gobject-introspection"
PACKAGES+=" gtk-3-examples"
PACKAGES+=" gtk-doc-tools"
PACKAGES+=" happy"
PACKAGES+=" itstool"
PACKAGES+=" libdbus-glib-1-dev-bin"
PACKAGES+=" libgdk-pixbuf2.0-dev"
PACKAGES+=" libwayland-dev"
PACKAGES+=" python-setuptools"
2020-05-05 17:34:34 +00:00
PACKAGES+=" python3-xcbgen"
2021-06-04 10:34:15 +00:00
PACKAGES+=" sassc"
PACKAGES+=" texlive-extra-utils"
2023-03-20 17:41:17 +00:00
PACKAGES+=" unifdef"
PACKAGES+=" wayland-scanner++"
2020-06-22 13:00:22 +00:00
PACKAGES+=" xfce4-dev-tools"
PACKAGES+=" xfonts-utils"
PACKAGES+=" xutils-dev"
PACKAGES+=" desktop-file-utils"
# Needed by packages in science repository
PACKAGES+=" protobuf-c-compiler"
PACKAGES+=" sqlite3"
# Needed by packages in game repository
2020-05-09 18:17:56 +00:00
PACKAGES+=" cvs"
PACKAGES+=" python3-yaml"
2022-10-20 01:58:23 +00:00
# Needed by gobject-introspection (termux_setup_gir).
PACKAGES+=" bash-static"
2020-11-05 15:06:04 +00:00
# Needed by apt.
PACKAGES+=" triehash"
2020-12-08 16:01:57 +00:00
# Needed by aspell dictionaries.
PACKAGES+=" aspell"
2023-04-18 03:36:42 +00:00
# Needed by package gdb.
PACKAGES+=" guile-3.0-dev"
# Needed by package kphp.
PACKAGES+=" python3-jsonschema"
2022-04-15 14:03:35 +00:00
# Needed by package lilypond.
PACKAGES+=" fontforge-nox"
2022-10-06 14:53:52 +00:00
PACKAGES+=" guile-3.0"
2022-04-15 14:03:35 +00:00
PACKAGES+=" python3-fontforge"
PACKAGES+=" texlive-metapost"
# Needed by package motif.
PACKAGES+=" libfl-dev"
PACKAGES+=" libxft-dev"
PACKAGES+=" libxt-dev"
PACKAGES+=" xbitmaps"
2022-01-17 20:31:14 +00:00
# Needed by proxmark3/proxmark3-git
PACKAGES+=" gcc-arm-none-eabi"
2022-03-11 05:31:06 +00:00
# Needed by pypy
PACKAGES+=" qemu-user-static"
# Required by cava
PACKAGES+=" xxd"
# Required by samba
PACKAGES+=" libjson-perl"
# Required for parsing repo.json
PACKAGES+=" jq"
# Required by txikijs's hostbuild step
PACKAGES+=" libcurl4-openssl-dev"
# Required by openjdk-17
PACKAGES+=" openjdk-17-jre openjdk-17-jdk"
2022-12-22 23:29:29 +00:00
# Required by qt5-qtwebengine
PACKAGES+=" libnss3 libnss3:i386 libnss3-dev"
PACKAGES+=" libwebp7 libwebp7:i386 libwebp-dev"
PACKAGES+=" libwebpdemux2 libwebpdemux2:i386"
PACKAGES+=" libwebpmux3 libwebpmux3:i386"
# Required by wine-stable
PACKAGES+=" libfreetype-dev:i386"
# Required by CGCT
PACKAGES+=" libdebuginfod-dev"
# Needed to set up CGCT and also to set up other packages
PACKAGES+=" patchelf"
# Needed by lldb for python integration
PACKAGES+=" swig"
# Do not require sudo if already running as root.
if [ "$(id -u)" = "0" ]; then
SUDO=""
else
SUDO="sudo"
fi
# Allow 32-bit packages.
$SUDO dpkg --add-architecture i386
# Add apt.llvm.org repo to get newer LLVM than Ubuntu provided
$SUDO cp $(dirname "$(realpath "$0")")/llvm-snapshot.gpg.key /etc/apt/trusted.gpg.d/apt.llvm.org.asc
$SUDO chmod a+r /etc/apt/trusted.gpg.d/apt.llvm.org.asc
{
echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy main"
echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main"
} | $SUDO tee /etc/apt/sources.list.d/apt-llvm-org.list > /dev/null
# Add ppa repo to be able to get openjdk-17 on ubuntu 22.04
$SUDO cp $(dirname "$(realpath "$0")")/openjdk-r-ppa.gpg /etc/apt/trusted.gpg.d/
$SUDO chmod a+r /etc/apt/trusted.gpg.d/openjdk-r-ppa.gpg
echo "deb https://ppa.launchpadcontent.net/openjdk-r/ppa/ubuntu/ jammy main" | $SUDO tee /etc/apt/sources.list.d/openjdk-r-ubuntu-ppa-jammy.list > /dev/null
2021-10-05 15:40:30 +00:00
$SUDO apt-get -yq update
2016-09-23 00:47:11 +00:00
$SUDO env DEBIAN_FRONTEND=noninteractive \
2018-05-02 21:00:28 +00:00
apt-get install -yq --no-install-recommends $PACKAGES
2015-07-27 20:12:06 +00:00
# Pip for python2.
curl -L --output /tmp/py2-get-pip.py https://bootstrap.pypa.io/pip/2.7/get-pip.py
$SUDO python2 /tmp/py2-get-pip.py
rm -f /tmp/py2-get-pip.py
$SUDO locale-gen --purge en_US.UTF-8
echo -e 'LANG="en_US.UTF-8"\nLANGUAGE="en_US:en"\n' | $SUDO tee -a /etc/default/locale
2020-10-30 19:34:46 +00:00
. $(dirname "$(realpath "$0")")/properties.sh
$SUDO mkdir -p $TERMUX_PREFIX
$SUDO chown -R $(whoami) /data
$SUDO ln -s /data/data/com.termux/files/usr/opt/bionic-host /system