Revision: 140488 https://trac.macports.org/changeset/140488 Author: khindenburg@macports.org Date: 2015-09-20 06:43:33 -0700 (Sun, 20 Sep 2015) Log Message: ----------- Add depends_test to handle the test dependencies of ports https://lists.macosforge.org/pipermail/macports-dev/2015-September/031366.ht... #38208 Modified Paths: -------------- trunk/base/src/macports1.0/macports.tcl trunk/base/src/port/port.tcl trunk/base/src/port/portindex.tcl trunk/base/src/port1.0/portdepends.tcl trunk/base/src/port1.0/portlint.tcl trunk/base/src/port1.0/portutil.tcl trunk/base/src/registry2.0/portuninstall.tcl Modified: trunk/base/src/macports1.0/macports.tcl =================================================================== --- trunk/base/src/macports1.0/macports.tcl 2015-09-20 13:17:47 UTC (rev 140487) +++ trunk/base/src/macports1.0/macports.tcl 2015-09-20 13:43:33 UTC (rev 140488) @@ -3437,7 +3437,7 @@ patch {return "depends_fetch depends_extract"} configure - build {return "depends_fetch depends_extract depends_build depends_lib"} - test - + test {return "depends_fetch depends_extract depends_build depends_lib depends_run depends_test"} destroot {return "depends_fetch depends_extract depends_build depends_lib depends_run"} dmg - pkg - Modified: trunk/base/src/port/port.tcl =================================================================== --- trunk/base/src/port/port.tcl 2015-09-20 13:17:47 UTC (rev 140487) +++ trunk/base/src/port/port.tcl 2015-09-20 13:43:33 UTC (rev 140488) @@ -101,6 +101,7 @@ Pseudo-portnames starting with variants:, variant:, description:, depends:, depends_lib:, depends_run:, depends_build:, depends_fetch:, depends_extract:, +depends_test:, portdir:, homepage:, epoch:, platforms:, platform:, name:, long_description:, maintainers:, maintainer:, categories:, category:, version:, revision:, and license: each select a set of ports based on a regex search of metadata @@ -1073,7 +1074,7 @@ # gather its deps set results {} - set deptypes {depends_fetch depends_extract depends_build depends_lib depends_run} + set deptypes {depends_fetch depends_extract depends_build depends_lib depends_run depends_test} set deplist {} foreach type $deptypes { @@ -1367,6 +1368,7 @@ ^depends_run: - ^depends_extract: - ^depends_fetch: - + ^depends_test: - ^replaced_by: - ^revision: - ^subport: - @@ -1395,6 +1397,7 @@ add_multiple_ports reslist [get_matching_ports $pat no regexp "depends_run"] add_multiple_ports reslist [get_matching_ports $pat no regexp "depends_extract"] add_multiple_ports reslist [get_matching_ports $pat no regexp "depends_fetch"] + add_multiple_ports reslist [get_matching_ports $pat no regexp "depends_test"] set el 1 } @@ -2055,6 +2058,7 @@ depends_build 1 depends_lib 1 depends_run 1 + depends_test 1 maintainers 1 platforms 1 variants 1 @@ -2072,6 +2076,7 @@ depends_build "Build Dependencies" depends_run "Runtime Dependencies" depends_lib "Library Dependencies" + depends_test "Test Dependencies" description "Brief Description" long_description "Description" fullname "Full Name: " @@ -2095,6 +2100,7 @@ depends_build 22 depends_run 22 depends_lib 22 + depends_test 22 description 22 long_description 22 homepage 22 @@ -2114,6 +2120,7 @@ set options(ports_info_depends_build) yes set options(ports_info_depends_lib) yes set options(ports_info_depends_run) yes + set options(ports_info_depends_test) yes } # Set up our field separators @@ -2164,6 +2171,7 @@ ports_info_skip_line ports_info_depends_fetch ports_info_depends_extract ports_info_depends_build ports_info_depends_lib ports_info_depends_run + ports_info_depends_test ports_info_conflicts ports_info_platforms ports_info_license ports_info_maintainers @@ -2938,7 +2946,7 @@ if {[info exists options(ports_${action}_no-build)] && [string is true -strict $options(ports_${action}_no-build)]} { set deptypes {depends_lib depends_run} } else { - set deptypes {depends_fetch depends_extract depends_build depends_lib depends_run} + set deptypes {depends_fetch depends_extract depends_build depends_lib depends_run depends_test} } array unset portinfo @@ -3013,7 +3021,7 @@ set deplist {} set deps_output {} set ndeps 0 - array set labeldict {depends_fetch Fetch depends_extract Extract depends_build Build depends_lib Library depends_run Runtime} + array set labeldict {depends_fetch Fetch depends_extract Extract depends_build Build depends_lib Library depends_run Runtime depends_test Test} # get list of direct deps foreach type $deptypes { if {[info exists portinfo($type)]} { @@ -3651,6 +3659,7 @@ set options(ports_search_depends_build) yes set options(ports_search_depends_lib) yes set options(ports_search_depends_run) yes + set options(ports_search_depends_test) yes } # Array to hold given filters @@ -4374,7 +4383,7 @@ array set cmd_opts_array { edit {{editor 1}} info {category categories conflicts depends_fetch depends_extract - depends_build depends_lib depends_run + depends_build depends_lib depends_run depends_test depends description epoch fullname heading homepage index license line long_description maintainer maintainers name patchfiles platform platforms portdir @@ -4384,7 +4393,7 @@ rdeps {index no-build full} rdependents {full} search {case-sensitive category categories depends_fetch - depends_extract depends_build depends_lib depends_run + depends_extract depends_build depends_lib depends_run depends_test depends description epoch exact glob homepage line long_description maintainer maintainers name platform platforms portdir regex revision variant variants version} Modified: trunk/base/src/port/portindex.tcl =================================================================== --- trunk/base/src/port/portindex.tcl 2015-09-20 13:17:47 UTC (rev 140487) +++ trunk/base/src/port/portindex.tcl 2015-09-20 13:43:33 UTC (rev 140488) @@ -271,7 +271,7 @@ set fd [open $tempportindex w] set save_prefix ${macports::prefix} foreach key {categories depends_fetch depends_extract depends_build \ - depends_lib depends_run description epoch homepage \ + depends_lib depends_run depends_test description epoch homepage \ long_description maintainers name platforms revision variants \ version portdir replaced_by license installs_libs conflicts} { set keepkeys($key) 1 Modified: trunk/base/src/port1.0/portdepends.tcl =================================================================== --- trunk/base/src/port1.0/portdepends.tcl 2015-09-20 13:17:47 UTC (rev 140487) +++ trunk/base/src/port1.0/portdepends.tcl 2015-09-20 13:43:33 UTC (rev 140488) @@ -38,15 +38,16 @@ } # define options -options depends_fetch depends_extract depends_build depends_run depends_lib depends +options depends_fetch depends_extract depends_build depends_run depends_lib depends_test depends # Export options via PortInfo -options_export depends_fetch depends_extract depends_build depends_lib depends_run +options_export depends_fetch depends_extract depends_build depends_lib depends_run depends_test option_proc depends_fetch portdepends::validate_depends_options option_proc depends_extract portdepends::validate_depends_options option_proc depends_build portdepends::validate_depends_options option_proc depends_run portdepends::validate_depends_options option_proc depends_lib portdepends::validate_depends_options +option_proc depends_test portdepends::validate_depends_options # New option for the new dependency. We generate a warning because we don't handle this yet. option_proc depends portdepends::validate_depends_options_new Modified: trunk/base/src/port1.0/portlint.tcl =================================================================== --- trunk/base/src/port1.0/portlint.tcl 2015-09-20 13:17:47 UTC (rev 140487) +++ trunk/base/src/port1.0/portlint.tcl 2015-09-20 13:43:33 UTC (rev 140488) @@ -339,8 +339,8 @@ global os.platform os.arch os.version version revision epoch \ description long_description platforms categories all_variants \ maintainers license homepage master_sites checksums patchfiles \ - depends_fetch depends_extract depends_lib depends_build \ - depends_run distfiles fetch.type lint_portsystem lint_platforms \ + depends_fetch depends_extract depends_lib depends_build depends_run \ + depends_test distfiles fetch.type lint_portsystem lint_platforms \ lint_required lint_optional replaced_by conflicts set portarch [get_canonical_archs] @@ -507,6 +507,9 @@ if {[info exists depends_run]} { lappend all_depends {*}$depends_run } + if {[info exists depends_test]} { + lappend all_depends {*}$depends_test + } foreach depspec $all_depends { set dep [lindex [split $depspec :] end] if {[catch {set res [mport_lookup $dep]} error]} { @@ -523,7 +526,7 @@ } # Check for multiple dependencies - foreach deptype {depends_extract depends_lib depends_build depends_run} { + foreach deptype {depends_extract depends_lib depends_build depends_run depends_test} { if {[info exists $deptype]} { array set depwarned {} foreach depspec [set $deptype] { Modified: trunk/base/src/port1.0/portutil.tcl =================================================================== --- trunk/base/src/port1.0/portutil.tcl 2015-09-20 13:17:47 UTC (rev 140487) +++ trunk/base/src/port1.0/portutil.tcl 2015-09-20 13:43:33 UTC (rev 140488) @@ -1444,8 +1444,7 @@ patch { set deptypes "depends_fetch depends_extract" } configure - build { set deptypes "depends_fetch depends_extract depends_lib depends_build" } - - test - + test { set deptypes "depends_fetch depends_extract depends_lib depends_build depends_run depends_test" } destroot - dmg - pkg - Modified: trunk/base/src/registry2.0/portuninstall.tcl =================================================================== --- trunk/base/src/registry2.0/portuninstall.tcl 2015-09-20 13:17:47 UTC (rev 140487) +++ trunk/base/src/registry2.0/portuninstall.tcl 2015-09-20 13:43:33 UTC (rev 140488) @@ -44,7 +44,7 @@ # generate list of all dependencies of the port proc generate_deplist {port {optslist ""}} { - set deptypes {depends_fetch depends_extract depends_build depends_lib depends_run} + set deptypes {depends_fetch depends_extract depends_build depends_lib depends_run depends_test} set all_dependencies {} # look up deps from the saved portfile if possible if {![catch {set mport [mportopen_installed [$port name] [$port version] [$port revision] [$port variants] $optslist]}]} {