No edit summary |
|||
(10 intermediate revisions by the same user not shown) | |||
Line 6: | Line 6: | ||
# A desktop command (CLI) to build a file with all package DB information, package installed and versions. | # A desktop command (CLI) to build a file with all package DB information, package installed and versions. | ||
# A web app (python based, maybe | # 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 == | == Use cases == | ||
Line 12: | Line 12: | ||
# 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 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 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 | # 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. | All cases are frecuent on many Fedora users living on LATAM or Asia. | ||
Line 20: | Line 20: | ||
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. | 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 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). | A web app must create a jail or a LXC container when yum/[[Changes/ReplaceYumWithDNF|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). | The web app must have error control, pause and start actions from the download process, bandwith control (limits). | ||
Line 30: | Line 30: | ||
For the moment we have a pair of empty github repos: | For the moment we have a pair of empty github repos: | ||
https://github.com/Richzendy/fopm-web | * https://github.com/Richzendy/fopm-web | ||
https://github.com/Richzendy/fopm-cli | * https://github.com/Richzendy/fopm-cli | ||
If you are interested, please email me to | 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 = | = Software on target = | ||
* http://www.fullstackpython.com/flask.html - a python web framework | |||
* http://stuk.github.io/jszip/ | * http://stuk.github.io/jszip/ | ||
* http://gildas-lormeau.github.io/zip.js/ | * http://gildas-lormeau.github.io/zip.js/ | ||
* python3-dnf |
Latest revision as of 12:55, 21 July 2016
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