xref: /haiku/headers/os/package/hpkg/PackageAttributes.h (revision a22fa0c977d48d26c3d7394b9e188a52e2bf11e2)
1a8de2761SIngo Weinhold /*
2a8de2761SIngo Weinhold  * Copyright 2009-2013, Haiku, Inc.
3a8de2761SIngo Weinhold  * Distributed under the terms of the MIT License.
4a8de2761SIngo Weinhold  */
5a8de2761SIngo Weinhold 
6a8de2761SIngo Weinhold 
7a8de2761SIngo Weinhold // This file defines the HPKG file attributes with all their properties in one
8a8de2761SIngo Weinhold // place. Includers of the file need to define the macro
9a8de2761SIngo Weinhold // B_DEFINE_HPKG_ATTRIBUTE(id, type, name, constant) so that it evaluates to
10a8de2761SIngo Weinhold // whatever is desired in their context.
11a8de2761SIngo Weinhold 
12a8de2761SIngo Weinhold 
13a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE( 0, STRING,	"dir:entry",			DIRECTORY_ENTRY)
14a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE( 1, UINT,	"file:type",			FILE_TYPE)
15a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE( 2, UINT,	"file:permissions",		FILE_PERMISSIONS)
16a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE( 3, STRING,	"file:user",			FILE_USER)
17a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE( 4, STRING,	"file:group",			FILE_GROUP)
18a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE( 5, UINT,	"file:atime",			FILE_ATIME)
19a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE( 6, UINT,	"file:mtime",			FILE_MTIME)
20a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE( 7, UINT,	"file:crtime",			FILE_CRTIME)
21a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE( 8, UINT,	"file:atime:nanos",		FILE_ATIME_NANOS)
22a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE( 9, UINT,	"file:mtime:nanos",		FILE_MTIME_NANOS)
23a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(10, UINT,	"file:crtime:nanos",	FILE_CRTIM_NANOS)
24a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(11, STRING,	"file:attribute",		FILE_ATTRIBUTE)
25a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(12, UINT,	"file:attribute:type",	FILE_ATTRIBUTE_TYPE)
26a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(13, RAW,	"data",					DATA)
27a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(14, STRING,	"symlink:path",			SYMLINK_PATH)
28a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(15, STRING,	"package:name",			PACKAGE_NAME)
29a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(16, STRING,	"package:summary",		PACKAGE_SUMMARY)
30a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(17, STRING,	"package:description",	PACKAGE_DESCRIPTION)
31a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(18, STRING,	"package:vendor",		PACKAGE_VENDOR)
32a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(19, STRING,	"package:packager",		PACKAGE_PACKAGER)
33a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(20, UINT,	"package:flags",		PACKAGE_FLAGS)
34a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(21, UINT,	"package:architecture",
35a8de2761SIngo Weinhold 	PACKAGE_ARCHITECTURE)
36a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(22, STRING,	"package:version.major",
37a8de2761SIngo Weinhold 	PACKAGE_VERSION_MAJOR)
38a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(23, STRING,	"package:version.minor",
39a8de2761SIngo Weinhold 	PACKAGE_VERSION_MINOR)
40a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(24, STRING,	"package:version.micro",
41a8de2761SIngo Weinhold 	PACKAGE_VERSION_MICRO)
42a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(25, UINT,	"package:version.revision",
43a8de2761SIngo Weinhold 	PACKAGE_VERSION_REVISION)
44a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(26, STRING,	"package:copyright",	PACKAGE_COPYRIGHT)
45a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(27, STRING,	"package:license",		PACKAGE_LICENSE)
46a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(28, STRING,	"package:provides",		PACKAGE_PROVIDES)
47a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(29, STRING,	"package:requires",		PACKAGE_REQUIRES)
48a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(30, STRING,	"package:supplements",	PACKAGE_SUPPLEMENTS)
49a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(31, STRING,	"package:conflicts",	PACKAGE_CONFLICTS)
50a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(32, STRING,	"package:freshens",		PACKAGE_FRESHENS)
51a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(33, STRING,	"package:replaces",		PACKAGE_REPLACES)
52a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(34, UINT,	"package:resolvable.operator",
53a8de2761SIngo Weinhold 	PACKAGE_RESOLVABLE_OPERATOR)
54a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(35, STRING,	"package:checksum",		PACKAGE_CHECKSUM)
55a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(36, STRING,	"package:version.prerelease",
56a8de2761SIngo Weinhold 	PACKAGE_VERSION_PRE_RELEASE)
57a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(37, STRING,	"package:provides.compatible",
58a8de2761SIngo Weinhold 	PACKAGE_PROVIDES_COMPATIBLE)
59a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(38, STRING,	"package:url",			PACKAGE_URL)
60a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(39, STRING,	"package:source-url",	PACKAGE_SOURCE_URL)
61a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(40, STRING,	"package:install-path",
62a8de2761SIngo Weinhold 	PACKAGE_INSTALL_PATH)
63a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(41, STRING,	"package:base-package",
64a8de2761SIngo Weinhold 	PACKAGE_BASE_PACKAGE)
654489c88bSIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(42, STRING,	"package:global-writable-file",
664489c88bSIngo Weinhold 	PACKAGE_GLOBAL_WRITABLE_FILE)
67a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(43, STRING,	"package:user-settings-file",
68a8de2761SIngo Weinhold 	PACKAGE_USER_SETTINGS_FILE)
694489c88bSIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(44, UINT,	"package:writable-file-update-type",
704489c88bSIngo Weinhold 	PACKAGE_WRITABLE_FILE_UPDATE_TYPE)
71a8de2761SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(45, STRING,	"package:settings-file-template",
72a8de2761SIngo Weinhold 	PACKAGE_SETTINGS_FILE_TEMPLATE)
730f4e11e7SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(46, STRING,	"package:user",			PACKAGE_USER)
740f4e11e7SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(47, STRING,	"package:user.real-name",
750f4e11e7SIngo Weinhold 	PACKAGE_USER_REAL_NAME)
760f4e11e7SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(48, STRING,	"package:user.home",	PACKAGE_USER_HOME)
770f4e11e7SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(49, STRING,	"package:user.shell",	PACKAGE_USER_SHELL)
780f4e11e7SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(50, STRING,	"package:user.group",	PACKAGE_USER_GROUP)
790f4e11e7SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(51, STRING,	"package:group",		PACKAGE_GROUP)
80c0ab1409SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(52, STRING,	"package:post-install-script",
81c0ab1409SIngo Weinhold 	PACKAGE_POST_INSTALL_SCRIPT)
824489c88bSIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(53, UINT,	"package:is-writable-directory",
834489c88bSIngo Weinhold 	PACKAGE_IS_WRITABLE_DIRECTORY)
84e8533402SIngo Weinhold B_DEFINE_HPKG_ATTRIBUTE(54, STRING,	"package",				PACKAGE)
85*a22fa0c9SAlexander G. M. Smith B_DEFINE_HPKG_ATTRIBUTE(55, STRING,	"package:pre-uninstall-script",
86*a22fa0c9SAlexander G. M. Smith 	PACKAGE_PRE_UNINSTALL_SCRIPT)
87*a22fa0c9SAlexander G. M. Smith // Note: add new entries at the end to avoid breaking index numbers, which are
88*a22fa0c9SAlexander G. M. Smith // in previously built .hpkg files the build process downloads from elsewhere.
89*a22fa0c9SAlexander G. M. Smith // Also remember to bump B_HPKG_MINOR_VERSION and B_HPKG_REPO_MINOR_VERSION.
90*a22fa0c9SAlexander G. M. Smith // And yes, the build (on Haiku) runs packaging tools compiled using your code,
91*a22fa0c9SAlexander G. M. Smith // which makes it extra fun to debug :-)
92