repoadder

Summary

Although Ubuntu certainly has a good, rich repository full of software, from time to time, one will need to install from third-party sources, due to licensing issues, non-freeness, or the lack of that software or a new enough version in Ubuntu's official repositories. For that reason, to do so, the user will need to add that third-party repository, and then install whatever packages he needs from them. This aims to make the process of finding, adding, and installing software from third-party repositories as easy as possible by using a .aptr (apt repository) file with the repository line and the gpg key to sign it, which the user clicks and a repository adder application is launched that adds, authenticates, and reloads the repository, then displays the new software available for installation from that repository in Synaptic or Adept.

Rationale

Currently, there are 2 ways to add a repository and install the third-party software it contains, with either the terminal or in synaptic, and while neither approach is terribly confusing for experienced users, it could be made much simpler for inexperienced users who don't want to do too many unnecessary clicks, and are intimidated by long, terminal commands.

Use Cases

Joe Doe wants to install binary windows codecs and Google Earth, which aren't in the ubuntu repos, using the medibuntu repository.

Using Synaptic, this would involve downloading the GPG key, adding it with Synaptic's key adder, adding the repository lines to the third party repositories list, reloading the package lists, finding the google earth and windows binary codecs packages, and installing them.

Alternatively, using the terminal, the following lines would have to be typed in, which, while not confusing at all to experienced users, would scare the living heck out of a new Windows refugee who hasn't touched a terminal in his life, and is used to setup.exe files:

sudo su -c 'echo deb http://packages.medibuntu.org/ feisty free non-free >> /etc/apt/sources.list' wget -q http://packages.medibuntu.org/medibuntu-key.gpg -O- | sudo apt-key add - && sudo apt-get update

Then, unless he knows specifically that the windows binary codecs are called w32codecs, and Google Earth is called googleearth, he'd have to do apt-cache to search for them, and apt-get install them.

As you can see, this task of adding third-party repositories is rather user-unfriendly, and takes an unnecessary amount of work to do.

However, Medibuntu then decides to just post a simple .aptr file, which Joe Doe clicks on with Firefox, which prompts him to open it with the repoadder application, and it asks him for his password, and he waits a few minutes as the repos are reloaded, and Synaptic then pops open displaying a list of new applications in the repository, from which he selects Google Earth and the w32codecs to install.

Design

On the site, the repository maintainer would upload, say, a medibuntu.aptr (apt repository) file. This would use a simple XML notation to indicate the GPG key and the repository, something like this for medibuntu:

<repo> deb http://packages.medibuntu.org/ feisty free non-free </repo> <gpg>


BEGIN PGP PUBLIC KEY BLOCK


Version: GnuPG v1.4.6 (GNU/Linux)

