pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: gimp 3.0



On Wed, Apr 09, 2025 at 01:40:27AM +0200, Thomas Klausner wrote:
> On Tue, Apr 08, 2025 at 11:38:51PM +0100, Jonathan Perkin wrote:
> > * On 2025-04-08 at 22:54 BST, Thomas Klausner wrote:
> > 
> > > Please let me know where you have a different view.
> > 
> > I will always prefer the previous behaviour.
> 
> The one where the bulk build didn't start?
...
> > However it's clear that I am alone in this opinion, so I stopped objecting
> > to pbulk changes that I disagree with.

Please try the new pbulk version.

You'll have to set

strict_mode=yes

in the pbulk config to get the behaviour you prefer.
 Thomas
--- Begin Message ---
Module Name:	pkgsrc
Committed By:	wiz
Date:		Wed Apr  9 00:26:33 UTC 2025

Modified Files:
	pkgsrc/pkgtools/pbulk: Makefile
	pkgsrc/pkgtools/pbulk-base: Makefile
	pkgsrc/pkgtools/pbulk/files/pbulk: pbulk.conf
	pkgsrc/pkgtools/pbulk/files/pbulk/presolve: pbulk-resolve.1 presolve.c
	pkgsrc/pkgtools/pbulk/files/pbulk/scripts: scan

Log Message:
pbulk*: add a 'strict_mode' option to pbulk

When this is set to 'yes', pbulk will just exit if there is an
unresolvable dependency in the resolve phase, like it did before
pbulk-base-0.58/pbulk-0.74.

Bump version.


To generate a diff of this commit:
cvs rdiff -u -r1.94 -r1.95 pkgsrc/pkgtools/pbulk/Makefile
cvs rdiff -u -r1.29 -r1.30 pkgsrc/pkgtools/pbulk-base/Makefile
cvs rdiff -u -r1.28 -r1.29 pkgsrc/pkgtools/pbulk/files/pbulk/pbulk.conf
cvs rdiff -u -r1.2 -r1.3 \
    pkgsrc/pkgtools/pbulk/files/pbulk/presolve/pbulk-resolve.1
cvs rdiff -u -r1.5 -r1.6 \
    pkgsrc/pkgtools/pbulk/files/pbulk/presolve/presolve.c
cvs rdiff -u -r1.11 -r1.12 pkgsrc/pkgtools/pbulk/files/pbulk/scripts/scan

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: pkgsrc/pkgtools/pbulk/Makefile
diff -u pkgsrc/pkgtools/pbulk/Makefile:1.94 pkgsrc/pkgtools/pbulk/Makefile:1.95
--- pkgsrc/pkgtools/pbulk/Makefile:1.94	Thu Jan 23 15:05:41 2025
+++ pkgsrc/pkgtools/pbulk/Makefile	Wed Apr  9 00:26:32 2025
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.94 2025/01/23 15:05:41 wiz Exp $
+# $NetBSD: Makefile,v 1.95 2025/04/09 00:26:32 wiz Exp $
 
-PKGNAME=	pbulk-0.75
+PKGNAME=	pbulk-0.76
 COMMENT=	Modular bulk build framework
 
 .include "../../pkgtools/pbulk/Makefile.common"

Index: pkgsrc/pkgtools/pbulk-base/Makefile
diff -u pkgsrc/pkgtools/pbulk-base/Makefile:1.29 pkgsrc/pkgtools/pbulk-base/Makefile:1.30
--- pkgsrc/pkgtools/pbulk-base/Makefile:1.29	Mon Jan 13 11:03:03 2025
+++ pkgsrc/pkgtools/pbulk-base/Makefile	Wed Apr  9 00:26:33 2025
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.29 2025/01/13 11:03:03 wiz Exp $
+# $NetBSD: Makefile,v 1.30 2025/04/09 00:26:33 wiz Exp $
 
-DISTNAME=	pbulk-base-0.58
+DISTNAME=	pbulk-base-0.59
 COMMENT=	Core components of the modular bulk build framework
 
 .include "../../pkgtools/pbulk/Makefile.common"

