4 | | == libalpm == |
| 5 | == Requirements == |
| 6 | |
| 7 | This section describes the intended user experience. |
| 8 | |
| 9 | === Bundles === |
| 10 | |
| 11 | There seems to be a general preference for a [http://en.wikipedia.org/wiki/Application_Bundle bundles-based] approach. Such a bundle is a single file that contains the application. This makes self-contained and easy to handle. The application can be run by double-clicking the bundle icon. Obvious exceptions to this rule are drivers and libraries. These have to be installed to be of any use. The contents of a bundle can be inspected by opening the bundle by means of a context-menu option. |
| 12 | |
| 13 | Optionally, a bundle can be '''installed''' by moving it to {{{/boot/apps}}} (system-wide) or in {{{/boot/home/<user>/apps}}} (user-local). Another option is to right-click the icon and select "install for everyone" (only admins) or "install only for me". Any initial configuration (accepting a license) can be performed the first time a bundle is being run. |
| 14 | |
| 15 | When a bundle has been installed, shortcuts to the application appear in the Deskbar menu. Applications in the Deskbar menu are subdivided into a number of a predefined categories (games, graphics, internet, ...). |
| 16 | |
| 17 | {{{ |
| 18 | #!div style="background-color: #EEEEEE; border: 1px solid; margin: 20pt; padding: 5pt;" |
| 19 | Large games might prove to be problematic with the don't-have-to-install policy. The bundles should at least be copied to a hard drive in order to run smooth. |
| 20 | |
| 21 | '''brecht''': I don't like Waldemar's idea of having bundles spread all around the filesystem, hence the clear distinction between installed and non-installed bundles. This might be a necessity for multi-user too. |
| 22 | }}} |
| 23 | |
| 24 | === Management === |
| 25 | |
| 26 | '''Uninstallation''' is performed by simply removing the bundle. |
| 27 | |
| 28 | A user's application '''settings''' are kept when a bundle is uninstalled or deleted. The system however provides a comprehensive listing of applications for which user settings exist. The user can choose to delete settings for each of the bundles. |
| 29 | |
| 30 | Application folders ({{{/boot/apps}}} and {{{/boot/home/<user>/apps}}}) display the list of installed bundles including information (description, availability of updates, security risk warning), just like the mail folder in BeOS displays mails. |
| 31 | |
| 32 | === Dependencies === |
| 33 | |
| 34 | The user does not have to worry about dependencies. If a bundle depends on other bundles, the system should make sure they are fulfilled (on run). If a dependency is not fulfilled, the system will ask the user for confirmation and automatically install any required bundles. |
| 35 | |
| 36 | === Updates === |
| 37 | |
| 38 | All '''installed''' software can be checked for new versions. For each of the installed applications, the changes with respect to the installed version can be displayed. Updates can be flagged as 'strongly recommended' when security problems are known. The user can select which applications he/she would like to update and have the system perform the updates. |
| 39 | |
| 40 | == Implementation == |
| 41 | |
| 42 | In this section the implementation of the system is discussed. |
| 43 | |
| 44 | === Bundles === |
| 45 | |
| 46 | On Haiku, a bundle will be a plain zip archive that contains: |
| 47 | * application executable & data |
| 48 | * metadata |
| 49 | * name |
| 50 | * version |
| 51 | * (revision?) |
| 52 | * (hash?) |
| 53 | * author |
| 54 | * homepage |
| 55 | * license |
| 56 | * category (for grouping applications in the Deskbar menu) |
| 57 | * shortcuts to appear in the Deskbar menu |
| 58 | * a default shortcut to run when the bundle is being "run" |
| 59 | * right-clicking bundle could offer the option of opening a help document about the application |
| 60 | |
| 61 | === Dependency Handling === |
| 62 | |
| 63 | * dependencies |
| 64 | * minimum/maximum version |
| 65 | * preferred version/revision |
| 66 | * build options (USE flags) |
| 67 | * online feedback by users |
| 68 | * recipe? |
| 69 | o no shell commands (security) |
| 70 | |
| 71 | |
| 72 | === libalpm === |