mQGiBEVmMkERBACje575/Xw5hwzqCcdaf4LgQdPLpTbZLNaVdcGd+D0nskBlQ8VA tuJngq184aeFjD/XmlosfvidFgSc6w4/LRP/XUtyYcWIUk65tStPK0fggdDIVjC/ SsOY5V+a02+ypSZjxPOQSqG4Lxhs240S6O6tS3CKr/08s6lgD0UEa2Ay6wCgnyEF zOBXTCwSDXtPUFYXS6pCUDED/3wED5EksgizUCLmz5MNSsKTFUZyxkA65vIs2IoP RtiWG28TWiOU3N5hrVxQI531sTTOZE97KhHAfSfQajRlQ/1O69RNvRR4pNd3/WKD OEMlmP6Ow0DV0CPCfOeKiIKvdCY4+278b7LcLXNIwQlG3bBzV/9i5hGTo8nZf8qj pSxkA/0UIrBUWKhTpx3/VNq9oSFpXBbiB5/6CDGIl0pSptAuKE3I1Xii0dOXyuvS uqtmWgDBz/12MEqzBt+V+FGvv+oCvO7M2f3nsnFrdbn66Gnsto3xs+6X+9M+vOXz GH5l7Mbo+M4z84lAZdcKeHC1Mm7b52K5Vj15/CUXr/wFuwVSubQqVGhlIE1lZGli dW50dSBUZWFtIDxtZWRpYnVudHVAc29zLXN0cy5jb20+iGAEExECACAFAkVmMkEC GwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIXgAAKCRAuvCa2DFongyA5AJ4mvwewcofo IhNac2AlnYXx1H+XkwCcDPw7UrWC3D1A9f3cTk2RjXq0cGO0NE1lZGlidW50dSBQ YWNrYWdpbmcgVGVhbSA8YWRtaW5AbGlzdHMubWVkaWJ1bnR1Lm9yZz6IYwQTEQIA IwIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheABQJGatyaAhkBAAoJEC68JrYMWieD Y9IAn0PXSm7Lgvg/++gAW5eUv0ToBdxxAKCX0pnlHR/7PwxVoh0ueIE98YHENLkC DQRFZjJfEAgA1iWJ0rqXioomH+GllyzQFDek396dsKxQYi08X+/sYY4ZJ1KE0PEH 8JwZi+dKM0ZpA+/7sXetVYlq8rqRyu/yf4DZdWCMjsB5krXGOgCv51prb8Qo+vMG SWQ+oHleblS5zkAuAUY487bljSvcdrtg5ITX3UGFgZnMLDO4cfmz8KHwpRlmxKy9 tcGqnuK7f9i/A4VYGRJco/XL0vqyzhJpBiT0jYIjkz2JwExnw6K7hyvyShK7vOsA z5g8IKLibVpJFyO4gRkcjz9B+DNJxeysy7TVR5yDZIP8VcPe7hdJmdltBnC2Q9Db sUmI8oVWooZZQPTAX+/XyrXMSj0HEzAIRwADBQf/cfDOSifYN7ZYqk5ZLnFN/AZc 72eVjJD0xA7fKrkZ6glXNqXfjr7MxfmqEymsfNr09RANtSGdBLeAFxeE1Sldsq6p E58HxWp82RI8XgeCjzVlDOVzT63ck+U2Dh0M7SvIiOP0OUTxgxpujeRLInnFLd9m NwfFufMlC3NI/VomN8NdIqU7LDuM9xApQ+nTnCOMy8pwqr8mIfc5UUKWAxxguvFn qY9AiQpGNHhpUebzRehxbEOBL7NEDF94SXI+NGOxz66Uq52UOZES3bBEoLv2s2hq 36boErWbmOmTd1OtxwwjMbqBRCVdIc9QoeNZyZ465e00wx2FZb94LmBCLyxqkYhJ BBgRAgAJBQJFZjJfAhsMAAoJEC68JrYMWieDhlsAoIFA0h9GaVOgVLQFFw1c4K1W RGgpAJ43cEsGcAqOxNYcJmo1QWX7jG6EMQ== =a7Z5


END PGP PUBLIC KEY BLOCK


</gpg>

Now, for the user, all he would have to do is click on this medibuntu.aptr file, then it'll open the repository adder program, which will use gksudo or kdesu to prompt for the user's password, with the usual warning about the dangers of third-party repos, will add the key and repository, reload the package list, and open Synaptic (or Adept) displaying the new packages that were found in the repository, so that the user can just click and select googleearth and w32codecs to be installed, click apply, and they're done. Just a few clicks, and the repository is added and authenticated, and the new software is ready to be installed, and since the repository has been added, apt will now handle all future updates of the third-party programs.

Possible Extensions

Once the .aptr files start taking off and become widely adopted, a big pool of .aptr files and descriptions the software in the repositories they provide could be gathered on a big main site with some name like ubuntu-unofficial.org with a list of third-party repositories (that are, of course, checked by some team to make sure there's no malware and that they work), with some name like ubuntu-unoffical.org; something like http://apt-get.org/ only a lot more user-friendly.

Implementation

The application handling the adding of the repository should be called "repoadder". It will be written in python-gtk. The .aptr file extension will be associated with the command "repoadder", so that when it is opened with Konqueror, Firefox, or Nautilus, the user will be able to add the repository in a user-friendly, graphical manner.

Comments

repoadder (last edited 2008-08-06 16:37:05 by localhost)