Commit Graph

40123 Commits

Author SHA1 Message Date
Ingo Weinhold 1ef35574eb package extract: Delay setting node permissions
In HandleEntry() create the file/directory with sufficient permissions
for the user and set the archived permissions in HandleEntryDone(). This
makes sure child attributes and entries can be created.
2011-07-17 16:54:46 +02:00
Ingo Weinhold 1bcc0f6e4a .OPD -> .PackageInfo conversion tool 2011-07-17 16:54:46 +02:00
Ingo Weinhold 116852fecb Support package info [source] URL attributes 2011-07-17 16:54:45 +02:00
Ingo Weinhold 28268808d8 Change source URL package info attribute name
Use "-" instead of "_".
2011-07-17 16:54:45 +02:00
Ingo Weinhold d4701a2921 Simplify BPackageInfo::Parser::_Parse() further
* Match the attribute in a loop, use an attribute ID switch, do the
  "seen" checks without the switch.
* Explicitly handle the case when encountering an unknown attribute.
2011-07-17 16:54:45 +02:00
Ingo Weinhold 122597e0ba Simplify BPackageInfo::Parser::_Parse()
This also fixes the memory leak due to the previously used on-stack
BObjectLists not having been defined owning the elements.
2011-07-17 16:54:45 +02:00
Ingo Weinhold 8b684dd363 Add URL/source URL hpkg package attributes 2011-07-17 16:54:44 +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
Ingo Weinhold 430689a688 Move hpkgBaseURL definition before its first use 2011-07-17 16:54:44 +02:00
Ingo Weinhold 941ec45913 Don't include architecture in package links names
This reverts commit a491e591c86cec4b2ce52df86f7b0d32545b4169.
2011-07-17 16:54:44 +02:00
Ingo Weinhold 1feaa8ab7e Adjust to changed .PackageInfo format 2011-07-17 16:54:43 +02:00
Ingo Weinhold 91698de994 Make .PackageInfo more driver-settings-ish
* Use braces instead of brackets for lists.
* Semicolons and newlines separate items now. Remove handling for comma.
* Allow '\'' as quotation character.
* Remove assignment after variable name.

This should make the .PackageInfo format driver settings compatible, but
not vice versa. It is still stricter.
2011-07-17 16:54:43 +02:00
Ingo Weinhold 7e346f1677 Include architecture in package links dir names 2011-07-17 16:54:43 +02:00
Ingo Weinhold ba926f3554 Extract architecture from package file 2011-07-17 16:54:43 +02:00
Ingo Weinhold eadc3c844d Add architecture property to Package 2011-07-17 16:54:42 +02:00
Ingo Weinhold 2ec6e02711 Small cleanup 2011-07-17 16:54:42 +02:00
Ingo Weinhold 36145114ae Adjust "copyright"/"licenses" fields
Use the plural keyword name and omit brackets when only one element is
specified.
2011-07-17 16:54:42 +02:00
Ingo Weinhold 78ceed5122 Allow single-element string/flag lists without []
As syntactic sugar string and flag lists no longer need to be enclosed
in brackets when they have exactly one element.
2011-07-17 16:54:42 +02:00
Ingo Weinhold acdcba84ec Remove "copyright" and "license" keywords
There's "copyrights" and "licenses" which can be used.
2011-07-17 16:54:41 +02:00
Ingo Weinhold ba1bc0a4ff Small cleanup 2011-07-17 16:54:41 +02:00
Ingo Weinhold 2ae9a147ca Declare the system package as backwards compatible 2011-07-17 16:54:41 +02:00
Ingo Weinhold 89f1807be6 Add compatible version support to packagefs 2011-07-17 16:54:40 +02:00
Ingo Weinhold 71120ca73d Print the resolvables' compatible version 2011-07-17 16:54:40 +02:00
Ingo Weinhold ee9c9351a7 Support for reading compatible version attribute 2011-07-17 16:54:40 +02:00
Ingo Weinhold b2709d8a0a Write resolvable compatible version to the package
To avoid a clash with the regular version or an extra attribute level we
use the "package:provides.compatible" package attribute instead of
"package:version.major".
2011-07-17 16:54:39 +02:00
Ingo Weinhold 2db69df113 Support for parsing the compatible version
In the .PackageInfo the compatible version for a resolvable can
optionally be given after the resolvable version via
"'compat[ible]' '>=' <version>".
2011-07-17 16:54:39 +02:00
Ingo Weinhold 22e1ec0e30 Add package attribute for compatible version 2011-07-17 16:54:38 +02:00
Ingo Weinhold c2f56ca020 BPackageResolvable: Add compatibleVersion property 2011-07-17 16:54:38 +02:00
Ingo Weinhold 3a56aaeeb9 BPackageResolvableData: Compatible version field
Add fields haveCompatibleVersion and compatibleVersion. This allows us
to have a minimum version a resolvable is backwards compatible with.
2011-07-17 16:54:38 +02:00
Ingo Weinhold b85a2681d6 Coding style: Fix indentation 2011-07-17 16:54:38 +02:00
Ingo Weinhold e1a393153d Adjust system package versions
They all use package and provides version "R1-alpha3_pm-1", now.
2011-07-17 16:54:38 +02:00
Ingo Weinhold ed6d59a9a9 Introduce a pre-release version component
* The version string pattern is now:
  <major>[.<minor>[.<micro>]][-<pre>][-<release>]
