Go with option 1
and no need to use TERMUX_PKG_NO_MIRROR_SELECT
, just create a chosen_mirrors
symlink to the mirror regular file like north_america/package.termux.org
and add following in pkg
script.
if [ -d «@TERMUX_PREFIX@/etc/termux/chosen_mirrors« ]; then | |
mirrors=($(find @TERMUX_PREFIX@/etc/termux/chosen_mirrors/ -type f ! -name «*.dpkg-old« ! -name «*~«)) | |
elif [ -L «@TERMUX_PREFIX@/etc/termux/chosen_mirrors« ]; then |
if [ -d "@TERMUX_PREFIX@/etc/termux/chosen_mirrors" ]; then
mirrors=($(find @TERMUX_PREFIX@/etc/termux/chosen_mirrors/ -type f ! -name "*.dpkg-old" ! -name "*~"))
if [ -f "@TERMUX_PREFIX@/etc/termux/chosen_mirrors" ]; then
mirrors=($(readlink @TERMUX_PREFIX@/etc/termux/chosen_mirrors))
elif [ -L "@TERMUX_PREFIX@/etc/termux/chosen_mirrors" ]; then
...
The rest of the logic can stay same since then mirrors
array will only have a single mirror. What is missing is a check if mirrors array actually has any mirrors left after check_mirror
. There should be an error+exit else
for if [ -n "$selected_mirror" ]; then
statement.
if [ -n «$selected_mirror« ]; then |
Also you should add a check in get_mirror_weight
for whether weight is actually a positive integer. Shouldn’t trust blind input and do maths on it considering user can modify the values, we already had to do the f2f4bea fix when values were hardcoded in pkg
script itself. I added the check earlier, which you removed in new design.
On the termux-change-repo
side, for Select an individual mirror
option, I guess you can create an associative array for all mirrors with the format [mirror_group/mirror_name]=/path/to/mirror/file
. Show the keys to the user and on selection, create symlink for array value for the key selected.
I don’t like option 2
since probably most users won’t have understanding of what weight is.
(github butchered my nice ascii-art, but I think you can imagine how it’s suppose to look)
What do you mean? Looks fine to me!
Github comment typing field does not use monospace font while markdown code block does use it when rendered. You should type comments in monospaced font text editor for such stuff and there shall be no butchering.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
All Termux repositories previously hosted on JFrog Bintray are down since 1st May, 2021. This means that all repositories hosted on dl.bintray.com
domain are not available anymore. There nothing can be done on our side because Bintray service announced its sunset.
Ign:2 https://dl.bintray.com/grimler/game-packages-24 games InRelease
Ign:3 https://dl.bintray.com/grimler/science-packages-24 science InRelease
Err:4 https://dl.bintray.com/grimler/game-packages-24 games Release
403 Forbidden
Err:5 https://dl.bintray.com/grimler/science-packages-24 science Release
403 Forbidden
Get:1 https://grimler.se/termux-packages-24 stable InRelease [13.1 kB]
Get:6 https://grimler.se/termux-packages-24 stable/main all Packages [21.6 kB]
Get:7 https://grimler.se/termux-packages-24 stable/main aarch64 Packages [269 kB]
Reading package lists... Done
E: The repository 'https://dl.bintray.com/grimler/game-packages-24 games Release' does not have a Release file.
N: Metadata integrity can't be verified, repository is disabled now.
N: Possible cause: repository is under maintenance or down (wrong sources.list URL?).
E: The repository 'https://dl.bintray.com/grimler/science-packages-24 science Release' does not have a Release file.
N: Metadata integrity can't be verified, repository is disabled now.
N: Possible cause: repository is under maintenance or down (wrong sources.list URL?).
What you should do as Termux user (only for Android 7+)
You need to pick a one of the available mirrors by using utility termux-change-repo
or manually edit sources.list
by replacing the Bintray URL with value obtained from Termux Mirrors List.
Beware of third-party scripts claiming theirselves as repository fixers! They could install untrusted GPG key and redirect your Termux installation onto malicious repository. Official tool for changing repositories is bundled within Termux and called termux-change-repo
.
Usage of termux-change-repo
is simple:
- Select one or more repositories for which you want to change mirror by tapping «space» and navigating over list by up/down arrow keys. Tap enter to confirm the choice.
- Pick a mirror, it is recommended to begin with mirror hosted by Grimler. Same as previously, navigate over list by arrow keys, pick mirror by space key and confirm choice by pressing «enter».
Highly recommended to run pkg upgrade
after changing mirror.
screen-20210427-154621.2.mp4
If you get E: Repository .. changed its .. value from .. to ..
Package manager can show you a notification with prompt which look like this one:
E: Repository 'https://grimler.se/termux-root-packages-24 root InRelease' changed its 'Origin' value from 'Bintray' to 'termux-root-packages-24 root'
E: Repository 'https://grimler.se/termux-root-packages-24 root InRelease' changed its 'Label' value from 'Bintray' to 'termux-root-packages-24 root'
N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.
Do you want to accept these changes and continue updating from this repository? [y/N]
It is completely normal. Answer «yes» to this prompt. It will be shown only once per repository, so package manager will ask you to confirm for game-repo
, science-repo
, etc separately but you will need to confirm them only one time.
Do not use Termux app from Google Play. It is deprecated.
Use Termux application from F-Droid, here is the link: https://f-droid.org/en/packages/com.termux/. Google Play variant is deprecated, doesn’t receive updates and contains issues as well as outdated repository URLs.
Before migrating to F-Droid Termux version, uninstall the application and all add-ons like Termux:API, Termux:Styling, Termux:Widget and others. This is a required step because of signature mismatch between F-Droid and Google Play variants. If you need to back up data before uninstalling app, you can use suggestions from https://wiki.termux.com/wiki/Backing_up_Termux.
Remember that Android 5.x — 6.x is NOT SUPPORTED!
Android OS version range 5.x — 6.x has been deprecated since 01.01.2020 and no longer worked on anymore. Provided here repository workarounds are only for Android 7.0. We never announced that bringing back support of legacy Android versions.
If you managed to put an URL of our mirrors to your sources.list and upgrade your legacy Termux, do not complain about broken installation. If maintainers marked something as unsupported, perhaps there is a reason for that, isn’t it?
Discussions about Android 5.x — 6.x are off-topic here.
Remember that VMOS and F1VM environments are NOT SUPPORTED!
These «virtual» environments are not supported by Termux. They have a number of issues including broken apt-key
.
Discussions about VMOS and F1VM are off-topic here.