Changeset 51780


Ignore:
Timestamp:
Jun 3, 2009, 6:29:12 AM (11 years ago)
Author:
jmr@…
Message:

Add depends_fetch and depends_extract options (#15161)

Location:
trunk/base
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/base/portmgr/jobs/PortIndex2MySQL.tcl

    r44181 r51780  
    290290        set variants ""
    291291    }
     292    if {[info exists portinfo(depends_fetch)]} {
     293        set depends_fetch $portinfo(depends_fetch)
     294    } else {
     295        set depends_fetch ""
     296    }
     297    if {[info exists portinfo(depends_extract)]} {
     298        set depends_extract $portinfo(depends_extract)
     299    } else {
     300        set depends_extract ""
     301    }
    292302    if {[info exists portinfo(depends_build)]} {
    293303        set depends_build $portinfo(depends_build)
     
    327337    }
    328338
     339    foreach fetch_dep $depends_fetch {
     340        set fetch_dep [sql_escape $fetch_dep]
     341        puts $sqlfile_fd "INSERT INTO dependencies VALUES ('$portname', '$fetch_dep');"
     342    }
     343   
     344    foreach extract_dep $depends_extract {
     345        set extract_dep [sql_escape $extract_dep]
     346        puts $sqlfile_fd "INSERT INTO dependencies VALUES ('$portname', '$extract_dep');"
     347    }
     348
    329349    foreach build_dep $depends_build {
    330350        set build_dep [sql_escape $build_dep]
  • trunk/base/portmgr/packaging/dpkgall.tcl

    r49059 r51780  
    876876                        eval "lappend depends $portinfo(depends_build)"
    877877                }
     878                if {$includeBuildDeps == "true" && [info exists portinfo(depends_fetch)]} {
     879                        eval "lappend depends $portinfo(depends_fetch)"
     880                }
     881                if {$includeBuildDeps == "true" && [info exists portinfo(depends_extract)]} {
     882                        eval "lappend depends $portinfo(depends_extract)"
     883                }
    878884                foreach depspec $depends {
    879885                        set dep [lindex [split $depspec :] end]
  • trunk/base/portmgr/packaging/packageall.tcl

    r49059 r51780  
    150150                        eval "lappend depends $portinfo(depends_build)"
    151151                }
     152                if {$includeBuildDeps != "" && [info exists portinfo(depends_fetch)]} {
     153                        eval "lappend depends $portinfo(depends_fetch)"
     154                }
     155                if {$includeBuildDeps != "" && [info exists portinfo(depends_extract)]} {
     156                        eval "lappend depends $portinfo(depends_extract)"
     157                }
     158               
    152159                foreach depspec $depends {
    153160                        set dep [lindex [split $depspec :] end]
  • trunk/base/portmgr/packaging/rpmall.tcl

    r49059 r51780  
    155155                        eval "lappend depends $portinfo(depends_build)"
    156156                }
     157                if {$includeBuildDeps != "" && [info exists portinfo(depends_fetch)]} {
     158                        eval "lappend depends $portinfo(depends_fetch)"
     159                }
     160                if {$includeBuildDeps != "" && [info exists portinfo(depends_extract)]} {
     161                        eval "lappend depends $portinfo(depends_extract)"
     162                }
    157163                foreach depspec $depends {
    158164                        set dep [lindex [split $depspec :] end]
  • trunk/base/src/macports1.0/macports.tcl

    r51525 r51780  
    13911391    # XXX: need a more general way of comparing against targets
    13921392    set dlist {}
    1393     if {$target == "configure" || $target == "build"
     1393    if {   $target == "fetch" || $target == "checksum"
     1394        || $target == "extract" || $target == "patch"
     1395        || $target == "configure" || $target == "build"
    13941396        || $target == "test"
    13951397        || $target == "destroot" || $target == "install"
     
    19982000    # Determine deptypes to look for based on target
    19992001    switch $target {
     2002        fetch       -
     2003        checksum    { set deptypes "depends_fetch" }
     2004        extract     -
     2005        patch       { set deptypes "depends_fetch depends_extract" }
    20002006        configure   -
    2001         build       { set deptypes "depends_lib depends_build" }
     2007        build       { set deptypes "depends_fetch depends_extract depends_lib depends_build" }
    20022008
    20032009        test        -
     
    20132019        srpm        -
    20142020        dpkg        -
    2015         ""          { set deptypes "depends_lib depends_build depends_run" }
     2021        ""          { set deptypes "depends_fetch depends_extract depends_lib depends_build depends_run" }
    20162022    }
    20172023
     
    26192625
    26202626    # each dep type is upgraded
    2621     foreach dtype {depends_build depends_lib depends_run} {
     2627    foreach dtype {depends_fetch depends_extract depends_build depends_lib depends_run} {
    26222628        if {[info exists portinfo($dtype)]} {
    26232629            foreach i $portinfo($dtype) {
  • trunk/base/src/package1.0/portarchive.tcl

    r51521 r51780  
    434434            puts $sd "<requires>"
    435435            foreach {key type} {
     436                depends_fetch "fetch"
     437                depends_extract "extract"
    436438                depends_build "build"
    437439                depends_lib "library"
  • trunk/base/src/package1.0/portsrpm.tcl

    r51521 r51780  
    136136        array set portinfo $array
    137137       
    138         if {[info exists portinfo(depends_build)] || [info exists portinfo(depends_lib)]} {
    139             # get the union of depends_build and depends_lib
     138        if {[info exists portinfo(depends_fetch)] || [info exists portinfo(depends_extract)]
     139            || [info exists portinfo(depends_build)] || [info exists portinfo(depends_lib)]} {
     140            # get the union of depends_fetch, depends_extract, depends_build and depends_lib
    140141            # xxx: only examines the portfile component of the depspec
    141142            set depends {}
     143            if {[info exists portinfo(depends_fetch)]} { eval "lappend depends $portinfo(depends_fetch)" }
     144            if {[info exists portinfo(depends_extract)]} { eval "lappend depends $portinfo(depends_extract)" }
    142145            if {[info exists portinfo(depends_build)]} { eval "lappend depends $portinfo(depends_build)" }
    143146            if {[info exists portinfo(depends_lib)]} { eval "lappend depends $portinfo(depends_lib)" }
  • trunk/base/src/port/port-help.tcl

    r49752 r51780  
    140140which case all will be included.  If no fields are specified, a useful default
    141141set will be used.  The other options which do not correspond to fields are:
    142    --depends   An abbreviation for all three depends_* fields
     142   --depends   An abbreviation for all depends_* fields
    143143   --index     Do not read the Portfile, instead rely solely on the index
    144144               information. Note this option will prevent the information
  • trunk/base/src/port/port.tcl

    r51510 r51780  
    9595Additional pseudo-portnames start with...
    9696variants:, variant:, description:, depends:, depends_lib:, depends_run:,
    97 depends_build:, portdir:, homepage:, epoch:, platforms:, platform:, name:,
    98 long_description:, maintainers:, maintainer:, categories:, category:, version:,
    99 and revision:.
     97depends_build:, depends_fetch:, depends_extract:, portdir:, homepage:, epoch:,
     98platforms:, platform:, name:, long_description:, maintainers:, maintainer:,
     99categories:, category:, version:, and revision:.
    100100These each select a set of ports based on a regex search of metadata
    101101about the ports. In all such cases, a standard regex pattern following
     
    936936        ^depends_build:     -
    937937        ^depends_run:       -
     938        ^depends_extract:   -
     939        ^depends_fetch:     -
    938940        ^revision:          { # Handle special port selectors
    939941            advance
     
    949951        }
    950952
    951         ^depends:           { # A port selector shorthand for depends_lib, depends_build or depends_run
     953        ^depends:           { # A port selector shorthand for depends_{lib,build,run,fetch,extract}
    952954            advance
    953955
     
    958960            add_multiple_ports reslist [get_matching_ports $pat no regexp "depends_build"]
    959961            add_multiple_ports reslist [get_matching_ports $pat no regexp "depends_run"]
     962            add_multiple_ports reslist [get_matching_ports $pat no regexp "depends_extract"]
     963            add_multiple_ports reslist [get_matching_ports $pat no regexp "depends_fetch"]
    960964
    961965            set el 1
     
    14481452        array set list_map "
    14491453            categories      1
     1454            depends_fetch   1
     1455            depends_extract 1
    14501456            depends_build   1
    14511457            depends_lib     1
     
    14611467            heading     ""
    14621468            variants    Variants
     1469            depends_fetch "Fetch Dependencies"
     1470            depends_extract "Extract Dependencies"
    14631471            depends_build "Build Dependencies"
    14641472            depends_run "Runtime Dependencies"
     
    14781486            heading 0
    14791487            variants 22
     1488            depends_fetch 22
     1489            depends_extract 22
    14801490            depends_build 22
    14811491            depends_run 22
     
    14931503        if {[info exists options(ports_info_depends)] && $options(ports_info_depends) == "yes"} {
    14941504            array unset options ports_info_depends
     1505            set options(ports_info_depends_fetch) yes
     1506            set options(ports_info_depends_extract) yes
    14951507            set options(ports_info_depends_build) yes
    14961508            set options(ports_info_depends_lib) yes
     
    15391551                ports_info_skip_line
    15401552                ports_info_long_description ports_info_homepage
    1541                 ports_info_skip_line ports_info_depends_build
     1553                ports_info_skip_line ports_info_depends_fetch
     1554                ports_info_depends_extract ports_info_depends_build
    15421555                ports_info_depends_lib ports_info_depends_run
    15431556                ports_info_conflicts
     
    24582471    if {[info exists options(ports_search_depends)] && $options(ports_search_depends) == "yes"} {
    24592472        array unset options ports_search_depends
     2473        set options(ports_search_depends_fetch) yes
     2474        set options(ports_search_depends_extract) yes
    24602475        set options(ports_search_depends_build) yes
    24612476        set options(ports_search_depends_lib) yes
     
    30833098    edit        {{editor 1}}
    30843099    ed          {{editor 1}}
    3085     info        {category categories depends_build depends_lib depends_run
     3100    info        {category categories depends_fetch depends_extract
     3101                 depends_build depends_lib depends_run
    30863102                 depends description epoch fullname heading homepage index license
    30873103                 line long_description
    30883104                 maintainer maintainers name platform platforms portdir pretty
    30893105                 revision variant variants version}
    3090     search      {case-sensitive category categories depends_build depends_lib depends_run
     3106    search      {case-sensitive category categories depends_fetch
     3107                 depends_extract depends_build depends_lib depends_run
    30913108                 depends description epoch exact glob homepage line
    30923109                 long_description maintainer maintainers name platform
  • trunk/base/src/port/portindex.tcl

    r51135 r51780  
    6969        }
    7070
    71         set keepkeys {categories depends_build depends_lib depends_run description epoch homepage long_description maintainers name platforms revision variants version portdir}
     71        set keepkeys {categories depends_fetch depends_extract depends_build depends_lib depends_run description epoch homepage long_description maintainers name platforms revision variants version portdir}
    7272        foreach availkey [array names portinfo] {
    7373            if {[lsearch -exact ${keepkeys} $availkey] == -1} {
  • trunk/base/src/port1.0/portdepends.tcl

    r50562 r51780  
    3838
    3939# define options
    40 options depends_build depends_run depends_lib depends
     40options depends_fetch depends_extract depends_build depends_run depends_lib depends
    4141# Export options via PortInfo
    42 options_export depends_build depends_lib depends_run
     42options_export depends_fetch depends_extract depends_build depends_lib depends_run
    4343
     44option_proc depends_fetch portdepends::validate_depends_options
     45option_proc depends_extract portdepends::validate_depends_options
    4446option_proc depends_build portdepends::validate_depends_options
    4547option_proc depends_run portdepends::validate_depends_options
  • trunk/base/src/port1.0/portfetch.tcl

    r51574 r51780  
    129129option_proc fetch.type portfetch::set_fetch_type
    130130
    131 # We should probably add something like a depends_fetch; see #15161
    132131proc portfetch::set_extract_type {option action args} {
    133132    global extract.suffix
     
    139138            use_lzma {
    140139                set extract.suffix .tar.lzma
    141                 depends_build-append bin:lzma:lzmautils
     140                depends_extract-append bin:lzma:lzmautils
    142141            }
    143142            use_zip {
    144143                set extract.suffix .zip
    145                 depends_build-append bin:unzip:unzip
     144                depends_extract-append bin:unzip:unzip
    146145            }
    147146            use_7z {
    148147                set extract.suffix .7z
    149                 depends_build-append bin:7za:p7zip
     148                depends_extract-append bin:7za:p7zip
    150149            }
    151150            use_dmg {
     
    160159        switch $args {
    161160            cvs {
    162                 depends_build-append bin:cvs:cvs
     161                depends_fetch-append bin:cvs:cvs
    163162            }
    164163            svn {
    165                 depends_build-append bin:svn:subversion
     164                depends_fetch-append bin:svn:subversion
    166165            }
    167166            git {
    168                 depends_build-append bin:git:git-core
     167                depends_fetch-append bin:git:git-core
    169168            }
    170169            hg {
    171                 depends_build-append bin:hg:mercurial
     170                depends_fetch-append bin:hg:mercurial
    172171            }
    173172        }
  • trunk/base/src/port1.0/portlint.tcl

    r51572 r51780  
    267267    global description long_description platforms categories all_variants
    268268    global maintainers homepage master_sites checksums patchfiles
    269     global depends_lib depends_build depends_run distfiles fetch.type
     269    global depends_fetch depends_extract depends_lib depends_build depends_run distfiles fetch.type
    270270   
    271271    global lint_portsystem lint_platforms
     
    413413
    414414    set all_depends {}
     415    if {[info exists depends_fetch]} { eval "lappend all_depends $depends_fetch" }
     416    if {[info exists depends_extract]} { eval "lappend all_depends $depends_extract" }
    415417    if {[info exists depends_lib]} { eval "lappend all_depends $depends_lib" }
    416418    if {[info exists depends_build]} { eval "lappend all_depends $depends_build" }
  • trunk/base/src/port1.0/portutil.tcl

    r51570 r51780  
    12731273
    12741274                    # collect deps
    1275 
    1276                     # Don't check dependencies for extract (they're not honored
    1277                     # anyway). This avoids warnings about bzip2.
    1278                     if {$target != "extract"} {
    1279                         set depends {}
    1280                         set deptypes {}
    1281 
    1282                         # Determine deptypes to look for based on target
    1283                         switch $target {
    1284                             configure   -
    1285                             build       { set deptypes "depends_lib depends_build" }
    1286 
    1287                             test        -
    1288                             destroot    -
    1289                             install     -
    1290                             archive     -
    1291                             dmg         -
    1292                             pkg         -
    1293                             portpkg     -
    1294                             mpkg        -
    1295                             rpm         -
    1296                             srpm        -
    1297                             dpkg        -
    1298                             mdmg        -
    1299                             activate    -
    1300                             ""          { set deptypes "depends_lib depends_build depends_run" }
     1275                    set depends {}
     1276                    set deptypes {}
     1277
     1278                    # Determine deptypes to look for based on target
     1279                    switch $target {
     1280                        fetch       -
     1281                        checksum    { set deptypes "depends_fetch" }
     1282                        extract     -
     1283                        patch       { set deptypes "depends_fetch depends_extract" }
     1284                        configure   -
     1285                        build       { set deptypes "depends_fetch depends_extract depends_lib depends_build" }
     1286
     1287                        test        -
     1288                        destroot    -
     1289                        install     -
     1290                        archive     -
     1291                        dmg         -
     1292                        pkg         -
     1293                        portpkg     -
     1294                        mpkg        -
     1295                        rpm         -
     1296                        srpm        -
     1297                        dpkg        -
     1298                        mdmg        -
     1299                        activate    -
     1300                        ""          { set deptypes "depends_fetch depends_extract depends_lib depends_build depends_run" }
     1301                    }
     1302
     1303                    # Gather the dependencies for deptypes
     1304                    foreach deptype $deptypes {
     1305                        # Add to the list of dependencies if the option exists and isn't empty.
     1306                        if {[info exists PortInfo($deptype)] && $PortInfo($deptype) != ""} {
     1307                            set depends [concat $depends $PortInfo($deptype)]
    13011308                        }
    1302 
    1303                         # Gather the dependencies for deptypes
    1304                         foreach deptype $deptypes {
    1305                             # Add to the list of dependencies if the option exists and isn't empty.
    1306                             if {[info exists PortInfo($deptype)] && $PortInfo($deptype) != ""} {
    1307                                 set depends [concat $depends $PortInfo($deptype)]
    1308                             }
    1309                         }
    1310 
    1311                         # Dependencies are in the form verb:[param:]port
    1312                         set depsPorts {}
    1313                         foreach depspec $depends {
    1314                             # grab the portname portion of the depspec
    1315                             set dep_portname [lindex [split $depspec :] end]
    1316                             lappend depsPorts $dep_portname
    1317                         }
    1318 
    1319                         # always allow gzip in destroot as it is used to compress man pages
    1320                         if {$target == "destroot"} {
    1321                             lappend depsPorts "gzip"
    1322                         }
    1323 
    1324                         set portlist $depsPorts
    1325                         foreach depName $depsPorts {
    1326                             set portlist [recursive_collect_deps $depName $deptypes $portlist]
    1327                         }
    1328 
    1329                         if {[llength $deptypes] > 0} {tracelib setdeps $portlist}
    13301309                    }
     1310
     1311                    # Dependencies are in the form verb:[param:]port
     1312                    set depsPorts {}
     1313                    foreach depspec $depends {
     1314                        # grab the portname portion of the depspec
     1315                        set dep_portname [lindex [split $depspec :] end]
     1316                        lappend depsPorts $dep_portname
     1317                    }
     1318
     1319                    set portlist $depsPorts
     1320                    foreach depName $depsPorts {
     1321                        set portlist [recursive_collect_deps $depName $deptypes $portlist]
     1322                    }
     1323
     1324                    if {[llength $deptypes] > 0} {tracelib setdeps $portlist}
    13311325                }
    13321326
Note: See TracChangeset for help on using the changeset viewer.