#
d6b37ce9 |
|
21-Sep-2023 |
Augustin Cavalier <waddlesplash@gmail.com> |
packagefs: Fix missing unlocks in Volume package content node removal. When breaking out of _RemovePackageContentRootNode() by encountering a specified "endPackageNode", we need to unlock all directories. This case is only possible to encounter when _AddPackageContentRootNode() fails partway and invokes _Remove() to remove the just-added nodes. Fixes a hang/deadlock encountered by Diver while testing some (disabled) HaikuPorts recipes.
|
#
fce7f3a7 |
|
09-Dec-2020 |
X512 <danger_mail@list.ru> |
integrate AutoDeleter's into pointers Change-Id: I6c3925a7aec4d0647c76c2a03aad7b08985d7166 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3490 Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org> Reviewed-by: waddlesplash <waddlesplash@gmail.com>
|
#
cdccd323 |
|
09-Dec-2020 |
X512 <danger_mail@list.ru> |
use common AutoDeleter types Change-Id: I115e14b76f3ff049c5f7d9471efd3619a0038fcf Reviewed-on: https://review.haiku-os.org/c/haiku/+/3483 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com> Reviewed-by: Axel Dörfler <axeld@pinc-software.de>
|
#
36aafa56 |
|
04-Dec-2020 |
X512 <danger_mail@list.ru> |
fix build after CObjectDeleter interface change Change-Id: I76e217abcd13c22c4d68170e07333cdde4d7a891 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3461 Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>
|
#
ec5b9880 |
|
15-May-2019 |
Augustin Cavalier <waddlesplash@gmail.com> |
packagefs: Use more descriptive error codes on failing activations.
|
#
6f7fc220 |
|
07-Mar-2016 |
Axel Dörfler <axeld@pinc-software.de> |
NodeMonitor: Added B_WATCH_CHILDREN flag. * Added a directory argument for notify_{stat/attribute}_changed(). * This allows to watch only a directory, and get the notifications for all of its files, not just add/remove entry notifications.
|
#
333d4efe |
|
25-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Extend PACKAGE_FS_OPERATION_GET_PACKAGE_INFOS ioctl Also return the package file names.
|
#
ba4c67b4 |
|
25-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Fix ioctl PACKAGE_FS_OPERATION_GET_VOLUME_INFO ... in case a larger buffer is provided.
|
#
2d91773d |
|
18-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Adjust packagefs ioctl interface to support old states * PackageFSVolumeInfo: Add the directories for all relevant states. * PackageFSPackageInfo: Include the package file's parent directory node ref. Package daemon and package kit still don't support old states yet.
|
#
5d55f327 |
|
17-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Initial support for booting into old states If an old state is specified via mount parameters we load the packages as specified in its activated-packages file. The interface for the package daemon, the package daemon itself, and the package kit are still to be adjusted, so ATM some PM components might be a bit confused when an old state was booted.
|
#
dff8d2ea |
|
17-Feb-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Package: Use PackagesDirectory directly ... instead of Volume. Necessary to support using packages from different directories.
|
#
aeb6fc9e |
|
10-Feb-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Move Volume::PackagesDirectory to top level Also make it a BReferenceable and fix Volume::fPackagesDirectory leak.
|
#
dac7b7c9 |
|
06-Dec-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fix various 64 bit related warnings Mostly printf() format strings and signed-unsigned comparisons. Fixes the x86_64 build.
|
#
3a7e0b00 |
|
19-Nov-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Support blacklisting entries in packages In each installation location, it is now possible to create a settings file "packages" that allows to blacklist entries contained in packages. The format is: Package <package name> { EntryBlacklist { <entry path> ... } } ... <package name> is the base name (no version) of the respective package (e.g. "haiku"), <entry path> is an installation location relative path (e.g. "add-ons/Translators/FooTranslator"). Blacklisted entries will be ignored by packagefs, i.e. they won't appear in the file system. This addresses the issue that it may be necessary to remove a problematic file (e.g. driver, add-on, or library), which would otherwise require editing the containing package file. The settings file is not not "live". Changes take effect only after reboot (respectively when remounting the concerned packagefs volume).
|
#
4b7e2196 |
|
03-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Remove /boot/common for good * Remove support for the "common" installation location from packagefs, package kit, package daemon, package managers. * Rename the B_COMMON_*_DIRECTORY constants referring to writable directories to B_SYSTEM_*_DIRECTORY. * Remove/adjust the use of various B_COMMON_*_DIRECTORY constants. I'm sure some occurrence still remain. They can be adjusted when the remaining B_COMMON_*_DIRECTORY constants are removed.
|
#
f73f5d4c |
|
29-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Initial changes to remove /boot/common * find_directory() and hard-coded paths use /boot/system instead of /boot/common. * The build system creates the writable directories in /boot/system instead of /boot/common. * The build system no longer installs any packages in /boot/common.
|
#
59f1891e |
|
19-Sep-2013 |
Jessica Hamilton <jessica.l.hamilton@gmail.com> |
Change volume label for MOUNT_TYPE_HOME to "config". Fixes #9968. Signed-off-by: Ingo Weinhold <ingo_weinhold@gmx.de>
|
#
11802867 |
|
31-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fix reading attributes of directories When reading an attribute of a directory there was no guarantee that the underlying package would be open. When it wasn't reading an attribute would fail, unless the attribute data were already cached. The reasons for this are: * UnpackingDirectory didn't forward the {Init,Uninit}VFS() calls to the underlying PackageDirectory. * Only PackageFile was actually opening the package in InitVFS(). Now we forward the {Init,Uninit}VFS() calls in all cases -- even in {Add,Remove}PackageNode(), when the active package node changes -- and opening/closing the package is now done in PackageNode::{Init,Uninit}VFS().
|
#
69a1f1f5 |
|
20-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Fix attribute indexing Since the package nodes' attributes are indexed before the VFS has accessed any of its nodes, the package wasn't open and reading the attribute data would fail. We do now open the package explicitly in UnpackingAttributeCookie::IndexAttribute(). Moreover, as an optimization, we also open the package in Volume::_AddPackageContent(), so the package file isn't repeatedly opened and closed as its nodes are being registered.
|
#
171fd58c |
|
12-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
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.
|
#
d07c930c |
|
11-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
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.
|
#
1e7416d9 |
|
11-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Organize sources into subdirectories
|
#
333d4efe4f2356d9898e1749f49eef5c3931af11 |
|
25-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Extend PACKAGE_FS_OPERATION_GET_PACKAGE_INFOS ioctl Also return the package file names.
|
#
ba4c67b4b085f7a88be47fee45c46c7c5b3a8076 |
|
25-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Fix ioctl PACKAGE_FS_OPERATION_GET_VOLUME_INFO ... in case a larger buffer is provided.
|
#
2d91773d2e07651749bacd0b5b144366df9fdc6f |
|
18-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Adjust packagefs ioctl interface to support old states * PackageFSVolumeInfo: Add the directories for all relevant states. * PackageFSPackageInfo: Include the package file's parent directory node ref. Package daemon and package kit still don't support old states yet.
|
#
5d55f327edfafcb9d3a61e7132c67ddda2f52cba |
|
17-Apr-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Initial support for booting into old states If an old state is specified via mount parameters we load the packages as specified in its activated-packages file. The interface for the package daemon, the package daemon itself, and the package kit are still to be adjusted, so ATM some PM components might be a bit confused when an old state was booted.
|
#
dff8d2ea22e081f2369f0e0967c812123d27cbad |
|
17-Feb-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Package: Use PackagesDirectory directly ... instead of Volume. Necessary to support using packages from different directories.
|
#
aeb6fc9eca1b3684f835b648e44ca877e29296ab |
|
10-Feb-2014 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Move Volume::PackagesDirectory to top level Also make it a BReferenceable and fix Volume::fPackagesDirectory leak.
|
#
dac7b7c9805cb3c1291a98ceacb4dea94b0cfd65 |
|
06-Dec-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fix various 64 bit related warnings Mostly printf() format strings and signed-unsigned comparisons. Fixes the x86_64 build.
|
#
3a7e0b00147f7a33bc52cb75a56bde8d9652d92a |
|
19-Nov-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Support blacklisting entries in packages In each installation location, it is now possible to create a settings file "packages" that allows to blacklist entries contained in packages. The format is: Package <package name> { EntryBlacklist { <entry path> ... } } ... <package name> is the base name (no version) of the respective package (e.g. "haiku"), <entry path> is an installation location relative path (e.g. "add-ons/Translators/FooTranslator"). Blacklisted entries will be ignored by packagefs, i.e. they won't appear in the file system. This addresses the issue that it may be necessary to remove a problematic file (e.g. driver, add-on, or library), which would otherwise require editing the containing package file. The settings file is not not "live". Changes take effect only after reboot (respectively when remounting the concerned packagefs volume).
|
#
4b7e219688450694efc9d1890f83f816758c16d3 |
|
03-Oct-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Remove /boot/common for good * Remove support for the "common" installation location from packagefs, package kit, package daemon, package managers. * Rename the B_COMMON_*_DIRECTORY constants referring to writable directories to B_SYSTEM_*_DIRECTORY. * Remove/adjust the use of various B_COMMON_*_DIRECTORY constants. I'm sure some occurrence still remain. They can be adjusted when the remaining B_COMMON_*_DIRECTORY constants are removed.
|
#
f73f5d4c42a01ece688cbb57b5d332cc0f68b2c6 |
|
29-Sep-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Initial changes to remove /boot/common * find_directory() and hard-coded paths use /boot/system instead of /boot/common. * The build system creates the writable directories in /boot/system instead of /boot/common. * The build system no longer installs any packages in /boot/common.
|
#
59f1891eda8a019e072f590003611c78ae8167ba |
|
19-Sep-2013 |
Jessica Hamilton <jessica.l.hamilton@gmail.com> |
Change volume label for MOUNT_TYPE_HOME to "config". Fixes #9968. Signed-off-by: Ingo Weinhold <ingo_weinhold@gmx.de>
|
#
118028674c77ec4ba5725a097dfbc9fd99b181b8 |
|
31-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
Fix reading attributes of directories When reading an attribute of a directory there was no guarantee that the underlying package would be open. When it wasn't reading an attribute would fail, unless the attribute data were already cached. The reasons for this are: * UnpackingDirectory didn't forward the {Init,Uninit}VFS() calls to the underlying PackageDirectory. * Only PackageFile was actually opening the package in InitVFS(). Now we forward the {Init,Uninit}VFS() calls in all cases -- even in {Add,Remove}PackageNode(), when the active package node changes -- and opening/closing the package is now done in PackageNode::{Init,Uninit}VFS().
|
#
69a1f1f53f7167363b17eeba6141b92bd8dfd4d3 |
|
20-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Fix attribute indexing Since the package nodes' attributes are indexed before the VFS has accessed any of its nodes, the package wasn't open and reading the attribute data would fail. We do now open the package explicitly in UnpackingAttributeCookie::IndexAttribute(). Moreover, as an optimization, we also open the package in Volume::_AddPackageContent(), so the package file isn't repeatedly opened and closed as its nodes are being registered.
|
#
171fd58c4b47c2da9cf13b7e501d3661d4a98e42 |
|
12-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
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.
|
#
d07c930c1eb710289922edd3abf5244c259a86c6 |
|
11-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
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.
|
#
1e7416d9b3846396e2f7d6552e37d72664cd6853 |
|
11-May-2013 |
Ingo Weinhold <ingo_weinhold@gmx.de> |
packagefs: Organize sources into subdirectories
|