Index: pkgsrc/pkgtools/pbulk/files/pbulk/pbulk.conf
diff -u pkgsrc/pkgtools/pbulk/files/pbulk/pbulk.conf:1.28 pkgsrc/pkgtools/pbulk/files/pbulk/pbulk.conf:1.29
--- pkgsrc/pkgtools/pbulk/files/pbulk/pbulk.conf:1.28	Mon Jan 13 11:03:03 2025
+++ pkgsrc/pkgtools/pbulk/files/pbulk/pbulk.conf	Wed Apr  9 00:26:32 2025
@@ -1,4 +1,4 @@
-# $NetBSD: pbulk.conf,v 1.28 2025/01/13 11:03:03 wiz Exp $
+# $NetBSD: pbulk.conf,v 1.29 2025/04/09 00:26:32 wiz Exp $
 
 # Version of the configuration file. This is bumped whenever the default
 # config changes to notify the administrator about updates.
@@ -44,6 +44,11 @@ bootstrapkit=/usr/pkgsrc/bootstrap/boots
 # The file is a newline separated list of package locations (e.g. lang/perl5).
 #limited_list=/limited_list
 
+# In strict mode, unresolvable dependencies lead to pbulk stopping
+# with an error in the scan phase. Otherwise, these packages are
+# reported as broken in the bulk build report instead.
+strict_mode=no
+
 # If yes, consider a package up-to-date, if the dependency list matches
 # the existing binary package and the recorded RCS IDs match the pkgsrc
 # tree. Otherwise, additionally require that the package is not older

Index: pkgsrc/pkgtools/pbulk/files/pbulk/presolve/pbulk-resolve.1
diff -u pkgsrc/pkgtools/pbulk/files/pbulk/presolve/pbulk-resolve.1:1.2 pkgsrc/pkgtools/pbulk/files/pbulk/presolve/pbulk-resolve.1:1.3
--- pkgsrc/pkgtools/pbulk/files/pbulk/presolve/pbulk-resolve.1:1.2	Mon Jan 13 11:03:03 2025
+++ pkgsrc/pkgtools/pbulk/files/pbulk/presolve/pbulk-resolve.1	Wed Apr  9 00:26:32 2025
@@ -1,4 +1,4 @@
-.\" $NetBSD: pbulk-resolve.1,v 1.2 2025/01/13 11:03:03 wiz Exp $
+.\" $NetBSD: pbulk-resolve.1,v 1.3 2025/04/09 00:26:32 wiz Exp $
 .\"
 .\" Copyright (c) 2007 Thomas Klausner and Joerg Sonnenberger.
 .\" All rights reserved.
@@ -24,7 +24,7 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd January 6, 2025
+.Dd January 20, 2025
 .Dt PBULK-RESOLVE 1
 .Os
 .Sh NAME
@@ -34,7 +34,7 @@
 output
 .Sh SYNOPSIS
 .Nm
-.Op Fl v
+.Op Fl sv
 .Op Fl i Ar missing
 .Ar input Op ...
 .Sh DESCRIPTION
@@ -63,6 +63,9 @@ files are written to standard output inc
 dependencies.
 The location of each unresolved dependency is written to
 .Ar missing .
+.It Fl s
+Enter strict mode (see
+.Sx EXIT STATUS ) .
 .It Fl v
 If
 .Fl v
@@ -76,7 +79,9 @@ different packages can be used to fulfil
 .El
 .Sh EXIT STATUS
 .Nm
-exits with return value 0.
+exits with return value 0,
+except in strict mode where it will return 1 if a dependency could not
+be resolved.
 .Pp
 In incremental mode,
 .Ar missing

