added 5 changesets to branch 'refs/remotes/HaikuPM-github/package-management' old head: 4c6b3efc91da7aa26b2d20c30f3c17b98465d5dc new head: 86233b1067c8868bdbfdf13beec31795476284ec overview: https://github.com/haiku/HaikuPM/compare/4c6b3ef...86233b1 ---------------------------------------------------------------------------- 3ea3725: haiku_devel* package infos: add compat version and base package 7ff288e: packagefs: fix dependency resolution without compat version 623331e: packages: PackageFSRoot: fix, improve, add debug output b8ab901: packagefs: replace ':' with '~' in the package link names Otherwise paths containing those symlinks cannot be used in colon separated search path lists. 86233b1: HaikuPorts: update several packages ... and add some missing devel packages. [ Ingo Weinhold <ingo_weinhold@xxxxxx> ] ---------------------------------------------------------------------------- 8 files changed, 67 insertions(+), 25 deletions(-) build/jam/repositories/HaikuPorts/x86_gcc2 | 20 ++++++++++------- .../package_links/PackageLinkDirectory.cpp | 4 ++-- .../packagefs/resolvables/Dependency.cpp | 23 ++++++++++++++++++++ .../packagefs/resolvables/Dependency.h | 5 ++++- .../packagefs/resolvables/ResolvableFamily.cpp | 9 +++++--- .../packagefs/volume/PackageFSRoot.cpp | 23 ++++++++++++++------ src/data/package_infos/generic/haiku_devel | 4 ++-- .../package_infos/generic/haiku_devel_secondary | 4 ++-- ############################################################################ Commit: 3ea37257df7cd79558febd2f72014335af590ffb Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Tue Aug 13 05:12:47 2013 UTC haiku_devel* package infos: add compat version and base package ---------------------------------------------------------------------------- diff --git a/src/data/package_infos/generic/haiku_devel b/src/data/package_infos/generic/haiku_devel index 7f3057b..2945db7 100644 --- a/src/data/package_infos/generic/haiku_devel +++ b/src/data/package_infos/generic/haiku_devel @@ -14,9 +14,9 @@ copyrights "2001-2013 Haiku, Inc. et al" licenses "MIT" provides { - haiku_devel = R1~alpha4_pm-1 + haiku_devel = R1~alpha4_pm-1 compat >= R1~alpha1 } requires { - haiku == R1~alpha4_pm-1 + haiku == R1~alpha4_pm-1 base } diff --git a/src/data/package_infos/generic/haiku_devel_secondary b/src/data/package_infos/generic/haiku_devel_secondary index 8ba4b7f..6b859f4 100644 --- a/src/data/package_infos/generic/haiku_devel_secondary +++ b/src/data/package_infos/generic/haiku_devel_secondary @@ -14,9 +14,9 @@ copyrights "2001-2013 Haiku, Inc. et al" licenses "MIT" provides { - haiku_%HAIKU_SECONDARY_PACKAGING_ARCH%_devel = R1~alpha4_pm-1 + haiku_%HAIKU_SECONDARY_PACKAGING_ARCH%_devel = R1~alpha4_pm-1 compat >= R1~alpha1 } requires { - haiku_%HAIKU_SECONDARY_PACKAGING_ARCH% == R1~alpha4_pm-1 + haiku_%HAIKU_SECONDARY_PACKAGING_ARCH% == R1~alpha4_pm-1 base } ############################################################################ Commit: 7ff288ed5116a0626a45c3d5b46c161e082fb750 Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Tue Aug 13 05:15:05 2013 UTC packagefs: fix dependency resolution without compat version ---------------------------------------------------------------------------- diff --git a/src/add-ons/kernel/file_systems/packagefs/resolvables/ResolvableFamily.cpp b/src/add-ons/kernel/file_systems/packagefs/resolvables/ResolvableFamily.cpp index 9e61317..f48d9c5 100644 --- a/src/add-ons/kernel/file_systems/packagefs/resolvables/ResolvableFamily.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/resolvables/ResolvableFamily.cpp @@ -54,9 +54,12 @@ ResolvableFamily::ResolveDependency(Dependency* dependency) { for (FamilyResolvableList::Iterator it = fResolvables.GetIterator(); Resolvable* resolvable = it.Next();) { - if (dependency->ResolvableVersionMatches(resolvable->Version()) - && dependency->ResolvableCompatibleVersionMatches( - resolvable->CompatibleVersion())) { + if (!dependency->ResolvableVersionMatches(resolvable->Version())) + continue; + + Version* compatibleVersion = resolvable->CompatibleVersion() != NULL + ? resolvable->CompatibleVersion() : resolvable->Version(); + if (dependency->ResolvableCompatibleVersionMatches(compatibleVersion)) { resolvable->AddDependency(dependency); return true; } ############################################################################ Commit: 623331eed56d387e30d653513a09dc47cffec3ba Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Tue Aug 13 05:15:42 2013 UTC packages: PackageFSRoot: fix, improve, add debug output ---------------------------------------------------------------------------- diff --git a/src/add-ons/kernel/file_systems/packagefs/volume/PackageFSRoot.cpp b/src/add-ons/kernel/file_systems/packagefs/volume/PackageFSRoot.cpp index 268bbb5..3eb967d 100644 --- a/src/add-ons/kernel/file_systems/packagefs/volume/PackageFSRoot.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/volume/PackageFSRoot.cpp @@ -249,7 +249,8 @@ PackageFSRoot::_AddPackage(Package* package) for (ResolvableList::ConstIterator it = package->Resolvables().GetIterator(); Resolvable* resolvable = it.Next();) { - TRACE_DEPENDENCIES(" adding resolvable \"%s\"\n", resolvable->Name()); + TRACE_DEPENDENCIES(" adding resolvable \"%s\"\n", + resolvable->Name().Data()); if (ResolvableFamily* family = fResolvables.Lookup(resolvable->Name())) { @@ -274,7 +275,8 @@ PackageFSRoot::_AddPackage(Package* package) for (DependencyList::ConstIterator it = package->Dependencies().GetIterator(); Dependency* dependency = it.Next();) { - TRACE_DEPENDENCIES(" adding dependency \"%s\"\n", dependency->Name()); + TRACE_DEPENDENCIES(" adding dependency \"%s\"\n", + dependency->Name().Data()); if (DependencyFamily* family = fDependencies.Lookup(dependency->Name())) { @@ -314,7 +316,7 @@ PackageFSRoot::_RemovePackage(Package* package) Dependency* dependency = it.Next();) { if (DependencyFamily* family = dependency->Family()) { TRACE_DEPENDENCIES(" removing dependency \"%s\"\n", - dependency->Name()); + dependency->Name().Data()); if (family->IsLastDependency(dependency)) { fDependencies.Remove(family); @@ -336,7 +338,7 @@ PackageFSRoot::_RemovePackage(Package* package) Resolvable* resolvable = it.Next();) { if (ResolvableFamily* family = resolvable->Family()) { TRACE_DEPENDENCIES(" removing resolvable \"%s\"\n", - resolvable->Name()); + resolvable->Name().Data()); if (family->IsLastResolvable(resolvable)) { fResolvables.Remove(family); @@ -378,16 +380,23 @@ PackageFSRoot::_ResolveDependencies(ResolvableDependencyList& dependencies) void PackageFSRoot::_ResolveDependency(Dependency* dependency) { - TRACE_DEPENDENCIES(" resolving dependency \"%s\"\n", dependency->Name()); + TRACE_DEPENDENCIES(" resolving dependency \"%s\" (package \"%s\")\n", + dependency->Name().Data(), dependency->Package()->Name().Data()); // get the resolvable family for the dependency ResolvableFamily* resolvableFamily = fResolvables.Lookup(dependency->Name()); - if (resolvableFamily == NULL) + if (resolvableFamily == NULL) { + TRACE_DEPENDENCIES(" -> dependency \"%s\" unresolved\n", + dependency->Name().Data()); return; + } // let the family resolve the dependency - resolvableFamily->ResolveDependency(dependency); + if (!resolvableFamily->ResolveDependency(dependency)) { + TRACE_DEPENDENCIES(" -> dependency \"%s\" unresolved (version " + "mismatch)\n", dependency->Name().Data()); + } } ############################################################################ Commit: b8ab901eeb0ce0eaa403182780268ffd69acf3c9 Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Tue Aug 13 12:17:52 2013 UTC packagefs: replace ':' with '~' in the package link names Otherwise paths containing those symlinks cannot be used in colon separated search path lists. ---------------------------------------------------------------------------- diff --git a/src/add-ons/kernel/file_systems/packagefs/package_links/PackageLinkDirectory.cpp b/src/add-ons/kernel/file_systems/packagefs/package_links/PackageLinkDirectory.cpp index cb96ee9..ae2d171 100644 --- a/src/add-ons/kernel/file_systems/packagefs/package_links/PackageLinkDirectory.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/package_links/PackageLinkDirectory.cpp @@ -208,7 +208,7 @@ PackageLinkDirectory::_UpdateDependencies(PackageLinksListener* listener) Package* resolvablePackage = resolvable != NULL ? resolvable->Package() : NULL; - Node* node = FindChild(dependency->Name()); + Node* node = FindChild(dependency->FileName()); if (node != NULL) { // link already exists -- update DependencyLink* link = static_cast<DependencyLink*>(node); @@ -222,7 +222,7 @@ PackageLinkDirectory::_UpdateDependencies(PackageLinksListener* listener) if (link == NULL) return B_NO_MEMORY; - status_t error = link->Init(this, dependency->Name()); + status_t error = link->Init(this, dependency->FileName()); if (error != B_OK) { delete link; RETURN_ERROR(error); diff --git a/src/add-ons/kernel/file_systems/packagefs/resolvables/Dependency.cpp b/src/add-ons/kernel/file_systems/packagefs/resolvables/Dependency.cpp index 30f02df..2cc42af 100644 --- a/src/add-ons/kernel/file_systems/packagefs/resolvables/Dependency.cpp +++ b/src/add-ons/kernel/file_systems/packagefs/resolvables/Dependency.cpp @@ -9,6 +9,8 @@ #include <stdlib.h> #include <string.h> +#include <AutoDeleter.h> + #include "Version.h" @@ -18,6 +20,7 @@ Dependency::Dependency(::Package* package) fFamily(NULL), fResolvable(NULL), fName(), + fFileName(), fVersion(NULL), fVersionOperator(B_PACKAGE_RESOLVABLE_OP_EQUAL) { @@ -36,6 +39,26 @@ Dependency::Init(const char* name) if (!fName.SetTo(name)) return B_NO_MEMORY; + // If the name contains a ':', replace it with '~' in the file name. We do + // that so that a path containing the symlink can be used in colon-separated + // search paths. + if (strchr(name, ':') != NULL) { + char* fileName = strdup(name); + if (fileName == NULL) + return B_NO_MEMORY; + MemoryDeleter fileNameDeleter(fileName); + + char* remainder = fileName; + while (char* colon = strchr(remainder, ':')) { + *colon = '~'; + remainder = colon + 1; + } + + if (!fFileName.SetTo(fileName)) + return B_NO_MEMORY; + } else + fFileName = fName; + return B_OK; } diff --git a/src/add-ons/kernel/file_systems/packagefs/resolvables/Dependency.h b/src/add-ons/kernel/file_systems/packagefs/resolvables/Dependency.h index 4997110..2a6bae9 100644 --- a/src/add-ons/kernel/file_systems/packagefs/resolvables/Dependency.h +++ b/src/add-ons/kernel/file_systems/packagefs/resolvables/Dependency.h @@ -54,13 +54,16 @@ public: bool ResolvableCompatibleVersionMatches( Version* resolvableVersion) const; - const String& Name() const { return fName; } + const String& Name() const { return fName; } + const String& FileName() const { return fFileName; } private: ::Package* fPackage; DependencyFamily* fFamily; ::Resolvable* fResolvable; String fName; + String fFileName; + // fName with ':' replaced by '~' Version* fVersion; BPackageResolvableOperator fVersionOperator; ############################################################################ Commit: 86233b1067c8868bdbfdf13beec31795476284ec Author: Ingo Weinhold <ingo_weinhold@xxxxxx> Date: Tue Aug 13 11:46:26 2013 UTC HaikuPorts: update several packages ... and add some missing devel packages. ---------------------------------------------------------------------------- diff --git a/build/jam/repositories/HaikuPorts/x86_gcc2 b/build/jam/repositories/HaikuPorts/x86_gcc2 index 5992953..9e2ac97 100644 --- a/build/jam/repositories/HaikuPorts/x86_gcc2 +++ b/build/jam/repositories/HaikuPorts/x86_gcc2 @@ -5,14 +5,16 @@ RemotePackageRepository HaikuPorts # architecture "any" packages be_book-2008_10_26-1 ca_root_certificates-2012_12_29-1 - texi2html-1.82-1 + texi2html-1.82-2 timgmsoundfont-2004_01_24-3 wqy_microhei-0.2.0~beta-3 : # repository architecture packages # primary architecture (x86_gcc2) apr-1.4.6-7 + apr_devel-1.4.6-7 apr_util-1.4.1-3 + apr_util_devel-1.4.1-3 autoconf-2.69-4 automake-1.13.1-4 bepdf-1.1.1~beta5_2013_04_28-1 @@ -29,8 +31,8 @@ RemotePackageRepository HaikuPorts doxygen-1.6.3-3 expat-2.0.1-7 expat_devel-2.0.1-7 - ffmpeg-0.10.2-3 - ffmpeg_devel-0.10.2-3 + ffmpeg-0.10.2-4 + ffmpeg_devel-0.10.2-4 flex-2.5.35-6 freetype-2.4.9-3 freetype_devel-2.4.9-3 @@ -88,7 +90,8 @@ RemotePackageRepository HaikuPorts ncurses-5.9-9 ncurses_devel-5.9-9 neon-0.29.6-6 - openssh-6.0p1-6 + neon_devel-0.29.6-6 + openssh-6.0p1-7 openssl-1.0.0j-3 openssl_devel-1.0.0j-3 p7zip-9.20.1-4 @@ -103,11 +106,12 @@ RemotePackageRepository HaikuPorts speex_devel-1.2~rc1-2 sqlite-3.7.13-4 sqlite_devel-3.7.13-4 - subversion-1.6.18-5 + subversion-1.6.18-6 + subversion_devel-1.6.18-6 tar-1.26-6 texinfo-4.13a-7 vision-0.9.7.r944-1 - wonderbrush-2.1.2-3 + wonderbrush-2.1.2-4 wpa_supplicant-2.0-3 yasm-1.2.0-3 zlib-1.2.8-3 @@ -128,8 +132,8 @@ RemotePackageRepository HaikuPorts gettext_x86_libintl-0.18.1.1-5 glu_x86-9.0.0-2 glu_x86_devel-9.0.0-2 - haikuwebkit_x86-1.1.3_2013_08_09-1 - haikuwebkit_x86_devel-1.1.3_2013_08_09-1 + haikuwebkit_x86-1.1.3_2013_08_09-2 + haikuwebkit_x86_devel-1.1.3_2013_08_09-2 icu_x86-4.8.1.1-4 icu_x86_devel-4.8.1.1-4 jpeg_x86-9-3