haiku/headers/os/package
Ingo Weinhold 1f633814fa hpkg format: compress the whole heap
Instead of handling compression for individual file/attribute data we
do now compress the whole heap where they are stored. This
significantly improves compression ratios. We still divide the
uncompressed data into 64 KiB chunks and use a chunk offset array for
the compressed chunks to allow for quick random access without too much
overhead. The tradeoff is a limited possible compression ratio -- i.e.
we won't be as good as tar.gz (though surprisingly with my test
archives we did better than zip).

The other package file sections (package attributes and TOC) are no
longer compressed individually. Their uncompressed data are simply
pushed onto the heap where the usual compression strategy applies. To
simplify things the repository format has been changed in the same
manner although it doesn't otherwise use the heap, since it only stores
meta data.

Due to the data compression having been exposed in public and private
API, this change touches a lot of package kit using code, including
packagefs and the boot loader packagefs support. The latter two haven't
been tested yet. Moreover packagefs needs a new kind of cache so we
avoid re-reading the same heap chunk for two different data items it
contains.
2013-05-25 01:12:25 +02:00
..
hpkg hpkg format: compress the whole heap 2013-05-25 01:12:25 +02:00
solver BSolver/LibsolvSolver: Add Update() 2013-04-21 13:55:38 +02:00
AddRepositoryRequest.h Mostly style-related changes to package kit: 2011-01-25 17:07:27 +00:00
Attributes.h More work on package kit: 2011-01-27 23:17:03 +00:00
Context.h Mostly style-related changes to package kit: 2011-01-25 17:07:27 +00:00
DownloadFileRequest.h Add DownloadFileRequest 2013-04-20 21:40:11 +02:00
DropRepositoryRequest.h more work on package kit: 2011-01-25 19:36:09 +00:00
InstallationLocationInfo.h Add BInstallationLocationInfo 2013-04-14 17:06:26 +02:00
Job.h Mostly style-related changes to package kit: 2011-01-25 17:07:27 +00:00
PackageArchitecture.h * fix value of all enumeration types that are stored as part of a 2011-02-15 18:33:19 +00:00
PackageDefs.h Add BPackageRoster::GetActivePackages() 2011-07-17 16:55:22 +02:00
PackageFlags.h * implemented checking of licenses, such that it is no longer possible 2011-02-08 19:50:36 +00:00
PackageInfo.h Add "base package" package attribute 2013-05-25 01:12:24 +02:00
PackageInfoAttributes.h Add "base package" package attribute 2013-05-25 01:12:24 +02:00
PackageInfoContentHandler.h Add class BPackageInfoContentHandler 2011-07-17 16:55:21 +02:00
PackageInfoSet.h BPackageInfoSet::Iterator: Fix NULL pointer dereference 2013-04-14 17:06:25 +02:00
PackageResolvable.h Remove resolvable provides type 2013-05-25 01:12:24 +02:00
PackageResolvableExpression.h Implemented repository writing: 2011-02-09 19:11:23 +00:00
PackageResolvableOperator.h * fix value of all enumeration types that are stored as part of a 2011-02-15 18:33:19 +00:00
PackageRoster.h Implement getting a BInstallationLocationInfo 2013-04-14 17:06:26 +02:00
PackageVersion.h BPackageVersion: Rename property release to revision 2013-04-16 00:05:19 +02:00
RefreshRepositoryRequest.h Mostly style-related changes to package kit: 2011-01-25 17:07:27 +00:00
RepositoryCache.h Pull class BPackageInfoSet out of BRepositoryCache 2011-07-17 16:55:21 +02:00
RepositoryConfig.h more work on package kit: 2011-01-25 19:36:09 +00:00
RepositoryInfo.h Use BStringList in package kit 2011-07-17 16:55:20 +02:00
Request.h BRequest: Change attribute protection from private to protected 2013-04-20 21:40:09 +02:00