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