Termux is an open source application and it is built on users' contributions. However, most of work is done by Termux
maintainers on their spare time and therefore only priority tasks are being completed.
Here are ways how you can help:
- [Fixing issues](#fixing-issues)
- [Hosting a mirror](#hosting-a-mirror)
- [Updating packages](#updating-packages)
Developer's wiki is available in https://github.com/termux/termux-packages/wiki.
## Fixing issues
By fixing bugs you will ensure that Termux packages are running smoothly. Pay attention to [issues](https://github.com/termux/termux-packages/issues) labeled as ["bug report"](https://github.com/termux/termux-packages/issues?q=is%3Aopen+is%3Aissue+label%3A%22bug+report%22) and
["help wanted"](https://github.com/termux/termux-packages/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22). Note that
solution for these issues may not be easy.
### A note about package requests
We tend not to package everything what was requested, but making exception for packages that we consider important. If you
want to submit a package, make sure that following conditions are met:
- Package should have widely recognised OSS licenses like GNU GPL, MIT, Apache-2.0 and similar.
- Package should NOT be an outdated, dead project.
- Package should NOT be a part of language-specific ecosystem. Such packages are installable through `pip`, `gem`, `cpan`, `npm`.
We will reject requests for packaging single-file scripts. Also we may not package infamous projects as we need to be sure
that package is used by other people, not just by someone who requested it.
## Hosting a mirror
Our APT repositories are receiving large amount of downloads per day. You can create own public mirror to help to deal with
large amount of traffic.
Requirements for a server where mirror will be hosted:
Most packages can be updated by just modifying variables `TERMUX_PKG_VERSION` and `TERMUX_PKG_SHA256`.
`TERMUX_PKG_VERSION`: a text field containing an original version of package.
`TERMUX_PKG_SHA256`: a text field or an array of text fields containing SHA-256 checksum for each source code bundle defined by `TERMUX_PKG_SRCURL`.
More about `build.sh` variables you can read in [developer's wiki](https://github.com/termux/termux-packages/wiki/Creating-new-package#table-of-available-package-control-fields).
#### Rebuilding package with no version change
Changes to patch files and build configuration options require submission of a new package release with a different version string. As we can't
modify the original package version, we append a number called *revision*. This number should be incremented on each submitted build whenever
project's version remains to be same.
Revision is specified through `TERMUX_PKG_REVISION` build.sh variable. To have build.sh script easily readable, we require revision variable to
be placed on the next line after `TERMUX_PKG_VERSION`.