From d9b4de04fc1632224ab72052984185a437d346fb Mon Sep 17 00:00:00 2001 From: tareksander <57038324+tareksander@users.noreply.github.com> Date: Wed, 8 Dec 2021 11:42:42 +0100 Subject: [PATCH 01/10] Add termux-am-2 Client to use the new am implementation from this PR: https://github.com/termux/termux-app/pull/2458 --- packages/termux-am-2/build.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 packages/termux-am-2/build.sh diff --git a/packages/termux-am-2/build.sh b/packages/termux-am-2/build.sh new file mode 100644 index 000000000000000..af09b44c82cee6a --- /dev/null +++ b/packages/termux-am-2/build.sh @@ -0,0 +1,11 @@ +TERMUX_PKG_HOMEPAGE=https://github.com/tareksander/termux-am-2 + +TERMUX_PKG_DESCRIPTION="A faster version of am with less features that only works while Termux is running." +TERMUX_PKG_LICENSE="GPL-3.0" +TERMUX_PKG_MAINTAINER="@termux" + +TERMUX_PKG_VERSION=1.0 + +TERMUX_PKG_SRCURL=https://github.com/tareksander/termux-am-2/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz + +TERMUX_PKG_SHA256=f5e85f2cf9f0d052626ff078215ac30728c72a83648015202b99c878c2fe19bf From 700d81302fac0b5375bb9f61f83cc5526e555123 Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Thu, 9 Dec 2021 15:35:38 +0100 Subject: [PATCH 02/10] termux-am-socket: rename from termux-am-2, switch to termux repo And remove empty lines from build.sh. --- packages/termux-am-2/build.sh | 11 ----------- packages/termux-am-socket/build.sh | 7 +++++++ 2 files changed, 7 insertions(+), 11 deletions(-) delete mode 100644 packages/termux-am-2/build.sh create mode 100644 packages/termux-am-socket/build.sh diff --git a/packages/termux-am-2/build.sh b/packages/termux-am-2/build.sh deleted file mode 100644 index af09b44c82cee6a..000000000000000 --- a/packages/termux-am-2/build.sh +++ /dev/null @@ -1,11 +0,0 @@ -TERMUX_PKG_HOMEPAGE=https://github.com/tareksander/termux-am-2 - -TERMUX_PKG_DESCRIPTION="A faster version of am with less features that only works while Termux is running." -TERMUX_PKG_LICENSE="GPL-3.0" -TERMUX_PKG_MAINTAINER="@termux" - -TERMUX_PKG_VERSION=1.0 - -TERMUX_PKG_SRCURL=https://github.com/tareksander/termux-am-2/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz - -TERMUX_PKG_SHA256=f5e85f2cf9f0d052626ff078215ac30728c72a83648015202b99c878c2fe19bf diff --git a/packages/termux-am-socket/build.sh b/packages/termux-am-socket/build.sh new file mode 100644 index 000000000000000..c256a685879248e --- /dev/null +++ b/packages/termux-am-socket/build.sh @@ -0,0 +1,7 @@ +TERMUX_PKG_HOMEPAGE=https://github.com/termux/termux-am-socket +TERMUX_PKG_DESCRIPTION="A faster version of am with less features that only works while Termux is running" +TERMUX_PKG_LICENSE="GPL-3.0" +TERMUX_PKG_MAINTAINER="@termux" +TERMUX_PKG_VERSION=1.01 +TERMUX_PKG_SRCURL=https://github.com/termux/termux-am-socket/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz +TERMUX_PKG_SHA256=b50b02902c613df1888640975c8d637b911913a476128cf19adad697b5e44428 From 56fccb1a240bf7204edcf0c8f2af8c38b6cb273a Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Thu, 23 Dec 2021 15:22:58 +0100 Subject: [PATCH 03/10] termux-am-socket: update to 1.03 --- packages/termux-am-socket/build.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/termux-am-socket/build.sh b/packages/termux-am-socket/build.sh index c256a685879248e..c8f3ce16ad9167f 100644 --- a/packages/termux-am-socket/build.sh +++ b/packages/termux-am-socket/build.sh @@ -2,6 +2,6 @@ TERMUX_PKG_HOMEPAGE=https://github.com/termux/termux-am-socket TERMUX_PKG_DESCRIPTION="A faster version of am with less features that only works while Termux is running" TERMUX_PKG_LICENSE="GPL-3.0" TERMUX_PKG_MAINTAINER="@termux" -TERMUX_PKG_VERSION=1.01 +TERMUX_PKG_VERSION=1.03 TERMUX_PKG_SRCURL=https://github.com/termux/termux-am-socket/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz -TERMUX_PKG_SHA256=b50b02902c613df1888640975c8d637b911913a476128cf19adad697b5e44428 +TERMUX_PKG_SHA256=4c573ea2809a3364a17fd738a539469f74e4810db955d33ec685cf1cee764865 From bf9053702ce407671032b275e10b8e61cc91bb5e Mon Sep 17 00:00:00 2001 From: Leonid Pliushch Date: Fri, 30 Oct 2020 22:59:45 +0200 Subject: [PATCH 04/10] Add scripts/generate-bootstraps.sh --- scripts/generate-bootstraps.sh | 329 +++++++++++++++++++++++++++++++++ 1 file changed, 329 insertions(+) create mode 100755 scripts/generate-bootstraps.sh diff --git a/scripts/generate-bootstraps.sh b/scripts/generate-bootstraps.sh new file mode 100755 index 000000000000000..11e03d956c413f8 --- /dev/null +++ b/scripts/generate-bootstraps.sh @@ -0,0 +1,329 @@ +#!/usr/bin/env bash +## +## Script for generating bootstrap archives. +## + +set -e + +. $(dirname "$(realpath "$0")")/properties.sh +: "${TERMUX_PREFIX:="/data/data/com.termux/files/usr"}" +BOOTSTRAP_TMPDIR=$(mktemp -d "${TMPDIR:-/tmp}/bootstrap-tmp.XXXXXXXX") +trap 'rm -rf $BOOTSTRAP_TMPDIR' EXIT + +# By default, bootstrap archives will be built for all architectures +# supported by Termux application. +# Override with option '--architectures'. +TERMUX_ARCHITECTURES=("aarch64" "arm" "i686" "x86_64") + +# Can be changed by using '--repository' option. +REPO_BASE_URL="https://packages.termux.org/termux-main-21" + +# A list of non-essential packages. By default it is empty, but can +# be filled with option '--add'. +declare -a ADDITIONAL_PACKAGES + +# Check for some important utilities that may not be available for +# some reason. +for cmd in ar awk curl grep gzip find sed tar xargs xz zip; do + if [ -z "$(command -v $cmd)" ]; then + echo "[!] Utility '$cmd' is not available in PATH." + exit 1 + fi +done + +# Download package lists from remote repository. +# Actually, there 2 lists are downloaded: one architecture-independent and one +# for architecture specified as '$1' argument. +read_package_list() { + local architecture + for architecture in all "$1"; do + if [ ! -e "${BOOTSTRAP_TMPDIR}/packages.${architecture}" ]; then + echo "[*] Downloading package list for architecture '${architecture}'..." + curl \ + --fail \ + --location \ + --output "${BOOTSTRAP_TMPDIR}/packages.${architecture}" \ + "${REPO_BASE_URL}/dists/stable/main/binary-${architecture}/Packages" + echo >> "${BOOTSTRAP_TMPDIR}/packages.${architecture}" + fi + + echo "[*] Reading package list for '${architecture}'..." + while read -r -d $'\xFF' package; do + if [ -n "$package" ]; then + local package_name + package_name=$(echo "$package" | grep -i "^Package:" | awk '{ print $2 }') + + if [ -z "${PACKAGE_METADATA["$package_name"]}" ]; then + PACKAGE_METADATA["$package_name"]="$package" + else + local prev_package_ver cur_package_ver + cur_package_ver=$(echo "$package" | grep -i "^Version:" | awk '{ print $2 }') + prev_package_ver=$(echo "${PACKAGE_METADATA["$package_name"]}" | grep -i "^Version:" | awk '{ print $2 }') + + # If package has multiple versions, make sure that our metadata + # contains the latest one. + if [ "$(echo -e "${prev_package_ver}\n${cur_package_ver}" | sort -rV | head -n1)" = "${cur_package_ver}" ]; then + PACKAGE_METADATA["$package_name"]="$package" + fi + fi + fi + done < <(sed -e "s/^$/\xFF/g" "${BOOTSTRAP_TMPDIR}/packages.${architecture}") + done +} + +# Download specified package, its depenencies and then extract *.deb files to +# the bootstrap root. +pull_package() { + local package_name=$1 + local package_tmpdir="${BOOTSTRAP_PKGDIR}/${package_name}" + mkdir -p "$package_tmpdir" + + local package_url + package_url="$REPO_BASE_URL/$(echo "${PACKAGE_METADATA[${package_name}]}" | grep -i "^Filename:" | awk '{ print $2 }')" + if [ "${package_url}" = "$REPO_BASE_URL" ] || [ "${package_url}" = "${REPO_BASE_URL}/" ]; then + echo "[!] Failed to determine URL for package '$package_name'." + exit 1 + fi + + local package_dependencies + package_dependencies=$( + while read -r token; do + echo "$token" | cut -d'|' -f1 | sed -E 's@\(.*\)@@' + done < <(echo "${PACKAGE_METADATA[${package_name}]}" | grep -i "^Depends:" | sed -E 's@^[Dd]epends:@@' | tr ',' '\n') + ) + + # Recursively handle dependencies. + if [ -n "$package_dependencies" ]; then + local dep + for dep in $package_dependencies; do + if [ ! -e "${BOOTSTRAP_PKGDIR}/${dep}" ]; then + pull_package "$dep" + fi + done + unset dep + fi + + if [ ! -e "$package_tmpdir/package.deb" ]; then + echo "[*] Downloading '$package_name'..." + curl --fail --location --output "$package_tmpdir/package.deb" "$package_url" + + echo "[*] Extracting '$package_name'..." + (cd "$package_tmpdir" + ar x package.deb + + # data.tar may have extension different from .xz + if [ -f "./data.tar.xz" ]; then + data_archive="data.tar.xz" + elif [ -f "./data.tar.gz" ]; then + data_archive="data.tar.gz" + else + echo "No data.tar.* found in '$package_name'." + exit 1 + fi + + # Do same for control.tar. + if [ -f "./control.tar.xz" ]; then + control_archive="control.tar.xz" + elif [ -f "./control.tar.gz" ]; then + control_archive="control.tar.gz" + else + echo "No control.tar.* found in '$package_name'." + exit 1 + fi + + # Extract files. + tar xf "$data_archive" -C "$BOOTSTRAP_ROOTFS" + + # Register extracted files. + tar tf "$data_archive" | sed -E -e 's@^\./@/@' -e 's@^/$@/.@' -e 's@^([^./])@/\1@' > "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/var/lib/dpkg/info/${package_name}.list" + + # Generate checksums (md5). + tar xf "$data_archive" + find data -type f -print0 | xargs -0 -r md5sum | sed 's@^\.$@@g' > "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/var/lib/dpkg/info/${package_name}.md5sums" + + # Extract metadata. + tar xf "$control_archive" + { + cat control + echo "Status: install ok installed" + echo + } >> "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/var/lib/dpkg/status" + + # Additional data: conffiles & scripts + for file in conffiles postinst postrm preinst prerm; do + if [ -f "${PWD}/${file}" ]; then + cp "$file" "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/var/lib/dpkg/info/${package_name}.${file}" + fi + done + ) + fi +} + +# Final stage: generate bootstrap archive and place it to current +# working directory. +# Information about symlinks is stored in file SYMLINKS.txt. +create_bootstrap_archive() { + echo "[*] Creating 'bootstrap-${1}.zip'..." + (cd "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}" + # Do not store symlinks in bootstrap archive. + # Instead, put all information to SYMLINKS.txt + while read -r -d '' link; do + echo "$(readlink "$link")←${link}" >> SYMLINKS.txt + rm -f "$link" + done < <(find . -type l -print0) + + zip -r9 "${BOOTSTRAP_TMPDIR}/bootstrap-${1}.zip" ./* + ) + + mv -f "${BOOTSTRAP_TMPDIR}/bootstrap-${1}.zip" ./ + echo "[*] Finished successfully (${1})." +} + +show_usage() { + echo + echo "Usage: generate-bootstraps.sh [options]" + echo + echo "Generate bootstrap archives for Termux application." + echo + echo "Options:" + echo + echo " -h, --help Show this help." + echo + echo " -a, --add PKG_LIST Specify one or more additional packages" + echo " to include into bootstrap archive." + echo " Multiple packages should be passed as" + echo " comma-separated list." + echo + echo " --architectures ARCH_LIST Override default list of architectures" + echo " for which bootstrap archives will be" + echo " created." + echo " Multiple architectures should be passed" + echo " as comma-separated list." + echo + echo " -r, --repository URL Specify URL for APT repository from" + echo " which packages will be downloaded." + echo + echo "Architectures: ${TERMUX_ARCHITECTURES[*]}" + echo "Repository URL: ${REPO_BASE_URL}" + echo "Prefix: ${TERMUX_PREFIX}" + echo +} + +while (($# > 0)); do + case "$1" in + -h|--help) + show_usage + exit 0 + ;; + -a|--add) + if [ $# -gt 1 ] && [ -n "$2" ] && [[ $2 != -* ]]; then + for pkg in $(echo "$2" | tr ',' ' '); do + ADDITIONAL_PACKAGES+=("$pkg") + done + unset pkg + shift 1 + else + echo "[!] Option '--add' requires an argument." + show_usage + exit 1 + fi + ;; + --architectures) + if [ $# -gt 1 ] && [ -n "$2" ] && [[ $2 != -* ]]; then + TERMUX_ARCHITECTURES=() + for arch in $(echo "$2" | tr ',' ' '); do + TERMUX_ARCHITECTURES+=("$arch") + done + unset arch + shift 1 + else + echo "[!] Option '--architectures' requires an argument." + show_usage + exit 1 + fi + ;; + -r|--repository) + if [ $# -gt 1 ] && [ -n "$2" ] && [[ $2 != -* ]]; then + REPO_BASE_URL="$2" + shift 1 + else + echo "[!] Option '--repository' requires an argument." + show_usage + exit 1 + fi + ;; + *) + echo "[!] Got unknown option '$1'" + show_usage + exit 1 + ;; + esac + shift 1 +done + +for package_arch in "${TERMUX_ARCHITECTURES[@]}"; do + BOOTSTRAP_ROOTFS="$BOOTSTRAP_TMPDIR/rootfs-${package_arch}" + BOOTSTRAP_PKGDIR="$BOOTSTRAP_TMPDIR/packages-${package_arch}" + + # Create initial directories for $TERMUX_PREFIX + mkdir -p "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/etc/apt/apt.conf.d" + mkdir -p "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/etc/apt/preferences.d" + mkdir -p "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/var/lib/dpkg/info" + mkdir -p "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/var/lib/dpkg/triggers" + mkdir -p "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/var/lib/dpkg/updates" + mkdir -p "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/var/log/apt" + touch "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/var/lib/dpkg/available" + touch "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/var/lib/dpkg/status" + mkdir -p "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/tmp" + + # Read package metadata. + unset PACKAGE_METADATA + declare -A PACKAGE_METADATA + read_package_list "$package_arch" + + # Package manager. + pull_package apt + pull_package game-repo + pull_package science-repo + + # Core utilities. + pull_package bash + pull_package bzip2 + pull_package command-not-found + pull_package coreutils + pull_package curl + pull_package dash + pull_package diffutils + pull_package findutils + pull_package gawk + pull_package grep + pull_package gzip + pull_package less + pull_package procps + pull_package psmisc + pull_package sed + pull_package tar + pull_package termux-exec + pull_package termux-tools + pull_package util-linux + pull_package xz-utils + + # Additional. + pull_package ed + pull_package debianutils + pull_package dos2unix + pull_package inetutils + pull_package nano + pull_package net-tools + pull_package patch + pull_package unzip + + # Handle additional packages. + for add_pkg in "${ADDITIONAL_PACKAGES[@]}"; do + pull_package "$add_pkg" + done + unset add_pkg + + # Create bootstrap archive. + create_bootstrap_archive "$package_arch" +done From 4e4cb67925e819f46478bfdf691811131a7a03fb Mon Sep 17 00:00:00 2001 From: Leonid Pliushch Date: Tue, 13 Apr 2021 13:16:04 +0300 Subject: [PATCH 05/10] scripts/generate-bootstraps.sh: make architecture-independent (arch "all") package list optional It is not available in some repository types, e.g. in built with "aptly". --- scripts/generate-bootstraps.sh | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/scripts/generate-bootstraps.sh b/scripts/generate-bootstraps.sh index 11e03d956c413f8..673951c1b9837ed 100755 --- a/scripts/generate-bootstraps.sh +++ b/scripts/generate-bootstraps.sh @@ -32,18 +32,23 @@ for cmd in ar awk curl grep gzip find sed tar xargs xz zip; do done # Download package lists from remote repository. -# Actually, there 2 lists are downloaded: one architecture-independent and one -# for architecture specified as '$1' argument. +# Actually, there 2 lists can be downloaded: one architecture-independent and +# one for architecture specified as '$1' argument. That depends on repository. +# If repository has been created using "aptly", then architecture-independent +# list is not available. read_package_list() { local architecture for architecture in all "$1"; do if [ ! -e "${BOOTSTRAP_TMPDIR}/packages.${architecture}" ]; then echo "[*] Downloading package list for architecture '${architecture}'..." - curl \ - --fail \ - --location \ + if ! curl --fail --location \ --output "${BOOTSTRAP_TMPDIR}/packages.${architecture}" \ - "${REPO_BASE_URL}/dists/stable/main/binary-${architecture}/Packages" + "${REPO_BASE_URL}/dists/stable/main/binary-${architecture}/Packages"; then + if [ "$architecture" = "all" ]; then + echo "[!] Skipping architecture-independent package list as not available..." + continue + fi + fi echo >> "${BOOTSTRAP_TMPDIR}/packages.${architecture}" fi From 69caa94a8c7a60adef05da37c7b5d3378af0df54 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Fri, 7 Jan 2022 23:59:14 +0500 Subject: [PATCH 06/10] Fixed: Fix broken bootstrap zips by adding termux-keyring dependency The science-repo and game-repo were recently removed and their packages were added to the main repo. During this their dependencies were removed from bootstrap zips in generate-bootstrap.sh script. However, both these packages were dependent on termux-keyring package and the script did not have an entry itself for termux-keyring, so their removal resulted in missing termux-keyring package in bootstrap, which resulted in no keys to exist in `$TERMUX_PREFIX/etc/apt/trusted.gpg.d/` on fresh install, which resulted in `The following signatures couldn't be verified because the public key is not available: NO_PUBKEY*` errors when running `apt update` command for any bootstrap generated after Dec 14, 2021. https://github.com/termux/termux-packages/commits/master/scripts/generate-bootstraps.sh https://github.com/termux/termux-packages/commit/87b9cd3cf https://github.com/termux/termux-packages/commit/758ec3a92 https://github.com/termux/termux-packages/commit/a3307822 https://github.com/termux/termux-packages/commit/f8746124 --- scripts/generate-bootstraps.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/generate-bootstraps.sh b/scripts/generate-bootstraps.sh index 673951c1b9837ed..022f7b02cbcec3b 100755 --- a/scripts/generate-bootstraps.sh +++ b/scripts/generate-bootstraps.sh @@ -309,6 +309,7 @@ for package_arch in "${TERMUX_ARCHITECTURES[@]}"; do pull_package sed pull_package tar pull_package termux-exec + pull_package termux-keyring pull_package termux-tools pull_package util-linux pull_package xz-utils From a02dca75ba2d857e2cdbd96fa4beff2b620f1b1e Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Wed, 27 Apr 2022 11:52:44 +0200 Subject: [PATCH 07/10] termux-keyring: remove xeffyr's key --- packages/termux-keyring/build.sh | 3 +-- packages/termux-keyring/xeffyr.gpg | Bin 3188 -> 0 bytes 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 packages/termux-keyring/xeffyr.gpg diff --git a/packages/termux-keyring/build.sh b/packages/termux-keyring/build.sh index 6421a903870b507..faef6f126bf6994 100644 --- a/packages/termux-keyring/build.sh +++ b/packages/termux-keyring/build.sh @@ -1,7 +1,7 @@ TERMUX_PKG_HOMEPAGE=https://github.com/termux TERMUX_PKG_DESCRIPTION="GPG public keys for the official Termux repositories" TERMUX_PKG_LICENSE="Apache-2.0" -TERMUX_PKG_VERSION=1.2 +TERMUX_PKG_VERSION=1.3 TERMUX_PKG_SKIP_SRC_EXTRACT=true TERMUX_PKG_PLATFORM_INDEPENDENT=true @@ -10,7 +10,6 @@ termux_step_make_install() { # Maintainer-specific keys. install -Dm600 $TERMUX_PKG_BUILDER_DIR/grimler.gpg $TERMUX_PREFIX/etc/apt/trusted.gpg.d/ - install -Dm600 $TERMUX_PKG_BUILDER_DIR/xeffyr.gpg $TERMUX_PREFIX/etc/apt/trusted.gpg.d/ # Key for automatic builds (via CI). install -Dm600 $TERMUX_PKG_BUILDER_DIR/termux-autobuilds.gpg $TERMUX_PREFIX/etc/apt/trusted.gpg.d/ diff --git a/packages/termux-keyring/xeffyr.gpg b/packages/termux-keyring/xeffyr.gpg deleted file mode 100644 index 4cb9c26834a3d3e0f88267bef19498bedc0bb7be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3188 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 Date: Wed, 27 Apr 2022 11:53:13 +0200 Subject: [PATCH 08/10] generate-bootstraps: add more essential packages busybox, dpkg, gpgv, libc++, libiconv, termux-am-socket and termux-licenses are also necessary to get a usable terminal on android-5 devices. --- scripts/generate-bootstraps.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/scripts/generate-bootstraps.sh b/scripts/generate-bootstraps.sh index 022f7b02cbcec3b..9d2a93f3718c66c 100755 --- a/scripts/generate-bootstraps.sh +++ b/scripts/generate-bootstraps.sh @@ -293,23 +293,30 @@ for package_arch in "${TERMUX_ARCHITECTURES[@]}"; do # Core utilities. pull_package bash + pull_package busybox pull_package bzip2 pull_package command-not-found pull_package coreutils pull_package curl pull_package dash + pull_package dpkg pull_package diffutils pull_package findutils pull_package gawk + pull_package gpgv pull_package grep pull_package gzip pull_package less + pull_package libc++ + pull_package libiconv pull_package procps pull_package psmisc pull_package sed pull_package tar + pull_package termux-am-socket pull_package termux-exec pull_package termux-keyring + pull_package termux-licenses pull_package termux-tools pull_package util-linux pull_package xz-utils From b917336cbbb6b39ce887f5c4af71e7b9af8d4527 Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Tue, 26 Apr 2022 21:38:41 +0200 Subject: [PATCH 09/10] apt: remove Fornwall's key from trusted keys --- packages/apt/build.sh | 3 +-- packages/apt/trusted.gpg | Bin 1198 -> 0 bytes 2 files changed, 1 insertion(+), 2 deletions(-) delete mode 100644 packages/apt/trusted.gpg diff --git a/packages/apt/build.sh b/packages/apt/build.sh index 555e23e78abc1e2..111f257fd91efce 100644 --- a/packages/apt/build.sh +++ b/packages/apt/build.sh @@ -2,6 +2,7 @@ TERMUX_PKG_HOMEPAGE=https://packages.debian.org/apt TERMUX_PKG_DESCRIPTION="Front-end for the dpkg package manager" TERMUX_PKG_LICENSE="GPL-2.0" TERMUX_PKG_VERSION=1.4.10 +TERMUX_PKG_REVISION=1 TERMUX_PKG_SRCURL=http://ftp.debian.org/debian/pool/main/a/apt/apt_${TERMUX_PKG_VERSION}.tar.xz TERMUX_PKG_SHA256=eaa314e8ebc9e62fedf316d196d1a99d894fd715e6385ed18afd41cc2cd5b127 # apt-key requires utilities from coreutils, findutils, gpgv, grep, sed. @@ -14,7 +15,6 @@ TERMUX_PKG_ESSENTIAL=true TERMUX_PKG_CONFFILES=" etc/apt/sources.list -etc/apt/trusted.gpg " TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" @@ -52,7 +52,6 @@ termux_step_pre_configure() { termux_step_post_make_install() { printf "# The main termux repository:\ndeb https://packages.termux.org/termux-main-21 stable main\n" > $TERMUX_PREFIX/etc/apt/sources.list - cp $TERMUX_PKG_BUILDER_DIR/trusted.gpg $TERMUX_PREFIX/etc/apt/ rm $TERMUX_PREFIX/include/apt-pkg -r # apt-transport-tor diff --git a/packages/apt/trusted.gpg b/packages/apt/trusted.gpg deleted file mode 100644 index 323fadb33660bbd60d7a699ce29c35563d8387b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1198 zcmV;f1X25$0SyFGjgguG2mrbP#2qPjnoTmT5lb_P)xhyi&PIgJnMcTyY|tgcAH_u%cOtl!XF7ljS!Kv2s~+QiV1K$Syz_#chn4^JpYI zNEC04+fwHTH_s|@qpiF4sjiPp)3DyFponmENZ5gdDBivU2I^zHl0RRECCq{B*WO8Y1AVzO;Zg*j9Y#=;la%E(4X=^}cZ*p#T zVQg$JZe?^ni2*nS69EDMA_W3djgguH8v_Ol2?z%R0tOWb0tpHW1Qr4V0RkQY0vCV) z3JDNr0JnZ^jSA?-+LGYcbc5a;wAiO@%K!a#wr|I?eh|f&jJxpk^i*(b z_PBn6_SpM6@#e85q$-!=>-jo?8`3vHB$P8dHFAzMk!5?<{wL5}ovX7ZA;z>;%{nSU zf55~dADgYe>1Q3Npknm)I#k5Mrxcw{YyTxuNJ`ttmH_v@B=yT=W_)e(xYa9C-O~JW zq9Vh>9DcjwG+#s;nTmbHxj@>%R3NKwFR53TM#UDm%vWraXuU2!VPw?QVfIk{&46Ah zYu0_~6QSvHU#y2}b-#ytchk?$N?)$*D~k{55%oLF1+`i#BV?V zk+QAp;dj9MZv2C=0ssTK0SyFGjgguG2msS{F|ne->BHljV_C;5G1>vT?=m>}+MNGl zcoOOPNHtBmP}l7c492rPaovP9mY@QVbBa!zJn`>8A;Ptxxbw{nPim$wG>@}rDAbOp zs^jB9K8FW(<3*KNRR;KGl8?w7fkox)HiI`*3-|XcfwwWAVZLxC^wqt27$3{UszcAb z3W77x2`Uyi(-zUc6BW9Py%%ekia6$H*|EQYxm1NDPnpsPw1!i!-V|i~xA;TnH58Jt zJEM4A*AK?ATNiC8ki@8b-@TIQ9cgQY=;lcNZ%W67PF|(FE1XdtA0%Swz)VirmPx&i zJzCgKh=&@7^aKB9)#+khwLCNzPZt0Y0RRDs0Urby0RjLC1p-rzk(vS<3;+rV5N80l zer=5k=g&$A0D@U=(IbZXdlxK;w>8Yv7)6^k>kR_qJ?6GT&3>1;oGBW~uhO;qhDR>o zPl7%-{molS(dk}O>dRvO~I%E2x@b28q+!(!9z!MCCJ%VS`=<0WJizZ-#y(@zEv>22wc3Z zTkRhRAOYF4xF*I?JYA{25N~oBy%VEswutwqQ3N|8RYf#8ci%2(2lot1Qjen`i MF%W%jEU*Fq0|eDB4gdfE From 626e4adf05cb4c020362e480b9508dc346abbef1 Mon Sep 17 00:00:00 2001 From: Henrik Grimler Date: Wed, 27 Apr 2022 11:49:32 +0200 Subject: [PATCH 10/10] generate-bootstraps: create $PREFIX/var/cache/apt/archives as well --- scripts/generate-bootstraps.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/generate-bootstraps.sh b/scripts/generate-bootstraps.sh index 9d2a93f3718c66c..5ebcba804af2a05 100755 --- a/scripts/generate-bootstraps.sh +++ b/scripts/generate-bootstraps.sh @@ -273,6 +273,7 @@ for package_arch in "${TERMUX_ARCHITECTURES[@]}"; do # Create initial directories for $TERMUX_PREFIX mkdir -p "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/etc/apt/apt.conf.d" mkdir -p "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/etc/apt/preferences.d" + mkdir -p "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/var/cache/apt/archives" mkdir -p "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/var/lib/dpkg/info" mkdir -p "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/var/lib/dpkg/triggers" mkdir -p "${BOOTSTRAP_ROOTFS}/${TERMUX_PREFIX}/var/lib/dpkg/updates"