* Introduce B_HPKG_ATTRIBUTE_ID_PACKAGE_VERSION_PRE_RELEASE package
  attribute.
* Add "preRelease" field to BPackageVersionData.
* Add "preRelease" property to BPackageVersion and packagefs's Version.
* Adjust package reader and writer code accordingly.
2011-07-17 16:54:37 +02:00
Ingo Weinhold 5f039cf037 Fix copy'n'paste error for minor version part 2011-07-17 16:54:37 +02:00
Ingo Weinhold 42ae64447e Fix printf() format string warnings 2011-07-17 16:54:37 +02:00
Ingo Weinhold 59e76dbe41 Support for auto-generated package node attributes
* Add utility class AutoPackageAttributes and AttributeCookie subclass
  AutoPackageAttributeCookie.
* UnpackingAttributeCookie::Open() does now try to create a
  AutoPackageAttributeCookie, when it doesn't find the attribute in the
  PackageNode.
* Adjust UnpackingAttributeDirectoryCookie to also list auto-generated
  attributes.

Currently the only supported attribute is "SYS:PACKAGE", which is the
file name of the package containing the node.
2011-07-17 16:54:37 +02:00
Ingo Weinhold a83fe53dce Added default cookie Close() implementation
Added trivial implementation for AttributeCookie::Close() and
AttributeDirectoryCookie::Close() and removed the identical Close()
implementations in derived classes.
2011-07-17 16:54:36 +02:00
Ingo Weinhold ecf2e3d342 Cleanup 2011-07-17 16:54:36 +02:00
Ingo Weinhold c6739b6af0 Paranoia: Handle unknown mount type 2011-07-17 16:54:36 +02:00
Ingo Weinhold 2a5bef01a3 Volume:Mount(): Better failure output
Also use the FATAL() instead of the ERROR() macro, so something is
printed also with debugging disabled.
2011-07-17 16:54:36 +02:00
Ingo Weinhold c99aa60b78 Allow symlinks in the packages directory 2011-07-17 16:54:35 +02:00
Ingo Weinhold 2d132da8dc Optional dependency resolution tracing 2011-07-17 16:54:35 +02:00
Ingo Weinhold 835ecf5aca Fix dependency resolution on resolvable removable
ResolvableFamily::RemoveResolvable(): Move the resolvable's dependencies
to the update list.
2011-07-17 16:54:35 +02:00
Ingo Weinhold 5165b6b1d8 Fix adding order dependent dependency resolution
PackageFSRoot::_AddPackage(): When adding a resolvable which isn't known
yet, make sure all already added matching dependencies are resolved.
2011-07-17 16:54:35 +02:00
Ingo Weinhold b143a5a861 Notify when removing a package link directory 2011-07-17 16:54:35 +02:00
Ingo Weinhold dd9554ae69 Add dependency package links
The links appear, but the dependency resolution doesn't seem to work
correctly yet.
2011-07-17 16:54:34 +02:00
Ingo Weinhold a39e95cd73 Move PackageLinkDirectory::Link to own file
And rename it to PackageLinkSymlink.
2011-07-17 16:54:34 +02:00
Ingo Weinhold bd66b7e670 Resolve dependencies to resolvables 2011-07-17 16:54:34 +02:00
Ingo Weinhold 4081d37dec ResolvableFamily: Add ResolveDependency() 2011-07-17 16:54:34 +02:00
Ingo Weinhold 0d7d1795a1 Resolvable: Add Version() getter 2011-07-17 16:54:33 +02:00
Ingo Weinhold 8a85232741 Add Dependency::ResolvableVersionMatches() 2011-07-17 16:54:33 +02:00