Version 32 (modified by 12 years ago) ( diff ) | ,
---|
These are the TODO items for the Haiku Package Management.
packagefs
- If necessary, add a caching mechanism to speed up mounting it.
- Use a global string hash table to avoid allocating duplicate strings. Will reduce the memory footprint and speed up some code paths.
Package Daemon
- Add user notification/interaction support for initial verification (on start-up) and manual package de-/installation.
- Support packages being copied to the
packages
directory. Currently only moving works.
Build system
- Before creating packages (e.g. the user guide), all files must be identified, since packagefs is read-only.
- Add hybrid support.
Package building
- Define packaging guidelines and create a tool to check packages against those.
- Adjust build "recipes" for HaikuPorts packages as needed and build the packages.
- Status: There's a package management branch of haikuports with recipes for several packages already updated for building HPKGs. Here's an overview.
Package kit/manager
- Add distribution update support.
- Implement a GUI package manager.
Boot loader
- Currently the stage 1 boot loader requires the stage 2 boot loader to be in the file
system/haiku_loader
on the BFS boot volume. Since the stage 2 boot loader itself should also be subject to package management, that means currently the package manager has to extract it from the system package. It would be nicer, if the stage 1 boot loader could load the stage 2 boot loader directly from the system package. Since the space for the stage 1 boot loader is too limited to deal with the HPKG format (< 1 KB in total), the format would probably have to be extended to provide an easily accessible bootstrap code. Alternatively additional space for the stage 1 boot loader would have to be found/made in the BFS on-disk format. - Safe mode/recovery options:
- Disable home and common.
- Boot into old system state.
Package/package repository format
- Add a package attribute (string) that specifies a base package of a package. For most ported software, the files resulting from a built are usually separated into different packages (base, develop, debug-info, doc, etc.). All of these packages should be installed in the same installation location, since they have been built with the same installation prefix. In order to enforce such a constraint, one of the packages should be declared in the "requires" list of the others and they should additionally use the new attribute to identify it as the base package.
- Remove B_HPKG_ATTRIBUTE_ID_PACKAGE_PROVIDES_TYPE ("package:provides.type"). The type is encoded in the name anyway.
- Add support for repository keys (public/private) and package signing/check sums, so that it is possible to verify that data retrieved from a repository have not been tempered with.
- Support compression for the whole heap instead of just for individual file data. This should improve compression rates especially for packages containing many small files with only a small drawback regarding removing/replacing files in packages (potentially the whole heap would have to be recompressed).
Miscellaneous
- Modify Expander to use a directory instead of the
expander.rules
file. This way a package (like xz-utils or p7zip) can contribute a single file with the rules for its tools. Ticket: #8494 - Add MIME directory watching to registrar, so it can update the MIME DB caches when packages are de-/activated.
- Get rid of post_install scripts. Do that in the build system.
- Get rid of UserBootscript. Start the scripts in "~/config/settings/boot/launch" from Bootscript instead.
- Update Installer.
Note:
See TracWiki
for help on using the wiki.