Hi Junichi,

Now I realized right option order for --build, and implemented '-y' in cupt.
The patch became less intrusive.

-- 
Eugene V. Lyubimkin aka JackYF, JID: jackyf.devel(maildog)gmail.com
C++/Perl developer, Debian Developer
diff -urN pbuilder-0.189/Makefile pbuilder-0.189+jackyf1/Makefile
--- pbuilder-0.189/Makefile	2009-06-23 02:43:13.000000000 +0300
+++ pbuilder-0.189+jackyf1/Makefile	2009-09-27 19:48:57.943519414 +0300
@@ -92,6 +92,7 @@
 	$(INSTALL_EXECUTABLE) pbuilder-satisfydepends-gdebi $(DESTDIR)/usr/lib/pbuilder/
 	$(INSTALL_EXECUTABLE) pbuilder-satisfydepends-aptitude $(DESTDIR)/usr/lib/pbuilder/
 	$(INSTALL_EXECUTABLE) pbuilder-satisfydepends-experimental $(DESTDIR)/usr/lib/pbuilder/
+	$(INSTALL_EXECUTABLE) pbuilder-satisfydepends-cupt $(DESTDIR)/usr/lib/pbuilder/
 	$(INSTALL_EXECUTABLE) pbuilder-satisfydepends-checkparams $(DESTDIR)/usr/lib/pbuilder/
 	$(INSTALL_EXECUTABLE) pbuilder-satisfydepends-funcs $(DESTDIR)/usr/lib/pbuilder/
 	$(INSTALL_EXECUTABLE) pdebuild-internal $(DESTDIR)/usr/lib/pbuilder/
diff -urN pbuilder-0.189/pbuilder-buildpackage-funcs pbuilder-0.189+jackyf1/pbuilder-buildpackage-funcs
--- pbuilder-0.189/pbuilder-buildpackage-funcs	2009-02-26 07:33:11.000000000 +0200
+++ pbuilder-0.189+jackyf1/pbuilder-buildpackage-funcs	2009-10-23 12:17:21.984880080 +0300
@@ -37,6 +37,11 @@
 	yes) BUILDOPT="--binary-arch";;
 	*) ;;
     esac
+
+	if [ -n "$USE_CUPT" ]; then
+		PBUILDERSATISFYDEPENDSCMD=/usr/lib/pbuilder/pbuilder-satisfydepends-cupt
+	fi
+
     if "$PBUILDERSATISFYDEPENDSCMD" --control "$1" --chroot "${BUILDPLACE}" --internal-chrootexec "${CHROOTEXEC}" "${BUILDOPT}" ; then
 	:
     else
@@ -50,7 +55,12 @@
     fi
     # install extra packages to the chroot
     if [ -n "$EXTRAPACKAGES" ]; then 
-	$CHROOTEXEC usr/bin/apt-get -y --force-yes install ${EXTRAPACKAGES}
+		if [ -n "$USE_CUPT" ]; then
+			PACKAGE_MANAGER_COMMAND="/usr/bin/cupt -y --no-auto-remove -o cupt::console::allow-untrusted=1"
+		else
+			PACKAGE_MANAGER_COMMAND="/usr/bin/apt-get -y --force-yes"
+		fi
+		$CHROOTEXEC $PACKAGE_MANAGER_COMMAND install ${EXTRAPACKAGES}
     fi
 }
 
diff -urN pbuilder-0.189/pbuilder-checkparams pbuilder-0.189+jackyf1/pbuilder-checkparams
--- pbuilder-0.189/pbuilder-checkparams	2009-03-07 03:07:51.000000000 +0200
+++ pbuilder-0.189+jackyf1/pbuilder-checkparams	2009-09-27 21:47:54.529461681 +0300
@@ -210,6 +210,12 @@
 	    outputfile[${#outputfi...@]}]="$2";
 	    shift; shift; 
 	    ;;
+	--cupt)
+	    log "I: Using cupt as package manager"
+	    USE_CUPT=yes
+	    EXTRAPACKAGES="$EXTRAPACKAGES cupt"
+	    shift;
+	    ;;
 
 	## internal options.
 	--internal-chrootexec)
