Changes between Version 2 and Version 3 of Obsolete/MovedToTree/PackageManagement/OldIdeas


Ignore:
Timestamp:
Aug 4, 2009, 7:33:22 PM (15 years ago)
Author:
brecht
Comment:

intermediate save

Legend:

Unmodified
Added
Removed
Modified
  • Obsolete/MovedToTree/PackageManagement/OldIdeas

    v2 v3  
     1[[PageOutline(2-3, Contents)]]
    12= Package Management Ideas =
    2 This page is a place to hash out ideas regarding Haiku's package management (and creation).
     3This page is a place to hash out ideas regarding Haiku's package management (and creation). The following is a draft specification for the package management system to be included in R1. It is based on (1), (2) and the discussion in (5).
    34
    4 == libalpm ==
     5== Requirements ==
     6
     7This section describes the intended user experience.
     8
     9=== Bundles ===
     10
     11There 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
     13Optionally, 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
     15When 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;"
     19Large 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
     28A 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
     30Application 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
     34The 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
     38All '''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
     42In this section the implementation of the system is discussed.
     43
     44=== Bundles ===
     45
     46On 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 ===
    573(and it's tool: pacman)
    674
     
    43111http://stud4.tuwien.ac.at/~e0725517/using-pacman-on-haiku.log.txt
    44112
    45 === Pros ===
     113==== Pros ====
    46114 * It has been used on archlinux for a long time - so it works.
    47115 * It's obviously possibly to compile and use it on haiku
     
    49117 * pacman also provides scripts for building packages using a PKGBUILD script.
    50118
    51 === Cons ===
     119==== Cons ====
    52120 * Your turn :P
    53121 * (It's not BePorter, but hey, it might be possible to use them together: BePorter to create packages and bundles, and libalpm for managing the installed packages.)
     122
     123== References ==
     124
     125(1) http://www.haiku-os.org/glass_elevator/rfc/installer
     126
     127(2) http://www.freelists.org/post/haiku-development/software-management-proposal
     128
     129(3) http://www.freelists.org/post/haiku-development/software-organizationinstallation,55
     130
     131(4) http://www.freelists.org/post/haiku-development/Pathrelocatable-software-and-assigns
     132
     133(5) http://www.freelists.org/post/haiku-development/software-organizationinstallation