Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 1 Oct 2012 08:32:05 +0000 (UTC)
From:      Doug Barton <dougb@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r241090 - user/dougb/portmaster
Message-ID:  <201210010832.q918W5N2011077@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dougb
Date: Mon Oct  1 08:32:05 2012
New Revision: 241090
URL: http://svn.freebsd.org/changeset/base/241090

Log:
  Due to improvements in the efficiency of portmaster's method of killing
  background processes when trap'ing, plus the declining quality of ports
  generally, when the background process that reads the distinfo files
  encountered a fatal error (which they have been doing more frequently of
  late), the resulting call to fail() would end up neatly killing all of
  that parent's background fetch processes as well.
  
  Fix that problem by not making the disruption in read_distinfos() fatal
  unless it's being used for --clean-distfiles. All the other calls to this
  function are run in the background for the distfile gathering process, and
  a missing file in that list is an inconvenience at worst.

Modified:
  user/dougb/portmaster/portmaster

Modified: user/dougb/portmaster/portmaster
==============================================================================
--- user/dougb/portmaster/portmaster	Mon Oct  1 06:48:59 2012	(r241089)
+++ user/dougb/portmaster/portmaster	Mon Oct  1 08:32:05 2012	(r241090)
@@ -1188,7 +1188,18 @@ read_distinfos () {
 		else
 			pm_cd $origin || continue
 			distinfo=`pm_make -V DISTINFO_FILE`
-			[ -n "$distinfo" ] || fail "No DISTINFO_FILE in $origin"
+
+			# Do not make this error fatal unless using
+			# --clean-distfiles. This will prevent accidentally
+			# killing other background processes when running
+			# in the background itself.
+			if [ -z "$distinfo" ]; then
+				if [ -z "$CLEAN_DISTFILES" ]; then
+					continue
+				else
+					fail "No DISTINFO_FILE in $origin"
+				fi
+			fi
 		fi
 
 		if [ -s "$distinfo" ]; then



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201210010832.q918W5N2011077>