Index: pkgsrc/pkgtools/pbulk/files/pbulk/presolve/presolve.c
diff -u pkgsrc/pkgtools/pbulk/files/pbulk/presolve/presolve.c:1.5 pkgsrc/pkgtools/pbulk/files/pbulk/presolve/presolve.c:1.6
--- pkgsrc/pkgtools/pbulk/files/pbulk/presolve/presolve.c:1.5	Mon Jan 13 11:03:03 2025
+++ pkgsrc/pkgtools/pbulk/files/pbulk/presolve/presolve.c	Wed Apr  9 00:26:32 2025
@@ -1,4 +1,4 @@
-/* $NetBSD: presolve.c,v 1.5 2025/01/13 11:03:03 wiz Exp $ */
+/* $NetBSD: presolve.c,v 1.6 2025/04/09 00:26:32 wiz Exp $ */
 
 /*-
  * Copyright (c) 2007 Joerg Sonnenberger <joerg%NetBSD.org@localhost>.
@@ -46,13 +46,14 @@
 
 #include "pbulk.h"
 
-static int verbosity;
 static FILE *incremental = NULL;
+static int strict;
+static int verbosity;
 
 static void
 usage(void)
 {
-	(void)fprintf(stderr, "usage: pbulk-resolve [-v] [-i missing] <pscan output> [ ... ]\n");
+	(void)fprintf(stderr, "usage: pbulk-resolve [-sv] [-i missing] <pscan output> [ ... ]\n");
 	exit(1);
 }
 
@@ -87,7 +88,7 @@ main(int argc, char **argv)
 
 	setprogname("pbulk-resolve");
 
-	while ((ch = getopt(argc, argv, "i:pv")) != -1) {
+	while ((ch = getopt(argc, argv, "i:sv")) != -1) {
 		switch (ch) {
 		case 'i':
 			if (incremental != NULL)
@@ -95,6 +96,9 @@ main(int argc, char **argv)
 			if ((incremental = fopen(optarg, "w")) == NULL)
 				err(1, "Cannot open output file");
 			break;
+                case 's':
+			++strict;
+                        break;
 		case 'v':
 			++verbosity;
 			break;
@@ -305,7 +309,9 @@ resolve_entry(struct pkg_entry *pkg)
 	free(depends_list);
 	if (ret == 1) {
 		free(pkg->depends);
-		pkg->depends = NULL;
+                pkg->depends = NULL;
+                if (strict)
+			return 1;
 	}
 	return 0;
 }
@@ -403,7 +409,7 @@ write_entries(void)
 		if (pkgs[i].active == 0)
 			continue;
 		/* if package is ok, just print existing entry */
-		if (pkgs[i].broken == NULL) {
+		if (pkgs[i].broken == NULL || strict) {
 			(void)fwrite(pkgs[i].begin, 1, pkgs[i].end - pkgs[i].begin, stdout);
 		} else {
 			/* otherwise, replace PKG_FAIL_REASON line with reason for brokenness */

Index: pkgsrc/pkgtools/pbulk/files/pbulk/scripts/scan
diff -u pkgsrc/pkgtools/pbulk/files/pbulk/scripts/scan:1.11 pkgsrc/pkgtools/pbulk/files/pbulk/scripts/scan:1.12
--- pkgsrc/pkgtools/pbulk/files/pbulk/scripts/scan:1.11	Mon Jan 13 11:03:03 2025
+++ pkgsrc/pkgtools/pbulk/files/pbulk/scripts/scan	Wed Apr  9 00:26:33 2025
@@ -1,5 +1,5 @@
 #!@SH@
-# $NetBSD: scan,v 1.11 2025/01/13 11:03:03 wiz Exp $
+# $NetBSD: scan,v 1.12 2025/04/09 00:26:33 wiz Exp $
 #
 # Copyright (c) 2007 Joerg Sonnenberger <joerg%NetBSD.org@localhost>.
 # All rights reserved.
@@ -47,6 +47,17 @@ else
 	extra_pscan_args=""
 fi
 
+case "${strict_mode}" in
+[yY][eE][sS])
+	extra_presolve_args="-s"
+	strict_mode=yes
+	;;
+*)
+	extra_presolve_args=""
+	strict_mode=no
+	;;
+esac
+
 if [ -n "${ignore_missing_dependencies}" ]; then
 	echo "The 'ignore_missing_dependencies' configuration variable is obsolete and has no effect." >&2
 fi
@@ -66,7 +77,10 @@ if [ -z "${limited_list}" ]; then
 		;;
 	esac
 	echo "Resolving..."
-	${presolve} -v ${loc}/pscan > ${loc}/presolve 2> ${loc}/presolve-err.log
+	if ! ${presolve} ${extra_presolve_args} -v ${loc}/pscan > ${loc}/presolve 2> ${loc}/presolve-err.log; then
+		# can only happen in strict mode
+		echo "Global dependency resolution failed, check ${loc}/presolve-err.log for details" >&2
+	fi
 else
 	initial=1
 	mkdir -p ${loc}
@@ -99,6 +113,11 @@ else
 	done
 
 	if [ -s ${loc}/missing ]; then
+		if [ "${strict_mode}" = "yes" ]; then
+			echo "Unresolvable dependencies found, exiting"
+			cat ${loc}/missing
+			exit 1
+		fi
 		echo "Unresolvable dependencies found, marking packages depending on them as broken:"
 		cat ${loc}/missing
 		${presolve} -v ${loc}/presolve ${loc}/pscan > ${loc}/presolve.new


--- End Message ---


Home | Main Index | Thread Index | Old Index