Commit Graph

40112 Commits

Author SHA1 Message Date
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
Ingo Weinhold
5e972a60c3 Dependency: Add Package() getter 2011-07-17 16:54:33 +02:00
Ingo Weinhold
9320567ed2 WIP towards dependency package links
* Add ResolvableFamily and DependencyFamily classes for grouping equally
  named resolvables/dependencies.
* Add hash tables to PackageFSRoot to track resolvables and
  dependencies. That is done in {Add,Remove}Package.
* Resolvable does now have a list of Dependency objects, the ones it
  satisfies.
2011-07-17 16:54:33 +02:00
Ingo Weinhold
38a7f76509 Add TODOs regarding broken add/remove behavior 2011-07-17 16:54:32 +02:00
Ingo Weinhold
cd81fea02d Fix package link updates/node monitoring
* PackageLinksListener: Rename methods from *Directory*() to *Node*()
  and change parameter to Node*. Also add a *Changed() method.
* PackageLinkDirectory: Update only when necessary and what is necessary
  (currently only the self link).
2011-07-17 16:54:32 +02:00
Ingo Weinhold
35eeebddc4 Missing locking when adding/removing package nodes 2011-07-17 16:54:32 +02:00
Ingo Weinhold
83d5997db5 Add node monitoring for package link directories 2011-07-17 16:54:32 +02:00
Ingo Weinhold
fd6d5d5a51 Reordered methods to match declaration order 2011-07-17 16:54:32 +02:00
Ingo Weinhold
59acdf5045 Volume: Remove all package contents on destruction 2011-07-17 16:54:31 +02:00
Ingo Weinhold
77574d40ee Init fSelfLink 2011-07-17 16:54:31 +02:00
Ingo Weinhold
5f80e51a9e Fix Volume::_RemovePackageLinksNode()
Don't use _RemoveNode() as it also removes the node from its parent.
2011-07-17 16:54:31 +02:00
Ingo Weinhold
fc009a29f3 Fix NODE_FLAG_OWNS_NAME value 2011-07-17 16:54:31 +02:00