[141271] trunk/dports/_resources/port1.0/group/active_variants-1.1.tcl

dstrubbe at macports.org dstrubbe at macports.org
Tue Oct 13 20:36:26 PDT 2015


Revision: 141271
          https://trac.macports.org/changeset/141271
Author:   dstrubbe at macports.org
Date:     2015-10-13 20:36:25 -0700 (Tue, 13 Oct 2015)
Log Message:
-----------
active_variants PortGroup:
* Perform a check in the activate phase too, to catch the case that a port was deactivated, a dependency was installed with problematic variants, and then the port was reactivated. In this case a warning is written.
* Typos.

Modified Paths:
--------------
    trunk/dports/_resources/port1.0/group/active_variants-1.1.tcl

Modified: trunk/dports/_resources/port1.0/group/active_variants-1.1.tcl
===================================================================
--- trunk/dports/_resources/port1.0/group/active_variants-1.1.tcl	2015-10-14 03:34:29 UTC (rev 141270)
+++ trunk/dports/_resources/port1.0/group/active_variants-1.1.tcl	2015-10-14 03:36:25 UTC (rev 141271)
@@ -51,7 +51,7 @@
 #  $required
 #    is a list of variants that must be enabled for the test to succeed
 #    (required; remember this can also be a space-separated string or just
-#    a string for a single value. It's iterpreted as list, though.)
+#    a string for a single value. It's interpreted as list, though.)
 #  $forbidden
 #    is a list of variants that may not be enabled for the test to succeed
 #    (default is empty list, see description of $required for values that can be
@@ -70,7 +70,7 @@
 # }
 #
 # If all you want to do is bail out when the condition isn't fulfilled, there's
-# a convience wrapper available. If the condition isn't met it will print an
+# a convenience wrapper available. If the condition isn't met it will print an
 # error message and exit in a pre-configure phase. This can't be run any
 # earlier, because not all dependency types are installed before configure
 # phase. Previous versions of this PortGroup required you to manually put
@@ -164,7 +164,7 @@
 	return 0
 }
 
-# global list holding all items the should be checked for and cause an error if
+# global list holding all items should be checked for and cause an error if
 # not present
 set _require_active_variants_list [list]
 
@@ -187,7 +187,8 @@
 		source {
 			set deptypes "depends_fetch depends_extract depends_lib depends_build depends_run"
 		}
-		archivefetch {
+	        activate -
+	        archivefetch {
 			set deptypes "depends_lib depends_run"
 		}
 		default {
@@ -197,7 +198,7 @@
 
 	# for each type we're considering
 	foreach deptype $deptypes {
-		# check that there are any dependencies by that type
+		# check whether there are any dependencies of that type
 		if {[info exists PortInfo($deptype)]} {
 			# and for each dependency
 			foreach depspec $PortInfo($deptype) {
@@ -231,7 +232,12 @@
 		}
 
 		if {[catch {set result [active_variants $depspec $required $forbidden]}] != 0} {
-			error "${port} is required, but not active."
+		    set message "${port} is required, but not active."
+		    if {$method == activate} {
+			ui_msg "Warning: $message"
+		    } else {
+			error "$message"
+		    }
 		}
 		if {!$result} {
 			set str_required ""
@@ -246,7 +252,12 @@
 			if {$str_required != "" && $str_forbidden != ""} {
 				set str_combine " and "
 			}
-			error "${port} must be installed ${str_required}${str_combine}${str_forbidden}."
+		        set message "${port} must be installed ${str_required}${str_combine}${str_forbidden}."
+		        if {$method == "activate"} {
+			    ui_msg "Warning: $message"
+			} else {
+			    error "$message"
+			}
 		}
 	}
 }
@@ -262,3 +273,8 @@
 pre-archivefetch {
 	_check_require_active_variants archivefetch
 }
+
+# be sure that a required variant was not changed since this port was built or fetched
+pre-activate {
+        _check_require_active_variants activate
+}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20151013/34e8b75f/attachment-0001.html>


More information about the macports-changes mailing list