From 06c76d48163efb5a6a9bb4340723baf7a3a0a41c Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Thu, 3 May 2018 17:19:19 +0300 Subject: Adapt to optional base repository manifest --- bpkg/rep-create.cxx | 13 ++++++++++--- bpkg/rep-fetch.cxx | 2 +- bpkg/rep-info.cxx | 6 ++---- 3 files changed, 13 insertions(+), 8 deletions(-) (limited to 'bpkg') diff --git a/bpkg/rep-create.cxx b/bpkg/rep-create.cxx index 2de1de1..34aeb2c 100644 --- a/bpkg/rep-create.cxx +++ b/bpkg/rep-create.cxx @@ -5,6 +5,7 @@ #include #include +#include // count_if() #include // dir_iterator #include @@ -180,13 +181,19 @@ namespace bpkg l4 ([&]{trace << "creating repository in " << d;}); - // Load the repositories.manifest file to make sure it is there and is - // valid. + // Load the repositories.manifest file to obtain the certificate, if + // present, for signing the repository. // pkg_repository_manifests rms ( pkg_fetch_repositories (d, o.ignore_unknown ())); - l4 ([&]{trace << rms.size () - 1 << " prerequisite repository(s)";}); + l4 ([&]{trace << count_if (rms.begin(), rms.end(), + [] (const repository_manifest& i) + { + return i.effective_role () != + repository_role::base; + }) + << " prerequisite repository(s)";}); // While we could have serialized as we go along, the order of // packages will be pretty much random and not reproducible. By diff --git a/bpkg/rep-fetch.cxx b/bpkg/rep-fetch.cxx index def7cd0..daefc84 100644 --- a/bpkg/rep-fetch.cxx +++ b/bpkg/rep-fetch.cxx @@ -107,7 +107,7 @@ namespace bpkg authenticate_repository (co, conf, cert_pem, *cert, sm, rl); } - return rep_fetch_data {{move (fr)}, move (cert_pem), move (cert)}; + return rep_fetch_data {{move (fr)}, cert_pem, move (cert)}; } template diff --git a/bpkg/rep-info.cxx b/bpkg/rep-info.cxx index 1ffeee3..f136aad 100644 --- a/bpkg/rep-info.cxx +++ b/bpkg/rep-info.cxx @@ -168,11 +168,9 @@ namespace bpkg // Append the latest base repository manifest. // - // Note that there must be at least one fragment with at least a - // base repository being present. + // Note that there must be at least one fragment. // - assert (!rfd.fragments.empty () && - !rfd.fragments.back ().repositories.empty ()); + assert (!rfd.fragments.empty ()); rms.push_back ( find_base_repository (rfd.fragments.back ().repositories)); -- cgit v1.1