From d38f564abaf6fcbc6c7cf2922f3e8f4c8327362f Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 27 Mar 2023 08:46:58 +0200 Subject: Add append/prepend support to pkg-bindist --{debian,archive}-build-meta --- bpkg/system-package-manager-debian.cxx | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) (limited to 'bpkg/system-package-manager-debian.cxx') diff --git a/bpkg/system-package-manager-debian.cxx b/bpkg/system-package-manager-debian.cxx index b06487f..53d3a07 100644 --- a/bpkg/system-package-manager-debian.cxx +++ b/bpkg/system-package-manager-debian.cxx @@ -1849,13 +1849,36 @@ namespace bpkg if (!no_build_metadata) { sv += '~'; - if (build_metadata) - sv += *build_metadata; - else + + if (!build_metadata) { sv += os_release.name_id; sv += os_release.version_id; // Could be empty. } + else + { + const string& md (*build_metadata); + + bool f (md.front () == '+'); + bool b (md.back () == '+'); + + if (f && b) // Note: covers just `+`. + fail << "invalid build metadata '" << md << "'"; + + if (f || b) + { + if (b) + sv.append (md, 0, md.size () - 1); + + sv += os_release.name_id; + sv += os_release.version_id; + + if (f) + sv.append (md, 1, md.size () - 1); + } + else + sv += md; + } } return r; -- cgit v1.1