diff -urN pbuilder-0.189/pbuilder-satisfydepends-cupt pbuilder-0.189+jackyf1/pbuilder-satisfydepends-cupt
--- pbuilder-0.189/pbuilder-satisfydepends-cupt	1970-01-01 03:00:00.000000000 +0300
+++ pbuilder-0.189+jackyf1/pbuilder-satisfydepends-cupt	2009-10-23 12:54:17.612881957 +0300
@@ -0,0 +1,49 @@
+#!/bin/bash
+#   pbuilder -- personal Debian package builder
+#   Copyright (C) 2001,2002,2003,2005-2007 Junichi Uekawa
+#   Copyright (C) 2009 Eugene V. Lyubimkin
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful,
+#   but WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#   GNU General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, write to the Free Software
+#   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+#
+# module to satisfy build dependencies; cupt flavor
+
+set -e
+
+. /usr/lib/pbuilder/pbuilder-satisfydepends-funcs
+
+function checkbuilddep_internal () {
+	local FLAGS="-y -o apt::install-recommends=0 -o cupt::downloader::max-simultaneous-downloads=1"
+	FLAGS="$FLAGS -o cupt::console::allow-untrusted=1"
+    echo " -> Attempting to parse the build-deps "
+	BUILD_DEPENDS=$(get_control_re "$DEBIAN_CONTROL" "$BD_REGEXP")
+	BUILD_CONFLICTS=$(get_control_re "$DEBIAN_CONTROL" "$BC_REGEXP")
+
+	# trim them
+	BUILD_DEPENDS=$(echo $BUILD_DEPENDS | sed 's/^ +//')
+	BUILD_CONFLICTS=$(echo $BUILD_CONFLICTS | sed 's/^ +//')
+
+	if [ -n "$BUILD_CONFLICTS" ]; then
+		BUILD_CONFLICTS="$BUILD_CONFLICTS-"
+	fi
+
+	if $CHROOTEXEC /usr/bin/cupt $FLAGS satisfy "$BUILD_DEPENDS" "$BUILD_CONFLICTS"; then
+	  echo " -> Finished parsing the build-deps"
+	else
+	  echo "E: Could not satisfy build-dependency." >&2
+	fi
+}
+
+. /usr/lib/pbuilder/pbuilder-satisfydepends-checkparams
+
diff -urN pbuilder-0.189/pbuilder-updatebuildenv pbuilder-0.189+jackyf1/pbuilder-updatebuildenv
--- pbuilder-0.189/pbuilder-updatebuildenv	2009-10-24 14:33:57.013018027 +0300
+++ pbuilder-0.189+jackyf1/pbuilder-updatebuildenv	2009-10-24 14:33:55.863257798 +0300
@@ -34,28 +34,45 @@
 extractbuildplace
 $TRAP umountproc_cleanbuildplace_trap exit sighup
 
+recover_aptcache
+
+if [ -n "$USE_CUPT" ]; then
+	if ! $CHROOTEXEC /usr/bin/dpkg -l | grep "^ii" | grep cupt; then
+		log "I: installing cupt package manager";
+		$CHROOTEXEC apt-get update
+		$CHROOTEXEC apt-get -y install cupt
+	fi
+	PACKAGE_MANAGER=/usr/bin/cupt
+	PACKAGE_MANAGER_COMMAND="/usr/bin/cupt -y -o cupt::console::allow-untrusted=1"
+else
+	PACKAGE_MANAGER=/usr/bin/apt-get
+	PACKAGE_MANAGER_COMMAND="/usr/bin/apt-get -y --force-yes"
+fi
+
 loadhooks
 log "I: Refreshing the base.tgz "
 log "I: upgrading packages"
-$CHROOTEXEC /usr/bin/apt-get update
+$CHROOTEXEC $PACKAGE_MANAGER update
 if [ -n "$REMOVEPACKAGES" ]; then
     $CHROOTEXEC /usr/bin/dpkg --purge $REMOVEPACKAGES
 fi
-recover_aptcache
 
 $TRAP saveaptcache_umountproc_cleanbuildplace_trap exit sighup
-$CHROOTEXEC /usr/bin/apt-get -y --force-yes "${force_confn...@]}" dist-upgrade
+$CHROOTEXEC $PACKAGE_MANAGER_COMMAND "${force_confn...@]}" dist-upgrade
 # autoremove: Ignore error in case of etch because apt in etch doesn't
 # support autoremove. TODO: Do not ignore error when etch is no longer
 # supported.
-$CHROOTEXEC /usr/bin/apt-get -y --force-yes autoremove || true
-$CHROOTEXEC /usr/bin/apt-get -y --force-yes install build-essential dpkg-dev apt aptitude $EXTRAPACKAGES
+if [ -z "$USE_CUPT" ]; then
+	$CHROOTEXEC /usr/bin/apt-get -y --force-yes autoremove || true
+fi
+
+$CHROOTEXEC $PACKAGE_MANAGER_COMMAND install build-essential dpkg-dev apt aptitude $EXTRAPACKAGES
 save_aptcache
 
 # optionally auto-clean apt-cache
 if [ "${AUTOCLEANAPTCACHE}" = "yes" -a -n "$APTCACHE" ]; then
     log "I: Cleaning the cached apt archive"
-    $CHROOTEXEC /usr/bin/apt-get autoclean || true
+    $CHROOTEXEC $PACKAGE_MANAGER autoclean || true
     find "$APTCACHE/" -maxdepth 1 -name \*.deb | \
 	while read A; do
 	    if [ ! -f "$BUILDPLACE/var/cache/apt/archives/"$(basename "$A") -a \
@@ -71,7 +88,7 @@
 unloadhooks
 
 umountproc
-$CHROOTEXEC /usr/bin/apt-get clean || true
+$CHROOTEXEC $PACKAGE_MANAGER clean || true
 
 $TRAP cleanbuildplace_trap exit sighup
 if [ ! "${INTERNAL_BUILD_UML}" = "yes" ]; then

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to