Awesome
Termux User Repository (TUR)
Sounds like Archlinux User repository aka AUR? TUR functioning mechanism is bit different. Instead of building packages in device that too in android is quite hectic work for user. So TUR saves resources and time since user could install pre-compiled package.
Subscribe TUR
Add TUR in Termux.
pkg install tur-repo
Once tur-repo
successfully installed. TUR packages can be install with pkg or apt in same ways.
NOTE: TUR's apt repository is consist of many components. tur
, tur-on-device
and tur-continuous
are avaiable by default. If you want to subscribe other components in TUR, please add them manually.
TUR also hosts a PyPI index and contains some prebuilt Python packages.
python -m pip install some_packages --extra-index-url https://termux-user-repository.github.io/pypi/
You can add this index to your pip config for convenience by adding the following lines to your pip config (~/.config/pip/pip.conf
):
[install]
extra-index-url = https://termux-user-repository.github.io/pypi/
Request
Request to all TUR users.
Please don't Discuss/Open issues about any of TUR packages in Termux Offical forum. TUR packages are not Termux official packages so any discussion just waste time of Termux maintainters. Users are free to discuss/open issues here.
Contribution
Set up build environment
Method 1 (Conventional)
TUR uses same building scripts what Termux does.So all building mechanism is same.
- Clone this repository.
- Change directory and Execute
./setup-environment.sh
It will fetch Termux package building scripts (termux/termux-packages
). - Set up build environment following this official termux guide.
Method 2 (Dev Container)
- Clone this repository
- Create a Dev Container:
- Visual Studio Code (local, docker required):
Ctrl + Shift + P
→>Dev Containers: Open Folder in Container...
→ pick this repository - Github Codespaces (online): green
<> Code
button on this repository Github website →Codespaces
→+
- Visual Studio Code (local, docker required):
Create and build a new package
- Create build.sh file under
tur/<your-package-name>
directory (not inpackages/<your-package-name>
). For more details, see the official wiki "Creating new package". - Build the package with
TERMUX_INSTALL_DEPS=true ./build-package.sh -a <arch> <package-name>
<arch>
accepts aarch64, arm, i686, x86_64.TERMUX_NO_CLEAN=true
should be needed when building on an Android device.- For more details, see the official wiki "How to build package" and "Build environment".
- Patch the source when needed. One way to do so is:
- After running
./build-package.sh
in the previous step, enter into~/.termux-build/<package-name>/src
(using VS CodeFile
→Open Folder...
orcd
in terminal) - If git is not set up in the directory, run
git init . git commit -a -m "first commit"
- modify files needed to be patched and then run
git diff <path-to-modified-file> > <path-to-tur-repo>/tur/<package-name>/<any-name>.patch
- re-run
./build-package.sh
in the previous step.
- After running
TUR as a solution
TUR solves following issues of termux user:
- Less popular packages could be added too.
- Many python/node/ruby packages needs compilation in device. TUR could make installation easy via distributing deb file.
- Instead of hosting own apt repository, One could add their package in TUR.
- One place for all packages which could not be part of official termux repo for some reason.
- Old versions of packages available in TUR.
Suggestions
Suggestions/ideas are always welcome.
Let's make TUR a single/trusted place for all unofficial debfile which supposed to be run in Termux. In order to achieve it we need your precious suggestions. Please let us know your suggestions through starting a discussion/issue.
Components and other git repos
The components in TUR are listed below.
tur
: The main component. It contains almost all the packages.
tur-on-device
: This component contains some packages that cannot be cross-compiling. It uses Termux-Docker to simulate a Termux-like environment. It runs under a self-hosted arm environment and Github-Action-provided x86 environment. Not every package is able to compile under it.
tur-continuous
: This component contains some packages that costs lots of time to compile, e.g. chromium-based applications.
tur-hacking
: This component contains some hacking tools.
tur-multilib
WIP: This component contains some packages that provide a multilib environment.
Some other components may be added to TUR. If you're interested in it, please see TODO.md for more information.
TUR also maintains some other git repos. These git repos are listed below.
electron-tur-builder
: It contains some scripts to build specific version of electron and release the pre-built binaries to GitHub Release. This repository provides an APT component called tur-electron
.
pypi-wheel-builder
: It contains some scripts to build and publish wheels to a custom pypi index.
pypi
: It hosts the pages of a pypi index for Termux/Android.
dists
: It contains some scripts to publish APT repo, hosts the GitHub Pages, and holds deb files in its Releases.
termux-docker
: It is forked from termux/termux-docker. The original one contains some binaries and libraries which is targeting API 28, and the fork contains them which is targeting API 24.
ndk-toolchain-gcc-9/10/11/12
: These repos contain some build scripts to build a NDK toolchain with GCC rather than LLVM.
tur-on-device
Archived: It has been merged into TUR.