From afd0b8699b009b96be34ba2a20441ecb223957ce Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 14 Mar 2023 09:32:22 +0200 Subject: Add support for generating installation archives in pkg-bindist --- bpkg/system-package-manager.cxx | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) (limited to 'bpkg/system-package-manager.cxx') diff --git a/bpkg/system-package-manager.cxx b/bpkg/system-package-manager.cxx index 9e54418..c4ebe5a 100644 --- a/bpkg/system-package-manager.cxx +++ b/bpkg/system-package-manager.cxx @@ -18,6 +18,7 @@ #include #include +#include using namespace std; using namespace butl; @@ -147,13 +148,35 @@ namespace bpkg o.no_progress () ? false : optional ()); - unique_ptr r; + optional oos; + if (o.os_release_id_specified ()) + { + oos = os_release (); + oos->name_id = o.os_release_id (); + } + else + oos = host_release (host); - if (optional oos = host_release (host)) + if (o.os_release_name_specified ()) + oos->name = o.os_release_name (); + + if (o.os_release_version_id_specified ()) + oos->version_id = o.os_release_version_id (); + + unique_ptr r; + if (oos) { os_release& os (*oos); - if (host.class_ == "linux") + // Note that we don't make archive the default on any platform in case + // we later want to support its native package format. + // + if (name == "archive") + { + r.reset (new system_package_manager_archive ( + move (os), host, arch, progress, &o)); + } + else if (host.class_ == "linux") { if (is_or_like (os, "debian") || is_or_like (os, "ubuntu")) -- cgit v1.1