Hello.

Build profiles is apparently live in the Debian archive now!

We need to get some basic support for building packages that has the
profile tags in their control file now....
IMHO just ignoring profiles would be a good enough first step
but since Johannes Schauer has already kicked off the work
on proper support I'm following his path.

I'm attaching a couple of COMPLETELY UNTESTED additional patches to get
the ball moving by extending support to -classic as suggested by
Thorsten Glaser. (I'm very low on time, will try to look at actually
testing them soon.)
These builds on top of Johannes Schauers already submitted patches.

Anyone with objections should start contributing patches (further
improvements or alternative versions) ASAP.

This is my declaration of intent to NMU pbuilder as soon as
I find time to pursue this further (unless anyone else handles
this before I get a chance).

Input from people experienced with pbuilder internals appreciated!

Regards,
Andreas Henriksson
>From a5f573a6cc6b3a1d7ca6a8c46a7d2417cacc6fc8 Mon Sep 17 00:00:00 2001
From: Andreas Henriksson <[email protected]>
Date: Thu, 18 Jun 2015 12:42:15 +0200
Subject: [PATCH 3/4] Fix DEB_BUILD_PROFILES quoting

Thanks: Michael Stapelberg for spotting this
---
 pbuilder-satisfydepends-aptitude | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pbuilder-satisfydepends-aptitude b/pbuilder-satisfydepends-aptitude
index f96486e..ea24efc 100755
--- a/pbuilder-satisfydepends-aptitude
+++ b/pbuilder-satisfydepends-aptitude
@@ -34,9 +34,9 @@ function checkbuilddep_internal () {
     local CONFLICTS
     echo " -> Attempting to satisfy build-dependencies"
     DEPENDS="$(get_build_deps | filter_arch_deps "$ARCH" |
-        filter_restriction_deps \"$DEB_BUILD_PROFILES\" )"
+        filter_restriction_deps "$DEB_BUILD_PROFILES" )"
     CONFLICTS="$(get_build_conflicts | filter_arch_deps "$ARCH" |
-        filter_restriction_deps \"$DEB_BUILD_PROFILES\" )"
+        filter_restriction_deps "$DEB_BUILD_PROFILES" )"
     echo " -> Creating pbuilder-satisfydepends-dummy package"
     BUILD_DEP_DEB_DIR="/tmp/satisfydepends-aptitude"
     BUILD_DEP_DEB_CONTROL="$BUILD_DEP_DEB_DIR/pbuilder-satisfydepends-dummy/DEBIAN/control"
-- 
2.1.4

>From 7d9b8fa7041f3dd59d87fdd6919103de5a9506d2 Mon Sep 17 00:00:00 2001
From: Andreas Henriksson <[email protected]>
Date: Thu, 18 Jun 2015 12:43:53 +0200
Subject: [PATCH 4/4] Support build-profiles in classic satisfydeps

---
 pbuilder-satisfydepends-classic | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/pbuilder-satisfydepends-classic b/pbuilder-satisfydepends-classic
index 12d3107..81a9f37 100755
--- a/pbuilder-satisfydepends-classic
+++ b/pbuilder-satisfydepends-classic
@@ -45,7 +45,7 @@ split_alternates() {
 # architecture or version specifier; e.g. "/foo/(>=/2)/[i386/amd64]" becomes
 # "foo"
 get_pkg_name() {
-    echo "$*" | sed 's#^/*##; s#[[/(].*##'
+    echo "$*" | sed 's#^/*##; s#[[/(].*##; s#<!.*>##'
 }
 
 # filter operator and version of a "/" escaped versioned build-dep; e.g.
@@ -81,6 +81,13 @@ checkbuilddep_internal() {
 		continue
 	    fi
 	fi
+	if echo "$INSTALLPKG" | grep -q '<!'; then
+	    if checkbuilddep_restrictiondeps "$INSTALLPKG" "$DEB_BUILD_PROFILES"; then
+		SATISFIED="yes"
+		echo "   -> This package is not for the current build profiles"
+		continue
+	    fi
+	fi
 	if echo "$INSTALLPKG" | grep -q '('; then
 	    #echo "Debug: $INSTALLPKG"
 	    if ! checkbuilddep_versiondeps "$CURRENTREALPKGNAME" `get_dep_op_and_ver "$INSTALLPKG"`; then
@@ -151,6 +158,13 @@ checkbuilddep_internal() {
 	      continue
 	  fi
       fi
+      if echo "$INSTALLPKG" | greq -q '<!'; then
+          # this package has build-profiles-conflicts.
+          if checkbuilddep_restrictiondeps "$INSTALLPKG" "$DEB_BUILD_PROFILES"; then
+              echo "I: Ignoring other-buildprofiles"
+              continue
+          fi
+      fi
       if echo "$INSTALLPKG" | grep -q '('; then
 	  # this package has version-conflicts
 	  if ! checkbuilddep_versiondeps "$CURRENTREALPKGNAME" `get_dep_op_and_ver "$INSTALLPKG"`; then
-- 
2.1.4

Reply via email to