Commit Graph

46401 Commits

Author SHA1 Message Date
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
Ingo Weinhold
16e5e5e4ec Some *DataReader improvements
* BFDDataReader: Add SetFD().
* BBufferDataReader: Derive from BAbstractBufferedDataReader.
2013-05-25 01:12:25 +02:00
Ingo Weinhold
21ee6d5cdc Some comment updates 2013-05-25 01:12:25 +02:00
Ingo Weinhold
0ee1651856 Rename BBlockBufferCache and friends to *Pool*
Also move BBlockBufferPoolNoLock into BHPKG namespace with the other
classes. Not sure why it wasn't there before.
2013-05-25 01:12:25 +02:00
Ingo Weinhold
7adfd76b17 Add "base package" package attribute 2013-05-25 01:12:24 +02:00
Ingo Weinhold
df29539688 Remove resolvable provides type
* Remove BPackageResolvableType and respective property from
  BPackageResolvable.
* Remove package attribute B_HPKG_ATTRIBUTE_ID_PACKAGE_PROVIDES_TYPE.
2013-05-25 01:12:24 +02:00
Ingo Weinhold
9172ffdb06 package list/extract: Add support for hpkg format V1 2013-05-25 01:12:24 +02:00
Ingo Weinhold
11cecf980b packagefs: Add support for hpkg format V1
* Add union-like class PackageData which wraps the V1 and V2
  BPackageData classes.
* GlobalFactory: Create a data reader depending on the data format
  version.
* Package: Add a loader for V1 format and try that, if the other one
  fails.
2013-05-25 01:12:24 +02:00
Ingo Weinhold
2c32402da5 package kit: internalize BPackageDataReader
It is no longer public (or even private) API. BPackageDataReaderFactory
returns a BAbstractBufferedDataReader instead. The advantage is that
the latter doesn't have hpkg format specific dependencies.
2013-05-25 01:12:23 +02:00
Ingo Weinhold
175ff8ec77 package kit: Add BAbstractBufferedDataReader
It doesn't do much in terms of buffering, but defines an interface
buffered readers can implement, namely the additional
ReadDataToOutput() which currently BPackageDataReader specifies.
2013-05-25 01:12:23 +02:00
Ingo Weinhold
b5786b0f68 BPackageDataReader: Remove unused Size(), BlockSize() 2013-05-25 01:12:23 +02:00
Ingo Weinhold
dd0b33cb63 BPackageInfo: Support reading both HPKG format versions 2013-05-25 01:12:22 +02:00
Ingo Weinhold
ab5755a84a packagefs: PackageLeafNode: remove superfluous declaration 2013-05-25 01:12:22 +02:00
Ingo Weinhold
fc0cec5396 Bump HPKG format version 2013-05-25 01:12:22 +02:00
Ingo Weinhold
7575abbca2 Clone read support functionality for HPKG format version 1
It uses sub-namespace BPackage::BHPKG::V1. Unlike the one for the
current format version, the V1 version of BPackageInfoContentHandler
lives in BHPKG(::V1) sub-namespace and is private.
2013-05-25 01:12:22 +02:00
Ingo Weinhold
171fd58c4b package kit: some fixes for multi-version support
* Use enums/constants/functions instead of preprocessor macros.
* Missing include in PackageInfoAttributeValue.h.
* PackageReaderImpl::Init(): Check version before header size and
  return B_MISMATCHED_VALUES instead of B_BAD_DATA, if the version
  doesn't match. This allows callers to determine the condition and
  try a reader for a different version. A more flexible interface for
  that case would be nice, but since we want to support the old package
  version only temporarily, the current solution should be good enough.
2013-05-25 01:12:21 +02:00
Ingo Weinhold
7e7232aca8 Update cmake and libsolv packages 2013-05-20 18:21:41 +02:00
Oliver Tappe
f7712caf68 Update package-infos to match current Haiku version
* additionally, unify packager (to "The Haiku build system")
2013-05-20 11:27:42 +02:00
Oliver Tappe
773318958f Add new package haiku_cross_devel.hpkg
* This package is meant for providing haikuporter with a development
  environment for building cross packages.
2013-05-19 23:30:23 +02:00
Oliver Tappe
dff45dfced Updated version of compiler to match BuildtoolsPM 2013-05-19 21:35:39 +02:00
Ingo Weinhold
bfc4df839f Merge remote-tracking branch 'haiku/master' into package-management 2013-05-12 23:30:52 +02:00
Axel Dörfler
c895d331c9 app_server: added an ASSERT to Desktop::_Windows().
* So that something like #9595 should not happen again.
2013-05-12 21:05:05 +02:00
Jérôme Duval
e431f22875 playground: fixes a 64 bit warning. 2013-05-12 18:46:43 +02:00
Jérôme Duval
bb4537c841 JPEGTranslator: fixes a 64 bit warning 2013-05-12 18:45:12 +02:00
Ingo Weinhold
78a1163c7b Terminal: hyper link mode: Try more aggressively to detect a path
Consider ':' a potential path delimiter and try all combinations of
chopped off prefixes and suffixes. This makes detection in the output
of a multi-file grep work even if the found line starts with a path
character or is a path. A path in the typical colon delimited search
paths (e.g. PATH) is detected as well.
2013-05-12 17:18:47 +02:00
Ingo Weinhold
a15966b3b0 Terminal: hyper link mode: handle relative paths better
* We were trying relative paths as is, which means checking them with
  Terminal's current working directory. Now we use the CWD of the active
  process.
