Description
Fedora Offline Package Manager is a solution to permit to Fedora users without Internet, very slow conections or limited Internet plans install new packages and their dependences or update the whole Fedora system.
Fedora Offline Package Manager (opm) have two apps:
- A desktop command (CLI) to build a file with all package DB information, package installed and versions.
- A web app (python based, maybe flask) when a user put a file with all information about the Fedora system and the web app provide via the yum funcionality, the user would search packages, select packages to install, select update the system and the result can be a file (.opm) a zip with metadata from all actions previously select by the user, all packages (rpm and delta rpm's) needed by the user to install under his Fedora system.
Use cases
- A Fedora user had a good Internet conection on his job or University or familiar house, but lives at a place with limited Internet conection or a poor bandwith
- A Fedora user has moved to a place does not have internet service
- A Fedora user lives in a rural area, but can perhaps go to a cyber coffee weekly with good bandwidth and download everything he need
All cases are frecuent on many Fedora users living on LATAM or Asia.
Why and how works a Web APP?
Because on mostly cases the user has a good Internet conection on a cyber coffee, University or jobs with Windows Machines (or other OS) or without the access to install software locally, and python was choice because many developer users are python developers and we need all possible help.
A web app must create a jail or a LXC container when yum/dnf can run and solve all dependences from the user actions (install new packages or update), the web app find the url's to download all packages (rpm or delta rpm),and pass the url's to user browser, the app must be rich on javascript and AJAX, all files must be downloaded from the mirrors to a temp folder, when the last package arrive and the integrity can be tested (md5 hash) then the web app must build a .opm file with all files (like a tar file).
The web app must have error control, pause and start actions from the download process, bandwith control (limits).
Project status
This is a conceptual project for the moment, all help and your ideas are welcome.
For the moment we have a pair of empty github repos:
If you are interested, please email me to richzendy at fedoraproject dot org
Brain Storm
Feel free to put your ideas here:
- Download manager in javascript: http://stackoverflow.com/questions/15994554/download-files-like-mega-co-nz
- DNF plugins: http://dnf.baseurl.org/2014/01/14/plugins-are-on/
- Resumable uploads: https://github.com/23/resumable.js/
Software on target
- http://www.fullstackpython.com/flask.html - a python web framework
- http://stuk.github.io/jszip/
- http://gildas-lormeau.github.io/zip.js/
- python3-dnf