# fetchmirrorsgui

This software is for Arch Linux only and for derivatives of Arch if they are backward compatible and only fetch their software from Vanilla Arch repos.

### What Does it Do?

Well on Arch Linux there is a file at /etc/pacman.d/mirrorlist, this file  contains a list of mirrors where the system can retrieve software, for instance when you run:
 `sudo pacman -Syu`

Now seasoned users are ok at the command line; surprisingly some people seem to be able to install Arch but still prefer a visual GUI. I guess the quota of GUI lovers will increase as Arch gets easier to install using the likes of calam-arch-installer archfi and others.

There are packages in the aur which also populate the mirrorlist but use reflector to work.

What I have attempted to do is create a  self contained elf executable binary, which does not need reflector 
and also should have all libraries needed for it to run, so you don't need to download anything else. Also you work via a simple graphic user interface (gui)
The program works from mirrors listed live by archlinux.org.

The elf binary called  fetchmirrorsgui   can be put at /usr/bin or usr/local/bin 

Actually the PKGBUILD is now available at the Arch Linux AUR :

https://aur.archlinux.org/packages/fetchmirrorsgui

Once installed the program can be evoked from a command line using:


`sudo fetchmirrorsgui` 

### which file is which 

So fetchMirrorsGui.py is the python script and fetchmirrorsgui is the elf executable binary which should have 
required libraries embedded meaning it should be stand-alone.


### what are the selections available and what do they do

if you select radio button 1 and hit the process button then the whole 
list of mirrors for every Country is written to /etc/pacman.d/mirrorlist

No mirror is enabled though, so you need to then use something like nano
and remove one or more of the # in the list to enable a mirror. 


If you select radio button 2, them it does the same thing as one, excpet that 
all mirrors are enabled. In this case when attempting to download software 
using pacman, your system will run through the list until it finds one that works. 

The last option is more selective and gives you the chance to pick a selection of mirrors appropriate to where you are. 
You can do t hat by picking your Country from the drop down list.

When you hit the process button each mirror for the Country you have selected will be tested for response time.
 Then program then sorts out the list by writing fastest mirrors first  to /etc/pacman.d/mirrorlist

This means that you are picking mirrors which are likely to be most efficient
by your choice from the Country list. Then the program will sort for you the fastest by response. 
That means you should have the best mirror for your purposes.

A quick note on the program and the work it has to do; going through each mirror and testing each 
one can take a minute or two  and it makes the program look like its frozen it hasn’t, its just busy.

Hint : try worldwide from option three first , it only has 2 lines of mirrors

When the program has finished "done" will be written to the gui for option 1 & 2 and  'written to /etc/pacman.d/mirrorlist' for option 3

I haven't managed to add any 'progress ' update yet 


### which files do you need ?

Really only the executable elf file called fetchMirrorsGui; the py file is if your interested in coding. 
![](fetchMirrorsGui.png)
