Compare commits

..
2 Commits
Author SHA1 Message Date
Lucy Phipps a5e94c6b33 libduktape: always install pyyaml 2021-10-05 17:37:34 +01:00
Lucy Phipps 88341f3192 update docker image to Ubuntu 21.04 2021-10-05 17:37:34 +01:00
1329 changed files with 4369 additions and 34775 deletions
-14
View File
@@ -1,14 +0,0 @@
daysUntilStale: 45
daysUntilClose: 14
exemptLabels:
- "not stale"
- "package request"
markComment: >
This issue/PR has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
staleLabel: wontfix
-1
View File
@@ -7,7 +7,6 @@ on:
jobs:
update-packages:
if: github.repository == 'termux/termux-packages'
runs-on: ubuntu-latest
steps:
- name: Clone repository
+89 -132
View File
@@ -9,11 +9,6 @@ on:
pull_request:
paths:
- 'packages/**'
workflow_dispatch:
inputs:
packages:
description: "A space-separated names of packages selected for rebuilding"
required: true
jobs:
build:
@@ -32,83 +27,72 @@ jobs:
fetch-depth: 1000
- name: Build
run: |
if [ "${{ github.event_name }}" != "workflow_dispatch" ]; then
BASE_COMMIT=$(jq --raw-output .pull_request.base.sha "$GITHUB_EVENT_PATH")
OLD_COMMIT=$(jq --raw-output .commits[0].id "$GITHUB_EVENT_PATH")
HEAD_COMMIT=$(jq --raw-output .commits[-1].id "$GITHUB_EVENT_PATH")
if [ "$BASE_COMMIT" = "null" ]; then
if [ "$OLD_COMMIT" = "$HEAD_COMMIT" ]; then
# Single-commit push.
echo "Processing commit: ${HEAD_COMMIT}"
CHANGED_FILES=$(git diff-tree --no-commit-id --name-only -r "${HEAD_COMMIT}")
else
# Multi-commit push.
OLD_COMMIT="${OLD_COMMIT}~1"
echo "Processing commit range: ${OLD_COMMIT}..${HEAD_COMMIT}"
CHANGED_FILES=$(git diff-tree --no-commit-id --name-only -r "${OLD_COMMIT}" "${HEAD_COMMIT}")
fi
BASE_COMMIT=$(jq --raw-output .pull_request.base.sha "$GITHUB_EVENT_PATH")
OLD_COMMIT=$(jq --raw-output .commits[0].id "$GITHUB_EVENT_PATH")
HEAD_COMMIT=$(jq --raw-output .commits[-1].id "$GITHUB_EVENT_PATH")
if [ "$BASE_COMMIT" = "null" ]; then
if [ "$OLD_COMMIT" = "$HEAD_COMMIT" ]; then
# Single-commit push.
echo "Processing commit: ${HEAD_COMMIT}"
CHANGED_FILES=$(git diff-tree --no-commit-id --name-only -r "${HEAD_COMMIT}")
else
# Pull requests.
echo "Processing pull request #$(jq --raw-output .pull_request.number "$GITHUB_EVENT_PATH"): ${BASE_COMMIT}..HEAD"
CHANGED_FILES=$(git diff-tree --no-commit-id --name-only -r "${BASE_COMMIT}" "HEAD")
# Multi-commit push.
OLD_COMMIT="${OLD_COMMIT}~1"
echo "Processing commit range: ${OLD_COMMIT}..${HEAD_COMMIT}"
CHANGED_FILES=$(git diff-tree --no-commit-id --name-only -r "${OLD_COMMIT}" "${HEAD_COMMIT}")
fi
else
# Pull requests.
echo "Processing pull request #$(jq --raw-output .pull_request.number "$GITHUB_EVENT_PATH"): ${BASE_COMMIT}..HEAD"
CHANGED_FILES=$(git diff-tree --no-commit-id --name-only -r "${BASE_COMMIT}" "HEAD")
fi
mkdir -p ./artifacts ./debs
touch ./debs/.placeholder
if [ "${{ github.event_name }}" != "workflow_dispatch" ]; then
# Process tag '%ci:no-build' that may be added as line to commit message.
# Forces CI to cancel current build with status 'passed'.
if grep -qiP '^\s*%ci:no-build\s*$' <(git log --format="%B" -n 1 "HEAD"); then
tar cf artifacts/debs-${{ matrix.target_arch }}.tar debs
echo "[!] Force exiting as tag '%ci:no-build' was applied to HEAD commit message."
exit 0
fi
# Build local Docker image if setup scripts were changed.
# Useful for pull requests submitting changes for both build environment and packages.
if grep -qP '^scripts/(Dockerfile|setup-ubuntu\.sh)$' <<< "$CHANGED_FILES"; then
echo "Detected changes for environment setup scripts. Building custom Docker image now."
cd ./scripts
docker build -t termux/package-builder:latest .
cd ..
fi
# Parse changed files and identify new packages and deleted packages.
# Create lists of those packages that will be passed to upload job for
# further processing.
while read -r file; do
if ! [[ $file == packages/* ]]; then
# This file does not belong to a package, so ignore it
continue
fi
if [[ $file =~ ^packages/([.a-z0-9+-]*)/([.a-z0-9+-]*).subpackage.sh$ ]]; then
# A subpackage was modified, check if it was deleted or just updated
pkg=${BASH_REMATCH[1]}
subpkg=${BASH_REMATCH[2]}
if [ ! -f "packages/${pkg}/${subpkg}.subpackage.sh" ]; then
echo "$subpkg" >> ./deleted_packages.txt
fi
elif [[ $file =~ ^packages/([.a-z0-9+-]*)/.*$ ]]; then
# package, check if it was deleted or updated
pkg=${BASH_REMATCH[1]}
if [ ! -d "packages/${pkg}" ]; then
echo "$pkg" >> ./deleted_packages.txt
else
echo "$pkg" >> ./built_packages.txt
# If there are subpackages we want to create a list of those
# as well
for file in $(find "packages/${pkg}/" -maxdepth 1 -type f -name \*.subpackage.sh | sort); do
echo "$(basename "${file%%.subpackage.sh}")" >> ./built_subpackages.txt
done
fi
fi
done<<<${CHANGED_FILES}
else
for pkg in ${{ github.event.inputs.packages }}; do
echo "$pkg" >> ./built_packages.txt
for subpkg in $(find "packages/${pkg}/" -maxdepth 1 -type f -name \*.subpackage.sh | sort); do
echo "$(basename "${subpkg%%.subpackage.sh}")" >> ./built_subpackages.txt
done
done
# Process tag '%ci:no-build' that may be added as line to commit message.
# Forces CI to cancel current build with status 'passed'.
if grep -qiP '^\s*%ci:no-build\s*$' <(git log --format="%B" -n 1 "HEAD"); then
tar cf artifacts/debs-${{ matrix.target_arch }}.tar debs
echo "[!] Force exiting as tag '%ci:no-build' was applied to HEAD commit message."
exit 0
fi
# Build local Docker image if setup scripts were changed.
# Useful for pull requests submitting changes for both build environment and packages.
if grep -qP '^scripts/(Dockerfile|setup-ubuntu\.sh)$' <<< "$CHANGED_FILES"; then
echo "Detected changes for environment setup scripts. Building custom Docker image now."
cd ./scripts
docker build -t termux/package-builder:latest .
cd ..
fi
# Parse changed files and identify new packages and deleted packages.
# Create lists of those packages that will be passed to upload job for
# further processing.
while read -r file; do
if ! [[ $file == packages/* ]]; then
# This file does not belong to a package, so ignore it
continue
fi
if [[ $file =~ ^packages/([a-z0-9-]*)/([a-z0-9-]*).subpackage.sh$ ]]; then
# A subpackage was modified, check if it was deleted or just updated
pkg=${BASH_REMATCH[1]}
subpkg=${BASH_REMATCH[2]}
if [ ! -f "packages/${pkg}/${subpkg}.subpackage.sh" ]; then
echo "$subpkg" >> ./deleted_packages.txt
fi
elif [[ $file =~ ^packages/([a-z0-9-]*)/.*$ ]]; then
# package, check if it was deleted or updated
pkg=${BASH_REMATCH[1]}
if [ ! -d "packages/${pkg}" ]; then
echo "$pkg" >> ./deleted_packages.txt
else
echo "$pkg" >> ./built_packages.txt
# If there are subpackages we want to create a list of those
# as well
for file in $(find "packages/${pkg}/" -maxdepth 1 -type f -name \*.subpackage.sh | sort); do
echo "$(basename "${file%%.subpackage.sh}")" >> ./built_subpackages.txt
done
fi
fi
done<<<${CHANGED_FILES}
# Fix so that lists do not contain duplicates
if [ -f ./built_packages.txt ]; then
@@ -179,15 +163,12 @@ jobs:
# Function for deleting temporary directory with uploaded files from
# the server.
aptly_delete_dir() {
echo "[$(date +%H:%M:%S)] Deleting uploads temporary directory..."
echo "[*] Deleting uploads temporary directory."
curl_response=$(
curl \
--silent \
--retry 2 \
--retry-delay 3 \
--user "${{ secrets.APTLY_API_AUTH }}" \
--user-agent "Termux-Packages/1.0 (https://github.com/termux/termux-packages)" \
--request DELETE \
--write-out "|%{http_code}" \
https://packages.termux.org/aptly-api/files/${REPOSITORY_NAME}-${{ github.sha }}
@@ -196,7 +177,7 @@ jobs:
http_status_code=$(echo "$curl_response" | cut -d'|' -f2)
if [ "$http_status_code" != "200" ]; then
echo "[$(date +%H:%M:%S)] Warning: server returned $http_status_code code while deleting temporary directory."
echo "[!] Server returned $http_status_code code while deleting temporary directory."
fi
}
@@ -207,30 +188,22 @@ jobs:
curl_response=$(
curl \
--silent \
--retry 2 \
--retry-delay 3 \
--user "${{ secrets.APTLY_API_AUTH }}" \
--user-agent "Termux-Packages/1.0 (https://github.com/termux/termux-packages)" \
--request POST \
--form file=@${filename} \
--write-out "|%{http_code}" \
https://packages.termux.org/aptly-api/files/${REPOSITORY_NAME}-${{ github.sha }} || true
https://packages.termux.org/aptly-api/files/${REPOSITORY_NAME}-${{ github.sha }}
)
http_status_code=$(echo "$curl_response" | cut -d'|' -f2)
if [ "$http_status_code" = "200" ]; then
echo "[$(date +%H:%M:%S)] Uploaded: $(echo "$curl_response" | cut -d'|' -f1 | jq -r '.[]' | cut -d'/' -f2)"
elif [ "$http_status_code" = "000" ]; then
echo "[$(date +%H:%M:%S)]: Failed to upload '$filename'. Server/proxy dropped connection during upload."
echo "[$(date +%H:%M:%S)]: Aborting any further uploads."
aptly_delete_dir
exit 1
echo "[*] Uploaded: $(echo "$curl_response" | cut -d'|' -f1 | jq -r '.[]' | cut -d'/' -f2)"
else
# Manually cleaning up the temporary directory to reclaim disk space.
# Don't rely on scheduled server-side scripts.
echo "[$(date +%H:%M:%S)] Error: failed to upload '$filename'. Server returned $http_status_code code."
echo "[$(date +%H:%M:%S)] Aborting any further uploads."
echo "[!] Failed to upload '$filename'. Server returned $http_status_code code."
echo "[!] Aborting any further uploads."
aptly_delete_dir
exit 1
fi
@@ -241,67 +214,51 @@ jobs:
# Publishing repository changes.
if [ "$uploaded_files" = "true" ]; then
echo "[$(date +%H:%M:%S)] Adding packages to repository '$REPOSITORY_NAME'..."
http_status_code=""
echo "[*] Adding packages to repository '$REPOSITORY_NAME'..."
curl_response=$(
curl \
--silent \
--retry 2 \
--retry-delay 3 \
--user "${{ secrets.APTLY_API_AUTH }}" \
--user-agent "Termux-Packages/1.0 (https://github.com/termux/termux-packages)" \
--request POST \
--write-out "|%{http_code}" \
https://packages-cf.termux.org/aptly-api/repos/${REPOSITORY_NAME}/file/${REPOSITORY_NAME}-${{ github.sha }} || true
https://packages.termux.org/aptly-api/repos/${REPOSITORY_NAME}/file/${REPOSITORY_NAME}-${{ github.sha }} || true
)
http_status_code=$(echo "$curl_response" | cut -d'|' -f2)
if [ "$http_status_code" = "200" ]; then
warnings=$(echo "$curl_response" | cut -d'|' -f1 | jq '.Report.Warnings' | jq -r '.[]')
if [ -n "$warnings" ]; then
echo "[$(date +%H:%M:%S)] APTLY WARNINGS (NON-CRITICAL):"
echo "[!] WARNINGS (NON-CRITICAL):"
echo
echo "$warnings"
echo
fi
else
echo "[$(date +%H:%M:%S)] Error: got http_status_code == '$http_status_code', packages may not appear in repository."
fi
# Usually temporary directory is deleted automatically, but in certain cases it is left.
aptly_delete_dir
# Final part to make changes appear in web root.
echo "[$(date +%H:%M:%S)] Publishing repository changes..."
http_status_code=""
curl_response=$(
curl \
--silent \
--retry 2 \
--retry-delay 3 \
--user "${{ secrets.APTLY_API_AUTH }}" \
--user-agent "Termux-Packages/1.0 (https://github.com/termux/termux-packages)" \
--header 'Content-Type: application/json' \
--request PUT \
--data '{"Signing": {"Passphrase": "${{ secrets.GPG_PASSPHRASE }}"}}' \
--write-out '|%{http_code}' \
https://packages-cf.termux.org/aptly-api/publish/${REPOSITORY_NAME}/${REPOSITORY_DISTRIBUTION} || true
)
http_status_code=$(echo "$curl_response" | cut -d'|' -f2 | grep -oP '\d{3}$')
echo "[*] Publishing repository changes..."
set +e
curl \
--silent \
--user "${{ secrets.APTLY_API_AUTH }}" \
--header 'Content-Type: application/json' \
--request PUT \
--data '{"Signing": {"Passphrase": "${{ secrets.GPG_PASSPHRASE }}"}}' \
https://packages.termux.org/aptly-api/publish/${REPOSITORY_NAME}/${REPOSITORY_DISTRIBUTION}
exit_code=$?
echo
if [ "$http_status_code" = "200" ]; then
echo "[$(date +%H:%M:%S)] Repository has been updated successfully."
elif [ "$http_status_code" = "000" ]; then
echo "[$(date +%H:%M:%S)] Warning: server/proxy has dropped connection."
# Ignore - nothing can be done with that unless we change proxy.
#exit 1
elif [ "$http_status_code" = "504" ]; then
echo "[$(date +%H:%M:%S)] Warning: request processing time was too long, connection dropped."
# Ignore - nothing can be done with that unless we change repository
# management tool or reduce repository size.
#exit 1
if [ "$exit_code" = 0 ]; then
echo "[*] Repository updated successfully."
elif [ "$exit_code" = 52 ]; then
echo "[!] Repository update takes more time than expected, server returned empty response."
echo "[!] This is expected if large amount of data has been submitted."
else
echo "[$(date +%H:%M:%S)] Error: got http_status_code == '$http_status_code'"
exit 1
echo "[!] curl exited with error code $exit_status."
exit "$exit_code"
fi
fi
-199
View File
@@ -1,199 +0,0 @@
# Default assignment: frequent contributors from @termux.
* @buttaface @Grimler91 @landfillbaby @xeffyr
# GitHub Actions.
/.github/workflows/ @xeffyr
# Build system.
/build-all.sh @Grimler91 @xeffyr
/build-package.sh @Grimler91 @xeffyr
/clean.sh @Grimler91 @xeffyr
/scripts/ @Grimler91 @xeffyr
# GN setup script
/scripts/build/setup/termux_setup_gn.sh @thunder-coding
# Repository utilities.
/scripts/bin/ @xeffyr
# Packages owned by @buttaface
/packages/kak-lsp/ @buttaface
/packages/libdispatch/ @buttaface
/packages/libllvm/ @buttaface
/packages/llbuild/ @buttaface
/packages/swift/ @buttaface
# Packages owned by @DLC01
/packages/exhale/ @DLC01
/packages/fdkaac/ @DLC01
/packages/libfdk-aac/ @DLC01
# Packages owned by @Grimler91
/packages/chezmoi/ @Grimler91
/packages/docopt/ @Grimler91
/packages/game-repo/ @Grimler91
/packages/libprotobuf-c/ @Grimler91
/packages/libqrencode/ @Grimler91
/packages/mpdscribble/ @Grimler91
/packages/pass-otp/ @Grimler91
/packages/root-repo/ @Grimler91
/packages/runit/ @Grimler91
/packages/science-repo/ @Grimler91
/packages/smalltalk/ @Grimler91
/packages/teckit/ @Grimler91
/packages/termux-services/ @Grimler91
/packages/texlive-bin/ @Grimler91
# Packages owned by @ian4hu
/packages/php-apcu/ @ian4hu
/packages/php-imagick/ @ian4hu
/packages/php-psr/ @ian4hu
/packages/php-zephir-parser/ @ian4hu
/packages/re2c/ @ian4hu
# Packages owned by @kcubeterm
/packages/brook/ @kcubeterm
/packages/delve/ @kcubeterm
/packages/duf/ @kcubeterm
/packages/fzy/ @kcubeterm
/packages/gh/ @kcubeterm
/packages/gping/ @kcubeterm
/packages/hors/ @kcubeterm
/packages/k9s/ @kcubeterm
/packages/lazygit/ @kcubeterm
/packages/libtorrent/ @kcubeterm
/packages/lsd/ @kcubeterm
/packages/pup/ @kcubeterm
/packages/ripgrep-all/ @kcubeterm
/packages/rush/ @kcubeterm
/packages/rustscan/ @kcubeterm
/packages/shc/ @kcubeterm
/packages/shell2http/ @kcubeterm
/packages/shiori/ @kcubeterm
/packages/youtubedr/ @kcubeterm
# Packages owned by @librehat
/packages/flatbuffers/ @librehat
/packages/mimetic/ @librehat
# Packages owned by @msoose
/packages/dns2tcp/ @msoose
/packages/proxmark3/ @msoose
/packages/proxmark3-git/ @msoose
/packages/recode/ @msoose
# Packages owned by @michalbednarski
/packages/proot/ @michalbednarski
/packages/termux-am/ @michalbednarski
# Packages owned by @MrAdityaAlok
/packages/helix/ @MrAdityaAlok
/packages/libdvbcsa/ @MrAdityaAlok
/packages/lua-language-server/ @MrAdityaAlok
/packages/tvheadend/ @MrAdityaAlok
# Packages owned by @Neo-Oli
/packages/cava/ @Neo-Oli
/packages/colordiff/ @Neo-Oli
/packages/ed/ @Neo-Oli
/packages/libmesode/ @Neo-Oli
/packages/libotr/ @Neo-Oli
/packages/libsignal-protocol-c/ @Neo-Oli
/packages/nyancat/ @Neo-Oli
/packages/par2/ @Neo-Oli
/packages/profanity/ @Neo-Oli
/packages/tsocks/ @Neo-Oli
/packages/tty-clock/ @Neo-Oli
# Packages owned by @suhan-paradkar
/packages/libsecret/ @suhan-paradkar
/packages/mailutils/ @suhan-paradkar
# Packages owned by @thunder-coding
/packages/flyctl/ @thunder-coding
/packages/git-sizer/ @thunder-coding
/packages/gn/ @thunder-coding
/packages/lychee/ @thunder-coding
/packages/nodejs/ @thunder-coding
/packages/nodejs-lts/ @thunder-coding
/packages/silicon/ @thunder-coding
/packages/slides/ @thunder-coding
# Packages owned by @xeffyr
/packages/at/ @xeffyr
/packages/beanshell/ @xeffyr
/packages/btfs/ @xeffyr
/packages/build-essential/ @xeffyr
/packages/clamav/ @xeffyr
/packages/codecrypt/ @xeffyr
/packages/cryptopp/ @xeffyr
/packages/dbus/ @xeffyr
/packages/distcc/ @xeffyr
/packages/e2fsprogs/ @xeffyr
/packages/exiftool/ @xeffyr
/packages/fakeroot/ @xeffyr
/packages/fdroidcl/ @xeffyr
/packages/geoip2-database/ @xeffyr
/packages/geth/ @xeffyr
/packages/gitea/ @xeffyr
/packages/go-findimagedupes/ @xeffyr
/packages/gopass/ @xeffyr
/packages/haproxy/ @xeffyr
/packages/ipfs/ @xeffyr
/packages/kubectl/ @xeffyr
/packages/libice/ @xeffyr
/packages/libmcrypt/ @xeffyr
/packages/libmhash/ @xeffyr
/packages/libseccomp/ @xeffyr
/packages/libsixel/ @xeffyr
/packages/libsm/ @xeffyr
/packages/libx11/ @xeffyr
/packages/libxau/ @xeffyr
/packages/libxcb/ @xeffyr
/packages/libxcursor/ @xeffyr
/packages/libxdmcp/ @xeffyr
/packages/libxext/ @xeffyr
/packages/libxfixes/ @xeffyr
/packages/libxft/ @xeffyr
/packages/libxi/ @xeffyr
/packages/libxrandr/ @xeffyr
/packages/libxrender/ @xeffyr
/packages/libxss/ @xeffyr
/packages/libxtst/ @xeffyr
/packages/libxt/ @xeffyr
/packages/lua-lpeg/ @xeffyr
/packages/openldap/ @xeffyr
/packages/proot-distro/ @xeffyr
/packages/qemu-system-x86-64-headless/ @xeffyr
/packages/restic-server/ @xeffyr
/packages/seccure/ @xeffyr
/packages/shtool/ @xeffyr
/packages/srelay/ @xeffyr
/packages/ssss/ @xeffyr
/packages/steghide/ @xeffyr
/packages/termux-auth/ @xeffyr
/packages/tk/ @xeffyr
/packages/ttf-dejavu/ @xeffyr
/packages/unstable-repo/ @xeffyr
/packages/virustotal-cli/ @xeffyr
/packages/vis/ @xeffyr
/packages/x11-repo/ @xeffyr
/packages/xcb-proto/ @xeffyr
/packages/xorgproto/ @xeffyr
/packages/xorg-util-macros/ @xeffyr
/packages/xtrans/ @xeffyr
# Packages owned by @Yonle
/packages/chafa/ @Yonle
/packages/fluidsynth/ @Yonle
# Misc
/packages/blogc/ @rafaelmartins
/packages/cfengine/ @craigcomstock
/packages/composer/ @PuneetGopinath
/packages/emscripten/ @truboxl
/packages/germanium/ @ravener
/packages/gotop/ @medzikuser
/packages/rust/ @kcotugno
/packages/squashfs-tools-ng/ @WMCB-Tech
/packages/xmake/ @waruqi
+5 -21
View File
@@ -16,10 +16,6 @@ Developer's wiki is available at https://github.com/termux/termux-packages/wiki.
statements like "solve it quickly", "urgently need solution" and so on. Be
patient.
Avoid digging and commenting in old, already closed issues. Read them carefully
\- likely they already give solution. If it didn't worked, only then open a new
one. Note that we will lock down issues that are really outdated.
You may report only issues happening within our official packages. Do not
submit issues happening in third-party software - we will ignore them.
@@ -92,8 +88,8 @@ met these conditions:
- **Packages must be licensed under widely recognized open source license**
Software should be licensed under Apache, BSD, GNU GPL, MIT or other well
known open-source licenses. Software for which the source is available but
distributed under non-free conditions is processed on an individual basis.
known open source license. Software which is open source but is distributed
under non-free conditions is processed on individual basis.
Software which is either closed-source, contain binary-only components or
is distributed under End User License Agreement is not accepted.
@@ -212,21 +208,9 @@ More about `build.sh` variables you can read on [developer's wiki](https://githu
You can check which packages are out-of-date by visiting Termux page on
[Repology](https://repology.org/projects/?inrepo=termux&outdated=1).
### General package update procedure
Usually to update packages you need to just modify few variables and commit
the changes.
1. Assign the new version value to `TERMUX_PKG_VERSION`. Be careful to not
remove the epoch (numbered prefix, e.g `1:`, `2:`) accidentally.
2. If there is `TERMUX_PKG_REVISION` variable set, remove it. Revision
should be set only for subsequent package builds within the same version.
3. Download the source code archive and compute SHA-256 checksum:
```
cd ./packages/${YOUR_PACKAGE}
(source build.sh 2>/dev/null; curl -LO "$TERMUX_PKG_SRCURL")
```
4. Assign the new checksum value to `TERMUX_PKG_SHA256`.
Most of packages can be updated by just modifying variables `TERMUX_PKG_VERSION`
and `TERMUX_PKG_SHA256`, which represent the package version and checksum for
source code archive respectively.
### Dealing with patch errors
+1 -1
View File
@@ -5,7 +5,7 @@
[![Docker image status](https://github.com/termux/termux-packages/workflows/Docker%20image/badge.svg)](https://hub.docker.com/r/termux/package-builder)
[![Repology metadata](https://github.com/termux/repology-metadata/workflows/Repology%20metadata/badge.svg)](https://repology.org/repository/termux)
[![Join the chat at https://gitter.im/termux/termux](https://badges.gitter.im/termux/termux.svg)](https://gitter.im/termux/termux)
[![Join the Termux discord server](https://img.shields.io/discord/641256914684084234.svg?label=&logo=discord&logoColor=ffffff&color=5865F2)](https://discord.gg/HXpF69X)
[![Join the Termux discord server](https://img.shields.io/discord/591914197219016707.svg?label=&logo=discord&logoColor=ffffff&color=5865F2)](https://discord.gg/HXpF69X)
<img src=".github/static/powered-by-fosshost.png" alt="Powered by FossHost" width="128px"></img>
+3 -3
View File
@@ -374,9 +374,9 @@ if [ "${TERMUX_INSTALL_DEPS-false}" = "true" ]; then
gpg --import "$TERMUX_SCRIPTDIR/packages/termux-keyring/fornwall.gpg"
gpg --no-tty --command-file <(echo -e "trust\n5\ny") --edit-key 2218893D3F679BEFC421FD976700B77E6D8D0AE7
}
gpg --list-keys 2C7F29AE97891F6419A9E2CDB0076E490B71616B > /dev/null 2>&1 || {
gpg --list-keys B63168609E8839CA9150CE2DD9EFD56891B2BB50 > /dev/null 2>&1 || {
gpg --import "$TERMUX_SCRIPTDIR/packages/termux-keyring/grimler.gpg"
gpg --no-tty --command-file <(echo -e "trust\n5\ny") --edit-key 2C7F29AE97891F6419A9E2CDB0076E490B71616B
gpg --no-tty --command-file <(echo -e "trust\n5\ny") --edit-key B63168609E8839CA9150CE2DD9EFD56891B2BB50
}
gpg --list-keys CC72CF8BA7DBFA0182877D045A897D96E57CF20C > /dev/null 2>&1 || {
gpg --import "$TERMUX_SCRIPTDIR/packages/termux-keyring/termux-autobuilds.gpg"
@@ -405,7 +405,7 @@ for ((i=0; i<${#PACKAGE_LIST[@]}; i++)); do
env TERMUX_ARCH="$arch" TERMUX_BUILD_IGNORE_LOCK=true ./build-package.sh \
${TERMUX_FORCE_BUILD+-f} ${TERMUX_INSTALL_DEPS+-i} ${TERMUX_IS_DISABLED+-D} \
${TERMUX_DEBUG_BUILD+-d} ${TERMUX_OUTPUT_DIR+-o $TERMUX_OUTPUT_DIR} \
--format ${TERMUX_PACKAGE_FORMAT:=debian} "${PACKAGE_LIST[i]}"
--format ${TERMUX_PACKAGE_FORMAT} "${PACKAGE_LIST[i]}"
done
exit
fi
@@ -1,17 +0,0 @@
--- ghc-8.10.1/compiler/main/DynFlags.hs.orig 2020-06-13 08:56:50.595808526 +0100
+++ ghc-8.10.1/compiler/main/DynFlags.hs 2020-06-13 08:57:24.770000253 +0100
@@ -4624,6 +4624,14 @@
default_PIC platform =
case (platformOS platform, platformArch platform) of
(OSDarwin, ArchX86_64) -> [Opt_PIC]
+ (OSLinux, ArchARM{}) -> [Opt_PIC]
+ (OSLinux, ArchARM64) -> [Opt_PIC]
+ (OSLinux, ArchX86) -> [Opt_PIC]
+ (OSLinux, ArchX86_64) -> [Opt_PIC]
+ (OSUnknown, ArchARM{}) -> [Opt_PIC]
+ (OSUnknown, ArchARM64) -> [Opt_PIC]
+ (OSUnknown, ArchX86) -> [Opt_PIC]
+ (OSUnknown, ArchX86_64) -> [Opt_PIC]
(OSOpenBSD, ArchX86_64) -> [Opt_PIC] -- Due to PIE support in
-- OpenBSD since 5.3 release
-- (1 May 2013) we need to
-30
View File
@@ -1,30 +0,0 @@
diff --git a/compiler/main/SysTools.hs b/compiler/main/SysTools.hs
index b3312b0..b0e3d90 100644
--- a/compiler/main/SysTools.hs
+++ b/compiler/main/SysTools.hs
@@ -414,11 +414,7 @@ linkDynLib dflags0 o_files dep_packages
-- math-y things are used (which we assume to include all programs). See #14022.
libmLinkOpts :: [Option]
libmLinkOpts =
-#if defined(HAVE_LIBM)
[Option "-lm"]
-#else
- []
-#endif
getPkgFrameworkOpts :: DynFlags -> Platform -> [InstalledUnitId] -> IO [String]
getPkgFrameworkOpts dflags platform dep_packages
diff --git a/rts/package.conf.in b/rts/package.conf.in
index e4cb159..7a234cd 100644
--- a/rts/package.conf.in
+++ b/rts/package.conf.in
@@ -26,9 +26,7 @@ library-dirs: TOP"/rts/dist/build" FFI_LIB_DIR LIBDW_LIB_DIR
hs-libraries: "HSrts" FFI_LIB
extra-libraries:
-#if defined(HAVE_LIBM)
"m" /* for ldexp() */
-#endif
#if defined(HAVE_LIBRT)
, "rt"
#endif
-154
View File
@@ -1,154 +0,0 @@
# Build failure with recent NDK.
TERMUX_PKG_HOMEPAGE=https://www.haskell.org/ghc/
TERMUX_PKG_DESCRIPTION="The Glasgow Haskell Compilation system"
TERMUX_PKG_LICENSE="BSD 2-Clause, BSD 3-Clause, LGPL-2.1"
TERMUX_PKG_VERSION=8.10.1
TERMUX_PKG_REVISION=5
TERMUX_PKG_SRCURL=http://downloads.haskell.org/~ghc/${TERMUX_PKG_VERSION}/ghc-${TERMUX_PKG_VERSION}-src.tar.xz
TERMUX_PKG_SHA256=4e3b07f83a266b3198310f19f71e371ebce97c769b14f0d688f4cbf2a2a1edf5
TERMUX_PKG_DEPENDS="binutils, clang, iconv, libffi, llvm, ncurses"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
TERMUX_PKG_EXTRA_CONFIGURE_ARGS=" --disable-ld-override --build=x86_64-unknown-linux --host=x86_64-unknown-linux"
TERMUX_PKG_BLACKLISTED_ARCHES="arm"
DYNAMIC_GHC_PROGRAMS=NO
termux_step_pre_configure() {
termux_setup_ghc
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --target=${TERMUX_HOST_PLATFORM}"
# After stage 0, cabal passes a host string to the libraries' configure scripts that isn't valid.
# We set one ourselves anyway, so this simply isn't needed.
sed -i 's/maybeHostFlag = i/maybeHostFlag = [] -- i/' libraries/Cabal/Cabal/Distribution/Simple.hs
# Android will only run PIE executables, so --no-pie, like GHC suggests, is out. GHC relies on relocations.
# Combine PIE and -Wl,-r together, and the linker will tell you those flags are mutually exclusive.
# This poses a problem as we need both. If you let the compiler handle it, then apparently all's well.
sed -i 's/"-Wl,-r"/"-r"/' compiler/main/DriverPipeline.hs
cp mk/build.mk.sample mk/build.mk
cat >> mk/build.mk <<-EOF
SRC_HC_OPTS += -optc-Wno-unused-label -optc-Wno-unused-but-set-variable
SRC_HC_OPTS += -optc-Wno-unused-variable -optc-Wno-unused-function
SRC_HC_OPTS += -optc-Wno-unused-command-line-argument -optc-Wno-unknown-warning-option
GhcStage2HcOpts += -optl-Wl,--enable-new-dtags
INTEGER_LIBRARY = integer-simple
SplitSections = YES
BuildFlavour = quick-cross
HADDOCK_DOCS = NO
BUILD_SPHINX_HTML = NO
BUILD_SPHINX_PS = NO
BUILD_SPHINX_PDF = NO
DYNAMIC_GHC_PROGRAMS = $DYNAMIC_GHC_PROGRAMS
GhcLibWays = v
BUILD_MAN = NO
#STRIP_CMD = $STRIP
EOF
# If choosing to build a GHC dynamically linked to its libs, then
# $TERMUX_PREFIX/lib automatically gets added to the rpath that's generated
if [ "$DYNAMIC_GHC_PROGRAMS" != "YES" ]; then
echo "GhcStage2HcOpts += -optl-Wl,-rpath=$TERMUX_PREFIX/lib" >> mk/build.mk
fi
# So... this is fun. If these options are initially passed to the configure script,
# then building stage 0 breaks, because it's meant to run on the host with the
# host's libs. But of course, we need to link to Termux's libffi etc. and use the
# cross-compiler when building something to run on Android in the later stages
patch -Np1 <<EOF
--- a/rules/build-package-data.mk.orig 2020-06-09 23:44:52.013029077 +0000
+++ b/rules/build-package-data.mk 2020-06-09 23:45:10.589149807 +0000
@@ -108,6 +108,15 @@
\$1_\$2_CONFIGURE_OPTS += --configure-option=--host=\$(TargetPlatformFull)
endif
+ifneq "\$3" "0"
+\$1_\$2_CONFIGURE_OPTS += --configure-option=--host=$TERMUX_HOST_PLATFORM --configure-option=CXX=$CXX --configure-option=LD=$LD --configure-option=AR=$AR
+\$1_\$2_CONFIGURE_OPTS += --configure-option=AS=$AS --configure-option=CC=$CC --configure-option=RANLIB=$RANLIB --configure-option=READELF=$READELF
+\$1_\$2_CONFIGURE_OPTS += --configure-option=OBJCOPY=$OBJCOPY --configure-option=OBJDUMP=$OBJDUMP --configure-option=--with-system-libffi
+\$1_\$2_CONFIGURE_OPTS += --configure-option=--with-ffi-includes=$TERMUX_PREFIX/include --configure-option=--with-ffi-libraries=$TERMUX_PREFIX/lib
+\$1_\$2_CONFIGURE_OPTS += --configure-option=--with-iconv-includes=$TERMUX_PREFIX/include --configure-option=--with-iconv-libraries=$TERMUX_PREFIX/lib
+\$1_\$2_CONFIGURE_OPTS += --configure-option=--with-curses-includes=$TERMUX_PREFIX/include/ncursesw --configure-option=--with-curses-libraries=$TERMUX_PREFIX/lib
+endif
+
ifeq "\$3" "0"
\$1_\$2_CONFIGURE_OPTS += \$\$(BOOT_PKG_CONSTRAINTS)
endif
EOF
unset AR
unset AS
unset CC
export CFLAGS=""
unset CPP
export CPPFLAGS=""
unset CXXFLAGS
unset CXX
export LDFLAGS=""
unset LD
unset PKG_CONFIG
unset RANLIB
unset READELF
unset OBJCOPY
unset OBJDUMP
autoreconf
}
termux_step_post_make_install() {
# We may build GHC with `llc-9` etc., but only `llc` is present in Termux
sed -i 's/"LLVM llc command", "llc.*"/"LLVM llc command", "llc"/' "$TERMUX_PREFIX/lib/ghc-$TERMUX_PKG_VERSION/settings"
sed -i 's/"LLVM opt command", "opt.*"/"LLVM opt command", "opt"/' "$TERMUX_PREFIX/lib/ghc-$TERMUX_PKG_VERSION/settings"
if [ "$DYNAMIC_GHC_PROGRAMS" = "YES" ]; then
# Hack to turn the binaries' rpath from something relative to the build environment
# into something that matches Termux's FHS. patchelf needs to be installed on the host.
while IFS= read -r -d '' bin; do
local curr_rpath="$(patchelf --print-rpath "$bin" 2>/dev/null)"
if [ -n "$curr_rpath" ]; then
local paths_to_prepend=()
local new_rpath=()
IFS=':' read -ra paths <<< "$curr_rpath"
for i in "${!paths[@]}"; do
# Prioritise non-Haskell library paths
if [[ ${paths[$i]} != *ghc-$TERMUX_PKG_VERSION* ]]; then
paths_to_prepend+=("${paths[$i]}")
continue
fi
local fixed_path="${paths[$i]/\/dist-install\/build}"
if [ "$fixed_path" != "${paths[$i]}" ]; then
# Naïvely correct the path to a Haskell library
fixed_path="${fixed_path##*/}"
fixed_path=$(echo "$TERMUX_PREFIX/lib/ghc-$TERMUX_PKG_VERSION/$fixed_path-"[[:digit:]]*)
new_rpath+=("$fixed_path")
else
# This may be the path to RTS, which does not have a version number in the folder name
# and nor is it apparently expected to be found in dist-install
fixed_path="${paths[$i]/\/dist\/build}"
if [ "$fixed_path" != "${paths[$i]}" ]; then
new_rpath+=("$TERMUX_PREFIX/lib/ghc-$TERMUX_PKG_VERSION/${fixed_path##*/}")
else
new_rpath+=("$fixed_path")
fi
fi
done
# Make sure the standard Termux library path is the first entry
[[ ! " ${paths_to_prepend[@]} " =~ " $TERMUX_PREFIX/lib " ]] && paths_to_prepend=("$TERMUX_PREFIX/lib" "${paths_to_prepend[@]}")
# This isn't in the original rpath at all, but is needed
paths_to_prepend+=("$TERMUX_PREFIX/lib/ghc-$TERMUX_PKG_VERSION/ghc-$TERMUX_PKG_VERSION")
local OIFS="$IFS"
local IFS=':'
printf -v new_rpath "%s:%s" "${paths_to_prepend[*]}" "${new_rpath[*]}"
IFS="$OIFS"
patchelf --set-rpath "$new_rpath" "$bin"
fi
done < <(find "$TERMUX_PREFIX/lib/ghc-$TERMUX_PKG_VERSION/bin/" -type f -print0)
fi
}
termux_step_install_license() {
install -Dm600 -t "$TERMUX_PREFIX/share/doc/ghc" "$TERMUX_PKG_SRCDIR/LICENSE"
}
@@ -1,24 +0,0 @@
--- ghc-8.10.1/rts/Trace.c 2020-03-24 04:53:17.000000000 +0000
+++ ghc-8.10.1.new/rts/Trace.c 2020-06-12 13:33:14.775373605 +0100
@@ -12,6 +12,10 @@
// internal headers
#include "Trace.h"
+int TRACE_sched;
+int TRACE_gc;
+int TRACE_spark_sampled;
+
#if defined(TRACING)
#include "GetTime.h"
@@ -28,10 +32,7 @@
#endif
// events
-int TRACE_sched;
-int TRACE_gc;
int TRACE_nonmoving_gc;
-int TRACE_spark_sampled;
int TRACE_spark_full;
int TRACE_user;
int TRACE_cap;
@@ -1,28 +0,0 @@
Description: Use the stage1 binaries for install
In order to be able to perform a cross-build, we need to use
the stage1 binaries during installation. Both ghc and ghc-pkg
are run during the install target and therefore must be able
to run on the build machine.
.
Author: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Last-Update: 2017-01-29
Index: ghc-8.8.1+dfsg1/ghc.mk
===================================================================
--- ghc-8.8.1+dfsg1.orig/ghc.mk
+++ ghc-8.8.1+dfsg1/ghc.mk
@@ -963,8 +963,12 @@
# Install packages in the right order, so that ghc-pkg doesn't complain.
# Also, install ghc-pkg first.
ifeq "$(Windows_Host)" "NO"
-INSTALLED_GHC_REAL=$(DESTDIR)$(ghclibexecdir)/bin/ghc
-INSTALLED_GHC_PKG_REAL=$(DESTDIR)$(ghclibexecdir)/bin/ghc-pkg
+# Use the inplace/stage1 versions for installation,
+# since the installed versions are built for the target
+#INSTALLED_GHC_REAL=$(DESTDIR)$(ghclibexecdir)/bin/ghc
+#INSTALLED_GHC_PKG_REAL=$(DESTDIR)$(ghclibexecdir)/bin/ghc-pkg
+INSTALLED_GHC_REAL=$(CURDIR)/inplace/bin/ghc-stage1
+INSTALLED_GHC_PKG_REAL=$(CURDIR)/utils/ghc-pkg/dist/build/tmp/ghc-pkg
else
INSTALLED_GHC_REAL=$(DESTDIR)$(bindir)/ghc.exe
INSTALLED_GHC_PKG_REAL=$(DESTDIR)$(bindir)/ghc-pkg.exe
+14
View File
@@ -0,0 +1,14 @@
# NOTE: Disabled due to not being ffmpeg 4 compatible.
TERMUX_PKG_HOMEPAGE=https://gstreamer.freedesktop.org/
TERMUX_PKG_DESCRIPTION="GStreamer libav/ffmpeg wrapper"
TERMUX_PKG_VERSION=1.14.1
TERMUX_PKG_SHA256=eff80a02d2f2fb9f34b67e9a26e9954d3218c7aa18e863f2a47805fa7066029d
TERMUX_PKG_SRCURL=https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="gst-plugins-base,ffmpeg"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--disable-android_media
--disable-examples
--disable-tests
--with-system-libav
"
+14
View File
@@ -0,0 +1,14 @@
TERMUX_PKG_HOMEPAGE=https://sourceware.org/libffi/
TERMUX_PKG_DESCRIPTION="Library providing a portable, high level programming interface to various calling conventions"
local _COMMIT=716bfd83177689e2244c4707bd513003cff92c68
local _DATE=20171105
TERMUX_PKG_VERSION=3.2.1.$_DATE
TERMUX_PKG_SHA256=454577ab2d046dbdf5697f71598247fb8d8bf2d378817d5d5b8bc5dceaf822ac
TERMUX_PKG_SRCURL=https://github.com/libffi/libffi/archive/${_COMMIT}.zip
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-multi-os-directory --enable-symvers=no"
TERMUX_PKG_RM_AFTER_INSTALL="lib/libffi-${TERMUX_PKG_VERSION}/include"
termux_step_pre_configure() {
cd $TERMUX_PKG_SRCDIR
./autogen.sh
}
+6
View File
@@ -0,0 +1,6 @@
TERMUX_PKG_HOMEPAGE=https://ohse.de/uwe/software/lrzsz.html
TERMUX_PKG_DESCRIPTION="Tools for zmodem/xmodem/ymodem file transfer"
TERMUX_PKG_VERSION=0.12.20
TERMUX_PKG_SRCURL=https://ohse.de/uwe/releases/lrzsz-${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=c28b36b14bddb014d9e9c97c52459852f97bd405f89113f30bee45ed92728ff1
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--disable-syslog --mandir=$TERMUX_PREFIX/share/man"
@@ -1,6 +1,9 @@
--- ./src/Makefile.am.orig 2021-11-10 10:12:52.155281162 +0100
+++ ./src/Makefile.am 2021-11-10 10:13:10.452346589 +0100
@@ -16,19 +16,19 @@
Hard links are not supported on Android 6.0+
diff -u -r ../lrzsz-0.12.20/src/Makefile.in ./src/Makefile.in
--- ../lrzsz-0.12.20/src/Makefile.in 1998-12-30 17:31:46.000000000 +0100
+++ ./src/Makefile.in 2017-01-25 01:17:46.135033894 +0100
@@ -370,16 +370,16 @@
install-exec-local:
rm -f $(DESTDIR)/$(bindir)/`echo lsb | sed -e '$(transform)'`
@@ -20,8 +23,4 @@
+ ln -s $(DESTDIR)/$(bindir)/`echo lrz |sed -e '$(transform)'` \
$(DESTDIR)/$(bindir)/`echo lrx |sed -e '$(transform)'`
# rm -f $(bindir)/`echo lrzszbug | sed -e '$(transform)'`
-# ln $(bindir)/`echo lrzszbug |sed -e '$(transform)'` \
+# ln -s $(bindir)/`echo lrzszbug |sed -e '$(transform)'` \
# $(bindir)/`echo lrzszbug |sed -e '$(transform)'`
uninstall-local:
# ln $(bindir)/`echo lrzszbug |sed -e '$(transform)'` \
+1 -1
View File
@@ -115,4 +115,4 @@ float complex ctanhf(float complex);
#pragma GCC visibility pop
__END_DECLS
#endif /* _COMPLEX_H */
#endif /* _COMPLEX_H */
+1 -1
View File
@@ -761,4 +761,4 @@ long double __kernel_sinl(long double, long double, int);
long double __kernel_cosl(long double, long double);
long double __kernel_tanl(long double, long double, int);
#endif /* !_MATH_PRIVATE_H_ */
#endif /* !_MATH_PRIVATE_H_ */
-8
View File
@@ -1,8 +0,0 @@
TERMUX_PKG_HOMEPAGE=https://www.unidata.ucar.edu/software/netcdf/
TERMUX_PKG_DESCRIPTION="NetCDF is a set of software libraries and self-describing, machine-independent data formats that support the creation, access, and sharing of array-oriented scientific data"
TERMUX_PKG_LICENSE="custom"
TERMUX_PKG_MAINTAINER="Henrik Grimler @Grimler91"
TERMUX_PKG_VERSION=4.3.0
TERMUX_PKG_SHA256=25da1c97d7a01bc4cee34121c32909872edd38404589c0427fefa1301743f18f
TERMUX_PKG_SRCURL=https://github.com/Unidata/netcdf-cxx4/archive/v${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_DEPENDS="libhdf5, libcurl, openssl, libnghttp2, netcdf-c"
-38
View File
@@ -1,38 +0,0 @@
## * Requires pulseaudio build and source directory.
## * Uses scons build system which is not good at cross-compiling.
TERMUX_PKG_HOMEPAGE=https://roc-project.github.io
TERMUX_PKG_DESCRIPTION="Roc real-time streaming over the network"
TERMUX_PKG_LICENSE="LGPL-2.0, MPL-2.0"
TERMUX_PKG_MAINTAINER="Leonid Pliushch <leonid.pliushch@gmail.com>"
TERMUX_PKG_VERSION=0.1.1
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL=https://github.com/roc-project/roc/archive/v$TERMUX_PKG_VERSION.tar.gz
TERMUX_PKG_SHA256=2aa63061b586a5f16cfcb0bfe304015a6effdcb373513cb62e76283bde7dd104
TERMUX_PKG_DEPENDS="libltdl, libopenfec, libuv, pulseaudio"
TERMUX_PKG_BREAKS="roc-dev"
TERMUX_PKG_REPLACES="roc-dev"
TERMUX_PKG_BUILD_IN_SRC=true
termux_step_make() {
SCONS_CONFIGURE_ARGS=""
SCONS_CONFIGURE_ARGS+=" --prefix=$TERMUX_PREFIX"
SCONS_CONFIGURE_ARGS+=" --host=$TERMUX_HOST_PLATFORM"
SCONS_CONFIGURE_ARGS+=" --compiler=clang"
SCONS_CONFIGURE_ARGS+=" --disable-tools"
SCONS_CONFIGURE_ARGS+=" --disable-tests"
SCONS_CONFIGURE_ARGS+=" --disable-examples"
SCONS_CONFIGURE_ARGS+=" --disable-doc"
SCONS_CONFIGURE_ARGS+=" --disable-sox"
#SCONS_CONFIGURE_ARGS+=" --disable-openfec"
SCONS_CONFIGURE_ARGS+=" --enable-pulseaudio-modules"
SCONS_CONFIGURE_ARGS+=" --with-openfec-includes=$TERMUX_PREFIX/include/openfec"
SCONS_CONFIGURE_ARGS+=" --with-pulseaudio=$TERMUX_TOPDIR/pulseaudio/src"
SCONS_CONFIGURE_ARGS+=" --with-pulseaudio-build-dir=$TERMUX_TOPDIR/pulseaudio/build"
scons $SCONS_CONFIGURE_ARGS
}
termux_step_make_install() {
scons $SCONS_CONFIGURE_ARGS install
}
-111
View File
@@ -1,111 +0,0 @@
TERMUX_PKG_HOMEPAGE=https://www.rust-lang.org
TERMUX_PKG_DESCRIPTION="Rust compiler and utilities (nightly version)"
TERMUX_PKG_DEPENDS="libc++, clang, openssl, lld, zlib, libllvm"
TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_MAINTAINER="@its-pointless"
TERMUX_PKG_VERSION=1.52.0
TERMUX_PKG_REVISION=2
TERMUX_PKG_SRCURL=https://static.rust-lang.org/dist/2021-02-24/rustc-nightly-src.tar.xz
TERMUX_PKG_SHA256=80536b0050fc83cdffedf617bac0fd23dc60081adc00648b90404e1a14baba18
TERMUX_PKG_KEEP_SHARE_DOC=true
termux_step_configure () {
termux_setup_cmake
termux_setup_rust
# nightlys don't build with stable
rustup install beta-2021-02-14-x86_64-unknown-linux-gnu
rustup target add $CARGO_TARGET_NAME
export PATH=$HOME/.rustup/toolchains/beta-2021-02-14-x86_64-unknown-linux-gnu/bin:$PATH
export RUST_BACKTRACE=1
mkdir -p $TERMUX_PREFIX/opt/rust-nightly
RUST_PREFIX=$TERMUX_PREFIX/opt/rust-nightly
export PATH=$TERMUX_PKG_TMPDIR/bin:$PATH
sed $TERMUX_PKG_BUILDER_DIR/config.toml \
-e "s|@RUST_PREFIX@|$RUST_PREFIX|g" \
-e "s|@TERMUX_PREFIX@|$TERMUX_PREFIX|g" \
-e "s|@TERMUX_HOST_PLATFORM@|$TERMUX_HOST_PLATFORM|g" \
-e "s|@RUST_TARGET_TRIPLE@|$CARGO_TARGET_NAME|g" \
-e "s|@CARGO@|$(which cargo)|g" \
-e "s|@RUSTC@|$(which rustc)|g" > $TERMUX_PKG_BUILDDIR/config.toml
export X86_64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR=/usr/lib/x86_64-linux-gnu
export X86_64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR=/usr/include
export PKG_CONFIG_ALLOW_CROSS=1
# for backtrace-sys
export CC_x86_64_unknown_linux_gnu=gcc
export CFLAGS_x86_64_unknown_linux_gnu="-O2"
# it won't link with it in TERMUX_PREFIX/lib without breaking other things.
cp $PREFIX/lib/libLLVM-11.1.0.so $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib/$TERMUX_HOST_PLATFORM/$TERMUX_PKG_API_LEVEL/
unset CC CXX CPP LD CFLAGS CXXFLAGS CPPFLAGS LDFLAGS PKG_CONFIG AR RANLIB
if [ $TERMUX_ARCH = "x86_64" ]; then
cp $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib/x86_64-linux-android/$TERMUX_PKG_API_LEVEL/libc.so $TERMUX_PREFIX/lib/
cp $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib/x86_64-linux-android/$TERMUX_PKG_API_LEVEL/libdl.so $TERMUX_PREFIX/lib/
mv $TERMUX_PREFIX/lib/libtinfo.so.6 $TERMUX_PREFIX/lib/libtinfo.so.6.tmp
fi
}
termux_step_make_install () {
if [ ! -f "/usr/bin/llvm-dwp" ]; then
# errr yeah this needs to be here for docker stuff
sudo ln -s /usr/bin/llvm-dwp-10 /usr/bin/llvm-dwp
fi
if [ $TERMUX_ARCH = "x86_64" ]; then
mv $TERMUX_PREFIX ${TERMUX_PREFIX}a
../src/x.py dist cargo --host x86_64-unknown-linux-gnu
../src/x.py dist rls --host x86_64-unknown-linux-gnu
../src/x.py dist rust-analyzer --host x86_64-unknown-linux-gnu
../src/x.py dist rustfmt --host x86_64-unknown-linux-gnu
../src/x.py dist miri --host x86_64-unknown-linux-gnu
mv ${TERMUX_PREFIX}a ${TERMUX_PREFIX}
fi
../src/x.py build --host $CARGO_TARGET_NAME --target $CARGO_TARGET_NAME --target wasm32-unknown-unknown || bash
../src/x.py dist --host $CARGO_TARGET_NAME --target $CARGO_TARGET_NAME --target wasm32-unknown-unknown || bash
mkdir $TERMUX_PKG_BUILDDIR/install
# miri-nightly not working.
for tar in rustc-nightly miri-nightly rustc-dev-nightly rust-docs-nightly rust-std-nightly rust-analysis-nightly cargo-nightly rls-nightly rustc-dev-nightly rustfmt-nightly clippy-nightly; do
tar -xf $TERMUX_PKG_BUILDDIR/build/dist/$tar-$CARGO_TARGET_NAME.tar.gz -C $TERMUX_PKG_BUILDDIR/install
# uninstall previous version
$TERMUX_PKG_BUILDDIR/install/$tar-$CARGO_TARGET_NAME/install.sh --uninstall --prefix=$RUST_PREFIX || true
$TERMUX_PKG_BUILDDIR/install/$tar-$CARGO_TARGET_NAME/install.sh --prefix=$RUST_PREFIX
done
tar -xf $TERMUX_PKG_BUILDDIR/build/dist/rust-src-nightly.tar.gz -C $TERMUX_PKG_BUILDDIR/install
$TERMUX_PKG_BUILDDIR/install/rust-src-nightly/install.sh --uninstall --prefix=$RUST_PREFIX || true
$TERMUX_PKG_BUILDDIR/install/rust-src-nightly/install.sh --prefix=$RUST_PREFIX
WASM=wasm32-unknown-unknown
for tar in rust-std-nightly rust-analysis-nightly; do
tar -xf $TERMUX_PKG_BUILDDIR/build/dist/$tar-$WASM.tar.gz -C $TERMUX_PKG_BUILDDIR/install
# uninstall previous version
$TERMUX_PKG_BUILDDIR/install/$tar-$WASM/install.sh --uninstall --prefix=$RUST_PREFIX || true
$TERMUX_PKG_BUILDDIR/install/$tar-$WASM/install.sh --prefix=$RUST_PREFIX
done
if [ $TERMUX_ARCH = "x86_64" ]; then
rm -f $TERMUX_PREFIX/lib/libc.so $TERMUX_PREFIX/lib/libdl.so
mv $TERMUX_PREFIX/lib/libtinfo.so.6.tmp $TERMUX_PREFIX/lib/libtinfo.so.6
fi
}
termux_step_post_massage () {
rm $TERMUX_PKG_MASSAGEDIR/$RUST_PREFIX/lib/rustlib/{components,rust-installer-version,install.log,uninstall.sh}
mkdir -p $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/etc/profile.d
mkdir -p $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib
echo "#!$TERMUX_PREFIX/bin/sh" > $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/etc/profile.d/rust-nightly.sh
echo "export PATH=$RUST_PREFIX/bin:\$PATH" >> $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/etc/profile.d/rust-nightly.sh
cd $TERMUX_PKG_MASSAGEDIR/$RUST_PREFIX/lib
ln -sf rustlib/$CARGO_TARGET_NAME/lib/lib*.so .
cd $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib
ln -sf ../opt/rust-nightly/lib/lib*.so .
ln -sf $TERMUX_PREFIX/bin/lld $TERMUX_PKG_MASSAGEDIR$RUST_PREFIX/bin/rust-lld
rm -f ../bin/llvm-dwp
if [ $TERMUX_ARCH = "x86_64" ]; then
rm -f $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib/libtinfo.so.6
fi
rm $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib/$TERMUX_HOST_PLATFORM/$TERMUX_PKG_API_LEVEL/libLLVM-11.1.0.so
}
termux_step_create_debscripts () {
echo "#!$TERMUX_PREFIX/bin/sh" > postinst
echo "echo 'source \$PREFIX/etc/profile.d/rust-nightly.sh to use nightly'" >> postinst
echo "echo 'or export RUSTC=\$PREFIX/opt/rust-nightly/bin/rustc'" >> postinst
}
@@ -1,48 +0,0 @@
[build]
build = "x86_64-unknown-linux-gnu"
host = [ "@RUST_TARGET_TRIPLE@" ]
target = [ '@RUST_TARGET_TRIPLE@', 'wasm32-unknown-unknown' ]
#python = "python2.7"
#full-bootstrap = false
extended = true
rustc = '@RUSTC@'
cargo = '@CARGO@'
#configure-args = ['--target=wasm32-unknown-unknown', '--set', 'llvm.experimental-targets=WebAssembly']
#tools = ["rls", "rustfmt", "analysis"]
local-rebuild = false
[install]
prefix = "@RUST_PREFIX@"
[llvm]
experimental-targets = 'WebAssembly'
link-shared = true
[rust]
#backtrace = false
#default-linker = "clang"
#default-ar = "ar"
channel = "nightly"
rpath = true
optimize-tests = false
codegen-tests = false
#lld = false
deny-warnings = false
backtrace-on-ice = true
[target.wasm32-unknown-unknown]
#linker = @TERMUX_PREFIX@/bin/wasm-ld
#crt-static = true
[target.x86_64-unknown-linux-gnu]
llvm-config = "/usr/bin/llvm-config-10"
[target.@RUST_TARGET_TRIPLE@]
cc = "@TERMUX_HOST_PLATFORM@-clang"
cxx = "@TERMUX_HOST_PLATFORM@-clang++"
llvm-config = "@TERMUX_PREFIX@/bin/llvm-config"
#jemalloc = "/path/to/jemalloc/libjemalloc_pic.a"
#android-ndk = "/path/to/ndk"
[dist]
missing-tools = true
@@ -1,4 +0,0 @@
TERMUX_SUBPKG_DESCRIPTION="An interpreter for Rust's mid-level intermediate representation"
TERMUX_SUBPKG_INCLUDE="opt/rust-nightly/bin/cargo-miri opt/rust-nightly/bin/miri opt/rust-nightlyshare/doc/miri"
TERMUX_SUBPKG_DEPENDS="rustc-nightly"
@@ -1,11 +0,0 @@
--- ../rustc-1.29.2-src/src/libstd/sys/unix/os.rs 2018-10-19 14:12:31.000000000 -0700
+++ ./library/std/src/sys/unix/os.rs 2018-10-19 14:11:20.000000000 -0700
@@ -488,7 +488,7 @@
pub fn temp_dir() -> PathBuf {
::env::var_os("TMPDIR").map(PathBuf::from).unwrap_or_else(|| {
if cfg!(target_os = "android") {
- PathBuf::from("/data/local/tmp")
+ PathBuf::from("@TERMUX_PREFIX@/tmp")
} else {
PathBuf::from("/tmp")
}
@@ -1,3 +0,0 @@
TERMUX_SUBPKG_DESCRIPTION="rust std for wasm32-unknown-unknown target"
TERMUX_SUBPKG_PLATFORM_INDEPENDENT=true
TERMUX_SUBPKG_INCLUDE="opt/rust-nightly/lib/rustlib/wasm32-unknown-unknown"
@@ -1,3 +0,0 @@
TERMUX_SUBPKG_DESCRIPTION="server that provides IDEs, editors, and other tools with information about Rust programs"
TERMUX_SUBPKG_INCLUDE="opt/rust-nightly/bin/rls opt/rust-nightly/share/doc/rls"
TERMUX_PKG_DEPENDS="rustc-nightly"
@@ -1,3 +0,0 @@
TERMUX_SUBPKG_DESCRIPTION="rust src"
TERMUX_SUBPKG_PLATFORM_INDEPENDENT=true
TERMUX_SUBPKG_INCLUDE="opt/rust-nightly/lib/rustlib/src"
@@ -1,3 +0,0 @@
TERMUX_SUBPKG_DESCRIPTION="developer compiler libs"
INCLUDED=$(sed 's/^...../opt\/rust-nightly\//' $TERMUX_PKG_BUILDDIR/install/rustc-dev-nightly-$CARGO_TARGET_NAME/rustc-dev/manifest.in | grep -v '\.so$' )
TERMUX_SUBPKG_INCLUDE="$INCLUDED"
@@ -1,4 +0,0 @@
TERMUX_SUBPKG_DESCRIPTION="A tool for formatting Rust code according to style guidelines"
TERMUX_SUBPKG_INCLUDE="opt/rust-nightly/bin/cargo-fmt opt/rust-nightly/bin/rustfmt opt/rust-nightlyshare/doc/rustfmt"
TERMUX_SUBPKG_DEPENDS="rustc-nightly"
@@ -1,12 +0,0 @@
diff -u -r ../rustc-1.34.1-src/src/librustc_llvm/build.rs ./src/librustc_llvm/build.rs
--- ../rustc-1.34.1-src/src/librustc_llvm/build.rs 2019-04-24 21:07:08.000000000 +0000
+++ ./compiler/rustc_llvm/build.rs 2019-05-05 20:56:34.090330174 +0000
@@ -244,6 +244,8 @@
"c++"
} else if target.contains("darwin") {
"c++"
+ } else if target.contains("android") {
+ "c++_shared"
} else if target.contains("netbsd") && llvm_static_stdcpp.is_some() {
// NetBSD uses a separate library when relocation is required
"stdc++_pic"
@@ -1,2 +0,0 @@
#!/data/data/com.termux/files/usr/bin/sh
export PATH=/data/data/com.termux/files/usr/opt/rustc-nightly/bin:$PATH
-58
View File
@@ -1,58 +0,0 @@
TERMUX_PKG_HOMEPAGE=https://bellard.org/tcc/
TERMUX_PKG_DESCRIPTION="Tiny C Compiler"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Leonid Pliushch <leonid.pliushch@gmail.com>"
TERMUX_PKG_VERSION=1:0.9.27
TERMUX_PKG_REVISION=10
TERMUX_PKG_SRCURL=https://repo.or.cz/tinycc.git/snapshot/fef838db2d124db3f1357385972371ccba7af2c6.tar.gz
TERMUX_PKG_SHA256=f6a022994b9903485a1777540c0c9e0571990fc339a2b325be6127b616534f33
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_NO_STATICSPLIT=true
termux_step_configure() {
unset CFLAGS CXXFLAGS
if [ "${TERMUX_ARCH}" = "arm" ] || [ "${TERMUX_ARCH}" = "i686" ]; then
ELF_INTERPRETER_PATH="/system/bin/linker"
ANDROID_LIB_PATH="/system/lib:/system/vendor/lib"
else
ELF_INTERPRETER_PATH="/system/bin/linker64"
ANDROID_LIB_PATH="/system/lib64:/system/vendor/lib64"
fi
}
termux_step_make() {
(
unset CC CFLAGS LDFLAGS
./configure --prefix="/tmp/tcc.host" --cpu="${TERMUX_ARCH}"
make -j $TERMUX_MAKE_PROCESSES tcc
mv -f tcc tcc.host
make distclean
)
./configure \
--prefix="$TERMUX_PREFIX" \
--cross-prefix="${CC//clang}" \
--cc="clang" \
--cpu="$TERMUX_ARCH" \
--disable-rpath \
--elfinterp="$ELF_INTERPRETER_PATH" \
--crtprefix="$TERMUX_PREFIX/lib/tcc/crt" \
--sysincludepaths="$TERMUX_PREFIX/include:$TERMUX_PREFIX/lib/tcc/include" \
--libpaths="$TERMUX_PREFIX/lib:$TERMUX_PREFIX/lib/tcc:$ANDROID_LIB_PATH"
mv tcc.host tcc
touch -d "next minute" tcc
make -j ${TERMUX_MAKE_PROCESSES} libtcc1.a
rm -f tcc
make -j ${TERMUX_MAKE_PROCESSES} tcc
make install
for file in crtbegin_dynamic.o crtbegin_so.o crtend_android.o crtend_so.o; do
install -Dm600 \
"${TERMUX_STANDALONE_TOOLCHAIN}/sysroot/usr/lib/$TERMUX_HOST_PLATFORM/$TERMUX_PKG_API_LEVEL/$file" \
"${TERMUX_PREFIX}/lib/tcc/crt/$file"
done
}
@@ -1,25 +0,0 @@
diff -uNr tcc-0.9.27/libtcc.c tcc-0.9.27.mod/libtcc.c
--- tcc-0.9.27/libtcc.c 2017-12-17 10:27:05.000000000 +0200
+++ tcc-0.9.27.mod/libtcc.c 2018-08-09 19:25:44.086756864 +0300
@@ -974,9 +974,20 @@
/* add libc crt1/crti objects */
if ((output_type == TCC_OUTPUT_EXE || output_type == TCC_OUTPUT_DLL) &&
!s->nostdlib) {
- if (output_type != TCC_OUTPUT_DLL)
+
+#ifdef __ANDROID__
+ if (output_type != TCC_OUTPUT_DLL) {
+ tcc_add_crt(s, "crtbegin_dynamic.o");
+ } else {
+ tcc_add_crt(s, "crtbegin_so.o");
+ }
+#else
+ if (output_type != TCC_OUTPUT_DLL) {
tcc_add_crt(s, "crt1.o");
+ }
tcc_add_crt(s, "crti.o");
+#endif // __ANDROID__
+
}
#endif
return 0;
@@ -1,22 +0,0 @@
diff -uNr tcc-0.9.27/tccelf.c tcc-0.9.27.mod/tccelf.c
--- tcc-0.9.27/tccelf.c 2017-12-17 10:27:05.000000000 +0200
+++ tcc-0.9.27.mod/tccelf.c 2018-08-09 19:28:33.036752853 +0300
@@ -1202,8 +1202,17 @@
#endif
tcc_add_support(s1, TCC_LIBTCC1);
/* add crt end if not memory output */
- if (s1->output_type != TCC_OUTPUT_MEMORY)
+ if (s1->output_type != TCC_OUTPUT_MEMORY) {
+#ifdef __ANDROID__
+ if (s1->output_type == TCC_OUTPUT_DLL) {
+ tcc_add_crt(s1, "crtend_so.o");
+ } else {
+ tcc_add_crt(s1, "crtend_android.o");
+ }
+#else
tcc_add_crt(s1, "crtn.o");
+#endif
+ }
}
}
-28
View File
@@ -1,28 +0,0 @@
diff -uNr v-0.2.2/Makefile v-0.2.2.mod/Makefile
--- v-0.2.2/Makefile 2021-01-22 09:39:44.000000000 +0000
+++ v-0.2.2.mod/Makefile 2021-05-06 11:58:25.054252805 +0000
@@ -82,23 +82,16 @@
$(V) self
endif
else
- $(CC) $(CFLAGS) -g -std=gnu99 -w -o $(V) $(VC)/$(VCFILE) -lm -lpthread $(LDFLAGS)
+ $(CC) $(CFLAGS) -g -std=gnu99 -w -o $(V) $(VC)/$(VCFILE) -lm $(LDFLAGS)
ifdef ANDROID
chmod 755 v
endif
-ifdef prod
- $(V) -prod self
-else
- $(V) self
-endif
-
ifndef ANDROID
$(MAKE) modules
endif
endif
@echo "V has been successfully built"
- @$(V) -version
#clean: clean_tmp
#git clean -xf
-19
View File
@@ -1,19 +0,0 @@
TERMUX_PKG_HOMEPAGE=https://github.com/vlang/v
TERMUX_PKG_DESCRIPTION="Simple, fast, safe, compiled language for developing maintainable software"
TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_MAINTAINER="Leonid Pliushch <leonid.pliushch@gmail.com>"
TERMUX_PKG_VERSION=0.2.2
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://github.com/vlang/v/archive/$TERMUX_PKG_VERSION.tar.gz
TERMUX_PKG_SHA256=9152eec96d2eeb575782cf138cb837f315e48c173878857441d98ba679e3a9bf
TERMUX_PKG_DEPENDS="clang"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_EXTRA_MAKE_ARGS="ANDROID=1"
termux_step_make_install() {
install -Dm700 v "$TERMUX_PREFIX"/libexec/vlang/v
ln -sfr "$TERMUX_PREFIX"/libexec/vlang/v "$TERMUX_PREFIX"/bin/v
rm -rf "$TERMUX_PREFIX"/libexec/vlang/vlib
cp -a cmd vlib "$TERMUX_PREFIX"/libexec/vlang/
}
@@ -9,13 +9,3 @@ diff -u -r /home/builder/lib/android-ndk/sysroot/usr/include/asm-generic/termbit
+/* TCSAFLUSH is patched to be TCSANOW in Termux to work around Android SELinux rule */
+#define TCSAFLUSH 0
#endif
--- ./usr/include/bits/termios_inlines.h.orig 2021-08-16 17:05:16.001067630 +0200
+++ ./usr/include/bits/termios_inlines.h 2021-08-16 17:05:05.851074187 +0200
@@ -117,7 +117,6 @@
switch (optional_actions) {
case TCSANOW: cmd = TCSETS; break;
case TCSADRAIN: cmd = TCSETSW; break;
- case TCSAFLUSH: cmd = TCSETSF; break;
default: errno = EINVAL; return -1;
}
return ioctl(fd, cmd, s);
-12
View File
@@ -1,12 +0,0 @@
--- ./usr/include/dirent.h.orig
+++ ./usr/include/dirent.h
@@ -57,6 +57,9 @@
#define DT_SOCK 12
#define DT_WHT 14
+#define IFTODT(x) ((x)>>12 & 0xF)
+#define DTTOIF(x) ((x)<<12)
+
#if defined(__LP64__)
#define __DIRENT64_INO_T ino_t
#else
+11 -6
View File
@@ -1,11 +1,16 @@
--- ./usr/include/linux/fcntl.h
+++ ./usr/include/linux/fcntl.h
@@ -54,7 +54,7 @@
diff -uNr sysroot.orig/usr/include/linux/fcntl.h sysroot/usr/include/linux/fcntl.h
--- sysroot.orig/usr/include/linux/fcntl.h 2019-02-12 16:12:24.000000000 +0000
+++ sysroot/usr/include/linux/fcntl.h 2019-03-20 13:22:32.823142545 +0000
@@ -51,6 +51,12 @@
#define DN_ATTRIB 0x00000020
#define DN_MULTISHOT 0x80000000
#define AT_FDCWD - 100
#define AT_SYMLINK_NOFOLLOW 0x100
-#define AT_EACCESS 0x200
+/* Termux patch: This flag is not supported on Android 6.0+, and should not
+ be needed since there are not setuid binaries. Define AT_EACCESS to 0 to
+ avoid packages defining their own AT_EACCESS (which e.g. coreutil does)
+ since that will only result in errors. See:
+ https://android.googlesource.com/platform/bionic/+/3577825%5E!/ */
+#define AT_EACCESS 0
#define AT_SYMLINK_NOFOLLOW 0x100
#define AT_REMOVEDIR 0x200
#define AT_SYMLINK_FOLLOW 0x400
#define AT_NO_AUTOMOUNT 0x800
-15
View File
@@ -1,15 +0,0 @@
--- ./usr/include/mntent.h.orig 2021-12-10 16:17:07.041722648 +0530
+++ ./usr/include/mntent.h 2021-12-10 16:17:41.171722635 +0530
@@ -70,9 +70,9 @@
#endif /* __ANDROID_API__ >= 21 */
-#if __ANDROID_API__ >= 26
-char* hasmntopt(const struct mntent* __entry, const char* __option) __INTRODUCED_IN(26);
-#endif /* __ANDROID_API__ >= 26 */
+#if __ANDROID_API__ >= 21
+char* hasmntopt(const struct mntent* __entry, const char* __option) __INTRODUCED_IN(21);
+#endif /* __ANDROID_API__ >= 21 */
__END_DECLS
+3 -3
View File
@@ -1,5 +1,5 @@
--- ./usr/include/paths.h.orig 2021-08-16 11:55:04.492150066 +0200
+++ ./usr/include/paths.h 2021-08-16 11:55:42.498804733 +0200
--- ./usr/include/paths.h.orig 2020-07-10 21:50:03.778299300 +0000
+++ ./usr/include/paths.h 2020-07-10 21:51:03.127602196 +0000
@@ -40,14 +40,14 @@
#ifndef _PATH_BSHELL
@@ -12,7 +12,7 @@
#define _PATH_CONSOLE "/dev/console"
/** Default shell search path. */
-#define _PATH_DEFPATH "/product/bin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/system_ext/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin"
-#define _PATH_DEFPATH "/product/bin:/apex/com.android.runtime/bin:/apex/com.android.art/bin:/system/bin:/system/xbin:/odm/bin:/vendor/bin:/vendor/xbin"
+#define _PATH_DEFPATH "@TERMUX_PREFIX@/bin"
/** Path to the directory containing device files. */
+11 -5
View File
@@ -1,6 +1,7 @@
--- ./usr/include/stdio.h.orig 2021-08-16 11:48:44.308954400 +0200
+++ ./usr/include/stdio.h 2021-08-16 11:50:00.438924014 +0200
@@ -44,6 +44,9 @@
diff -uNr ./usr.old/include/stdio.h ./usr/include/stdio.h
--- ./usr.old/include/stdio.h 2019-05-22 12:49:28.000000000 +0300
+++ ./usr/include/stdio.h 2019-12-13 21:50:02.765565736 +0200
@@ -44,11 +44,12 @@
#include <stdarg.h>
#include <stddef.h>
@@ -9,11 +10,16 @@
+
#include <bits/seek_constants.h>
#if __ANDROID_API__ < 24
-#if __ANDROID_API__ < __ANDROID_API_N__
#include <bits/struct_file.h>
-#endif
__BEGIN_DECLS
@@ -165,7 +166,7 @@
__printflike(2, 0) __warnattr_strict("vsprintf is often misused; please use vsnprintf");
char* tmpnam(char* __s)
__warnattr("tmpnam is unsafe, use mkstemp or tmpfile instead");
__warnattr("tempnam is unsafe, use mkstemp or tmpfile instead");
-#define P_tmpdir "/tmp/" /* deprecated */
+#define P_tmpdir "@TERMUX_PREFIX@/tmp/" /* deprecated */
char* tempnam(const char* __dir, const char* __prefix)
+4 -3
View File
@@ -1,5 +1,6 @@
--- ./usr/include/stdlib.h.orig 2021-08-16 11:50:47.432239182 +0200
+++ ./usr/include/stdlib.h 2021-08-16 11:51:31.102222894 +0200
diff -uNr sysroot.orig/usr/include/stdlib.h sysroot/usr/include/stdlib.h
--- sysroot.orig/usr/include/stdlib.h 2019-02-12 16:12:24.000000000 +0000
+++ sysroot/usr/include/stdlib.h 2019-03-20 13:23:48.870108924 +0000
@@ -33,6 +33,7 @@
#include <bits/wait.h>
#include <malloc.h>
@@ -11,7 +12,7 @@
@@ -224,8 +225,7 @@
size_t wcstombs(char* __dst, const wchar_t* __src, size_t __n);
#if __ANDROID_API__ >= 21
#if __ANDROID_API__ >= __ANDROID_API_L__
-size_t __ctype_get_mb_cur_max(void) __INTRODUCED_IN(21);
-#define MB_CUR_MAX __ctype_get_mb_cur_max()
+#define MB_CUR_MAX 4
+3 -3
View File
@@ -1,6 +1,6 @@
--- ./usr/include/sys/cdefs.h.orig 2021-08-16 11:52:08.128876161 +0200
+++ ./usr/include/sys/cdefs.h 2021-08-16 11:52:08.555542676 +0200
@@ -372,3 +372,6 @@
--- ./usr/include/sys/cdefs.h.orig 2020-01-18 00:06:05.760188085 +0000
+++ ./usr/include/sys/cdefs.h 2020-01-18 00:09:52.363968728 +0000
@@ -358,3 +358,6 @@
#if __has_include(<android/ndk-version.h>)
#include <android/ndk-version.h>
#endif
+3 -5
View File
@@ -1,6 +1,6 @@
--- ./usr/include/unistd.h.orig 2021-08-16 11:52:08.095542840 +0200
+++ ./usr/include/unistd.h 2021-08-16 11:52:08.565542673 +0200
@@ -375,6 +375,74 @@
--- sysroot/usr/include/unistd.h 2018-04-30 19:24:22.000000000 +0000
+++ usr/include/unistd.h 2018-08-16 10:42:51.158596753 +0000
@@ -377,4 +377,72 @@
#undef _UNISTD_H_
#endif
@@ -73,5 +73,3 @@
+#endif
+
__END_DECLS
#include <android/legacy_unistd_inlines.h>
+3 -3
View File
@@ -1,6 +1,6 @@
--- ./usr/include/utmp.h.orig 2021-08-16 11:52:08.095542840 +0200
+++ ./usr/include/utmp.h 2021-08-16 11:52:08.565542673 +0200
@@ -37,9 +37,9 @@
--- sysroot/usr/include/utmp.h 2021-05-07 05:45:33.518467959 +0000
+++ usr/include/utmp.h 2021-05-07 05:46:25.195022662 +0000
@@ -32,9 +32,9 @@
#include <sys/types.h>
#include <time.h>
-15
View File
@@ -1,15 +0,0 @@
TERMUX_PKG_HOMEPAGE=https://github.com/hackndev/0verkill
TERMUX_PKG_DESCRIPTION="Bloody 2D action deathmatch-like game in ASCII-ART"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=0.16-git
TERMUX_PKG_REVISION=3
TERMUX_PKG_SRCURL=https://github.com/ravener/0verkill/archive/refs/tags/v${TERMUX_PKG_VERSION:0:4}.tar.gz
TERMUX_PKG_SHA256=d337e4a7dd91f26c837e96492d960c7fd77c75bc24bcc6ed8d350df39edf8bb8
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_GROUPS="games"
termux_step_pre_configure() {
autoreconf -vfi
CFLAGS+=" -fcommon"
}
+4 -2
View File
@@ -5,7 +5,7 @@ TERMUX_PKG_MAINTAINER="@termux"
_TAG_VERSION=7.1.2
_TAG_REVISION=33
TERMUX_PKG_VERSION=${_TAG_VERSION}.${_TAG_REVISION}
TERMUX_PKG_REVISION=15
TERMUX_PKG_REVISION=13
TERMUX_PKG_SKIP_SRC_EXTRACT=true
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_DEPENDS="libc++, libexpat, libpng, libzopfli, zlib"
@@ -102,7 +102,7 @@ termux_step_make_install() {
socket_network_client_unix.c \
sockets_unix.o \
str_parms.c"
$CC $CPPFLAGS $LDFLAGS \
$CC $LDFLAGS \
-Dchar16_t=uint16_t \
-std=c11 \
-isystem $AOSP_INCLUDE_DIR \
@@ -114,6 +114,8 @@ termux_step_make_install() {
-shared \
-o $TERMUX_PREFIX/lib/libandroid-cutils.so
# Build libutil:
local LIBUTILS_TARFILE=$TERMUX_PKG_CACHEDIR/libutils_${_TAGNAME}.tar.gz
test ! -f $LIBUTILS_TARFILE && termux_download \
+2 -2
View File
@@ -2,9 +2,9 @@ TERMUX_PKG_HOMEPAGE=https://algernon.roboticoverlords.org/
TERMUX_PKG_DESCRIPTION="Small self-contained web server with Lua, Markdown, QUIC, Redis and PostgreSQL support"
TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=1.12.14
TERMUX_PKG_VERSION=1.12.12
TERMUX_PKG_SRCURL=https://github.com/xyproto/algernon/archive/$TERMUX_PKG_VERSION.tar.gz
TERMUX_PKG_SHA256=cab5b01923142e0326ea2a01797814bb2e8ea9f7c6c41a3ea0ae7df3b667e86e
TERMUX_PKG_SHA256=6127eb975da960fd8aa7732c82f3b5e62d14ea763801778552bdbeec28846bf7
TERMUX_PKG_AUTO_UPDATE=true
termux_step_make() {
@@ -1,13 +0,0 @@
https://github.com/lib/pq/pull/1060
diff --git a/vendor/github.com/lib/pq/user_posix.go b/vendor/github.com/lib/pq/user_posix.go
index a510192..33bc5b7 100644
--- a/vendor/github.com/lib/pq/user_posix.go
+++ b/vendor/github.com/lib/pq/user_posix.go
@@ -1,6 +1,6 @@
// Package pq is a pure Go Postgres driver for the database/sql package.
-// +build aix darwin dragonfly freebsd linux nacl netbsd openbsd plan9 solaris rumprun
+// +build aix darwin dragonfly freebsd linux,!android nacl netbsd openbsd plan9 solaris rumprun
package pq
+5 -6
View File
@@ -1,12 +1,11 @@
TERMUX_PKG_HOMEPAGE=http://alpine.x10host.com/
TERMUX_PKG_HOMEPAGE=https://repo.or.cz/alpine.git
TERMUX_PKG_DESCRIPTION="Fast, easy to use email client"
TERMUX_PKG_LICENSE="Apache-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=2.25
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=http://alpine.x10host.com/alpine/release/src/alpine-$TERMUX_PKG_VERSION.tar.xz
TERMUX_PKG_SHA256=658a150982f6740bb4128e6dd81188eaa1212ca0bf689b83c2093bb518ecf776
TERMUX_PKG_DEPENDS="coreutils, libcrypt, ncurses, openssl-tool"
TERMUX_PKG_VERSION=2.24.2
TERMUX_PKG_SRCURL=https://repo.or.cz/alpine.git/snapshot/refs/tags/v$TERMUX_PKG_VERSION.tar.gz
TERMUX_PKG_SHA256=8e4654bce91837e053adf9d5b512f8c54234f527148a238f60ad49598581fb61
TERMUX_PKG_DEPENDS="libcrypt, ncurses, openssl-tool"
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--disable-debug
--with-c-client-target=lnx
+3 -2
View File
@@ -2,9 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://developer.android.com/
TERMUX_PKG_DESCRIPTION="Android platform tools"
TERMUX_PKG_LICENSE="Apache-2.0, MIT"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=31.0.3
TERMUX_PKG_VERSION=31.0.0p1
TERMUX_PKG_REVISION=2
TERMUX_PKG_SRCURL=https://github.com/nmeum/android-tools/releases/download/$TERMUX_PKG_VERSION/android-tools-$TERMUX_PKG_VERSION.tar.xz
TERMUX_PKG_SHA256=d7d2d945b6e1a7ba0c7d0b68a6d21ada6914155bf3ca02ff06c9db628ae6b029
TERMUX_PKG_SHA256=51a4c3ba5f16945905449c4bd2c1c781a4df7469f6b7362f8837f4f640d8c7b6
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="libc++, libusb, pcre2, googletest, libprotobuf, brotli, zstd, liblz4"
+352
View File
@@ -0,0 +1,352 @@
diff -uNr android-tools-31.0.0p1/vendor/CMakeLists.adb.txt android-tools-31.0.0p1.mod/vendor/CMakeLists.adb.txt
--- android-tools-31.0.0p1/vendor/CMakeLists.adb.txt 2021-03-22 17:48:01.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/CMakeLists.adb.txt 2021-05-03 17:56:53.036722882 +0000
@@ -192,7 +192,6 @@
brotlidec
brotlienc
lz4
- pthread
usb-1.0
z
zstd)
diff -uNr android-tools-31.0.0p1/vendor/CMakeLists.fastboot.txt android-tools-31.0.0p1.mod/vendor/CMakeLists.fastboot.txt
--- android-tools-31.0.0p1/vendor/CMakeLists.fastboot.txt 2021-03-22 17:48:01.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/CMakeLists.fastboot.txt 2021-05-03 17:56:53.036722882 +0000
@@ -133,4 +133,4 @@
target_link_libraries(fastboot
libsparse libzip libcutils liblog libfsmgr libutil
libbase libext4 libselinux libsepol libdiagnoseusb crypto
- z pcre2-8 pthread dl)
+ z pcre2-8 dl)
diff -uNr android-tools-31.0.0p1/vendor/CMakeLists.mke2fs.txt android-tools-31.0.0p1.mod/vendor/CMakeLists.mke2fs.txt
--- android-tools-31.0.0p1/vendor/CMakeLists.mke2fs.txt 2020-03-06 13:43:50.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/CMakeLists.mke2fs.txt 2021-05-03 17:56:53.036722882 +0000
@@ -112,6 +112,6 @@
e2fsprogs/misc/util.c)
target_link_libraries("${ANDROID_MKE2FS_NAME}"
- libext2fs libsparse libbase libzip liblog libutil pthread z)
+ libext2fs libsparse libbase libzip liblog libutil z)
target_include_directories("${ANDROID_MKE2FS_NAME}" PRIVATE
e2fsprogs/lib)
diff -uNr android-tools-31.0.0p1/vendor/adb/pairing_auth/include/adb/pairing/pairing_auth.h android-tools-31.0.0p1.mod/vendor/adb/pairing_auth/include/adb/pairing/pairing_auth.h
--- android-tools-31.0.0p1/vendor/adb/pairing_auth/include/adb/pairing/pairing_auth.h 2021-04-14 15:24:51.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/adb/pairing_auth/include/adb/pairing/pairing_auth.h 2021-05-03 17:56:53.036722882 +0000
@@ -26,7 +26,7 @@
#ifdef __cplusplus
extern "C" {
#endif
-#if !defined(__ANDROID__) || __ANDROID_API__ >= 30
+#if 1
/**
* PairingAuthCtx is a wrapper around the SPAKE2 protocol + cipher initialization
diff -uNr android-tools-31.0.0p1/vendor/adb/pairing_connection/include/adb/pairing/pairing_connection.h android-tools-31.0.0p1.mod/vendor/adb/pairing_connection/include/adb/pairing/pairing_connection.h
--- android-tools-31.0.0p1/vendor/adb/pairing_connection/include/adb/pairing/pairing_connection.h 2021-04-14 15:24:51.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/adb/pairing_connection/include/adb/pairing/pairing_connection.h 2021-05-03 17:56:53.036722882 +0000
@@ -37,7 +37,7 @@
#ifdef __cplusplus
extern "C" {
#endif
-#if !defined(__ANDROID__) || __ANDROID_API__ >= 30
+#if 1
const uint32_t kMaxPeerInfoSize = 8192;
struct PeerInfo {
diff -uNr android-tools-31.0.0p1/vendor/adb/pairing_connection/include/adb/pairing/pairing_server.h android-tools-31.0.0p1.mod/vendor/adb/pairing_connection/include/adb/pairing/pairing_server.h
--- android-tools-31.0.0p1/vendor/adb/pairing_connection/include/adb/pairing/pairing_server.h 2021-04-14 15:24:51.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/adb/pairing_connection/include/adb/pairing/pairing_server.h 2021-05-03 17:56:53.036722882 +0000
@@ -33,7 +33,7 @@
#ifdef __cplusplus
extern "C" {
#endif
-#if !defined(__ANDROID__) || __ANDROID_API__ >= 30
+#if 1
// PairingServerCtx is a wrapper around the #PairingConnectionCtx APIs,
// which handles multiple client connections.
diff -uNr android-tools-31.0.0p1/vendor/adb/sysdeps.h android-tools-31.0.0p1.mod/vendor/adb/sysdeps.h
--- android-tools-31.0.0p1/vendor/adb/sysdeps.h 2021-04-14 15:24:51.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/adb/sysdeps.h 2021-05-03 17:56:53.036722882 +0000
@@ -482,7 +482,11 @@
}
static inline int adb_getlogin_r(char* buf, size_t bufsize) {
- return getlogin_r(buf, bufsize);
+ char* logname = getlogin();
+ if (!logname) return ENXIO;
+ if (strlen(logname) >= bufsize) return ERANGE;
+ strcpy(buf, logname);
+ return 0;
}
static inline int adb_read(borrowed_fd fd, void* buf, size_t len) {
diff -uNr android-tools-31.0.0p1/vendor/base/libs/androidfw/ResourceTypes.cpp android-tools-31.0.0p1.mod/vendor/base/libs/androidfw/ResourceTypes.cpp
--- android-tools-31.0.0p1/vendor/base/libs/androidfw/ResourceTypes.cpp 2020-11-12 18:02:26.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/base/libs/androidfw/ResourceTypes.cpp 2021-05-03 17:56:53.036722882 +0000
@@ -41,7 +41,7 @@
#include <utils/String16.h>
#include <utils/String8.h>
-#ifdef __ANDROID__
+#if 0
#include <binder/TextOutput.h>
#endif
diff -uNr android-tools-31.0.0p1/vendor/boringssl/crypto/CMakeLists.txt android-tools-31.0.0p1.mod/vendor/boringssl/crypto/CMakeLists.txt
--- android-tools-31.0.0p1/vendor/boringssl/crypto/CMakeLists.txt 2021-03-22 17:48:14.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/boringssl/crypto/CMakeLists.txt 2021-05-03 17:56:53.036722882 +0000
@@ -167,7 +167,7 @@
add_custom_command(
OUTPUT err_data.c
- COMMAND ${GO_EXECUTABLE} run err_data_generate.go > ${CMAKE_CURRENT_BINARY_DIR}/err_data.c
+ COMMAND GOOS=linux GOARCH=amd64 ${GO_EXECUTABLE} run err_data_generate.go > ${CMAKE_CURRENT_BINARY_DIR}/err_data.c
DEPENDS
err/err_data_generate.go
err/asn1.errordata
diff -uNr android-tools-31.0.0p1/vendor/core/fs_mgr/liblp/utility.cpp android-tools-31.0.0p1.mod/vendor/core/fs_mgr/liblp/utility.cpp
--- android-tools-31.0.0p1/vendor/core/fs_mgr/liblp/utility.cpp 2020-12-20 20:06:59.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/core/fs_mgr/liblp/utility.cpp 2021-05-03 17:56:53.040722882 +0000
@@ -34,7 +34,7 @@
#include <ext4_utils/ext4_utils.h>
#include <openssl/sha.h>
-#ifdef __ANDROID__
+#if 0
#include <cutils/android_get_control_file.h>
#endif
@@ -208,7 +208,7 @@
}
base::unique_fd GetControlFileOrOpen(std::string_view path, int flags) {
-#if defined(__ANDROID__)
+#if 0
int fd = android_get_control_file(path.data());
if (fd >= 0) {
int newfd = TEMP_FAILURE_RETRY(dup(fd));
diff -uNr android-tools-31.0.0p1/vendor/core/init/reboot.cpp android-tools-31.0.0p1.mod/vendor/core/init/reboot.cpp
--- android-tools-31.0.0p1/vendor/core/init/reboot.cpp 2021-04-14 15:24:51.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/core/init/reboot.cpp 2021-05-03 17:56:53.040722882 +0000
@@ -247,7 +247,7 @@
if (dump) {
LOG(INFO) << "mount entry " << mentry->mnt_fsname << ":" << mentry->mnt_dir << " opts "
<< mentry->mnt_opts << " type " << mentry->mnt_type;
- } else if (MountEntry::IsBlockDevice(*mentry) && hasmntopt(mentry, "rw")) {
+ } else if (MountEntry::IsBlockDevice(*mentry) && 0) {
std::string mount_dir(mentry->mnt_dir);
// These are R/O partitions changed to R/W after adb remount.
// Do not umount them as shutdown critical services may rely on them.
diff -uNr android-tools-31.0.0p1/vendor/core/libcutils/properties.cpp android-tools-31.0.0p1.mod/vendor/core/libcutils/properties.cpp
--- android-tools-31.0.0p1/vendor/core/libcutils/properties.cpp 2020-12-20 20:06:59.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/core/libcutils/properties.cpp 2021-05-03 17:56:53.040722882 +0000
@@ -91,7 +91,7 @@
return len;
}
-#if __has_include(<sys/system_properties.h>)
+#if 0
#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
#include <sys/_system_properties.h>
diff -uNr android-tools-31.0.0p1/vendor/e2fsprogs/lib/ext2fs/ismounted.c android-tools-31.0.0p1.mod/vendor/e2fsprogs/lib/ext2fs/ismounted.c
--- android-tools-31.0.0p1/vendor/e2fsprogs/lib/ext2fs/ismounted.c 2019-08-21 17:14:14.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/e2fsprogs/lib/ext2fs/ismounted.c 2021-05-03 17:56:53.044722882 +0000
@@ -196,7 +196,7 @@
#endif /* __GNU__ */
*mount_flags = EXT2_MF_MOUNTED;
-#ifdef MNTOPT_RO
+#if 0
/* Check to see if the ro option is set */
if (hasmntopt(mnt, MNTOPT_RO))
*mount_flags |= EXT2_MF_READONLY;
diff -uNr android-tools-31.0.0p1/vendor/f2fs-tools/lib/libf2fs.c android-tools-31.0.0p1.mod/vendor/f2fs-tools/lib/libf2fs.c
--- android-tools-31.0.0p1/vendor/f2fs-tools/lib/libf2fs.c 2020-12-20 12:53:55.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/f2fs-tools/lib/libf2fs.c 2021-05-03 17:56:53.044722882 +0000
@@ -714,7 +714,7 @@
while ((mnt = getmntent(file)) != NULL) {
if (!strcmp(device, mnt->mnt_fsname)) {
-#ifdef MNTOPT_RO
+#if 0
if (hasmntopt(mnt, MNTOPT_RO))
c.ro = 1;
#endif
diff -uNr android-tools-31.0.0p1/vendor/libbase/include/android-base/unique_fd.h android-tools-31.0.0p1.mod/vendor/libbase/include/android-base/unique_fd.h
--- android-tools-31.0.0p1/vendor/libbase/include/android-base/unique_fd.h 2020-11-12 18:02:33.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/libbase/include/android-base/unique_fd.h 2021-05-03 17:56:53.044722882 +0000
@@ -46,7 +46,7 @@
// unique_fd is also known as ScopedFd/ScopedFD/scoped_fd; mentioned here to help
// you find this class if you're searching for one of those names.
-#if defined(__BIONIC__)
+#if 0
#include <android/fdsan.h>
#endif
@@ -54,7 +54,7 @@
namespace base {
struct DefaultCloser {
-#if defined(__BIONIC__)
+#if 0
static void Tag(int fd, void* old_addr, void* new_addr) {
if (android_fdsan_exchange_owner_tag) {
uint64_t old_tag = android_fdsan_create_owner_tag(ANDROID_FDSAN_OWNER_TYPE_UNIQUE_FD,
diff -uNr android-tools-31.0.0p1/vendor/libbase/logging.cpp android-tools-31.0.0p1.mod/vendor/libbase/logging.cpp
--- android-tools-31.0.0p1/vendor/libbase/logging.cpp 2021-04-14 15:24:51.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/libbase/logging.cpp 2021-05-03 17:56:53.044722882 +0000
@@ -65,11 +65,17 @@
namespace android {
namespace base {
+#if defined(__linux__)
+extern "C" {
+extern char* __progname;
+}
+#endif
+
// BSD-based systems like Android/macOS have getprogname(). Others need us to provide one.
#if defined(__linux__) || defined(_WIN32)
static const char* getprogname() {
#if defined(__linux__)
- return program_invocation_short_name;
+ return __progname;
#elif defined(_WIN32)
static bool first = true;
static char progname[MAX_PATH] = {};
diff -uNr android-tools-31.0.0p1/vendor/libbase/properties.cpp android-tools-31.0.0p1.mod/vendor/libbase/properties.cpp
--- android-tools-31.0.0p1/vendor/libbase/properties.cpp 2020-11-12 18:02:33.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/libbase/properties.cpp 2021-05-03 17:56:53.044722882 +0000
@@ -16,7 +16,7 @@
#include "android-base/properties.h"
-#if defined(__BIONIC__)
+#if 0
#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
#include <sys/system_properties.h>
#include <sys/_system_properties.h>
@@ -32,8 +32,6 @@
#include <android-base/parseint.h>
#include <android-base/strings.h>
-#if !defined(__BIONIC__)
-
#define PROP_VALUE_MAX 92
static std::map<std::string, std::string>& g_properties = *new std::map<std::string, std::string>;
@@ -63,8 +61,6 @@
return strlen(value);
}
-#endif
-
namespace android {
namespace base {
@@ -108,7 +104,7 @@
std::string GetProperty(const std::string& key, const std::string& default_value) {
std::string property_value;
-#if defined(__BIONIC__)
+#if 0
const prop_info* pi = __system_property_find(key.c_str());
if (pi == nullptr) return default_value;
@@ -134,7 +130,7 @@
return (__system_property_set(key.c_str(), value.c_str()) == 0);
}
-#if defined(__BIONIC__)
+#if 0
struct WaitForPropertyData {
bool done;
diff -uNr android-tools-31.0.0p1/vendor/libziparchive/zip_archive.cc android-tools-31.0.0p1.mod/vendor/libziparchive/zip_archive.cc
--- android-tools-31.0.0p1/vendor/libziparchive/zip_archive.cc 2020-11-12 18:02:33.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/libziparchive/zip_archive.cc 2021-05-03 17:56:53.044722882 +0000
@@ -39,7 +39,9 @@
#define lseek64 lseek
#endif
-#if defined(__BIONIC__)
+#undef __ANDROID__
+
+#if 0
#include <android/fdsan.h>
#endif
@@ -88,7 +90,7 @@
* of the string length into the hash table entry.
*/
-#if defined(__BIONIC__)
+#if 0
uint64_t GetOwnerTag(const ZipArchive* archive) {
return android_fdsan_create_owner_tag(ANDROID_FDSAN_OWNER_TYPE_ZIPARCHIVE,
reinterpret_cast<uint64_t>(archive));
@@ -102,7 +104,7 @@
central_directory(),
directory_map(),
num_entries(0) {
-#if defined(__BIONIC__)
+#if 0
if (assume_ownership) {
CHECK(mapped_zip.HasFd());
android_fdsan_exchange_owner_tag(mapped_zip.GetFileDescriptor(), 0, GetOwnerTag(this));
@@ -120,7 +122,7 @@
ZipArchive::~ZipArchive() {
if (close_file && mapped_zip.GetFileDescriptor() >= 0) {
-#if defined(__BIONIC__)
+#if 0
android_fdsan_close_with_tag(mapped_zip.GetFileDescriptor(), GetOwnerTag(this));
#else
close(mapped_zip.GetFileDescriptor());
diff -uNr android-tools-31.0.0p1/vendor/logging/liblog/logger_write.cpp android-tools-31.0.0p1.mod/vendor/logging/liblog/logger_write.cpp
--- android-tools-31.0.0p1/vendor/logging/liblog/logger_write.cpp 2021-04-14 15:24:52.000000000 +0000
+++ android-tools-31.0.0p1.mod/vendor/logging/liblog/logger_write.cpp 2021-05-03 17:56:53.044722882 +0000
@@ -39,6 +39,8 @@
#include "logger.h"
#include "uio.h"
+#undef __ANDROID__
+
#ifdef __ANDROID__
#include "logd_writer.h"
#include "pmsg_writer.h"
@@ -108,31 +110,6 @@
#endif
}
-#if defined(__linux__) || defined(_WIN32)
-static const char* getprogname() {
-#if defined(__linux__)
- return program_invocation_short_name;
-#elif defined(_WIN32)
- static bool first = true;
- static char progname[MAX_PATH] = {};
-
- if (first) {
- char path[PATH_MAX + 1];
- DWORD result = GetModuleFileName(nullptr, path, sizeof(path) - 1);
- if (result == 0 || result == sizeof(path) - 1) return "";
- path[PATH_MAX - 1] = 0;
-
- char* path_basename = basename(path);
-
- snprintf(progname, sizeof(progname), "%s", path_basename);
- first = false;
- }
-
- return progname;
-#endif
-}
-#endif
-
// It's possible for logging to happen during static initialization before our globals are
// initialized, so we place this std::string in a function such that it is initialized on the first
// call.
@@ -1,12 +0,0 @@
diff --git a/vendor/CMakeLists.adb.txt b/vendor/CMakeLists.adb.txt
index 2b6d8f0..ee55949 100644
--- a/vendor/CMakeLists.adb.txt
+++ b/vendor/CMakeLists.adb.txt
@@ -192,7 +192,6 @@ target_link_libraries(adb
brotlidec
brotlienc
lz4
- pthread
usb-1.0
z
zstd)
@@ -1,10 +0,0 @@
diff --git a/vendor/CMakeLists.fastboot.txt b/vendor/CMakeLists.fastboot.txt
index 1d43937..189d91b 100644
--- a/vendor/CMakeLists.fastboot.txt
+++ b/vendor/CMakeLists.fastboot.txt
@@ -135,4 +135,4 @@ target_compile_definitions(fastboot PRIVATE
target_link_libraries(fastboot
libsparse libzip libcutils liblog libfsmgr libutil
libbase libext4 libselinux libsepol libdiagnoseusb crypto
- z pcre2-8 pthread dl)
+ z pcre2-8 dl)
@@ -1,12 +0,0 @@
diff --git a/vendor/CMakeLists.mke2fs.txt b/vendor/CMakeLists.mke2fs.txt
index a8f89fd..d1cae40 100644
--- a/vendor/CMakeLists.mke2fs.txt
+++ b/vendor/CMakeLists.mke2fs.txt
@@ -112,6 +112,6 @@ add_executable("${ANDROID_MKE2FS_NAME}"
e2fsprogs/misc/util.c)
target_link_libraries("${ANDROID_MKE2FS_NAME}"
- libext2fs libsparse libbase libzip liblog libutil pthread z)
+ libext2fs libsparse libbase libzip liblog libutil z)
target_include_directories("${ANDROID_MKE2FS_NAME}" PRIVATE
e2fsprogs/lib)
@@ -1,93 +0,0 @@
diff --git a/vendor/adb/pairing_auth/include/adb/pairing/pairing_auth.h b/vendor/adb/pairing_auth/include/adb/pairing/pairing_auth.h
index 83f40a9..9804b76 100644
--- a/vendor/adb/pairing_auth/include/adb/pairing/pairing_auth.h
+++ b/vendor/adb/pairing_auth/include/adb/pairing/pairing_auth.h
@@ -53,7 +53,7 @@ typedef struct PairingAuthCtx PairingAuthCtx;
* @return a new PairingAuthCtx server instance. Caller is responsible for
* destroying the context via #pairing_auth_destroy.
*/
-PairingAuthCtx* pairing_auth_server_new(const uint8_t* pswd, size_t len) __INTRODUCED_IN(30);
+PairingAuthCtx* pairing_auth_server_new(const uint8_t* pswd, size_t len) __INTRODUCED_IN(24);
/**
* Creates a new PairingAuthCtx instance as the client.
@@ -64,14 +64,14 @@ PairingAuthCtx* pairing_auth_server_new(const uint8_t* pswd, size_t len) __INTRO
* @return a new PairingAuthCtx client instance. Caller is responsible for
* destroying the context via #pairing_auth_destroy.
*/
-PairingAuthCtx* pairing_auth_client_new(const uint8_t* pswd, size_t len) __INTRODUCED_IN(30);
+PairingAuthCtx* pairing_auth_client_new(const uint8_t* pswd, size_t len) __INTRODUCED_IN(24);
/**
* Destroys the PairingAuthCtx.
*
* @param ctx the PairingAuthCtx instance to destroy. Will abort if null.
*/
-void pairing_auth_destroy(PairingAuthCtx* ctx) __INTRODUCED_IN(30);
+void pairing_auth_destroy(PairingAuthCtx* ctx) __INTRODUCED_IN(24);
/**
* Returns the exact size of the SPAKE2 msg.
@@ -82,7 +82,7 @@ void pairing_auth_destroy(PairingAuthCtx* ctx) __INTRODUCED_IN(30);
* @param ctx the PairingAuthCtx instance. Will abort if null.
* @return the size of the SPAKE2 message in bytes. This is guaranteed to be > 0.
*/
-size_t pairing_auth_msg_size(PairingAuthCtx* ctx) __INTRODUCED_IN(30);
+size_t pairing_auth_msg_size(PairingAuthCtx* ctx) __INTRODUCED_IN(24);
/**
* Writes the SPAKE2 message to exchange with the other party to |out_buf|.
@@ -96,7 +96,7 @@ size_t pairing_auth_msg_size(PairingAuthCtx* ctx) __INTRODUCED_IN(30);
* be have at least #pairing_auth_msg_size size. Will abort if
* out_buf is null.
*/
-void pairing_auth_get_spake2_msg(PairingAuthCtx* ctx, uint8_t* out_buf) __INTRODUCED_IN(30);
+void pairing_auth_get_spake2_msg(PairingAuthCtx* ctx, uint8_t* out_buf) __INTRODUCED_IN(24);
/**
* Processes the peer's |their_msg| and attempts to initialize the cipher for
@@ -117,7 +117,7 @@ void pairing_auth_get_spake2_msg(PairingAuthCtx* ctx, uint8_t* out_buf) __INTROD
* for more details on the SPAKE2 protocol.
*/
bool pairing_auth_init_cipher(PairingAuthCtx* ctx, const uint8_t* their_msg, size_t msg_len)
- __INTRODUCED_IN(30);
+ __INTRODUCED_IN(24);
/**
* Returns a safe buffer size for encrypting data of a certain size.
@@ -130,7 +130,7 @@ bool pairing_auth_init_cipher(PairingAuthCtx* ctx, const uint8_t* their_msg, siz
* @return the minimum buffer size, in bytes, to hold an encrypted message of size len. See
* #pairing_auth_encrypt for usage.
*/
-size_t pairing_auth_safe_encrypted_size(PairingAuthCtx* ctx, size_t len) __INTRODUCED_IN(30);
+size_t pairing_auth_safe_encrypted_size(PairingAuthCtx* ctx, size_t len) __INTRODUCED_IN(24);
/**
* Encrypts input data and writes the encrypted data into a user-provided buffer.
@@ -147,7 +147,7 @@ size_t pairing_auth_safe_encrypted_size(PairingAuthCtx* ctx, size_t len) __INTRO
* otherwise.
*/
bool pairing_auth_encrypt(PairingAuthCtx* ctx, const uint8_t* inbuf, size_t inlen, uint8_t* outbuf,
- size_t* outlen) __INTRODUCED_IN(30);
+ size_t* outlen) __INTRODUCED_IN(24);
/**
* Returns a safe buffer size for decrypting data of a certain size.
@@ -162,7 +162,7 @@ bool pairing_auth_encrypt(PairingAuthCtx* ctx, const uint8_t* inbuf, size_t inle
* #pairing_auth_decrypt for usage.
*/
size_t pairing_auth_safe_decrypted_size(PairingAuthCtx* ctx, const uint8_t* buf, size_t len)
- __INTRODUCED_IN(30);
+ __INTRODUCED_IN(24);
/**
* Decrypts input data and writes the decrypted data into a user-provided buffer.
@@ -180,7 +180,7 @@ size_t pairing_auth_safe_decrypted_size(PairingAuthCtx* ctx, const uint8_t* buf,
* otherwise.
*/
bool pairing_auth_decrypt(PairingAuthCtx* ctx, const uint8_t* inbuf, size_t inlen, uint8_t* outbuf,
- size_t* outlen) __INTRODUCED_IN(30);
+ size_t* outlen) __INTRODUCED_IN(24);
#ifdef __cplusplus
}
@@ -1,39 +0,0 @@
diff --git a/vendor/adb/pairing_connection/include/adb/pairing/pairing_connection.h b/vendor/adb/pairing_connection/include/adb/pairing/pairing_connection.h
index 8e63db7..f158015 100644
--- a/vendor/adb/pairing_connection/include/adb/pairing/pairing_connection.h
+++ b/vendor/adb/pairing_connection/include/adb/pairing/pairing_connection.h
@@ -79,7 +79,7 @@ typedef void (*pairing_result_cb)(const PeerInfo*, int, void*);
// invoked. Otherwise, cb is guaranteed to be invoked, even if you
// destroy the ctx while in the pairing process.
bool pairing_connection_start(PairingConnectionCtx* ctx, int fd, pairing_result_cb cb, void* opaque)
- __INTRODUCED_IN(30);
+ __INTRODUCED_IN(24);
// Creates a new PairingConnectionCtx instance as the client.
//
@@ -98,7 +98,7 @@ PairingConnectionCtx* pairing_connection_client_new(const uint8_t* pswd, size_t
const PeerInfo* peer_info,
const uint8_t* x509_cert_pem, size_t x509_size,
const uint8_t* priv_key_pem, size_t priv_size)
- __INTRODUCED_IN(30);
+ __INTRODUCED_IN(24);
// Creates a new PairingConnectionCtx instance as the server.
//
@@ -117,14 +117,14 @@ PairingConnectionCtx* pairing_connection_server_new(const uint8_t* pswd, size_t
const PeerInfo* peer_info,
const uint8_t* x509_cert_pem, size_t x509_size,
const uint8_t* priv_key_pem, size_t priv_size)
- __INTRODUCED_IN(30);
+ __INTRODUCED_IN(24);
// Destroys the PairingConnectionCtx instance.
//
// It is safe to destroy the instance at any point in the pairing process.
//
// @param ctx the PairingConnectionCtx instance to destroy. Will abort if null.
-void pairing_connection_destroy(PairingConnectionCtx* ctx) __INTRODUCED_IN(30);
+void pairing_connection_destroy(PairingConnectionCtx* ctx) __INTRODUCED_IN(24);
#ifdef __cplusplus
}
@@ -1,46 +0,0 @@
diff --git a/vendor/adb/pairing_connection/include/adb/pairing/pairing_server.h b/vendor/adb/pairing_connection/include/adb/pairing/pairing_server.h
index babff94..93dcf9a 100644
--- a/vendor/adb/pairing_connection/include/adb/pairing/pairing_server.h
+++ b/vendor/adb/pairing_connection/include/adb/pairing/pairing_server.h
@@ -45,7 +45,7 @@ typedef struct PairingServerCtx PairingServerCtx;
// Callback containing the result of the pairing. If #PeerInfo is null,
// then the pairing failed. Otherwise, pairing succeeded and #PeerInfo
// contains information about the peer.
-typedef void (*pairing_server_result_cb)(const PeerInfo*, void*) __INTRODUCED_IN(30);
+typedef void (*pairing_server_result_cb)(const PeerInfo*, void*) __INTRODUCED_IN(24);
// Starts the pairing server.
//
@@ -61,7 +61,7 @@ typedef void (*pairing_server_result_cb)(const PeerInfo*, void*) __INTRODUCED_IN
// @param opaque the opaque userdata.
// @return the port number the server is listening on. Returns 0 on failure.
uint16_t pairing_server_start(PairingServerCtx* ctx, pairing_server_result_cb cb, void* opaque)
- __INTRODUCED_IN(30);
+ __INTRODUCED_IN(24);
// Creates a new PairingServerCtx instance.
//
@@ -83,7 +83,7 @@ uint16_t pairing_server_start(PairingServerCtx* ctx, pairing_server_result_cb cb
PairingServerCtx* pairing_server_new(const uint8_t* pswd, size_t pswd_len,
const PeerInfo* peer_info, const uint8_t* x509_cert_pem,
size_t x509_size, const uint8_t* priv_key_pem,
- size_t priv_size, uint16_t port) __INTRODUCED_IN(30);
+ size_t priv_size, uint16_t port) __INTRODUCED_IN(24);
// Same as #pairing_server_new, except that the x509 certificate and private key
// is generated internally.
@@ -100,12 +100,12 @@ PairingServerCtx* pairing_server_new(const uint8_t* pswd, size_t pswd_len,
// for destroying the context via #pairing_server_destroy.
PairingServerCtx* pairing_server_new_no_cert(const uint8_t* pswd, size_t pswd_len,
const PeerInfo* peer_info, uint16_t port)
- __INTRODUCED_IN(30);
+ __INTRODUCED_IN(24);
// Destroys the PairingServerCtx instance.
//
// @param ctx the PairingServerCtx instance to destroy.
-void pairing_server_destroy(PairingServerCtx* ctx) __INTRODUCED_IN(30);
+void pairing_server_destroy(PairingServerCtx* ctx) __INTRODUCED_IN(24);
#ifdef __cplusplus
}
@@ -1,17 +0,0 @@
diff --git a/vendor/adb/sysdeps.h b/vendor/adb/sysdeps.h
index 316afe7..8d5da69 100644
--- a/vendor/adb/sysdeps.h
+++ b/vendor/adb/sysdeps.h
@@ -514,7 +514,11 @@ static inline int adb_gethostname(char* name, size_t len) {
}
static inline int adb_getlogin_r(char* buf, size_t bufsize) {
- return getlogin_r(buf, bufsize);
+ char* logname = getlogin();
+ if (!logname) return ENXIO;
+ if (strlen(logname) >= bufsize) return ERANGE;
+ strcpy(buf, logname);
+ return 0;
}
static inline int adb_read(borrowed_fd fd, void* buf, size_t len) {
@@ -1,13 +0,0 @@
diff --git a/vendor/base/libs/androidfw/ResourceTypes.cpp b/vendor/base/libs/androidfw/ResourceTypes.cpp
index 2233827..bc5e9e2 100644
--- a/vendor/base/libs/androidfw/ResourceTypes.cpp
+++ b/vendor/base/libs/androidfw/ResourceTypes.cpp
@@ -42,7 +42,7 @@
#include <utils/String16.h>
#include <utils/String8.h>
-#ifdef __ANDROID__
+#if 0
#include <binder/TextOutput.h>
#endif
@@ -1,13 +0,0 @@
diff --git a/vendor/boringssl/crypto/CMakeLists.txt b/vendor/boringssl/crypto/CMakeLists.txt
index cde92b5..e25871c 100644
--- a/vendor/boringssl/crypto/CMakeLists.txt
+++ b/vendor/boringssl/crypto/CMakeLists.txt
@@ -167,7 +167,7 @@ perlasm(test/trampoline-x86_64.${ASM_EXT} test/asm/trampoline-x86_64.pl)
add_custom_command(
OUTPUT err_data.c
- COMMAND ${GO_EXECUTABLE} run err_data_generate.go > ${CMAKE_CURRENT_BINARY_DIR}/err_data.c
+ COMMAND GOOS=linux GOARCH=amd64 ${GO_EXECUTABLE} run err_data_generate.go > ${CMAKE_CURRENT_BINARY_DIR}/err_data.c
DEPENDS
err/err_data_generate.go
err/asn1.errordata
@@ -1,22 +0,0 @@
diff --git a/vendor/core/fs_mgr/liblp/utility.cpp b/vendor/core/fs_mgr/liblp/utility.cpp
index d8e171b..31b34a5 100644
--- a/vendor/core/fs_mgr/liblp/utility.cpp
+++ b/vendor/core/fs_mgr/liblp/utility.cpp
@@ -34,7 +34,7 @@
#include <ext4_utils/ext4_utils.h>
#include <openssl/sha.h>
-#ifdef __ANDROID__
+#if 0
#include <cutils/android_get_control_file.h>
#endif
@@ -208,7 +208,7 @@ bool SetBlockReadonly(int fd, bool readonly) {
}
base::unique_fd GetControlFileOrOpen(std::string_view path, int flags) {
-#if defined(__ANDROID__)
+#if 0
int fd = android_get_control_file(path.data());
if (fd >= 0) {
int newfd = TEMP_FAILURE_RETRY(dup(fd));
@@ -1,13 +0,0 @@
diff --git a/vendor/core/init/reboot.cpp b/vendor/core/init/reboot.cpp
index 464746d..dadf811 100644
--- a/vendor/core/init/reboot.cpp
+++ b/vendor/core/init/reboot.cpp
@@ -246,7 +246,7 @@ static bool FindPartitionsToUmount(std::vector<MountEntry>* block_dev_partitions
if (dump) {
LOG(INFO) << "mount entry " << mentry->mnt_fsname << ":" << mentry->mnt_dir << " opts "
<< mentry->mnt_opts << " type " << mentry->mnt_type;
- } else if (MountEntry::IsBlockDevice(*mentry) && hasmntopt(mentry, "rw")) {
+ } else if (MountEntry::IsBlockDevice(*mentry) && 0) {
std::string mount_dir(mentry->mnt_dir);
// These are R/O partitions changed to R/W after adb remount.
// Do not umount them as shutdown critical services may rely on them.
@@ -1,13 +0,0 @@
diff --git a/vendor/core/libcutils/properties.cpp b/vendor/core/libcutils/properties.cpp
index 03f0496..11c4786 100644
--- a/vendor/core/libcutils/properties.cpp
+++ b/vendor/core/libcutils/properties.cpp
@@ -91,7 +91,7 @@ int property_get(const char* key, char* value, const char* default_value) {
return len;
}
-#if __has_include(<sys/system_properties.h>)
+#if 0
#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
#include <sys/_system_properties.h>
@@ -1,13 +0,0 @@
diff --git a/vendor/e2fsprogs/lib/ext2fs/ismounted.c b/vendor/e2fsprogs/lib/ext2fs/ismounted.c
index 6cd497d..dcdd4fd 100644
--- a/vendor/e2fsprogs/lib/ext2fs/ismounted.c
+++ b/vendor/e2fsprogs/lib/ext2fs/ismounted.c
@@ -196,7 +196,7 @@ static errcode_t check_mntent_file(const char *mtab_file, const char *file,
#endif /* __GNU__ */
*mount_flags = EXT2_MF_MOUNTED;
-#ifdef MNTOPT_RO
+#if 0
/* Check to see if the ro option is set */
if (hasmntopt(mnt, MNTOPT_RO))
*mount_flags |= EXT2_MF_READONLY;
@@ -1,13 +0,0 @@
diff --git a/vendor/f2fs-tools/lib/libf2fs.c b/vendor/f2fs-tools/lib/libf2fs.c
index 55fa391..cf2716c 100644
--- a/vendor/f2fs-tools/lib/libf2fs.c
+++ b/vendor/f2fs-tools/lib/libf2fs.c
@@ -714,7 +714,7 @@ static int is_mounted(const char *mpt, const char *device)
while ((mnt = getmntent(file)) != NULL) {
if (!strcmp(device, mnt->mnt_fsname)) {
-#ifdef MNTOPT_RO
+#if 0
if (hasmntopt(mnt, MNTOPT_RO))
c.ro = 1;
#endif
@@ -1,12 +0,0 @@
diff --git a/vendor/incremental_delivery/incfs/util/include/util/map_ptr.h b/vendor/incremental_delivery/incfs/util/include/util/map_ptr.h
index 6fd38ee..bb62fd4 100644
--- a/vendor/incremental_delivery/incfs/util/include/util/map_ptr.h
+++ b/vendor/incremental_delivery/incfs/util/include/util/map_ptr.h
@@ -23,6 +23,7 @@
#include <android-base/logging.h>
#include <android-base/off64_t.h>
+#undef __ANDROID__
#ifdef __ANDROID__
#include <linux/incrementalfs.h>
#endif
@@ -1,22 +0,0 @@
diff --git a/vendor/libbase/include/android-base/unique_fd.h b/vendor/libbase/include/android-base/unique_fd.h
index 9ceb5db..bf6f5cc 100644
--- a/vendor/libbase/include/android-base/unique_fd.h
+++ b/vendor/libbase/include/android-base/unique_fd.h
@@ -46,7 +46,7 @@
// unique_fd is also known as ScopedFd/ScopedFD/scoped_fd; mentioned here to help
// you find this class if you're searching for one of those names.
-#if defined(__BIONIC__)
+#if 0
#include <android/fdsan.h>
#endif
@@ -54,7 +54,7 @@ namespace android {
namespace base {
struct DefaultCloser {
-#if defined(__BIONIC__)
+#if 0
static void Tag(int fd, void* old_addr, void* new_addr) {
if (android_fdsan_exchange_owner_tag) {
uint64_t old_tag = android_fdsan_create_owner_tag(ANDROID_FDSAN_OWNER_TYPE_UNIQUE_FD,
@@ -1,53 +0,0 @@
diff --git a/vendor/libbase/properties.cpp b/vendor/libbase/properties.cpp
index 8190987..6d48ab8 100644
--- a/vendor/libbase/properties.cpp
+++ b/vendor/libbase/properties.cpp
@@ -16,7 +16,7 @@
#include "android-base/properties.h"
-#if defined(__BIONIC__)
+#if 0
#define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
#include <sys/system_properties.h>
#include <sys/_system_properties.h>
@@ -32,11 +32,9 @@
#include <android-base/parseint.h>
#include <android-base/strings.h>
-#if !defined(__BIONIC__)
-
#define PROP_VALUE_MAX 92
-static std::map<std::string, std::string>& g_properties = *new std::map<std::string, std::string>;
+static std::map<std::string, std::string> g_properties;
int __system_property_set(const char* key, const char* value) {
if (key == nullptr || *key == '\0') return -1;
@@ -63,8 +61,6 @@ int __system_property_get(const char* key, char* value) {
return strlen(value);
}
-#endif
-
namespace android {
namespace base {
@@ -108,7 +104,7 @@ template uint64_t GetUintProperty(const std::string&, uint64_t, uint64_t);
std::string GetProperty(const std::string& key, const std::string& default_value) {
std::string property_value;
-#if defined(__BIONIC__)
+#if 0
const prop_info* pi = __system_property_find(key.c_str());
if (pi == nullptr) return default_value;
@@ -134,7 +130,7 @@ bool SetProperty(const std::string& key, const std::string& value) {
return (__system_property_set(key.c_str(), value.c_str()) == 0);
}
-#if defined(__BIONIC__)
+#if 0
struct WaitForPropertyData {
bool done;
@@ -1,42 +0,0 @@
diff --git a/vendor/libziparchive/zip_archive.cc b/vendor/libziparchive/zip_archive.cc
index fe1baa1..21d2627 100644
--- a/vendor/libziparchive/zip_archive.cc
+++ b/vendor/libziparchive/zip_archive.cc
@@ -39,7 +39,9 @@
#define lseek64 lseek
#endif
-#if defined(__BIONIC__)
+#undef __ANDROID__
+
+#if 0
#include <android/fdsan.h>
#endif
@@ -88,7 +90,7 @@ static constexpr uint64_t kMaxFileLength = 256 * static_cast<uint64_t>(1u << 30u
* of the string length into the hash table entry.
*/
-#if defined(__BIONIC__)
+#if 0
uint64_t GetOwnerTag(const ZipArchive* archive) {
return android_fdsan_create_owner_tag(ANDROID_FDSAN_OWNER_TYPE_ZIPARCHIVE,
reinterpret_cast<uint64_t>(archive));
@@ -102,7 +104,7 @@ ZipArchive::ZipArchive(MappedZipFile&& map, bool assume_ownership)
central_directory(),
directory_map(),
num_entries(0) {
-#if defined(__BIONIC__)
+#if 0
if (assume_ownership) {
CHECK(mapped_zip.HasFd());
android_fdsan_exchange_owner_tag(mapped_zip.GetFileDescriptor(), 0, GetOwnerTag(this));
@@ -120,7 +122,7 @@ ZipArchive::ZipArchive(const void* address, size_t length)
ZipArchive::~ZipArchive() {
if (close_file && mapped_zip.GetFileDescriptor() >= 0) {
-#if defined(__BIONIC__)
+#if 0
android_fdsan_close_with_tag(mapped_zip.GetFileDescriptor(), GetOwnerTag(this));
#else
close(mapped_zip.GetFileDescriptor());
@@ -1,112 +0,0 @@
diff --git a/vendor/logging/liblog/include/android/log.h b/vendor/logging/liblog/include/android/log.h
index 12de595..6742aa9 100644
--- a/vendor/logging/liblog/include/android/log.h
+++ b/vendor/logging/liblog/include/android/log.h
@@ -229,7 +229,7 @@ typedef void (*__android_aborter_function)(const char* abort_message);
*
* Available since API level 30.
*/
-void __android_log_write_log_message(struct __android_log_message* log_message) __INTRODUCED_IN(30);
+void __android_log_write_log_message(struct __android_log_message* log_message) __INTRODUCED_IN(24);
/**
* Sets a user defined logger function. All log messages sent to liblog will be set to the
@@ -241,7 +241,7 @@ void __android_log_write_log_message(struct __android_log_message* log_message)
*
* Available since API level 30.
*/
-void __android_log_set_logger(__android_logger_function logger) __INTRODUCED_IN(30);
+void __android_log_set_logger(__android_logger_function logger) __INTRODUCED_IN(24);
/**
* Writes the log message to logd. This is an __android_logger_function and can be provided to
@@ -251,7 +251,7 @@ void __android_log_set_logger(__android_logger_function logger) __INTRODUCED_IN(
*
* Available since API level 30.
*/
-void __android_log_logd_logger(const struct __android_log_message* log_message) __INTRODUCED_IN(30);
+void __android_log_logd_logger(const struct __android_log_message* log_message) __INTRODUCED_IN(24);
/**
* Writes the log message to stderr. This is an __android_logger_function and can be provided to
@@ -262,7 +262,7 @@ void __android_log_logd_logger(const struct __android_log_message* log_message)
* Available since API level 30.
*/
void __android_log_stderr_logger(const struct __android_log_message* log_message)
- __INTRODUCED_IN(30);
+ __INTRODUCED_IN(24);
/**
* Sets a user defined aborter function that is called for __android_log_assert() failures. This
@@ -273,7 +273,7 @@ void __android_log_stderr_logger(const struct __android_log_message* log_message
*
* Available since API level 30.
*/
-void __android_log_set_aborter(__android_aborter_function aborter) __INTRODUCED_IN(30);
+void __android_log_set_aborter(__android_aborter_function aborter) __INTRODUCED_IN(24);
/**
* Calls the stored aborter function. This allows for other logging libraries to use the same
@@ -284,7 +284,7 @@ void __android_log_set_aborter(__android_aborter_function aborter) __INTRODUCED_
*
* Available since API level 30.
*/
-void __android_log_call_aborter(const char* abort_message) __INTRODUCED_IN(30);
+void __android_log_call_aborter(const char* abort_message) __INTRODUCED_IN(24);
/**
* Sets android_set_abort_message() on device then aborts(). This is the default aborter.
@@ -295,7 +295,7 @@ void __android_log_call_aborter(const char* abort_message) __INTRODUCED_IN(30);
* Available since API level 30.
*/
void __android_log_default_aborter(const char* abort_message) __attribute__((noreturn))
-__INTRODUCED_IN(30);
+__INTRODUCED_IN(24);
/**
* Use the per-tag properties "log.tag.<tagname>" along with the minimum priority from
@@ -314,7 +314,7 @@ __INTRODUCED_IN(30);
*
* Available since API level 30.
*/
-int __android_log_is_loggable(int prio, const char* tag, int default_prio) __INTRODUCED_IN(30);
+int __android_log_is_loggable(int prio, const char* tag, int default_prio) __INTRODUCED_IN(24);
/**
* Use the per-tag properties "log.tag.<tagname>" along with the minimum priority from
@@ -335,7 +335,7 @@ int __android_log_is_loggable(int prio, const char* tag, int default_prio) __INT
* Available since API level 30.
*/
int __android_log_is_loggable_len(int prio, const char* tag, size_t len, int default_prio)
- __INTRODUCED_IN(30);
+ __INTRODUCED_IN(24);
/**
* Sets the minimum priority that will be logged for this process.
@@ -346,7 +346,7 @@ int __android_log_is_loggable_len(int prio, const char* tag, size_t len, int def
*
* Available since API level 30.
*/
-int32_t __android_log_set_minimum_priority(int32_t priority) __INTRODUCED_IN(30);
+int32_t __android_log_set_minimum_priority(int32_t priority) __INTRODUCED_IN(24);
/**
* Gets the minimum priority that will be logged for this process. If none has been set by a
@@ -357,7 +357,7 @@ int32_t __android_log_set_minimum_priority(int32_t priority) __INTRODUCED_IN(30)
*
* Available since API level 30.
*/
-int32_t __android_log_get_minimum_priority(void) __INTRODUCED_IN(30);
+int32_t __android_log_get_minimum_priority(void) __INTRODUCED_IN(24);
/**
* Sets the default tag if no tag is provided when writing a log message. Defaults to
@@ -368,7 +368,7 @@ int32_t __android_log_get_minimum_priority(void) __INTRODUCED_IN(30);
*
* Available since API level 30.
*/
-void __android_log_set_default_tag(const char* tag) __INTRODUCED_IN(30);
+void __android_log_set_default_tag(const char* tag) __INTRODUCED_IN(24);
#ifdef __cplusplus
}
@@ -1,13 +0,0 @@
diff --git a/vendor/logging/liblog/logger_write.cpp b/vendor/logging/liblog/logger_write.cpp
index a0153f8..8863f29 100644
--- a/vendor/logging/liblog/logger_write.cpp
+++ b/vendor/logging/liblog/logger_write.cpp
@@ -39,6 +39,8 @@
#include "logger.h"
#include "uio.h"
+#undef __ANDROID__
+
#ifdef __ANDROID__
#include "logd_writer.h"
#include "pmsg_writer.h"
-27
View File
@@ -1,27 +0,0 @@
TERMUX_PKG_HOMEPAGE=http://rephial.org/
TERMUX_PKG_DESCRIPTION="Dungeon exploration adventure game"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=4.2.3
TERMUX_PKG_REVISION=2
TERMUX_PKG_SHA256=f001299283fb8a81865e07983d54cf04cd0f9addfeb7daeef75ed60f6ca417ff
TERMUX_PKG_SRCURL=https://github.com/angband/angband/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_DEPENDS="ncurses"
TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
--disable-x11
--bindir=$TERMUX_PREFIX/bin
--sysconfdir=$TERMUX_PREFIX/share/angband
"
TERMUX_PKG_RM_AFTER_INSTALL="
share/angband/fonts
share/angband/icons
share/angband/sounds
share/angband/xtra
"
TERMUX_PKG_GROUPS="games"
termux_step_pre_configure () {
./autogen.sh
perl -p -i -e 's|ncursesw5-config|ncursesw6-config|g' configure
}
-23
View File
@@ -1,23 +0,0 @@
--- ./src/main.c.orig 2021-08-01 00:28:01.000000000 +0200
+++ ./src/main.c 2021-09-10 09:34:27.031713786 +0200
@@ -36,7 +36,7 @@
*/
#include "locale.h"
-#if !defined(WINDOWS)
+#if !defined(WINDOWS) && !defined(__ANDROID__)
#include "langinfo.h"
#endif
@@ -497,9 +497,11 @@
ANGBAND_SYS = mstr;
#if !defined(WINDOWS)
if (setlocale(LC_CTYPE, "")) {
+#ifndef __ANDROID__
/* Require UTF-8 */
if (!streq(nl_langinfo(CODESET), "UTF-8"))
quit("Angband requires UTF-8 support");
+#endif
}
#endif
+2 -3
View File
@@ -2,8 +2,7 @@ TERMUX_PKG_HOMEPAGE=https://github.com/rcoh/angle-grinder
TERMUX_PKG_DESCRIPTION="Slice and dice logs on the command line"
TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=0.18.0
TERMUX_PKG_VERSION=0.17.0
TERMUX_PKG_SRCURL="https://github.com/rcoh/angle-grinder/archive/v$TERMUX_PKG_VERSION.tar.gz"
TERMUX_PKG_SHA256=7a282d9eff88bb2e224b02d80b887de92286e451abf8a193248d30136d08f4e0
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_SHA256=5a2054ba9eb5fcee1fef2d5fbbf1735e71bc563fc7b273890097f63297e64bf4
TERMUX_PKG_BUILD_IN_SRC=true
+5 -4
View File
@@ -1,10 +1,11 @@
TERMUX_PKG_HOMEPAGE=http://ant.apache.org/
TERMUX_PKG_DESCRIPTION="Java based build tool like make"
TERMUX_PKG_VERSION=1.10.11
TERMUX_PKG_REVISION=2
TERMUX_PKG_SRCURL=http://apache.mirrors.spacedump.net//ant/binaries/apache-ant-${TERMUX_PKG_VERSION}-bin.tar.bz2
TERMUX_PKG_SHA256=ffc6c9eb2d153db76e18df70fa145744ddd0d754339df5a797a47603cfeaa8a6
TERMUX_PKG_LICENSE="Apache-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=1.10.12
TERMUX_PKG_SRCURL=http://apache.mirrors.spacedump.net//ant/binaries/apache-ant-${TERMUX_PKG_VERSION}-bin.tar.bz2
TERMUX_PKG_SHA256=276ea73f267a5b1a58f02e2eb5ef594a9b2885e33afb05ef995251d4d18377a6
TERMUX_PKG_DEPENDS="openjdk-17"
TERMUX_PKG_PLATFORM_INDEPENDENT=true
TERMUX_PKG_BUILD_IN_SRC=true
@@ -17,5 +18,5 @@ termux_step_make_install() {
rm -rf $TERMUX_PREFIX/opt/ant
mkdir -p $TERMUX_PREFIX/opt/ant
cp -r ./* $TERMUX_PREFIX/opt/ant
ln -sfr $TERMUX_PREFIX/opt/ant/bin/ant $TERMUX_PREFIX/bin/ant
ln -sfr $TERMUX_PREFIX/opt/ant/bin/ant $PREFIX/bin/ant
}
+4 -18
View File
@@ -2,10 +2,9 @@ TERMUX_PKG_HOMEPAGE=https://httpd.apache.org
TERMUX_PKG_DESCRIPTION="Apache Web Server"
TERMUX_PKG_LICENSE="Apache-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=1:2.4.51
TERMUX_PKG_REVISION=2
TERMUX_PKG_VERSION=1:2.4.50
TERMUX_PKG_SRCURL=https://www.apache.org/dist/httpd/httpd-${TERMUX_PKG_VERSION:2}.tar.bz2
TERMUX_PKG_SHA256=20e01d81fecf077690a4439e3969a9b22a09a8d43c525356e863407741b838f4
TERMUX_PKG_SHA256=6a2817c070c606682eb53ed963511407d3c3d7a379cdf855971467b00fb3890f
TERMUX_PKG_DEPENDS="apr, apr-util, pcre, openssl, libcrypt, libandroid-support, libnghttp2, libexpat, libuuid, zlib"
TERMUX_PKG_BREAKS="apache2-dev"
TERMUX_PKG_REPLACES="apache2-dev"
@@ -73,12 +72,7 @@ TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_RM_AFTER_INSTALL="share/apache2/manual etc/apache2/original share/man/man8/suexec.8 libexec/httpd.exp"
TERMUX_PKG_EXTRA_MAKE_ARGS="-s"
TERMUX_PKG_SERVICE_SCRIPT=("httpd" 'exec httpd -DNO_DETACH 2>&1')
TERMUX_PKG_HOSTBUILD=true
termux_step_host_build() {
gcc -O2 -DCROSS_COMPILE $TERMUX_PKG_SRCDIR/server/gen_test_char.c \
-o gen_test_char
}
termux_step_pre_configure() {
# Certain packages are not safe to build on device because their
@@ -101,19 +95,11 @@ termux_step_pre_configure() {
# use custom layout
cat $TERMUX_PKG_BUILDER_DIR/Termux.layout > $TERMUX_PKG_SRCDIR/config.layout
make -C $TERMUX_PKG_SRCDIR/libdummy
ldflags_tmp="-L$TERMUX_PKG_SRCDIR/libdummy -Wl,--as-needed"
for m in cache dav proxy session watchdog; do
ldflags_tmp+=,-ldummy-mod_$m
done
libexecdir=$TERMUX_PREFIX/libexec/apache2
LDFLAGS+=" $ldflags_tmp -Wl,-rpath=$libexecdir"
}
termux_step_post_configure() {
install -m700 $TERMUX_PKG_HOSTBUILD_DIR/gen_test_char \
$TERMUX_PKG_BUILDDIR/server/gen_test_char
# thanks to @JetBalsa
gcc -O2 -DCROSS_COMPILE $TERMUX_PKG_SRCDIR/server/gen_test_char.c -o $TERMUX_PKG_BUILDDIR/server/gen_test_char
touch -d "1 hour" $TERMUX_PKG_BUILDDIR/server/gen_test_char
}
-113
View File
@@ -1,113 +0,0 @@
--- a/libdummy/Makefile
+++ b/libdummy/Makefile
@@ -0,0 +1,10 @@
+
+libdummy-%.so: dummy-%.c
+ $(CC) $< -shared -nostdlib -Wl,-soname=$*.so -o $@
+
+all: $(patsubst %,libdummy-mod_%.so,cache dav proxy session watchdog)
+
+install:
+
+clean:
+ $(RM) *.so
--- a/libdummy/dummy-mod_cache.c
+++ b/libdummy/dummy-mod_cache.c
@@ -0,0 +1,3 @@
+void ap_cache_cacheable_headers_in(void){}
+void ap_cache_cacheable_headers_out(void){}
+void ap_cache_generate_name(void){}
--- a/libdummy/dummy-mod_dav.c
+++ b/libdummy/dummy-mod_dav.c
@@ -0,0 +1,18 @@
+void dav_add_response(void){}
+void dav_buffer_append(void){}
+void dav_buffer_init(void){}
+void dav_buffer_place(void){}
+void dav_buffer_place_mem(void){}
+void dav_check_bufsize(void){}
+void dav_do_find_liveprop(void){}
+void dav_get_liveprop_info(void){}
+void dav_hook_find_liveprop(void){}
+void dav_hook_gather_propsets(void){}
+void dav_hook_insert_all_liveprops(void){}
+void dav_lock_query(void){}
+void dav_new_error(void){}
+void dav_push_error(void){}
+void dav_register_liveprop_group(void){}
+void dav_register_provider(void){}
+void dav_set_bufsize(void){}
+void dav_xmlns_add(void){}
--- a/libdummy/dummy-mod_proxy.c
+++ b/libdummy/dummy-mod_proxy.c
@@ -0,0 +1,58 @@
+void ap_proxy_acquire_connection(void){}
+void ap_proxy_backend_broke(void){}
+void ap_proxy_buckets_lifetime_transform(void){}
+void ap_proxy_canon_netloc(void){}
+void ap_proxy_canonenc(void){}
+void ap_proxy_check_connection(void){}
+void ap_proxy_checkproxyblock2(void){}
+void ap_proxy_conn_is_https(void){}
+void ap_proxy_connect_backend(void){}
+void ap_proxy_connect_to_backend(void){}
+void ap_proxy_connect_uds(void){}
+void ap_proxy_connection_create(void){}
+void ap_proxy_connection_create_ex(void){}
+void ap_proxy_connection_reusable(void){}
+void ap_proxy_cookie_reverse_map(void){}
+void ap_proxy_create_hdrbrgd(void){}
+void ap_proxy_define_worker(void){}
+void ap_proxy_determine_connection(void){}
+void ap_proxy_find_balancershm(void){}
+void ap_proxy_find_workershm(void){}
+void ap_proxy_get_balancer(void){}
+void ap_proxy_get_worker(void){}
+void ap_proxy_hashfunc(void){}
+void ap_proxy_hex2c(void){}
+void ap_proxy_initialize_balancer(void){}
+void ap_proxy_initialize_worker(void){}
+void ap_proxy_location_reverse_map(void){}
+void ap_proxy_parse_wstatus(void){}
+void ap_proxy_pass_brigade(void){}
+void ap_proxy_port_of_scheme(void){}
+void ap_proxy_pre_http_request(void){}
+void ap_proxy_prefetch_input(void){}
+void ap_proxy_read_input(void){}
+void ap_proxy_release_connection(void){}
+void ap_proxy_set_wstatus(void){}
+void ap_proxy_share_balancer(void){}
+void ap_proxy_share_worker(void){}
+void ap_proxy_should_override(void){}
+void ap_proxy_show_hcmethod(void){}
+void ap_proxy_spool_input(void){}
+void ap_proxy_ssl_engine(void){}
+void ap_proxy_ssl_val(void){}
+void ap_proxy_strncpy(void){}
+void ap_proxy_sync_balancer(void){}
+void ap_proxy_transfer_between_connections(void){}
+void ap_proxy_tunnel_create(void){}
+void ap_proxy_tunnel_run(void){}
+void ap_proxy_worker_can_upgrade(void){}
+void ap_proxy_worker_name(void){}
+void ap_proxyerror(void){}
+void proxy_hcmethods(void){}
+void proxy_hook_canon_handler(void){}
+void proxy_hook_check_trans(void){}
+void proxy_hook_post_request(void){}
+void proxy_hook_pre_request(void){}
+void proxy_hook_scheme_handler(void){}
+void proxy_module(void){}
+void proxy_run_create_req(void){}
--- a/libdummy/dummy-mod_session.c
+++ b/libdummy/dummy-mod_session.c
@@ -0,0 +1,2 @@
+void ap_hook_session_load(void){}
+void ap_hook_session_save(void){}
--- a/libdummy/dummy-mod_watchdog.c
+++ b/libdummy/dummy-mod_watchdog.c
@@ -0,0 +1,4 @@
+void ap_hook_watchdog_exit(void){}
+void ap_hook_watchdog_init(void){}
+void ap_hook_watchdog_need(void){}
+void ap_hook_watchdog_step(void){}
-23
View File
@@ -1,23 +0,0 @@
TERMUX_PKG_HOMEPAGE=https://github.com/EFForg/apkeep
TERMUX_PKG_DESCRIPTION="A command-line tool for downloading APK files from various sources"
TERMUX_PKG_LICENSE="MIT"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=0.8.0
TERMUX_PKG_SRCURL=https://github.com/EFForg/apkeep/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=2b3ca13fc23f5e08ef52de76d02b3f6e0a9d39a02496b5a895c618c99264ddbe
TERMUX_PKG_DEPENDS="openssl"
TERMUX_PKG_BUILD_IN_SRC=true
termux_step_pre_configure() {
export OPENSSL_INCLUDE_DIR=$TERMUX_PREFIX/include/openssl
export OPENSSL_LIB_DIR=$TERMUX_PREFIX/lib
}
termux_step_make() {
termux_setup_rust
cargo build --jobs $TERMUX_MAKE_PROCESSES --target $CARGO_TARGET_NAME --release
}
termux_step_make_install() {
install -Dm755 -t $TERMUX_PREFIX/bin target/${CARGO_TARGET_NAME}/release/apkeep
}
-30
View File
@@ -1,30 +0,0 @@
--- a/aapt-wrapper/aapt-wrapper.c
+++ b/aapt-wrapper/aapt-wrapper.c
@@ -0,0 +1,12 @@
+
+#include <stdio.h>
+#include <unistd.h>
+#include <errno.h>
+
+int
+main(int argc, char **argv, char **envp)
+{
+ execve("@TERMUX_PREFIX@/bin/aapt", argv, envp);
+ perror("aapt-wrapper: execve");
+ return -1;
+}
--- a/aapt-wrapper/aapt2-wrapper.c
+++ b/aapt-wrapper/aapt2-wrapper.c
@@ -0,0 +1,12 @@
+
+#include <stdio.h>
+#include <unistd.h>
+#include <errno.h>
+
+int
+main(int argc, char **argv, char **envp)
+{
+ execve("@TERMUX_PREFIX@/bin/aapt2", argv, envp);
+ perror("aapt2-wrapper: execve");
+ return -1;
+}
-36
View File
@@ -1,36 +0,0 @@
TERMUX_PKG_HOMEPAGE=https://ibotpeaches.github.io/Apktool/
TERMUX_PKG_DESCRIPTION="A tool for reverse engineering 3rd party, closed, binary Android apps"
TERMUX_PKG_LICENSE="Apache-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=2.6.0
TERMUX_PKG_SRCURL=https://github.com/iBotPeaches/Apktool/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=74739cdb1434ca35ec34e51ca7272ad3f378ae3ed0a2d5805d9a2fab5016037f
TERMUX_PKG_DEPENDS="aapt, openjdk-17"
TERMUX_PKG_BUILD_IN_SRC=true
termux_step_pre_configure() {
local prebuilt_dir="brut.apktool/apktool-lib/src/main/resources/prebuilt"
rm -rf $prebuilt_dir/{linux,macosx,windows}
mkdir -p $prebuilt_dir/linux
for exe_name in aapt aapt2; do
local exe_path=$prebuilt_dir/linux/${exe_name}
$CC $CFLAGS $CPPFLAGS aapt-wrapper/${exe_name}-wrapper.c \
-o ${exe_path} $LDFLAGS
$STRIP --strip-unneeded ${exe_path}
cp -a ${exe_path} ${exe_path}_64
done
}
termux_step_make() {
sh gradlew build shadowJar -x test
}
termux_step_make_install() {
install -Dm600 brut.apktool/apktool-cli/build/libs/apktool-cli-all.jar \
$TERMUX_PREFIX/share/java/apktool.jar
cat <<- EOF > $TERMUX_PREFIX/bin/apktool
#!${TERMUX_PREFIX}/bin/sh
exec java -jar $TERMUX_PREFIX/share/java/apktool.jar "\$@"
EOF
chmod 700 $TERMUX_PREFIX/bin/apktool
}
+1 -1
View File
@@ -4,7 +4,7 @@ TERMUX_PKG_LICENSE="Apache-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=1.6.1
TERMUX_PKG_REVISION=5
TERMUX_PKG_SRCURL=https://downloads.apache.org/apr/apr-util-${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SRCURL=https://ftp.acc.umu.se/mirror/apache.org/apr/apr-util-${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=b65e40713da57d004123b6319828be7f1273fbc6490e145874ee1177e112c459
TERMUX_PKG_DEPENDS="apr, libcrypt, libexpat, libiconv, libuuid"
TERMUX_PKG_BREAKS="apr-util-dev"
+7 -3
View File
@@ -3,9 +3,9 @@ TERMUX_PKG_DESCRIPTION="Apache Portable Runtime Library"
TERMUX_PKG_LICENSE="Apache-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=1.7.0
TERMUX_PKG_REVISION=5
TERMUX_PKG_SRCURL=https://dlcdn.apache.org/apr/apr-${TERMUX_PKG_VERSION}.tar.bz2
TERMUX_PKG_SHA256=e2e148f0b2e99b8e5c6caa09f6d4fb4dd3e83f744aa72a952f94f5a14436f7ea
TERMUX_PKG_REVISION=4
TERMUX_PKG_SRCURL=https://ftp.acc.umu.se/mirror/apache.org/apr/apr-${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=48e9dbf45ae3fdc7b491259ffb6ccf7d63049ffacbc1c0977cced095e4c2d5a2
TERMUX_PKG_DEPENDS="libuuid"
TERMUX_PKG_BREAKS="apr-dev"
TERMUX_PKG_REPLACES="apr-dev"
@@ -22,3 +22,7 @@ apr_cv_tcp_nodelay_with_cork=yes
ac_cv_sizeof_struct_iovec=$(( TERMUX_ARCH_BITS==32 ? 8 : 16 ))
ac_cv_search_crypt="
TERMUX_PKG_RM_AFTER_INSTALL="lib/apr.exp"
termux_step_post_make_install() {
sed -i "s%NM=\".*%NM=\"${TERMUX_HOST_PLATFORM}-nm -B\"%g" $TERMUX_PREFIX/share/apr-1/build/libtool
}
-45
View File
@@ -1,45 +0,0 @@
https://github.com/Debian/apt/pull/136
diff --git a/apt-pkg/cachefilter-patterns.cc b/apt-pkg/cachefilter-patterns.cc
index 12d8ae748..7a3255f41 100644
--- a/apt-pkg/cachefilter-patterns.cc
+++ b/apt-pkg/cachefilter-patterns.cc
@@ -30,7 +30,7 @@ static const constexpr struct
{"c"_sv, "?config-files"_sv, false},
// FIXME: The words after ~D should be case-insensitive
{"DDepends:"_sv, "?depends"_sv, true},
- {"DPre-Depends:"_sv, "?pre-depends"_sv, true},
+ {"DPreDepends:"_sv, "?predepends"_sv, true},
{"DSuggests:"_sv, "?suggests"_sv, true},
{"DRecommends:"_sv, "?recommends"_sv, true},
{"DConflicts:"_sv, "?conflicts"_sv, true},
@@ -40,7 +40,7 @@ static const constexpr struct
{"DEnhances:"_sv, "?enhances"_sv, true},
{"D"_sv, "?depends"_sv, true},
{"RDepends:"_sv, "?reverse-depends"_sv, true},
- {"RPre-Depends:"_sv, "?reverse-pre-depends"_sv, true},
+ {"RPreDepends:"_sv, "?reverse-predepends"_sv, true},
{"RSuggests:"_sv, "?reverse-suggests"_sv, true},
{"RRecommends:"_sv, "?reverse-recommends"_sv, true},
{"RConflicts:"_sv, "?reverse-conflicts"_sv, true},
diff --git a/doc/apt-patterns.7.xml b/doc/apt-patterns.7.xml
index 6b1c0f20b..bbcf01138 100644
--- a/doc/apt-patterns.7.xml
+++ b/doc/apt-patterns.7.xml
@@ -161,14 +161,15 @@
<variablelist>
<varlistentry>
<term><code>?depends(PATTERN)</code></term><term><code>~DPATTERN</code></term>
- <term><code>?pre-depends(PATTERN)</code></term><term><code>~DPre-Depends:PATTERN</code></term>
+ <term><code>?predepends(PATTERN)</code></term><term><code>~DPreDepends:PATTERN</code></term>
<term><code>?suggests(PATTERN)</code></term><term><code>~DSuggests:PATTERN</code></term>
+ <term><code>?recommends(PATTERN)</code></term><term><code>~DRecommends:PATTERN</code></term>
<term><code>?conflicts(PATTERN)</code></term><term><code>~DConflicts:PATTERN</code></term>
<term><code>?replaces(PATTERN)</code></term><term><code>~DReplaces:PATTERN</code></term>
<term><code>?obsoletes(PATTERN)</code></term><term><code>~DObsoletes:PATTERN</code></term>
<term><code>?breaks(PATTERN)</code></term><term><code>~DBreaks:PATTERN</code></term>
<term><code>?enhances(PATTERN)</code></term><term><code>~DEnhances:PATTERN</code></term>
- <listitem><para>Selects versions depending/pre-depending/suggesting/conflicting/etc on/with/ packages matching PATTERN.</para></listitem>
+ <listitem><para>Selects versions depending/pre-depending/suggesting/recommending/conflicting/etc on/with/ packages matching PATTERN.</para></listitem>
</varlistentry>
<varlistentry>
<term><code>?reverse-<replaceable>depType</replaceable>(PATTERN)</code></term>
+5 -6
View File
@@ -2,17 +2,16 @@ 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_MAINTAINER="@termux"
TERMUX_PKG_VERSION=2.3.13
TERMUX_PKG_REVISION=2
TERMUX_PKG_VERSION=2.3.9
TERMUX_PKG_SRCURL=https://deb.debian.org/debian/pool/main/a/apt/apt_${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_SHA256=e519e55f1015d656425e68f8c7c7bebd1908df3ac87836eb6e7b6b58ce3f965d
TERMUX_PKG_SHA256=28597fe803a652f55f618dd7a44bd2fb2712dbd91c258dfa5981cb75356291e3
# apt-key requires utilities from coreutils, findutils, gpgv, grep, sed.
TERMUX_PKG_DEPENDS="coreutils, dpkg, findutils, gpgv, grep, libandroid-glob, libbz2, libc++, libcurl, libgnutls, liblz4, liblzma, sed, termux-licenses, xxhash, zlib"
TERMUX_PKG_BUILD_DEPENDS="docbook-xsl"
TERMUX_PKG_CONFLICTS="apt-transport-https, libapt-pkg"
TERMUX_PKG_REPLACES="apt-transport-https, libapt-pkg, unstable-repo, game-repo, science-repo"
TERMUX_PKG_PROVIDES="unstable-repo, game-repo, science-repo"
TERMUX_PKG_SUGGESTS="gnupg, x11-repo"
TERMUX_PKG_REPLACES="apt-transport-https, libapt-pkg"
TERMUX_PKG_RECOMMENDS="game-repo, science-repo"
TERMUX_PKG_SUGGESTS="gnupg, unstable-repo, x11-repo"
TERMUX_PKG_ESSENTIAL=true
TERMUX_PKG_CONFFILES="
+1 -1
View File
@@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="A password-hashing function (reference C implementation)
TERMUX_PKG_LICENSE="Apache-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=20190702
TERMUX_PKG_SRCURL=https://github.com/P-H-C/phc-winner-argon2/archive/refs/tags/${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SRCURL=https://github.com/P-H-C/phc-winner-argon2/archive/${TERMUX_PKG_VERSION}/argon2-${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=daf972a89577f8772602bf2eb38b6a3dd3d922bf5724d45e7f9589b5e830442c
TERMUX_PKG_EXTRA_MAKE_ARGS="LIBRARY_REL=lib"
TERMUX_PKG_BUILD_IN_SRC=true
+1 -1
View File
@@ -3,7 +3,7 @@ TERMUX_PKG_DESCRIPTION="Download utility supporting HTTP/HTTPS, FTP, BitTorrent
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=1.36.0
TERMUX_PKG_REVISION=2
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://github.com/aria2/aria2/releases/download/release-${TERMUX_PKG_VERSION}/aria2-${TERMUX_PKG_VERSION}.tar.xz
TERMUX_PKG_SHA256=58d1e7608c12404f0229a3d9a4953d0d00c18040504498b483305bcb3de907a5
TERMUX_PKG_AUTO_UPDATE=true
-1
View File
@@ -3,7 +3,6 @@ TERMUX_PKG_DESCRIPTION="Text document format for short documents, articles, book
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=9.1.1
TERMUX_PKG_REVISION=2
TERMUX_PKG_SRCURL=https://github.com/asciidoc/asciidoc-py3/archive/${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=914dfc1542c30bd47faa0aaaae0985cb57d0ca584015729ccd1b94d90da3a616
TERMUX_PKG_AUTO_UPDATE=true
@@ -5,7 +5,7 @@ diff -u -r ../asciinema-2.0.2/asciinema/__main__.py ./asciinema/__main__.py
def main():
- if locale.nl_langinfo(locale.CODESET).upper() not in ['US-ASCII', 'UTF-8', 'UTF8']:
- if locale.nl_langinfo(locale.CODESET).upper() not in ['US-ASCII', 'UTF-8']:
- print("asciinema needs an ASCII or UTF-8 character encoding to run. Check the output of `locale` command.")
- sys.exit(1)
-
+4 -3
View File
@@ -2,9 +2,10 @@ TERMUX_PKG_HOMEPAGE=https://asciinema.org/
TERMUX_PKG_DESCRIPTION="Record and share your terminal sessions, the right way"
TERMUX_PKG_LICENSE="GPL-3.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=2.1.0
TERMUX_PKG_VERSION=2.0.2
TERMUX_PKG_REVISION=5
TERMUX_PKG_SRCURL=https://github.com/asciinema/asciinema/archive/v${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=f4f4a04ab891dd513c99f72527c83fa9e634e858f2744a17e80258b90a6bf409
TERMUX_PKG_SHA256=2578a1b5611e5375771ef6582a6533ef8d40cdbed1ba1c87786fd23af625ab68
TERMUX_PKG_AUTO_UPDATE=true
# ncurses-utils for tput which asciinema uses:
TERMUX_PKG_DEPENDS="python, ncurses-utils"
@@ -12,7 +13,7 @@ TERMUX_PKG_BUILD_IN_SRC=true
TERMUX_PKG_PLATFORM_INDEPENDENT=true
TERMUX_PKG_HAS_DEBUG=false
_PYTHON_VERSION=3.10
_PYTHON_VERSION=3.9
TERMUX_PKG_RM_AFTER_INSTALL="
lib/python${_PYTHON_VERSION}/site-packages/easy-install.pth
-3
View File
@@ -3,8 +3,5 @@ TERMUX_PKG_DESCRIPTION="A free and open source spell checker designed to replace
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=0.60.8
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://ftp.gnu.org/gnu/aspell/aspell-${TERMUX_PKG_VERSION}.tar.gz
TERMUX_PKG_SHA256=f9b77e515334a751b2e60daab5db23499e26c9209f5e7b7443b05235ad0226f2
# To use the same compiled dictionaries on every platform:
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" --enable-32-bit-hash-fun"
+3 -2
View File
@@ -2,9 +2,10 @@ TERMUX_PKG_HOMEPAGE=http://assimp.sourceforge.net/index.html
TERMUX_PKG_DESCRIPTION="Library to import various well-known 3D model formats in an uniform manner"
TERMUX_PKG_LICENSE="BSD"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=5.1.4
TERMUX_PKG_VERSION=5.0.1
TERMUX_PKG_REVISION=5
TERMUX_PKG_SRCURL=https://github.com/assimp/assimp/archive/v$TERMUX_PKG_VERSION.tar.gz
TERMUX_PKG_SHA256=bd32cdc27e1f8b7ac09d914ab92dd81d799c97e9e47315c1f40dcb7c6f7938c6
TERMUX_PKG_SHA256=11310ec1f2ad2cd46b95ba88faca8f7aaa1efe9aa12605c55e3de2b977b3dbfc
TERMUX_PKG_AUTO_UPDATE=true
TERMUX_PKG_DEPENDS="boost, zlib"
TERMUX_PKG_BREAKS="assimp-dev"
+12
View File
@@ -0,0 +1,12 @@
diff -uNr assimp-4.1.0/test/CMakeLists.txt assimp-4.1.0.mod/test/CMakeLists.txt
--- assimp-4.1.0/test/CMakeLists.txt 2017-12-11 15:22:45.000000000 +0200
+++ assimp-4.1.0.mod/test/CMakeLists.txt 2019-07-01 22:47:01.990765003 +0300
@@ -174,7 +174,7 @@
IF( WIN32 )
SET( platform_libs )
ELSE( WIN32 )
- SET( platform_libs pthread )
+ SET( platform_libs )
ENDIF( WIN32 )
IF( WIN32 )
-1
View File
@@ -3,7 +3,6 @@ TERMUX_PKG_DESCRIPTION="Read, parse and set metadata of MPEG-4 and 3gp files"
TERMUX_PKG_LICENSE="GPL-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_VERSION=1:20210715.151551.e7ad03a
TERMUX_PKG_REVISION=1
TERMUX_PKG_SRCURL=https://github.com/wez/atomicparsley/archive/${TERMUX_PKG_VERSION:2}.tar.gz
TERMUX_PKG_SHA256=546dcb5f3b625aff4f6bf22d27a0a636d15854fd729402a6933d31f3d0417e0d
TERMUX_PKG_AUTO_UPDATE=true
-43
View File
@@ -1,43 +0,0 @@
diff -uNr atomvm/src/CMakeLists.txt atomvm.mod/src/CMakeLists.txt
--- atomvm/src/CMakeLists.txt 2019-06-13 13:50:54.000000000 +0300
+++ atomvm.mod/src/CMakeLists.txt 2019-07-02 20:56:59.790369109 +0300
@@ -10,13 +10,14 @@
if((${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") OR
(${CMAKE_SYSTEM_NAME} STREQUAL "Linux") OR
+ (${CMAKE_SYSTEM_NAME} STREQUAL "Android") OR
(${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD"))
add_subdirectory(platforms/generic_unix)
else()
message(FATAL_ERROR "Unsupported platform: ${CMAKE_SYSTEM_NAME}")
endif()
-if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+if((${CMAKE_SYSTEM_NAME} STREQUAL "Linux") OR (${CMAKE_SYSTEM_NAME} STREQUAL "Android"))
include(CheckFunctionExists)
include(CheckLibraryExists)
check_library_exists(rt clock_gettime "time.h" HAVE_CLOCK_GETTIME)
diff -uNr atomvm/src/libAtomVM/CMakeLists.txt atomvm.mod/src/libAtomVM/CMakeLists.txt
--- atomvm/src/libAtomVM/CMakeLists.txt 2019-06-13 13:50:54.000000000 +0300
+++ atomvm.mod/src/libAtomVM/CMakeLists.txt 2019-07-02 20:57:46.597379691 +0300
@@ -63,7 +63,7 @@
term.c
valueshashtable.c
)
-if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
+if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR ${CMAKE_SYSTEM_NAME} STREQUAL "Android" OR ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD")
find_package(ZLIB)
if (ZLIB_FOUND)
add_definitions(-DWITH_ZLIB)
diff -uNr atomvm/tests/CMakeLists.txt atomvm.mod/tests/CMakeLists.txt
--- atomvm/tests/CMakeLists.txt 2019-06-13 13:50:54.000000000 +0300
+++ atomvm.mod/tests/CMakeLists.txt 2019-07-02 20:55:37.143095702 +0300
@@ -13,7 +13,7 @@
include_directories(${CMAKE_CURRENT_BINARY_DIR} ../src/libAtomVM/)
-if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+if((${CMAKE_SYSTEM_NAME} STREQUAL "Linux") OR (${CMAKE_SYSTEM_NAME} STREQUAL "Android"))
include(CheckFunctionExists)
include(CheckLibraryExists)
check_library_exists(rt clock_gettime "time.h" HAVE_CLOCK_GETTIME)
-29
View File
@@ -1,29 +0,0 @@
TERMUX_PKG_HOMEPAGE=https://github.com/bettio/AtomVM
TERMUX_PKG_DESCRIPTION="The minimal Erlang VM implementation"
TERMUX_PKG_LICENSE="LGPL-2.1"
TERMUX_PKG_MAINTAINER="Leonid Pliushch <leonid.pliushch@gmail.com>"
_COMMIT=82624fbf68ad8a0c8815456adbd33de98e4901ea
TERMUX_PKG_VERSION=0.git${_COMMIT:0:8}
TERMUX_PKG_REVISION=7
TERMUX_PKG_SRCURL=https://github.com/bettio/AtomVM/archive/${_COMMIT}.tar.gz
TERMUX_PKG_SHA256=b141812be3fe157766464b8fcedc13f40b36bc9346b3e039ac736c5d30359729
TERMUX_PKG_DEPENDS="zlib"
TERMUX_PKG_HOSTBUILD=true
termux_step_host_build() {
termux_setup_cmake
cmake "$TERMUX_PKG_SRCDIR"
make -j $TERMUX_MAKE_PROCESSES
}
termux_step_post_configure() {
# We need the "PackBEAM" compiled for host.
export PATH=$PATH:$TERMUX_PKG_HOSTBUILD_DIR/tools/packbeam
}
termux_step_make_install() {
install -Dm700 "$TERMUX_PKG_BUILDDIR"/src/AtomVM \
"$TERMUX_PREFIX"/bin/AtomVM
install -Dm700 "$TERMUX_PKG_BUILDDIR"/tools/packbeam/PackBEAM \
"$TERMUX_PREFIX"/bin/PackBEAM
}
-51
View File
@@ -1,51 +0,0 @@
diff -uNr atomvm/CMakeModules/BuildElixir.cmake atomvm.mod/CMakeModules/BuildElixir.cmake
--- atomvm/CMakeModules/BuildElixir.cmake 2019-06-13 13:50:54.000000000 +0300
+++ atomvm.mod/CMakeModules/BuildElixir.cmake 2019-07-02 18:26:59.146026706 +0300
@@ -24,7 +24,7 @@
add_custom_target(
${avm_name} ALL
DEPENDS ${avm_name}_beams PackBEAM
- COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM -a ${avm_name}.avm ${BEAMS}
+ COMMAND PackBEAM -a ${avm_name}.avm ${BEAMS}
COMMENT "Packing archive ${avm_name}.avm"
VERBATIM
)
@@ -55,7 +55,7 @@
add_custom_target(
${avm_name} ALL
- COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM ${avm_name}.avm Elixir.${main}.beam ${ARCHIVES}
+ COMMAND PackBEAM ${avm_name}.avm Elixir.${main}.beam ${ARCHIVES}
COMMENT "Packing runnable ${avm_name}.avm"
VERBATIM
)
diff -uNr atomvm/CMakeModules/BuildErlang.cmake atomvm.mod/CMakeModules/BuildErlang.cmake
--- atomvm/CMakeModules/BuildErlang.cmake 2019-06-13 13:50:54.000000000 +0300
+++ atomvm.mod/CMakeModules/BuildErlang.cmake 2019-07-02 18:26:27.599082112 +0300
@@ -25,7 +25,7 @@
${avm_name} ALL
DEPENDS ${avm_name}_beams PackBEAM
#DEPENDS ${BEAMS}
- COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM -a ${avm_name}.avm ${BEAMS}
+ COMMAND PackBEAM -a ${avm_name}.avm ${BEAMS}
COMMENT "Packing archive ${avm_name}.avm"
VERBATIM
)
@@ -56,7 +56,7 @@
add_custom_target(
${avm_name} ALL
- COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM ${avm_name}.avm ${main}.beam ${ARCHIVES}
+ COMMAND PackBEAM ${avm_name}.avm ${main}.beam ${ARCHIVES}
COMMENT "Packing runnable ${avm_name}.avm"
VERBATIM
)
@@ -77,7 +77,7 @@
add_custom_target(
${test_avm_name} ALL
COMMAND erlc -I ${CMAKE_SOURCE_DIR}/libs/include ${CMAKE_CURRENT_SOURCE_DIR}/tests.erl
- COMMAND ${CMAKE_BINARY_DIR}/tools/packbeam/PackBEAM ${CMAKE_CURRENT_BINARY_DIR}/${test_avm_name}.avm ${CMAKE_CURRENT_BINARY_DIR}/tests.beam ${ARCHIVES}
+ COMMAND PackBEAM ${CMAKE_CURRENT_BINARY_DIR}/${test_avm_name}.avm ${CMAKE_CURRENT_BINARY_DIR}/tests.beam ${ARCHIVES}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/tests.erl
COMMENT "Packing runnable ${test_avm_name}.avm"
VERBATIM
-55
View File
@@ -1,55 +0,0 @@
--- a/avahi-autoipd/main.c
+++ b/avahi-autoipd/main.c
@@ -934,6 +934,7 @@
/* Get user/group ID */
+#ifndef __ANDROID__
if (!no_drop_root) {
if (!(pw = getpwnam(AVAHI_AUTOIPD_USER))) {
@@ -948,6 +949,7 @@
daemon_log(LOG_INFO, "Found user '"AVAHI_AUTOIPD_USER"' (UID %lu) and group '"AVAHI_AUTOIPD_GROUP"' (GID %lu).", (unsigned long) pw->pw_uid, (unsigned long) gr->gr_gid);
}
+#endif
/* Create directory */
u = umask(0000);
@@ -964,14 +966,20 @@
if (!no_drop_root) {
struct stat st;
+#ifndef __ANDROID__
chown(AVAHI_IPDATA_DIR, pw->pw_uid, gr->gr_gid);
+#endif
if (stat(AVAHI_IPDATA_DIR, &st) < 0) {
daemon_log(LOG_ERR, "stat(): %s\n", strerror(errno));
return -1;
}
+#ifndef __ANDROID__
if (!S_ISDIR(st.st_mode) || st.st_uid != pw->pw_uid || st.st_gid != gr->gr_gid) {
+#else
+ if (!S_ISDIR(st.st_mode)) {
+#endif
daemon_log(LOG_ERR, "Failed to create runtime directory "AVAHI_IPDATA_DIR".");
return -1;
}
@@ -995,6 +1003,7 @@
#endif
+#ifndef __ANDROID__
if (!no_drop_root) {
if (initgroups(AVAHI_AUTOIPD_USER, gr->gr_gid) != 0) {
@@ -1040,6 +1049,7 @@
daemon_log(LOG_INFO, "Successfully dropped root privileges.");
}
+#endif /* __ANDROID__ */
return 0;
}
-105
View File
@@ -1,105 +0,0 @@
--- a/avahi-daemon/main.c
+++ b/avahi-daemon/main.c
@@ -135,7 +135,7 @@
#endif
} DaemonConfig;
-#define RESOLV_CONF "/etc/resolv.conf"
+#define RESOLV_CONF "@TERMUX_PREFIX@/etc/resolv.conf"
#define BROWSE_DOMAINS_MAX 16
static AvahiSEntryGroup *dns_servers_entry_group = NULL;
@@ -587,9 +587,9 @@
int fd;
char buf[32];
- fd = open("/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
+ fd = open("@TERMUX_PREFIX@/etc/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
if (fd == -1 && errno == ENOENT)
- fd = open("/var/lib/dbus/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
+ fd = open("@TERMUX_PREFIX@/var/lib/dbus/machine-id", O_RDONLY|O_CLOEXEC|O_NOCTTY);
if (fd == -1)
return NULL;
@@ -1338,6 +1338,7 @@
#define set_env(key, value) putenv(avahi_strdup_printf("%s=%s", (key), (value)))
+#ifndef __ANDROID__
static int drop_root(void) {
struct passwd *pw;
struct group * gr;
@@ -1400,6 +1401,7 @@
return 0;
}
+#endif /* __ANDROID__ */
static const char* pid_file_proc(void) {
return AVAHI_DAEMON_RUNTIME_DIR"/pid";
@@ -1413,6 +1415,7 @@
struct group * gr;
struct stat st;
+#ifndef __ANDROID__
if (!(pw = getpwnam(AVAHI_USER))) {
avahi_log_error( "Failed to find user '"AVAHI_USER"'.");
goto fail;
@@ -1422,6 +1425,7 @@
avahi_log_error( "Failed to find group '"AVAHI_GROUP"'.");
goto fail;
}
+#endif
u = umask(0000);
reset_umask = 1;
@@ -1431,14 +1435,20 @@
goto fail;
}
+#ifndef __ANDROID__
chown(AVAHI_DAEMON_RUNTIME_DIR, pw->pw_uid, gr->gr_gid);
+#endif
if (stat(AVAHI_DAEMON_RUNTIME_DIR, &st) < 0) {
avahi_log_error("stat(): %s\n", strerror(errno));
goto fail;
}
+#ifndef __ANDROID__
if (!S_ISDIR(st.st_mode) || st.st_uid != pw->pw_uid || st.st_gid != gr->gr_gid) {
+#else
+ if (!S_ISDIR(st.st_mode)) {
+#endif
avahi_log_error("Failed to create runtime directory "AVAHI_DAEMON_RUNTIME_DIR".");
goto fail;
}
@@ -1594,10 +1604,12 @@
else if (config.command == DAEMON_RUN) {
pid_t pid;
+#ifndef __ANDROID__
if (getuid() != 0 && config.drop_root) {
avahi_log_error("This program is intended to be run as root.");
goto finish;
}
+#endif
if ((pid = daemon_pid_file_is_running()) >= 0) {
avahi_log_error("Daemon already running on PID %u", pid);
@@ -1641,6 +1653,7 @@
if (make_runtime_dir() < 0)
goto finish;
+#ifndef __ANDROID__
if (config.drop_root) {
#ifdef ENABLE_CHROOT
if (config.use_chroot)
@@ -1657,6 +1670,7 @@
goto finish;
#endif
}
+#endif /* __ANDROID__ */
if (daemon_pid_file_create() < 0) {
avahi_log_error("Failed to create PID file: %s", strerror(errno));

Some files were not shown because too many files have changed in this diff Show More