...
 
Commits (1644)
*.py[cod]
# C extensions
*.so
......@@ -11,7 +12,6 @@ build
eggs
parts
bin
var
sdist
develop-eggs
.installed.cfg
......@@ -26,6 +26,9 @@ pip-log.txt
.tox
nosetests.xml
htmlcov
mock/etc/pacman.d/mirrorlist
mock/usr/share/pacman-mirrors/mirrors.json
mock/var/lib/pacman-mirrors/status.json
# Translations
*.mo
......@@ -35,6 +38,8 @@ htmlcov
.project
.pydevproject
.idea
.vscode
.mypy_cache
# Complexity
output/*.html
......@@ -42,3 +47,5 @@ output/*/index.html
# Sphinx
docs/_build
pacman_mirrors/__pycache__/
tests/__pycache__/
......@@ -3,7 +3,7 @@
language: python
python:
- "3.5"
- "3.7"
# command to install dependencies, e.g. pip install -r requirements.txt
install: pip install -r requirements.txt
......
......@@ -2,7 +2,8 @@
host = https://www.transifex.com
[manjaro-pacman-mirrors.pacman_mirrors]
file_filter = locale/<lang>/LC_MESSAGES/pacman_mirrors.po
source_file = locale/pacman_mirrors.pot
source_lang = en
type = PO
file_filter = locale/<lang>/LC_MESSAGES/pacman_mirrors.po
# Credits
- Roland Singer <roland@manjaro.org>
- Esclapion
- Philip Müller <philm@manjaro.org>
- Ramon Buldó <ramon@manjaro.org>
- Hugo Posnic <huluti@manjaro.org>
- Frede Hundewadt <echo ZmhAbWFuamFyby5vcmcK | base64 -d>
Thank you all! ;)
=======
Credits
=======
Development Lead
----------------
* Roland Singer <roland@manjaro.org>
* Esclapion
* philm
* Ramon Buldó <rbuldo@gmail.com>
Contributors
------------
* Frede Hundewadt
# Change Log
All notable changes to this project will be documented in this file.
## [4.16.2] 2019-12-12
* Fixed missing reset of custom mirror pool when using `--continent` and `--geoip`
## [4.16] 2019-12-10
* Added `--continent` argument [#149](https://gitlab.manjaro.org/applications/pacman-mirrors/issues/149)
* Added `--status` argument [#151](https://gitlab.manjaro.org/applications/pacman-mirrors/issues/151)
## [4.15.1] 2019-10-22
* Fix bug in return value for `--geoip` argument
* Removed debug messages
## [4.15] 2019-10-19
* Refactor internal mirrorpool building - excluding mirros which are unresponsive or not up-to-date
* Experimental argument `--use-async`
- @ZenTauro code added for [#144](https://gitlab.manjaro.org/applications/pacman-mirrors/issues/144)
- Overall functionality works - needs field testing.
- Disclaimer before run.
## [4.14.99.dev] 2019-04-25
* Implemented [#146](https://gitlab.manjaro.org/applications/pacman-mirrors/issues/146)
- Added `--interval`. Works only with `--no-status` filtering mirrors based on last sync time.
* Fixed [#145](https://gitlab.manjaro.org/applications/pacman-mirrors/issues/145)
## [4.14.2] 2019-04-22
* pulled transifex translation
* updated documentation (man page)
## [4.14.1] 2019-01-03
* new geo location service
## [4.14.0] 2018-10-29
* refactor geo location query to use geoip.kde.org
## [4.13.0] 2018-10-28
* Implemented [#143](https://gitlab.manjaro.org/applications/pacman-mirrors/issues/143)
- Added `--no-color` argument for Pamac v7.2 logging.
- Pulled translations
- Fixed doubled messages when using `-f` argument
## [4.12.5] 2018-08-06
* fix issue with console ui
## [4.12.4] 2018-08-06
* rebuild - removed debug code
## [4.12.3] 2018-08-06
* changed test file to `core.db.tar.gz` - added option to `pacman-mirrors.conf`
## [4.12.2] 2018-08-02
* fix sorting based on resp_time (lexicographic -> numbers)
## [4.12.1] 2018-08-01
* refactor mirror probe to get more realistic response times.
* setting http User-Agent to Pacman-Mirrors/{version}
## [4.11.5] 2018-07-24
* Fix for [#140](https://gitlab.manjaro.org/applications/pacman-mirrors/issues/140)
* Fix issue for when user had configured protocol limitations - servers with invalid certificates was still written to the mirrorlist.
## [4.11.4] 2018-07-23
* Fix for [#139](https://gitlab.manjaro.org/applications/pacman-mirrors/issues/139)
* Fixed interactive mirrorlist still containing https on invalid certificate
## [4.11.3] 2018-07-22
* Fix for [#138](https://gitlab.manjaro.org/applications/pacman-mirrors/issues/138)
* Mirrors offering both https and http - with expired/invalid certifcate was written to mirrorlist with https protocol instead of http.
* Pulled translation from Transifex
## [4.11.2]
* Final build with fix for [#136](https://gitlab.manjaro.org/applications/pacman-mirrors/issues/136)
* The change of call to gettext in the i18n module to return unicode messages fixed the issue.
## [4.11.1dev]
* Attempt to fix [#136](https://gitlab.manjaro.org/applications/pacman-mirrors/issues/136)
* The issue manifests when the translation makes use of unicode chars (Hungarian) maybe others
* The call to gettext in the i18n module has been changed to return unicode messages.
## [4.11.0] 2018-06-22
* Added : Implemented issue [#135](https://gitlab.manjaro.org/applications/pacman-mirrors/issues/135)
* Description : A non-reponsive mirror is eliminated from the mirrorlist
* : If a mirror is blacklisted in the systems hosts file the mirror becomes unresponsive
## [4.10.1] 2018-04-01
* Added : Implemented issue [#128](https://github.com/manjaro/pacman-mirrors/issues/128)
* Description : `-s/--no-status` Allow mirror list with not up-to-date mirrors
## [4.9.1] 2018-03-23
* Fixed : [#130](https://github.com/manjaro/pacman-mirrors/issues/130) Mirror list generation could result in weird destinations if user selected multiple protocols from same mirror.
## [4.9.0] 2018-03-23
* Added : `-lc/--country-config` (Pamac [#366](https://github.com/manjaro/pamac/issues/366))
## [4.8.2] 2018-03-19
* Fix: Github [#123](https://github.com/manjaro/pacman-mirrors/issues/123).
## [4.8.1] 2018-03-19
* Trying to squash a bug with help from community. Github [#123](https://github.com/manjaro/pacman-mirrors/issues/123).
* The issue was hard to pin down, but with the help of a fantastiq community it has been done.
## [4.8.0] 2018-03-19
* Remove : `--branch` - temporary branch change removed [System Maintenance](https://wiki.manjaro.org/System_Maintenance) [Forum Post](https://forum.manjaro.org/t/wiki-pacman-mirrors-pacman-4-7-6-recommendations-for-maintenance-and-installation/41991/16)
* Change : `--get-branch` not dependent on api [#124](https://github.com/manjaro/pacman-mirrors/issues/124) and [#125](https://github.com/pacman-mirrors/issues/125)
* Check : `--api` is present with api args -> args error -> exit(1)
* Check : `--interactive` is present with `--default` -> args error -> exit(1)
* Added : translation texts for args error
* Updated: changelog, translations, documentation and tests
## [4.7.6] 2018-03-08
* Updated docs
* Updated translations
## [4.7.5] 2018-02-14
* Refactor to handle x32 correct so pool is not empty
## [4.7.4] 2018-02-13
* Fix for uncaught IndexError when mirror pool is empty [Forum post](https://forum.manjaro.org/t/pacman-mirrors-4-7-3-1-problems/40319/4)
## [4.7.3] 2018-02-11
* Added the missed the x32-branches [Forum post](https://forum.manjaro.org/t/pacman-mirrors-4-7-2-config-file-sanity-check-and-fix-of-my-staring-blind/40171/9)
## [4.7.2] 2018-02-10
* Added sanity check to config entries [Forum post](https://forum.manjaro.org/t/solved-struggling-to-change-permanently-from-stable-to-testing/40128)
## [4.7.1] 2018-01-28
* Wayland check - disable gtk on wayland compositor [#115](https://github.com/manjaro/pacman-mirrors/issues/115)
* Added catch for generic network errors not otherwise caught [#119](https://github.com/manjaro/pacman-mirrors/issues/119)
* Pulled translations
## [4.7.0] 2017-12-08
* Support for x32 branches - transparent change to x32
- Check if architecture is i686 and change branch to x32-$branch
- b/--branch and -a/--api -S/--set-branch
- no need to prepend when calling branch changing functions
## [4.6.9] 2017-12-06
* **Improvement**: support for x32 branches [#114](https://github.com/manjaro/pacman-mirrors/issues/114)
## [4.6] 2017-11-19
* **Release bump to 4.6** Error with version display 4.5b1
## [4.5.0] 2017-11-16
* **Fix**: Custom mirror pool was not reset when supplying new countries on CLI.
* **Documentation**: Added file overview to documentation and man page.
* Discussion on a pamac incompatibility [pamac issue 366](https://github.com/manjaro/pamac/issues/366) and how to solve it properly.
## [4.5b1] 2017-11-09
After releasing 4.4 a couple of small trivial issues surfaced.
* **Fix**: Network check was handled poorly in corner cases.
* **Fix**: Reset of a custom mirror pool failed in corner cases.
* **Fix**: Country list was not complete.
* **Change**: OnlyCountry removed from configuration to avoid confusion.
* **Added**: Check for custom mirror pool by checking and validating custom-mirrors.json.
## [4.4] 2017-11-07
* **Improvement**: `-f/--fasttrack` honor `-c COUNTRY,COUNTRY,COUNTRY`
* **Change**: `-c/--country` countries supplied will be written to `custom-mirrors.json`, overwriting exiting file.
## [4.3.1] 2017-11-07
* **Fix**: typo in documentation
## [4.3.0] 2017-10-28
- **Fix**: `-h/--help` added deprecation messages
- **Improvement**: Api `--get-branch` removed root requirement
- **Deprecation**: `-y` and `-g` is deprecated and use is discouraged
- **Improvement**: General mirrorlist uses only up-to-date mirrors on users branch
- **Improvement**: Fasttrack mirrorlist uses only up-to-date mirrors on users branch
- **Improvement**: Filter generated mirrorlist based on branch and sync status
- Update translations.
## [4.2.2]
- **Fix**: Missing txt 'OPT_COUNTRY'
## [4.2.1] 2017-08-16
- Ensure correct exit code (0) on `api --get-branch`
## [4.2.0] 2017-06-14
- **Improvement**: Added `-U` / `--url` [#105](https://github.com/manjaro/pacman-mirrors/issues/105).
- **Improvement**: Added `-R`/`--re-branch` [#105](https://github.com/manjaro/pacman-mirrors/issues/105).
- **Improvement**: Added man page.
**Breaking changes**
- `-S`/`--set-branch $BRANCH` requires branch as argument.
- `-u`/`--update` renamed to `-y`/`--sync`.
- `NoUpdate` configuration removed from pacman-mirrors.conf.
- `--no-update` argument removed.
- `MirrorlistsDir = /etc/pacman.d/mirrors` removed from pacman-mirrors.conf.
- `-o`/`--output` argument removed.
- `OutputMirrorlist = /etc/pacman.d/mirrorlist` removed from pacman-mirrors.conf
- `-d`/`--mirror_dir` argument removed.
**Other improvements and fixes:**
- **Improvement**: Do not write bad servers to the end of the mirrorlist.
- **Improvement**: created argument groups for logic division of arguments usage.
- **Improvement**: `-G`/`--get-branch` and `-S`/`--set-branch` mutually exclusive.
- **Improvement**: `-n`/`--no-mirrorlist` and `-y --sync` mutually exclusive.
- **Improvement**: added choices to `-P`/`--proto` [all, http, https, ftp, ftps].
- **Improvement**: sorting mirrorlist by country during load of data file.
- **Fix**: Bug where ssl-certificate errors would break execution.
- **Fix**: Issue where values from configuration was not parsed correct.
- **Fix**: Issue where location in config was not determined correct.
## [4.1.4] 2017-05-16
- Improvement: Removed `--no-mirrorlist` dependency on API.
- Fix: Behavior of `--no-mirrorlist`. Download updated mirror files before exit.
## [4.1.3] 2017-05-15
- Fix: comparison of mirrorfiles fixed
## [4.1.2] 2017-05-15
- Fix: ranking breaks when `--interactive` is used with `--default` [#98](https://github.com/manjaro/pacman-mirrors/issues/98)
## [4.1.1] 2017-05-01
- Added `-u` / `--update` option
* Run `pacman -Syy` after mirrorlist generation
- Modified network check so a single site failure is not considered network failure.
## [4.1.0] 2017-05-01
- Added protocol option to api.
* Possible to control protocols from CLI
- `/var/lib/pacman-mirrors/mirrors.json` is causing confusion so it has been removed.
* Only one fallback is needed `/usr/share/pacman-mirrors/mirrors.json`.
* If a new `mirrors.json` is available - existing will be updated by pacman-mirrors.
- Improvement on default mirrorlist.
* mirror protocols are reverse sorted (https,http,ftps,ftp).
* if several protocols exist only the first is written to mirrorlist. Thus ssl enabled protocols get priority.
- Improvement on mirror protocol selection [#90](https://github.com/manjaro/pacman-mirrors/issues/90).
* If a mirror offers more than one protocol - only the first is written to the mirrorlist.
* Added `# Protocols = ` to pacman-mirrors.conf.
* Defined protocols are honored in the order in which they appear.
- Improvement on `--interactive`: select mirrors by protocol.
- Added a simple API [#81](https://github.com/manjaro/pacman-mirrors/issues/81).
- Update translations.
- Code optimizing.
- Added to config `# SSLVerify = True`.
- Refactored mirrorcheck to ignore a mirrors certificate error if `SSLVerify = False`.
- Refactored mirrorcheck for https-mirrors timing out during ssl-handshake.
- Update docs.
## [4.0.4] - 2017-04-15
- Fix issue with UnicodeEncodeError in interactive mode
## [4.0.3] - 2017-03-28
- Fix issue with `--fasttrack` and `OnlyCountry = Custom`.
- Update translations.
- Update docs.
## [4.0.2] - 2017-03-21
- Fix issue with chroot mirrorlist generation
## [4.0.1] - 2017-03-21
- GUI: Add sorting functionality.
- Add: --default argument
- Fix issue with OnlyCountry unexpected reset
- Fix issue with not only displaying selected mirrors.
- Fix connectivity check.
- Update translations.
## [4.0.0] - 2017-03-19
- Add: -l/--list Print available mirror countries
- Add: Network check; do not run rank if no internet.
- Add: -f/--fasttrack [n] argument.
- Modified GUI and TUI to reflect rank/random method.
- Colorized console output by message type.
- Internal rewrite to use json files from repo.manjaro.org.
- The `/etc/pacman.d/mirrors` dir has been removed.
- All data files now exist in `/var/lib/pacman-mirrors`.
- If the `Custom` mirrorfile exist it will convert to `custom-mirrors.json`
- A lot of inevitable small fixes.
## [3.2.2] - 2017-02-12
- Fix issue with multiple country select.
- Bug fixes.
## [3.2.1] - 2017-02-10
- Fix save of config file.
- Update translations.
## [3.2.0] - 2017-02-06
- Add TUI interface.
- Bug fixes.
- Update translations.
## [3.1.0] - 2017-01-18
- Replace --verbose option by --quiet.
- New documentation.
- Translation review.
- Check DISPLAY when using interactive mode.
- Better structure for the GUI.
## [3.0.0] - 2017-01-12
- Refactoring.
- New GUI.
- Code improvements.
- --verbose option.
## [2.0.0] - 2016-03-01
- Add translation support.
- Better error messages.
- --no-update option, to prevent updates when upgrading the package.
- Big refractor of code.
- Configuration file /etc/pacman-mirrors.conf is optional.
- Pep8 all the code in pacman_mirrors.py
- Reestructure the project.
- The Custom country created with interactive mode is now stored in /var/lib/pacman-mirrors/
- If a Custom country is found in /etc/pacman.d/mirrors/ its moved automatically to the new directory.
# Contributing
Contributions are welcome, and they are greatly appreciated! Every
little bit helps, and credit will always be given.
You can contribute in many ways:
## Types of Contributions
### Report Bugs
Report bugs at [Manjaro Gitlab](https://gitlab.manjaro.org/applications/pacman-mirrors/issues).
If you are reporting a bug, please include:
- Your operating system name and version.
- Any details about your local setup that might be helpful in troubleshooting.
- Detailed steps to reproduce the bug.
### Fix Bugs
Look through the Gitlab issues for bugs. Anything tagged with "bug"
is open to whoever wants to implement it.
### Implement Features
Look through the Gitlab issues for features. Anything tagged with "feature"
is open to whoever wants to implement it.
### Write Documentation
pacman-mirrors could always use more documentation, whether as part of the
official pacman-mirrors docs, in docstrings, or even on the web in blog posts,
articles, and such.
### Translations
Help us to ship pacman-mirrors in your language by helping our translators on [Transifex](https://www.transifex.com/manjarolinux/manjaro-pacman-mirrors/dashboard/).
### Submit Feedback
The best way to send feedback is to file an issue at [Manjaro Gitlab](https://gitlab.manjaro.org/applications/pacman-mirrors/issues).
If you are proposing a feature:
* Explain in detail how it would work.
* Keep the scope as narrow as possible, to make it easier to implement.
* Remember that this is a volunteer-driven project, and that contributions
are welcome :)
## Get Started!
Ready to contribute? Here's how to set up `pacman-mirrors` for local development.
* Fork the `pacman-mirrors` repo on GitHub.
* Clone your fork locally:
```
$ git clone https://gitlab.manjaro.org/your-name-here/pacman-mirrors.git
```
* Install your local copy into a virtualenv. Assuming you have [virtualenvwrapper](https://virtualenvwrapper.readthedocs.io/en/latest/) installed, this is how you set up your fork for local development
```
$ mkvirtualenv pacman-mirrors
$ cd pacman-mirrors/
$ python setup.py develop
```
* Create a branch for local development:
```
$ git checkout -b name-of-your-bugfix-or-feature
```
Now you can make your changes locally.
* When you're done making changes, check that your changes pass flake8 and the tests:
```
$ flake8 pacman-mirrors tests
$ python setup.py test
```
* To get flake8, just pip install it into your virtualenv (see notes below).
* Commit your changes and push your branch to GitHub:
```
$ git add
$ git commit -m "Your detailed description of your changes."
$ git push origin name-of-your-bugfix-or-feature
```
* Submit a pull request through the GitHub website.
## Test Guidelines
```
make test
```
### Generated Mirrorlist Verification
From experience it is so easy to forget verification of the generated mirrorlists.
As the mirrorlists can be generated in a variety of ways - a list of verifications is presented here.
1. `sudo pacman-mirrors -c all`
2. `sudo pacman-mirrors -f`
3. `sudo pacman-mirrors -c Germany`
4. `sudo pacman-mirrors -c Germany -i`
5. `sudo pacman-mirrors -aP https -c Germany`
6. `sudo pacman-mirrors -aP https http -c Germany -i`
7. `sudo pacman-mirrors -aP http https -c Germany -i`
8. `sudo pacman-mirrors -aP https http -c Germany`
9. `sudo pacman-mirrors -aP http https -c Germany`
All urls in the mirrorlist **must** end with **$repo/$arch**
## Pull Request Guidelines
Before you submit a pull request, check that it meets these guidelines:
* The pull request should include tests.
* If the pull request adds functionality, the docs should be updated. Put
your new functionality into a function with a docstring, and add the
feature to the list in README.md.
* The pull request should work for Python 3.4+, and for PyPy. Check
https://travis-ci.org/manjaro/pacman-mirrors/pull_requests
and make sure that the tests pass for all supported Python versions.
## Tips
To run a subset of tests:
```
$ python -m unittest tests.test_pacman_mirrors
```
## Developing environment
* An editor of choice e.g.
* Visual Studio Code `pacman -Syu code`
* PyCharm Community `pacman -Syu pycharm-community`
* Pandoc converter `pacman -Syu pandoc`
* Python environment
```
$ git clone https://gitlab.manjaro.org/applications/pacman-mirrors.git
$ cd pacman-mirrors
$ sudo pacman -Syu python-virtualenvwrapper
$ mkvirtualenv pacman-mirrors
$ python setup.py develop
$ pip install mkdocs coverage babel flake8 npyscreen transifex-client
```
* Remember to `source /usr/bin/virtualenvwrapper.sh` to get the virtualenv CLI
============
Contributing
============
Contributions are welcome, and they are greatly appreciated! Every
little bit helps, and credit will always be given.
You can contribute in many ways:
Types of Contributions
----------------------
Report Bugs
~~~~~~~~~~~
Report bugs at https://github.com/manjaro/pacman-mirrors/issues.
If you are reporting a bug, please include:
* Your operating system name and version.
* Any details about your local setup that might be helpful in troubleshooting.
* Detailed steps to reproduce the bug.
Fix Bugs
~~~~~~~~
Look through the GitHub issues for bugs. Anything tagged with "bug"
is open to whoever wants to implement it.
Implement Features
~~~~~~~~~~~~~~~~~~
Look through the GitHub issues for features. Anything tagged with "feature"
is open to whoever wants to implement it.
Write Documentation
~~~~~~~~~~~~~~~~~~~
pacman-mirrors could always use more documentation, whether as part of the
official pacman-mirrors docs, in docstrings, or even on the web in blog posts,
articles, and such.
Submit Feedback
~~~~~~~~~~~~~~~
The best way to send feedback is to file an issue at https://github.com/manjaro/pacman-mirrors/issues.
If you are proposing a feature:
* Explain in detail how it would work.
* Keep the scope as narrow as possible, to make it easier to implement.
* Remember that this is a volunteer-driven project, and that contributions
are welcome :)
Get Started!
------------
Ready to contribute? Here's how to set up `pacman-mirrors` for local development.
1. Fork the `pacman-mirrors` repo on GitHub.
2. Clone your fork locally::
$ git clone git@github.com:your_name_here/pacman-mirrors.git
3. Install your local copy into a virtualenv. Assuming you have virtualenvwrapper installed, this is how you set up your fork for local development::
$ mkvirtualenv pacman-mirrors
$ cd pacman-mirrors/
$ python setup.py develop
4. Create a branch for local development::
$ git checkout -b name-of-your-bugfix-or-feature
Now you can make your changes locally.
5. When you're done making changes, check that your changes pass flake8 and the tests, including testing other Python versions with tox::
$ flake8 pacman-mirrors tests
$ python setup.py test
$ tox
To get flake8 and tox, just pip install them into your virtualenv.
6. Commit your changes and push your branch to GitHub::
$ git add .
$ git commit -m "Your detailed description of your changes."
$ git push origin name-of-your-bugfix-or-feature
7. Submit a pull request through the GitHub website.
Pull Request Guidelines
-----------------------
Before you submit a pull request, check that it meets these guidelines:
1. The pull request should include tests.
2. If the pull request adds functionality, the docs should be updated. Put
your new functionality into a function with a docstring, and add the
feature to the list in README.rst.
3. The pull request should work for Python 3.4+, and for PyPy. Check
https://travis-ci.org/manjaro/pacman-mirrors/pull_requests
and make sure that the tests pass for all supported Python versions.
Tips
----
To run a subset of tests::
$ python -m unittest tests.test_pacman_mirrors
.. :changelog:
History
-------
3.0 (2017-01-12)
---------------------
* Refactoring
* Code improvements
* --verbose option
2.0 (2016-03-01)
---------------------
* Add translation support.
* Better error messages.
* --no-update option, to prevent updates when upgrading the package.
* Big refractor of code.
* Configuration file /etc/pacman-mirrors.conf is optional.
* Pep8 all the code in pacman_mirrors.py
* Reestructure the project.
* The Custom country created with interactive mode is now stored in /var/lib/pacman-mirrors/
* If a Custom country is found in /etc/pacman.d/mirrors/ its moved automatically to the new directory.
include AUTHORS.rst
include CONTRIBUTING.rst
include HISTORY.rst
include AUTHORS.md
include CONTRIBUTING.md
include CHANGELOG.md
include LICENSE
include README.rst
include data/mirrors/*
include README.md
include man/pacman-mirrors.8
include share/mirrors.json
include scripts/pacman-mirrors
recursive-include tests *
recursive-exclude * __pycache__
recursive-exclude * *.py[co]
recursive-include docs *.rst conf.py Makefile make.bat
recursive-include docs *.md
......@@ -7,15 +7,14 @@ help:
@echo "clean-test - remove test and coverage artifacts"
@echo "lint - check style with flake8"
@echo "test - run tests quickly with the default Python"
@echo "test-all - run tests on every Python version with tox"
@echo "coverage - check code coverage quickly with the default Python"
@echo "docs - generate Sphinx HTML documentation, including API docs"
@echo "docs - generate MkDocs HTML documentation, man page using Pandoc, including API docs"
@echo "release - package and upload a release"
@echo "dist - package"
@echo "install - install the package to the active Python's site-packages"
@echo "pot-file - extract messages to locale/pacman_mirrors.pot"
@echo "push-pot - push pot file to transifex"
@echo "pull-pot - pull all translations from transifex"
@echo "pull-po - pull all translations from transifex"
@echo "mo-files - generate .mo files"
clean: clean-build clean-pyc clean-test
......@@ -34,7 +33,6 @@ clean-pyc:
find . -name '__pycache__' -exec rm -fr {} +
clean-test:
rm -fr .tox/
rm -f .coverage
rm -fr htmlcov/
......@@ -44,22 +42,21 @@ lint:
test:
python setup.py test
test-all:
tox
coverage:
coverage run --source pacman_mirrors setup.py test
coverage report -m
coverage html
open htmlcov/index.html
firefox htmlcov/index.html
docs:
rm -f docs/pacman-mirrors.rst
rm -f docs/modules.rst
sphinx-apidoc -o docs/ pacman-mirrors
$(MAKE) -C docs clean
$(MAKE) -C docs html
open docs/_build/html/index.html
mkdocs build
pandoc -s -t man docs/index.md -o man/pacman-mirrors.8
pandoc docs/index.md -f markdown -t html -s -o man/pacman-mirrors.8.html
gzip man/pacman-mirrors.8 -fq
man-page:
pandoc -s -t man docs/index.md -o man/pacman-mirrors.8
man man/pacman-mirrors.8
release: clean
python setup.py sdist upload
......
# pacman-mirrors
[![Build Status](https://travis-ci.org/manjaro/pacman-mirrors.svg?branch=master)](https://travis-ci.org/manjaro/pacman-mirrors)
Package that provides all mirrors for Manjaro Linux.
- Free software: GPL license
## Features
- A GUI for selecting mirror/protocol combinations used to generate a custom list.
- Generate a new mirror list by using several options:
- method : rank or random.
- country : a single, a list or all.
- fasttrack : limited ranked list of `x` up-to-date mirrors.
- geoip : mirrors for country if available.
- Information
- get-branch : get current branch from config
- country-list: list of countries with mirrors
- API
- prefix : prefix for files handled by pacman-mirrors.
- set-branch : set branch from supplied branch option to config
- protocols:
- set protocol limitation in config
- remove protocol limitation from config
## Technologies
pacman-mirrors is build with Python and Gtk3.
===============================
pacman-mirrors
===============================
.. image:: https://img.shields.io/travis/manjaro/pacman-mirrors.svg
:target: https://travis-ci.org/manjaro/pacman-mirrors
Package that provides all mirrors for Manjaro Linux.
* Free software: GPL license
Features
--------
* TODO
......@@ -10,19 +10,18 @@
## 2) random - randomly generate the output mirrorlist
# Method = rank
## Specify to use only mirrors from specific a country.
## Can add multiple countries separated by a comma (ex: Germany,France)
## Empty means all
# OnlyCountry =
## Filename to use when ranking mirrors
## The file must be present in core repo
# TestFile = core.db.tar.gz
## Mirrors directory
# MirrorlistsDir = /etc/pacman.d/mirrors
## Define protocols and priority
## separated by comma 'https,http' or 'http,https'
## ATM available protocols are: http, https, ftp
## Not specifying a protocol will ban the protocol from being used
## If a mirror has more than one protocol defined only the first is written to the mirrorlist
## Empty means all in reversed alphabetic order
# Protocols =
## Output file
# OutputMirrorlist = /etc/pacman.d/mirrorlist
## When set to True prevents the regeneration of the mirrorlist if
## pacman-mirrors is invoked with the --no-update argument.
## Useful if you don't want the mirrorlist regenerated after a
## pacman-mirrors package upgrade.
# NoUpdate = False
\ No newline at end of file
## When set to False - all certificates are accepted.
## Use only if you fully trust all ssl-enabled mirrors.
# SSLVerify = True
##
## Pacman Mirrorlist
##
[Africa]
Server = http://mirror.is.co.za/mirrors/manjaro.org/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Australia]
Server = http://mirror.ventraip.net.au/Manjaro/$branch/$repo/$arch
Server = http://manjaro.uberglobalmirror.com/$branch/$repo/$arch
Server = http://manjaro.mirror.serversaustralia.com.au/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Austria]
Server = http://mirror.inode.at/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Belarus]
Server = http://mirror.datacenter.by/pub/mirrors/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Belgium]
Server = http://ftp.belnet.be/manjaro/$branch/$repo/$arch
Server = http://manjaro.cu.be/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Brasil]
Server = http://linorg.usp.br/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Bulgaria]
Server = http://mirrors.netix.net/manjaro/$branch/$repo/$arch
Server = http://manjaro.ipacct.com/manjaro/$branch/$repo/$arch
Server = http://manjaro.telecoms.bg/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Canada]
Server = http://manjaro.cybr.ca/$branch/$repo/$arch
Server = http://ca.mirror.babylon.network/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Chile]
Server = http://manjaro.dcc.uchile.cl/$branch/$repo/$arch
Server = http://doge.ing.puc.cl/Mirrors/Manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[China]
Server = http://mirrors.ustc.edu.cn/manjaro/$branch/$repo/$arch
Server = http://ftp.cuhk.edu.hk/pub/Linux/manjaro/$branch/$repo/$arch
Server = http://mirrors.tuna.tsinghua.edu.cn/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Colombia]
Server = http://mirror.edatel.net.co/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Costa_Rica]
Server = http://mirrors.ucr.ac.cr/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Czech]
Server = http://mirror.dkm.cz/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Denmark]
Server = http://mirrors.dotsrc.org/manjaro/$branch/$repo/$arch
Server = http://www.uex.dk/repos/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Ecuador]
Server = http://mirror.cedia.org.ec/manjaro/$branch/$repo/$arch
Server = http://mirror.uta.edu.ec/manjaro/$branch/$repo/$arch
Server = http://mirror.espoch.edu.ec/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[France]
Server = http://manjarolinux.polymorf.fr/$branch/$repo/$arch
Server = http://mirror.lignux.com/manjaro/$branch/$repo/$arch
Server = http://ftp.free.org/mirrors/repo.manjaro.org/repos/$branch/$repo/$arch
Server = http://fr.mirror.babylon.network/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Germany]
Server = http://mirror.ragenetwork.de/manjaro/$branch/$repo/$arch
Server = http://ftp.halifax.rwth-aachen.de/manjaro/$branch/$repo/$arch
Server = http://ftp.tu-chemnitz.de/pub/linux/manjaro/$branch/$repo/$arch
Server = http://mirror.netzspielplatz.de/manjaro/packages/$branch/$repo/$arch
Server = http://mirror.netcologne.de/manjaro/$branch/$repo/$arch
Server = http://repo.rhindon.net/manjaro/$branch/$repo/$arch
Server = http://mirrors.cicku.me/manjaro/$branch/$repo/$arch
Server = http://repo.stdout.net/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Greece]
Server = http://ftp.cc.uoc.gr/mirrors/linux/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Indonesia]
Server = http://kambing.ui.ac.id/manjaro/$branch/$repo/$arch
Server = http://kartolo.sby.datautama.net.id/manjaro/$branch/$repo/$arch
Server = http://jaran.undip.ac.id/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Ireland]
Server = http://ftp.heanet.ie/mirrors/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Italy]
Server = http://manjaro.mirror.garr.it/mirrors/manjaro/$branch/$repo/$arch
Server = http://ba.mirror.garr.it/mirrors/manjaro/$branch/$repo/$arch
Server = http://ct.mirror.garr.it/mirrors/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Japan]
Server = http://ftp.tsukuba.wide.ad.jp/Linux/manjaro/$branch/$repo/$arch
Server = http://ftp.riken.jp/Linux/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Netherlands]
Server = http://ftp.nluug.nl/pub/os/Linux/distr/manjaro/$branch/$repo/$arch
Server = http://ftp.snt.utwente.nl/pub/linux/manjaro/$branch/$repo/$arch
Server = http://nl.mirror.babylon.network/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Philippines]
Server = http://mirror.rise.ph/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Poland]
Server = http://mirror.chmuri.net/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Portugal]
Server = http://ftp.dei.uc.pt/pub/linux/manjaro/$branch/$repo/$arch
Server = http://repo.barata.website/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Romania]
Server = http://mirrors.serverhost.ro/manjaro/packages/$branch/$repo/$arch
Server = http://ftp.lug.ro/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Russia]
Server = http://mirror.yandex.ru/mirrors/manjaro/$branch/$repo/$arch
Server = ftp://kibo.remi.lu/pub/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Singapore]
Server = http://download.nus.edu.sg/mirror/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Sweden]
Server = http://ftp.lysator.liu.se/pub/manjaro/$branch/$repo/$arch
Server = http://mirror.zetup.net/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Taiwan]
Server = http://free.nchc.org.tw/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Turkey]
Server = http://ftp.linux.org.tr/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[United_Kingdom]
Server = http://repo.manjaro.org.uk/$branch/$repo/$arch
Server = http://www.mirrorservice.org/sites/repo.manjaro.org/repos/$branch/$repo/$arch
Server = http://mirror.catn.com/pub/manjaro/$branch/$repo/$arch
Server = http://manjaro.mirrors.uk2.net/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[United_States]
Server = http://mirror.dacentec.com/manjaro/$branch/$repo/$arch
Server = http://mirror.jmu.edu/manjaro/$branch/$repo/$arch
Server = http://mirror.solarvps.com/manjaro/$branch/$repo/$arch
Server = http://mirror.nexcess.net/manjaro/$branch/$repo/$arch
Server = http://distro.ibiblio.org/manjaro/$branch/$repo/$arch
Server = http://mirror.clarkson.edu/manjaro/$branch/$repo/$arch
Server = http://mirrors.ocf.berkeley.edu/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Vietnam]
Server = http://mirror.freedif.org/Manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Africa]
Server = http://manjaro.mirror.ac.za/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Bangladesh]
Server = http://mirrors.ispros.com.bd/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Brasil]
Server = http://manjaro.fis.unb.br/$branch/$repo/$arch
Server = http://www.las.ic.unicamp.br/pub/manjarolinux/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[France]
Server = http://mirror.finn.lu/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Germany]
Server = http://mirror.intercolo.net/manjaro/$branch/$repo/$arch
Server = http://ftp.rz.tu-bs.de/pub/mirror/manjaro.org/repos/$branch/$repo/$arch
Server = http://mirror3.layerjet.com/manjaro/$branch/$repo/$arch
Server = http://h1860261.stratoserver.net/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Indonesia]
Server = http://jaran.undip.ac.id/index.php/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Philippines]
Server = http://mirror.pregi.net/pub/Linux/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Romania]
Server = http://mirrors.xservers.ro/manjaro/$branch/$repo/$arch
Server = http://manjaro.mirrors.linux.ro/repos/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[Taiwan]
Server = http://ftp.yzu.edu.tw/Linux/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[United_Kingdom]
Server = http://sorch.uk/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[United_States]
Server = http://lug.mtu.edu/manjaro/$branch/$repo/$arch
Server = http://www.gtlib.gatech.edu/pub/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[China]
Server = http://mirror.bjtu.edu.cn/manjaro/$branch/$repo/$arch
##
## Pacman Mirrorlist
##
[South_Korea]
Server = http://mirror.premi.st/manjaro/$branch/$repo/$arch
# Makefile for Sphinx documentation
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build
# User-friendly check for sphinx-build
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
endif
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
PAPEROPT_letter = -D latex_paper_size=letter
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
help:
@echo "Please use \`make <target>' where <target> is one of"
@echo " html to make standalone HTML files"
@echo " dirhtml to make HTML files named index.html in directories"
@echo " singlehtml to make a single large HTML file"
@echo " pickle to make pickle files"
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
@echo " info to make Texinfo files and run them through makeinfo"
@echo " gettext to make PO message catalogs"
@echo " changes to make an overview of all changed/added/deprecated items"
@echo " xml to make Docutils-native XML files"
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
clean:
rm -rf $(BUILDDIR)/*
html:
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
dirhtml:
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
@echo
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
singlehtml:
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
@echo
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
pickle:
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
@echo
@echo "Build finished; now you can process the pickle files."
json:
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
@echo
@echo "Build finished; now you can process the JSON files."
htmlhelp:
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
@echo
@echo "Build finished; now you can run HTML Help Workshop with the" \
".hhp project file in $(BUILDDIR)/htmlhelp."
qthelp:
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
@echo
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/pacman-mirrors.qhcp"
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/pacman-mirrors.qhc"
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@echo "Build finished."
@echo "To view the help file:"
@echo "# mkdir -p $$HOME/.local/share/devhelp/pacman-mirrors"
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/pacman-mirrors"
@echo "# devhelp"
epub:
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
@echo
@echo