haiku/docs/develop/packages
Alexander G. M. Smith 3376ed1a72 Package Kit: Proper Installation for First Boot Packages
Do the final installation operations for all the packages in the
/system/packages directory when the OS is booted for the first time.

This will run their post-install scripts, create users, groups and generate
settings files (marked with a package version attribute).  Previously we just
ran all the shell scripts found in the /system/boot/post-install directory
(don't do that as much now).

Fixes bug #14382

This patch has simpler code flow in CommitTransactionHandler::_ApplyChanges
Tested on 32 and 64 bit systems.  Once it's official, need to remove the
open_ssh redundant post-install script that creates users etc. from HaikuPorts.
Now we can notice bugs like package version attributes on settings files aren't
fully working. :-)

Didn't remove special case for add_catalog_entry_attributes.sh since it
still does stuff that the build system doesn't do.  Might be able to add
that script as part of the Haiku.hpkg.  See change 3751 for removing it,
https://review.haiku-os.org/c/haiku/+/3751

Change-Id: I3807b78042fdb70e5a79eca2e2a45816ece0236f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/2342
Reviewed-by: Alexander G. M. Smith <agmsmith@ncf.ca>
Reviewed-by: Niels Sascha Reedijk <niels.reedijk@gmail.com>
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
2021-03-14 09:10:18 +00:00
..
Bootstrapping.rst docs/develop/packages: convert wiki to rst 2018-03-03 20:22:46 +00:00
BuildingPackages.rst Package Kit: Proper Installation for First Boot Packages 2021-03-14 09:10:18 +00:00
DirectoryStructure.rst docs/develop/packages: convert wiki to rst 2018-03-03 20:22:46 +00:00
FileFormat.rst package kit: Add pre-uninstall scripts feature. 2020-09-21 10:47:57 +00:00
HybridBuilds.rst docs/develop/packages: convert wiki to rst 2018-03-03 20:22:46 +00:00
Infrastructure.rst docs/develop/packages: convert wiki to rst 2018-03-03 20:22:46 +00:00
Migration.rst docs/develop/packages: convert wiki to rst 2018-03-03 20:22:46 +00:00
OldIdeas.rst docs/develop/packages: convert wiki to rst 2018-03-03 20:22:46 +00:00
package-management-infrastructure.png docs/develop: Migrate Package Management docs from Trac. 2018-01-10 16:19:41 -05:00
PackagingPolicy.rst package kit: Add pre-uninstall scripts feature. 2020-09-21 10:47:57 +00:00
README.rst docs/develop/packages: convert wiki to rst 2018-03-03 20:22:46 +00:00
TODO.rst docs/develop/packages/TODO: add missing part 2018-08-06 23:40:47 +00:00

==================
Package Management
==================
This is a short index of the available package management related documentation.

- `Package Management Infrastructure`_ provides an overview of what components
  belong to Haiku's package management infrastructure and how they work and
  interact.

  .. _Package Management Infrastructure: Infrastructure.rst

- `Building Packages`_ gives information on various aspects of the package
  building process.

  .. _Building Packages: BuildingPackages.rst

- `Boot Volume Directory Structure`_ outlines the directory structure of a
  package management powered Haiku boot volume.

  .. _Boot Volume Directory Structure: DirectoryStructure.rst

- `Haiku Package File Format`_ specifies in detail the file format of Haiku
  package files (HPKG) and Haiku package repository files (HPKR).

  .. _Haiku Package File Format: FileFormat.rst

- `Packaging Policy`_ defines the policy for creating Haiku packages.

  .. _Packaging Policy: PackagingPolicy.rst

- `Packages Status`_ gives an overview of the packages needed for a Haiku
  standard build and their current status.

  .. _Packages Status: PackagesStatus.rst

- `Hybrid Builds`_ provides some information regarding hybrid builds.

  .. _Hybrid Builds: HybridBuilds.rst

- HaikuDepot_ explains the concept and ideas behind HaikuDepot, the GUI package
  manager in the making.

  .. _HaikuDepot: HaikuDepot.rst

- Migration_ lists the changes that users should expect when migrating to a
  package management Haiku.

  .. _Migration: Migration.rst

- `Bootstrapping Haiku`_ explains the process of bootstrapping Haiku and third-party packages.

  .. _Bootstrapping Haiku: Bootstrapping.rst

- TODO_ is a list of package management related work still to be done.

  .. _TODO: TODO.rst

- `Blog posts`_ on package management (the Batisseur ones are only indirectly
  package management related).

  .. _Blog posts: https://www.haiku-os.org/tags/package-management/

- `(Old) Package Management Ideas`_ is a collection of thoughts and discussions
  regarding package management. It has been partially obsoleted by the progress
  on the package management implementation.

  .. _(Old) Package Management Ideas: OldIdeas.rst

- http://www.youtube.com/watch?v=rNZQQM5zU-Q&list=PL3FFCD4C6D384A302 is a video
  playlist of Ingo and Oliver explaining and demonstrating the package
  management branch at BeGeistert 2011.

Below are links to source code related to Haiku's package management.

- Package management has been merged into "master", so see the Haiku_ and
  Buildtools_ repositories for that

  .. _Haiku: http://cgit.haiku-os.org/haiku/
  .. _Buildtools: http://cgit.haiku-os.org/buildtools/

- HaikuPorts_ contains the build recipes of various ports.

  .. _HaikuPorts: https://github.com/haikuports/haikuports

- haikuports.cross_ contains the minimal set of build recipes to bootstrap a new
  Haiku architecture.

  .. _haikuports.cross: https://github.com/haikuports/haikuports.cross

- haikuporter_ is the tool to create binary packages from build recipes.

  .. _haikuporter: https://github.com/haikuports/haikuporter