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).
This commit is contained in:
Ingo Weinhold
2013-11-19 15:30:34 +01:00
parent 2fdd1d9ef1
commit 3a7e0b0014
16 changed files with 929 additions and 29 deletions
+2
View File
@@ -38,6 +38,7 @@
#define kSystemPackageLinksDirectory "/boot/system/package-links"
#define kSystemPreferencesDirectory "/boot/system/preferences"
#define kSystemServersDirectory "/boot/system/servers"
#define kSystemSettingsDirectory "/boot/system/settings"
#define kSystemEtcDirectory "/boot/system/settings/etc"
#define kSystemTempDirectory "/boot/system/cache/tmp"
@@ -55,6 +56,7 @@
#define kUserLibDirectory "/boot/home/config/lib"
#define kUserPackagesDirectory "/boot/home/config/packages"
#define kUserSettingsDirectory "/boot/home/config/settings"
#define kUserSettingsGlobalDirectory "/boot/home/config/settings/global"
#define kUserNonpackagedDirectory "/boot/home/config/non-packaged"
#define kUserNonpackagedAddonsDirectory "/boot/home/config/non-packaged/add-ons"
#define kUserNonpackagedBinDirectory "/boot/home/config/non-packaged/bin"