Feature changed by: John Thomas
Feature #305582, revision 10
Title: Off-Line one click install (MSI for Linux)
openSUSE-11.2: New
Priority
Requester: Important
Requested by: Raúl García
Partner organization: openSUSE.org
Description:
Idea from community member Raúl García.
Same concept as MSI packages for Windows but exploiting the One Click
Install concept of openSUSE (and therefore inheriting the simplicity,
code and security.
Basically a compressed file which includes a repository inside, plus
one click install information, and a script to trigger the
oneclickinstall handler with the data as payload in the script.
Therefore is a collection of rpms that can be installed
detailed description is here http://en.opensuse.org/OSI
There is already a prototype working. Example script:
http://dl.getdropbox.com/u/363315/MozillaFirefox.osi
This requires some extra features in one click install and other pieces
* ability to force OneClick to add the repo (the one inside the
compressed file)
Additionally I see other features:
* ability to suggest an update repo for the installed bundle
* support from build service to generate bundles
* easy way to generate them locally
Out of scope but interesting:
* Ablity to trigger a YaST workflow (its own control.xml?)
Business case (Partner benefit):
openSUSE.org: This solves the business case of distributing service
packs, applications, codecs bundles by just downloading a big file,
100% offline, supporting dependencies and repo signatures.
Discussion:
#1: Benjamin Weber (2008-12-17 18:38:57)
Sounds good. I suggest not using a shell script to start the process as
this could contain anything. Executing arbitrary untrusted code is not
really a good idea. An archive containing metadata coupled with a
handler that understands the format should be sufficient.
#2: Stanislav Visnovsky (2008-12-17 20:31:15)
Do you mean an ISO image containing an add-on product with privilege
separation?
#3: Raúl García (2008-12-18 13:01:10)
The shell script will be executed by the user, with user privileges.
Once the file is decompressed, the "One Click Install" is launched and
it's works normally but with a local repository.
Yes, the shell script could be altered, but any shell script could be
altered :)
#5: Benjamin Weber (2008-12-18 14:03:40) (reply to
#3)
"The shell script will be executed by the user, with user privileges... Yes,
the shell script could be altered, but any shell script could be
altered :)"
The point is not that the script could have been altered, but that the
user has not chosen to trust the vendor at the time of executing the
shell script, so should not be executing arbitrary code from that
vendor. Furthermore, when the script is executed there is not even any
way of knowing that the script is really from the vendor the user
thinks it is from, or has not been modified in transit.
It is safer to have just metadata in the archive, which is read by a
handler and any scripts are executed only once the user has chosen to
trust the vendor.
#4: Marcus Meissner (2008-12-18 13:07:13)
Security comments.
- There should be a signature / key already in tarball that validies
all other data - and why not a repomd tree, with everything reviewable
from repodata/repomd.xml
- what advantage brings this compared to just a tar-ed up RPM-MD tree
in usual format and signature checked?
(and btw, the example script on the page has /tmp problem en-masse)
#6: Pavol Rusnak (2008-12-18 14:08:50)
I'm against executing any shell scripts. I think Marcus has the point
and it was exactly my thought.
OSI file should contain:
* tared (and compressed - probably lzma) repomd repository
* signature
* list of packages that are required/recommended/suggested to install
from this repo
We could reuse YMP-handler, which will only add compressed repository
to system, do the workflow and remove it right after installation.
+ #7: John Thomas (2008-12-18 17:47:09)
+ How would it handle the remove of the same software a user have just
+ installed using this process???
+ will it be as simple as installing???
--
openSUSE Feature:
https://features.opensuse.org/?rm=feature_show&id=305582