* In case the path is relative, add a context menu item "Copy absolute
  path".
2013-05-12 17:18:18 +02:00
Ingo Weinhold
7daf375812 Terminal: HyperLink: Remove base address, add text property
* The base address is no longer used (it was in a an earlier, never
  committed version), so we can as remove it.
* Introduce a text property.
2013-05-12 17:18:18 +02:00
Rene Gollent
3f3ade6223 Fix incorrect return value problem in STEP_OUT.
A similar problem to that described in my previous commit afflicted the
step out case as well. We now store the current IP when issuing a step
out, and use that as the function address once execution returns.
2013-05-11 19:08:09 -04:00
Rene Gollent
d9d42ec6bf Fix case of incorrect return value detection.
When using step over to step out of a function, we need to use the
address range of the step statement to determine the function which
returned said value, not the current IP, as that has already exited the
function and will consequently be that of the caller, leading to such
returns being attributed to the wrong function, and consequently also
the wrong type.
2013-05-11 18:48:29 -04:00
Ingo Weinhold
c663ca2171 Merge branch 'master' into package-management
Conflicts:
	build/jam/HaikuImage
	src/system/kernel/arch/x86/64/arch.S
2013-05-12 00:18:19 +02:00
Ingo Weinhold
3c94ecf6b4 packagefs: Move NodeListener to nodes/ 2013-05-11 23:32:21 +02:00
Ingo Weinhold
d07c930c1e packagefs: Share string instances globally
Introduce a class String which refers to shared private data that is
registered in a global hash table (in class StringPool) and use the
class consequently. This eliminates duplicate allocations for the same
string and also speeds up tests for equality. There's quite a bit
overhead for the management structures (apparently even more than for
the string data itself), but due to almost all strings being used
multiple times this still almost halves the memory usage for string
data.
2013-05-11 23:31:36 +02:00
Ingo Weinhold
1848fdc329 util/khash: Add hash_hash_string_part() 2013-05-11 23:17:55 +02:00
Rene Gollent
88cc420211 Improve basic profiler output a little.
If on gcc4, use the built-in demangling functions to present demangled
names in the output where possible.
2013-05-11 16:46:15 -04:00
Jérôme Duval
c4f684f80f Style fix as suggested by Axel :) 2013-05-11 22:20:57 +02:00
Axel Dörfler
4b723e3fb8 boot loader: Almost removed use of kernel_cpp.h.
* For some reason that is beyond me, fat/CachedBlock.cpp needs this header,
  or else building the boot loader fails.
2013-05-11 19:34:22 +02:00
Ingo Weinhold
1e7416d9b3 packagefs: Organize sources into subdirectories 2013-05-11 15:13:35 +02:00
Jerome Duval
c3e68d8d92 cdda, fat, iso9660: clear tv_nsecs fields in the stat struct
* devfs in fact doesn't provide a zeroed buffer.
2013-05-11 14:58:58 +02:00
Gediminas Jarulaitis
a3fdd62c13 iso9960, exfat, fat: Corrected time conversion mistakes.
* Fixes #9524
* Some style cleanup

Signed-off-by: Jerome Duval <jerome.duval@gmail.com>
2013-05-11 14:58:57 +02:00
Ingo Weinhold
85bf48fea5 packagefs: Remove no longer working userland build support 2013-05-11 14:37:27 +02:00
Alex Smith
1152f6eca6 HaikuImage: Build more network drivers for x86_64. 2013-05-11 13:08:35 +01:00
Ingo Weinhold
0bfcf7312a Move deskbar menu directory to ~/config/settings/deskbar/menu
Also remove the "be" symlink in ~/config/settings.
2013-05-11 09:57:58 +02:00
Ingo Weinhold
a085e81e62 Move ~/config/boot to ~/config/settings/ 2013-05-11 09:57:57 +02:00
Ingo Weinhold
8a916d8752 Don't create most empty installation dirs in home/config
Create them in home/config/non-packaged instead.
2013-05-11 09:57:57 +02:00
Murai Takashi
6235280425 libgnu.so: Fix GCC4.8 narrowing conversion warnings
Signed-off-by: Jerome Duval <jerome.duval@gmail.com>
2013-05-11 09:02:01 +02:00
Ingo Weinhold
9e1a0720cb Fix FFM focus loss on window close
kFocusList is an invalid index for _Windows(). fWorkspaces would be
accessed out of bounds.
2013-05-11 07:30:15 +02:00
Niels Sascha Reedijk
ee7f4fab92 Update translations from Pootle 2013-05-11 06:16:58 +02:00
Rene Gollent
7de99f8341 Fix Terminal build. 2013-05-10 23:21:51 -04:00
Ingo Weinhold
09cbc86d0d TTracker::RefsReceived(): Forward "be:*" message fields
In some cases /bin/open puts some additional fields in the
B_REFS_RECEIVED message, but those were completely ignored. This makes
opening paths with appended line/column numbers actually work as
expected.
2013-05-11 04:44:53 +02:00
Ingo Weinhold
7e3f7da70a BURL: Make the output to stderr DEBUG only 2013-05-11 04:44:53 +02:00