Commit Graph

27 Commits

Author SHA1 Message Date
Ingo Weinhold
6692db5c1c BPackageInfo: Add fileName property
The property is archived and unarchived, but otherwise not yet stored.
If not set, FileName() returns CanonicalFileName(). Can be used for
packages like haiku.hpkg etc. that don't have a properly qualified file
name (yet).
2013-08-29 23:19:14 +02:00
Ingo Weinhold
bc0491ae52 BPackageInfo: Add Matches()
Checks whether the package satisfies the given
BPackageResolvableExpression.
2013-08-28 00:36:28 +02:00
Ingo Weinhold
4489c88b61 hpkg format: Generalize user/global settings file attributes
* For all identifiers: Rename global settings file to global writable
  file. We want to use the respective attribute also for other writable
  files, not only settings files.
* User settings file/global writable file info/attribute: Add
  isDirectory property/child attribute. This allows declaring global/
  user settings directories associated with the package.
2013-06-06 00:17:02 +02:00
Ingo Weinhold
c0ab140961 hpkg format: Add attribute for declaring post install scripts 2013-05-25 01:12:37 +02:00
Ingo Weinhold
0f4e11e75c hpkg format: Add attributes for declaring users and groups 2013-05-25 01:12:37 +02:00
Ingo Weinhold
fe707a23fc hpkg format: Add attributes for declaring settings files
Global and user settings files can be declared. For global ones an
update policy can be specified. If not specified, the settings file is
not included in the package, but created by the program (or user) later.
If an update type is specified, it defines what to do with the settings
file when updating the package to a newer version.

User settings files are never included in the package; they are always
created by the program or the user. If the package contains a template/
default settings file, it can be declared, but for informative purposes
only.
2013-05-25 01:12:34 +02:00
Ingo Weinhold
bc306e210f Declare some string constants actually const 2013-05-25 01:12:33 +02:00
Ingo Weinhold
7adfd76b17 Add "base package" package attribute 2013-05-25 01:12:24 +02:00
Ingo Weinhold
dd0b33cb63 BPackageInfo: Support reading both HPKG format versions 2013-05-25 01:12:22 +02:00
Ingo Weinhold
be8f5e00f1 BPackageInfo: Add CanonicalFileName()
The name of the package file is not part of the package-info.
CanonicalFileName() constructs the name the file should have (not
enforced anywhere (yet)).
2013-04-20 21:40:08 +02:00
Ingo Weinhold
7a27bcd113 BPackageInfo: Make use of BMessage::{Add,Find}Strings() 2013-04-20 00:33:13 +02:00
Ingo Weinhold
202c1daaed BPackageVersion: Rename property release to revision
* ... to avoid confusion with the preRelease property. It's also called
  "revision" in the HaikuPorts recipes.
* Update libsolv package. Was necessary due to the BPackageVersion
  change, but also includes a few more changes.
2013-04-16 00:05:19 +02:00
Ingo Weinhold
8a4ebe2c46 Make BPackageInfo archivable 2013-04-14 17:06:25 +02:00
Ingo Weinhold
6c6460e1f6 BPackageInfo: Add GetConfigString() and ToString() 2013-04-11 00:37:25 +02:00
Ingo Weinhold
a3dd6caf55 Add public package version parsing API
* BPackageVersion: Add respective constructor and SetTo().
* BPackageInfo: Add static ParseVersionString() utility method. It's
  only there because the parser lives in the BPackageInfo
  implementation.
2013-04-03 02:06:26 +00:00
Ingo Weinhold
dfb5fa8ba3 Add convenience methods BPackageInfo::ReadFromPackageFile() 2013-04-01 23:18:16 +00:00
Ingo Weinhold
2021c9842e Use BStringList in package kit
Replace all instances of BObjectList<BString> by BStringList.
2011-07-17 16:55:20 +02:00
Ingo Weinhold
f19957b8e5 Add a package info "install-path" attribute
The attribute is intended for simplifying package building. The
package's install path will be used for the package's .self package
symlink, allowing installation to a temporary directory when building
the package.
2011-07-17 16:55:14 +02:00
Ingo Weinhold
bfbb410d1a BPackageInfo::ReadFromConfigFile() BFile& version 2011-07-17 16:54:50 +02:00
Ingo Weinhold
df18eb8718 Fix gcc 2 build by making Parser a friend 2011-07-17 16:54:46 +02:00
Ingo Weinhold
ee453e8bbc Add url and sourceURL properties to BPackageInfo
Also extend the parser to accept "url" and "source-url" attributes.
2011-07-17 16:54:44 +02:00
Oliver Tappe
0d68f6afb3 Implemented repository writing:
* fleshed out RepositoryWriterImpl
* renamed BRepositoryHeader to BRepositoryInfo (in accordance with
  BPackageInfo)
* adjusted BRepositoryInfo to be able to parse itself from a
  driver_settings file
* added package_repo binary (only 'create' works as of yet)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40405 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-09 19:11:23 +00:00
Oliver Tappe
d77c6cd26a * implemented checking of licenses, such that it is no longer possible
to create a package that refers to a license that is not a system
  license or contained in the package
* added package-info flags (currently only approve_license and 
  system_package)
* adjusted package-reader/writer and pkgman accordingly

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-08 19:50:36 +00:00
Oliver Tappe
6f0278cdc9 Implemented reading of package info attributes from hpkg file
* added kernel-compatible datatypes for reading package info attribute 
  values (PackageInfoAttributeValue.h) - these will be used at a later
  stage by the package-fs to transport those attributes to userland
  when asked to do so (by ioctl)
* implemented parsing of package info attributes in PackageReaderImpl
* added support for compressed package attribute section to 
  PackageReaderImpl
* completed the writing of package info attributes in PackageWriterImpl
  and fixed a couple of bugs exposed by parsing
* adjusted 'package list' to show the package info attributes as they
  are found


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-02-04 17:43:07 +00:00
Oliver Tappe
3aeae97f65 * added type-support to BPackageResolvable
* split BPackageResolvable, BPackageResolvableExpression
  and BPackageVersion into separate files


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40316 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-29 17:59:58 +00:00
Oliver Tappe
30222ff141 Completed PackageInfo-parser and fleshed out BPackageVersion, BPackageProvision and BPackageRequirement.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40313 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-28 23:36:08 +00:00
Oliver Tappe
0d6b3b20e1 More work on package kit:
* added class BPackageInfo, which contains packaging attributes of
  a package (the values relevant for package management) 
* implemented parser (mostly) for reading a BPackageInfo from a config
  file (.PackageInfo) in order to pass them on to the PackageWriter 
  when creating a package
* pulled hpkg-related stuff from bin/package into the package kit
* adjusted packagefs-Volume to skip .PackageInfo files when populating
  the mountpoint, as those files shouldn't appear as part of an
  activated package


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40301 a95241bf-73f2-0310-859d-f6bbb57e9c96
2011-01-27 23:17:03 +00:00