Changeset 51135


Ignore:
Timestamp:
May 19, 2009, 3:59:01 AM (11 years ago)
Author:
jmr@…
Message:

make findBinary available in port1.0 and use autoconf paths for a bunch of stuff (see #18149)

Location:
trunk/base
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/base/configure

    r50747 r51135  
    716716OPEN
    717717XAR
     718PAX
    718719BZIP2
    719720GNUMAKE
     
    722723LAUNCHCTL
    723724HAVE_LAUNCHD
     725HDIUTIL
    724726MAKE
     727ZIP
     728UNZIP
    725729TAR
    726730SED
    727731RSYNC
     732RMDIR
     733GZIP
    728734GIT
    729735SVN
    730736CVS
     737CP
    731738MTREE
    732739LN_S
     
    37443751
    37453752
     3753# Extract the first word of "cp", so it can be a program name with args.
     3754set dummy cp; ac_word=$2
     3755{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
     3756$as_echo_n "checking for $ac_word... " >&6; }
     3757if test "${ac_cv_path_CP+set}" = set; then
     3758  $as_echo_n "(cached) " >&6
     3759else
     3760  case $CP in
     3761  [\\/]* | ?:[\\/]*)
     3762  ac_cv_path_CP="$CP" # Let the user override the test with a path.
     3763  ;;
     3764  *)
     3765  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
     3766for as_dir in $PATH
     3767do
     3768  IFS=$as_save_IFS
     3769  test -z "$as_dir" && as_dir=.
     3770  for ac_exec_ext in '' $ac_executable_extensions; do
     3771  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     3772    ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext"
     3773    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     3774    break 2
     3775  fi
     3776done
     3777done
     3778IFS=$as_save_IFS
     3779
     3780  ;;
     3781esac
     3782fi
     3783CP=$ac_cv_path_CP
     3784if test -n "$CP"; then
     3785  { $as_echo "$as_me:$LINENO: result: $CP" >&5
     3786$as_echo "$CP" >&6; }
     3787else
     3788  { $as_echo "$as_me:$LINENO: result: no" >&5
     3789$as_echo "no" >&6; }
     3790fi
     3791
     3792
    37463793# Extract the first word of "cvs", so it can be a program name with args.
    37473794set dummy cvs; ac_word=$2
     
    38643911
    38653912
     3913# Extract the first word of "gzip", so it can be a program name with args.
     3914set dummy gzip; ac_word=$2
     3915{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
     3916$as_echo_n "checking for $ac_word... " >&6; }
     3917if test "${ac_cv_path_GZIP+set}" = set; then
     3918  $as_echo_n "(cached) " >&6
     3919else
     3920  case $GZIP in
     3921  [\\/]* | ?:[\\/]*)
     3922  ac_cv_path_GZIP="$GZIP" # Let the user override the test with a path.
     3923  ;;
     3924  *)
     3925  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
     3926for as_dir in $PATH
     3927do
     3928  IFS=$as_save_IFS
     3929  test -z "$as_dir" && as_dir=.
     3930  for ac_exec_ext in '' $ac_executable_extensions; do
     3931  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     3932    ac_cv_path_GZIP="$as_dir/$ac_word$ac_exec_ext"
     3933    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     3934    break 2
     3935  fi
     3936done
     3937done
     3938IFS=$as_save_IFS
     3939
     3940  ;;
     3941esac
     3942fi
     3943GZIP=$ac_cv_path_GZIP
     3944if test -n "$GZIP"; then
     3945  { $as_echo "$as_me:$LINENO: result: $GZIP" >&5
     3946$as_echo "$GZIP" >&6; }
     3947else
     3948  { $as_echo "$as_me:$LINENO: result: no" >&5
     3949$as_echo "no" >&6; }
     3950fi
     3951
     3952
     3953# Extract the first word of "rmdir", so it can be a program name with args.
     3954set dummy rmdir; ac_word=$2
     3955{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
     3956$as_echo_n "checking for $ac_word... " >&6; }
     3957if test "${ac_cv_path_RMDIR+set}" = set; then
     3958  $as_echo_n "(cached) " >&6
     3959else
     3960  case $RMDIR in
     3961  [\\/]* | ?:[\\/]*)
     3962  ac_cv_path_RMDIR="$RMDIR" # Let the user override the test with a path.
     3963  ;;
     3964  *)
     3965  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
     3966for as_dir in $PATH
     3967do
     3968  IFS=$as_save_IFS
     3969  test -z "$as_dir" && as_dir=.
     3970  for ac_exec_ext in '' $ac_executable_extensions; do
     3971  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     3972    ac_cv_path_RMDIR="$as_dir/$ac_word$ac_exec_ext"
     3973    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     3974    break 2
     3975  fi
     3976done
     3977done
     3978IFS=$as_save_IFS
     3979
     3980  ;;
     3981esac
     3982fi
     3983RMDIR=$ac_cv_path_RMDIR
     3984if test -n "$RMDIR"; then
     3985  { $as_echo "$as_me:$LINENO: result: $RMDIR" >&5
     3986$as_echo "$RMDIR" >&6; }
     3987else
     3988  { $as_echo "$as_me:$LINENO: result: no" >&5
     3989$as_echo "no" >&6; }
     3990fi
     3991
     3992
    38663993# Extract the first word of "rsync", so it can be a program name with args.
    38673994set dummy rsync; ac_word=$2
     
    39844111
    39854112
     4113# Extract the first word of "unzip", so it can be a program name with args.
     4114set dummy unzip; ac_word=$2
     4115{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
     4116$as_echo_n "checking for $ac_word... " >&6; }
     4117if test "${ac_cv_path_UNZIP+set}" = set; then
     4118  $as_echo_n "(cached) " >&6
     4119else
     4120  case $UNZIP in
     4121  [\\/]* | ?:[\\/]*)
     4122  ac_cv_path_UNZIP="$UNZIP" # Let the user override the test with a path.
     4123  ;;
     4124  *)
     4125  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
     4126for as_dir in $PATH
     4127do
     4128  IFS=$as_save_IFS
     4129  test -z "$as_dir" && as_dir=.
     4130  for ac_exec_ext in '' $ac_executable_extensions; do
     4131  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     4132    ac_cv_path_UNZIP="$as_dir/$ac_word$ac_exec_ext"
     4133    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     4134    break 2
     4135  fi
     4136done
     4137done
     4138IFS=$as_save_IFS
     4139
     4140  ;;
     4141esac
     4142fi
     4143UNZIP=$ac_cv_path_UNZIP
     4144if test -n "$UNZIP"; then
     4145  { $as_echo "$as_me:$LINENO: result: $UNZIP" >&5
     4146$as_echo "$UNZIP" >&6; }
     4147else
     4148  { $as_echo "$as_me:$LINENO: result: no" >&5
     4149$as_echo "no" >&6; }
     4150fi
     4151
     4152
     4153# Extract the first word of "zip", so it can be a program name with args.
     4154set dummy zip; ac_word=$2
     4155{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
     4156$as_echo_n "checking for $ac_word... " >&6; }
     4157if test "${ac_cv_path_ZIP+set}" = set; then
     4158  $as_echo_n "(cached) " >&6
     4159else
     4160  case $ZIP in
     4161  [\\/]* | ?:[\\/]*)
     4162  ac_cv_path_ZIP="$ZIP" # Let the user override the test with a path.
     4163  ;;
     4164  *)
     4165  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
     4166for as_dir in $PATH
     4167do
     4168  IFS=$as_save_IFS
     4169  test -z "$as_dir" && as_dir=.
     4170  for ac_exec_ext in '' $ac_executable_extensions; do
     4171  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     4172    ac_cv_path_ZIP="$as_dir/$ac_word$ac_exec_ext"
     4173    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     4174    break 2
     4175  fi
     4176done
     4177done
     4178IFS=$as_save_IFS
     4179
     4180  ;;
     4181esac
     4182fi
     4183ZIP=$ac_cv_path_ZIP
     4184if test -n "$ZIP"; then
     4185  { $as_echo "$as_me:$LINENO: result: $ZIP" >&5
     4186$as_echo "$ZIP" >&6; }
     4187else
     4188  { $as_echo "$as_me:$LINENO: result: no" >&5
     4189$as_echo "no" >&6; }
     4190fi
     4191
     4192
    39864193# Extract the first word of "make", so it can be a program name with args.
    39874194set dummy make; ac_word=$2
     
    40184225  { $as_echo "$as_me:$LINENO: result: $MAKE" >&5
    40194226$as_echo "$MAKE" >&6; }
     4227else
     4228  { $as_echo "$as_me:$LINENO: result: no" >&5
     4229$as_echo "no" >&6; }
     4230fi
     4231
     4232
     4233# Extract the first word of "hdiutil", so it can be a program name with args.
     4234set dummy hdiutil; ac_word=$2
     4235{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
     4236$as_echo_n "checking for $ac_word... " >&6; }
     4237if test "${ac_cv_path_HDIUTIL+set}" = set; then
     4238  $as_echo_n "(cached) " >&6
     4239else
     4240  case $HDIUTIL in
     4241  [\\/]* | ?:[\\/]*)
     4242  ac_cv_path_HDIUTIL="$HDIUTIL" # Let the user override the test with a path.
     4243  ;;
     4244  *)
     4245  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
     4246for as_dir in $PATH
     4247do
     4248  IFS=$as_save_IFS
     4249  test -z "$as_dir" && as_dir=.
     4250  for ac_exec_ext in '' $ac_executable_extensions; do
     4251  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     4252    ac_cv_path_HDIUTIL="$as_dir/$ac_word$ac_exec_ext"
     4253    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     4254    break 2
     4255  fi
     4256done
     4257done
     4258IFS=$as_save_IFS
     4259
     4260  ;;
     4261esac
     4262fi
     4263HDIUTIL=$ac_cv_path_HDIUTIL
     4264if test -n "$HDIUTIL"; then
     4265  { $as_echo "$as_me:$LINENO: result: $HDIUTIL" >&5
     4266$as_echo "$HDIUTIL" >&6; }
    40204267else
    40214268  { $as_echo "$as_me:$LINENO: result: no" >&5
     
    42674514  { $as_echo "$as_me:$LINENO: result: $BZIP2" >&5
    42684515$as_echo "$BZIP2" >&6; }
     4516else
     4517  { $as_echo "$as_me:$LINENO: result: no" >&5
     4518$as_echo "no" >&6; }
     4519fi
     4520
     4521
     4522# Extract the first word of "pax", so it can be a program name with args.
     4523set dummy pax; ac_word=$2
     4524{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
     4525$as_echo_n "checking for $ac_word... " >&6; }
     4526if test "${ac_cv_path_PAX+set}" = set; then
     4527  $as_echo_n "(cached) " >&6
     4528else
     4529  case $PAX in
     4530  [\\/]* | ?:[\\/]*)
     4531  ac_cv_path_PAX="$PAX" # Let the user override the test with a path.
     4532  ;;
     4533  *)
     4534  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
     4535for as_dir in $PATH
     4536do
     4537  IFS=$as_save_IFS
     4538  test -z "$as_dir" && as_dir=.
     4539  for ac_exec_ext in '' $ac_executable_extensions; do
     4540  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     4541    ac_cv_path_PAX="$as_dir/$ac_word$ac_exec_ext"
     4542    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     4543    break 2
     4544  fi
     4545done
     4546done
     4547IFS=$as_save_IFS
     4548
     4549  ;;
     4550esac
     4551fi
     4552PAX=$ac_cv_path_PAX
     4553if test -n "$PAX"; then
     4554  { $as_echo "$as_me:$LINENO: result: $PAX" >&5
     4555$as_echo "$PAX" >&6; }
    42694556else
    42704557  { $as_echo "$as_me:$LINENO: result: no" >&5
  • trunk/base/configure.ac

    r50747 r51135  
    8585AC_PROG_LN_S
    8686AC_PATH_PROG(MTREE, [mtree], [], [$PATH:/usr/sbin])
     87AC_PATH_PROG(CP, [cp], [])
    8788AC_PATH_PROG(CVS, [cvs], [])
    8889AC_PATH_PROG(SVN, [svn], [])
    8990AC_PATH_PROG(GIT, [git], [])
     91AC_PATH_PROG(GZIP, [gzip], [])
     92AC_PATH_PROG(RMDIR, [rmdir], [])
    9093AC_PATH_PROG(RSYNC, [rsync], [])
    9194AC_PATH_PROG(SED, [sed])
    9295AC_PATH_PROG(TAR, [tar])
     96AC_PATH_PROG(UNZIP, [unzip])
     97AC_PATH_PROG(ZIP, [zip])
    9398AC_PATH_PROG(MAKE, [make])
     99AC_PATH_PROG(HDIUTIL, [hdiutil], [])
    94100AC_CHECK_PROG(HAVE_LAUNCHD, [launchd], [yes], [])
    95101AC_PATH_PROG(LAUNCHCTL, [launchctl], [])
     
    98104AC_PATH_PROGS(GNUMAKE, [gnumake gmake], [], [$PATH:/usr/local/bin])
    99105AC_PATH_PROG(BZIP2, [bzip2], [])
     106AC_PATH_PROG(PAX, [pax], [])
    100107AC_PATH_PROG(XAR, [xar], [])
    101108AC_PATH_PROG(OPEN, [open], [])
  • trunk/base/src/macports1.0/macports_autoconf.tcl.in

    r47776 r51135  
    3333
    3434namespace eval macports::autoconf {
     35    variable gzip_path "@GZIP@"
    3536    variable macports_conf_path "@MPCONFIGDIR_EXPANDED@"
    3637    variable macports_version "@MACPORTS_VERSION@"
    3738    variable macports_user_dir "~/.macports"
     39    variable open_path "@OPEN@"
    3840    variable rsync_path "@RSYNC@"
    39     variable open_path "@OPEN@"
     41    variable tar_command "@TAR_CMD@"
     42    variable tar_path "@TAR@"
    4043}
  • trunk/base/src/package1.0/portarchive.tcl

    r50416 r51135  
    171171                cp(io|gz) {
    172172                        set pax "pax"
    173                         if {[catch {set pax [binaryInPath $pax]} errmsg] == 0} {
     173                        if {[catch {set pax [findBinary $pax ${portutil::autoconf::pax_path}]} errmsg] == 0} {
    174174                                ui_debug "Using $pax"
    175175                                set archive.cmd "$pax"
     
    177177                                if {[regexp {z$} ${archive.type}]} {
    178178                                        set gzip "gzip"
    179                                         if {[catch {set gzip [binaryInPath $gzip]} errmsg] == 0} {
     179                                        if {[catch {set gzip [findBinary $gzip ${portutil::autoconf::gzip_path}]} errmsg] == 0} {
    180180                                                ui_debug "Using $gzip"
    181181                                                set archive.args {.}
     
    195195                t(ar|bz|lz|gz) {
    196196                        set tar "tar"
    197                         if {[catch {set tar [binaryInPath $tar]} errmsg] == 0} {
     197                        if {[catch {set tar [findBinary $tar ${portutil::autoconf::tar_path}]} errmsg] == 0} {
    198198                                ui_debug "Using $tar"
    199199                                set archive.cmd "$tar"
     
    210210                                                set level 9
    211211                                        }
    212                                         if {[catch {set gzip [binaryInPath $gzip]} errmsg] == 0} {
     212                                        if {[info exists portutil::autoconf::${gzip}_path]} {
     213                                            set hint [set portutil::autoconf::${gzip}_path]
     214                                        } else {
     215                                            set hint ""
     216                                        }
     217                                        if {[catch {set gzip [findBinary $gzip $hint]} errmsg] == 0} {
    213218                                                ui_debug "Using $gzip"
    214219                                                set archive.args {- .}
     
    228233                xar {
    229234                        set xar "xar"
    230                         if {[catch {set xar [binaryInPath $xar]} errmsg] == 0} {
     235                        if {[catch {set xar [findBinary $xar ${portutil::autoconf::xar_path}]} errmsg] == 0} {
    231236                                ui_debug "Using $xar"
    232237                                set archive.cmd "$xar"
     
    241246                        set xar "xar"
    242247                        set compression "bzip2"
    243                         if {[catch {set xar [binaryInPath $xar]} errmsg] == 0} {
     248                        if {[catch {set xar [findBinary $xar ${portutil::autoconf::xar_path}]} errmsg] == 0} {
    244249                                ui_debug "Using $xar"
    245250                                set archive.cmd "$xar"
     
    253258                zip {
    254259                        set zip "zip"
    255                         if {[catch {set zip [binaryInPath $zip]} errmsg] == 0} {
     260                        if {[catch {set zip [findBinary $zip ${portutil::autoconf::zip_path}]} errmsg] == 0} {
    256261                                ui_debug "Using $zip"
    257262                                set archive.cmd "$zip"
  • trunk/base/src/package1.0/portunarchive.tcl

    r50416 r51135  
    171171                cp(io|gz) {
    172172                        set pax "pax"
    173                         if {[catch {set pax [binaryInPath $pax]} errmsg] == 0} {
     173                        if {[catch {set pax [findBinary $pax ${portutil::autoconf::pax_path}]} errmsg] == 0} {
    174174                                ui_debug "Using $pax"
    175175                                set unarchive.cmd "$pax"
     
    182182                                        set unarchive.args {.}
    183183                                        set gzip "gzip"
    184                                         if {[catch {set gzip [binaryInPath $gzip]} errmsg] == 0} {
     184                                        if {[catch {set gzip [findBinary $gzip ${portutil::autoconf::gzip_path}]} errmsg] == 0} {
    185185                                                ui_debug "Using $gzip"
    186186                                                set unarchive.pipe_cmd "$gzip -d -c ${unarchive.path} |"
     
    199199                t(ar|bz|lz|gz) {
    200200                        set tar "tar"
    201                         if {[catch {set tar [binaryInPath $tar]} errmsg] == 0} {
     201                        if {[catch {set tar [findBinary $tar ${portutil::autoconf::tar_path}]} errmsg] == 0} {
    202202                                ui_debug "Using $tar"
    203203                                set unarchive.cmd "$tar"
     
    212212                                                set gzip "gzip"
    213213                                        }
    214                                         if {[catch {set gzip [binaryInPath $gzip]} errmsg] == 0} {
     214                                        if {[info exists portutil::autoconf::${gzip}_path]} {
     215                                            set hint [set portutil::autoconf::${gzip}_path]
     216                                        } else {
     217                                            set hint ""
     218                                        }
     219                                        if {[catch {set gzip [findBinary $gzip $hint]} errmsg] == 0} {
    215220                                                ui_debug "Using $gzip"
    216221                                                set unarchive.pipe_cmd "$gzip -d -c ${unarchive.path} |"
     
    229234                xar {
    230235                        set xar "xar"
    231                         if {[catch {set xar [binaryInPath $xar]} errmsg] == 0} {
     236                        if {[catch {set xar [findBinary $xar ${portutil::autoconf::xar_path}]} errmsg] == 0} {
    232237                                ui_debug "Using $xar"
    233238                                set unarchive.cmd "$xar"
     
    241246                zip {
    242247                        set unzip "unzip"
    243                         if {[catch {set unzip [binaryInPath $unzip]} errmsg] == 0} {
     248                        if {[catch {set unzip [findBinary $unzip ${portutil::autoconf::unzip_path}]} errmsg] == 0} {
    244249                                ui_debug "Using $unzip"
    245250                                set unarchive.cmd "$unzip"
  • trunk/base/src/port/portindex.tcl

    r50727 r51135  
    6161            cd [file join $directory [file dirname $portinfo(portdir)]]
    6262            puts "Archiving port $portinfo(name) to [file join $outdir $portinfo(portarchive)]"
    63             if {[catch {exec tar -cf - [file tail $portdir] | gzip -c >[file join $outdir $portinfo(portarchive)]} result]} {
     63            set tar [findBinary tar $macports::autoconf::tar_path]
     64            set gzip [findBinary gzip $macports::autoconf::gzip_path]
     65            if {[catch {exec $tar -cf - [file tail $portdir] | $gzip -c >[file join $outdir $portinfo(portarchive)]} result]} {
    6466                puts stderr "Failed to create port archive $portinfo(portarchive): $result"
    6567                exit 1
  • trunk/base/src/port1.0/port_autoconf.tcl.in

    r50573 r51135  
    3232
    3333namespace eval portutil::autoconf {
     34        variable bzip2_path "@BZIP2@"
     35        variable cp_path "@CP@"
    3436        variable cvs_path "@CVS@"
    3537        variable svn_path "@SVN@"
    3638        variable git_path "@GIT@"
     39        variable gzip_path "@GZIP@"
     40        variable rmdir_path "@RMDIR@"
    3741        variable rsync_path "@RSYNC@"
     42        variable unzip_path "@UNZIP@"
     43        variable zip_path "@ZIP@"
    3844        variable mtree_path "@MTREE@"
     45        variable pax_path "@PAX@"
    3946        variable xar_path "@XAR@"
    4047        variable sed_command "@SED@"
    4148        variable sed_ext_flag "@SED_EXT@"
    4249        variable tar_command "@TAR_CMD@"
     50        variable tar_path "@TAR@"
     51        variable hdiutil_path "@HDIUTIL@"
    4352        variable have_launchd "@HAVE_LAUNCHD@"
    4453        variable launchctl_path "@LAUNCHCTL@"
  • trunk/base/src/port1.0/portdestroot.tcl

    r50562 r51135  
    183183    if {![regexp {darwin6} "${os.platform}${os.version}"]} {
    184184        set manpath "${destroot}${prefix}/share/man"
     185        set gzip [findBinary gzip ${portutil::autoconf::gzip_path}]
     186        set gunzip "$gzip -d"
     187        set bunzip2 "[findBinary bzip2 ${portutil::autoconf::bzip2_path}] -d"
    185188        if {[file isdirectory ${manpath}] && [file type ${manpath}] == "directory"} {
    186189            ui_info "$UI_PREFIX [format [msgcat::mc "Compressing man pages for %s"] ${portname}]"
     
    198201                                set found 1
    199202                                system "cd ${manpath} && \
    200                                 gunzip -f [file join ${mandir} ${gzfile}] && \
    201                                 gzip -9vf [file join ${mandir} ${manfile}]"
     203                                $gunzip -f [file join ${mandir} ${gzfile}] && \
     204                                $gzip -9vf [file join ${mandir} ${manfile}]"
    202205                            } elseif {[regexp "^(.*\[.\]${manindex}\[a-z\]*)\[.\]bz2\$" ${manfile} bz2file manfile]} {
    203206                                set found 1
    204207                                system "cd ${manpath} && \
    205                                 bunzip2 -f [file join ${mandir} ${bz2file}] && \
    206                                 gzip -9vf [file join ${mandir} ${manfile}]"
     208                                $bunzip2 -f [file join ${mandir} ${bz2file}] && \
     209                                $gzip -9vf [file join ${mandir} ${manfile}]"
    207210                            } elseif {[regexp "\[.\]${manindex}\[a-z\]*\$" ${manfile}]} {
    208211                                set found 1
    209212                                system "cd ${manpath} && \
    210                                 gzip -9vf [file join ${mandir} ${manfile}]"
     213                                $gzip -9vf [file join ${mandir} ${manfile}]"
    211214                            }
    212215                            set gzmanfile ${manfile}.gz
  • trunk/base/src/port1.0/portextract.tcl

    r50562 r51135  
    5454
    5555default extract.dir {${workpath}}
    56 default extract.cmd gzip
     56default extract.cmd {[findBinary gzip ${portutil::autoconf::gzip_path}]}
    5757default extract.pre_args -dc
    5858default extract.post_args {"| ${portutil::autoconf::tar_command} -xf -"}
     
    8686
    8787    if {[tbool use_bzip2]} {
    88         option extract.cmd [binaryInPath "bzip2"]
     88        option extract.cmd [findBinary bzip2 ${portutil::autoconf::bzip2_path}]
    8989    } elseif {[tbool use_lzma]} {
    9090        option extract.cmd [binaryInPath "lzma"]
    9191    } elseif {[tbool use_zip]} {
    92         option extract.cmd [binaryInPath "unzip"]
     92        option extract.cmd [findBinary unzip ${portutil::autoconf::unzip_path}]
    9393        option extract.pre_args -q
    9494        option extract.post_args "-d [option extract.dir]"
     
    102102        set dmg_mount ${dmg_tmp_dir}/${worksrcdir}
    103103        file mkdir ${dmg_mount}
    104         option extract.cmd [binaryInPath "hdiutil"]
     104        option extract.cmd [findBinary hdiutil ${portutil::autoconf::hdiutil_path}]
    105105        option extract.pre_args attach
    106         option extract.post_args "-private -readonly -nobrowse -mountpoint ${dmg_mount} && [binaryInPath "cp"] -Rp ${dmg_mount} ${extract.dir} && ${extract.cmd} detach ${dmg_mount} && [binaryInPath "rmdir"] ${dmg_mount} ${dmg_tmp_dir}"
     106        option extract.post_args "-private -readonly -nobrowse -mountpoint ${dmg_mount} && [findBinary cp  ${portutil::autoconf::cp_path}] -Rp ${dmg_mount} ${extract.dir} && ${extract.cmd} detach ${dmg_mount} && [findBinary rmdir  ${portutil::autoconf::rmdir_path}] ${dmg_mount} ${dmg_tmp_dir}"
    107107    }
    108108}
  • trunk/base/src/port1.0/portutil.tcl

    r50721 r51135  
    21892189}
    21902190
     2191# find a binary either in a path defined at MacPorts' configuration time
     2192# or in the PATH environment variable through binaryInPath (fallback)
     2193proc findBinary {prog {autoconf_hint ""}} {
     2194    if {${autoconf_hint} != "" && [file executable ${autoconf_hint}]} {
     2195        return ${autoconf_hint}
     2196    } else {
     2197        if {[catch {set cmd_path [binaryInPath ${prog}]} result] == 0} {
     2198            return ${cmd_path}
     2199        } else {
     2200            return -code error "${result} or at its MacPorts configuration time location, did you move it?"
     2201        }
     2202    }
     2203}
     2204
    21912205# Set the UI prefix to something standard (so it can be grepped for in output)
    21922206proc set_ui_prefix {} {
     
    22212235        cp(io|gz) {
    22222236            set pax "pax"
    2223             if {[catch {set pax [binaryInPath $pax]} errmsg] == 0} {
     2237            if {[catch {set pax [findBinary $pax ${portutil::autoconf::pax_path}]} errmsg] == 0} {
    22242238                if {[regexp {z$} $type]} {
    22252239                    set gzip "gzip"
    2226                     if {[catch {set gzip [binaryInPath $gzip]} errmsg] == 0} {
     2240                    if {[catch {set gzip [findBinary $gzip ${portutil::autoconf::gzip_path}]} errmsg] == 0} {
    22272241                        return 0
    22282242                    }
     
    22342248        t(ar|bz|lz|gz) {
    22352249            set tar "tar"
    2236             if {[catch {set tar [binaryInPath $tar]} errmsg] == 0} {
     2250            if {[catch {set tar [findBinary $tar ${portutil::autoconf::tar_path}]} errmsg] == 0} {
    22372251                if {[regexp {z2?$} $type]} {
    22382252                    if {[regexp {bz2?$} $type]} {
     
    22432257                        set gzip "gzip"
    22442258                    }
    2245                     if {[catch {set gzip [binaryInPath $gzip]} errmsg] == 0} {
     2259                    if {[info exists portutil::autoconf::${gzip}_path]} {
     2260                        set hint [set portutil::autoconf::${gzip}_path]
     2261                    } else {
     2262                        set hint ""
     2263                    }
     2264                    if {[catch {set gzip [findBinary $gzip $hint]} errmsg] == 0} {
    22462265                        return 0
    22472266                    }
     
    22532272        xar {
    22542273            set xar "xar"
    2255             if {[catch {set xar [binaryInPath $xar]} errmsg] == 0} {
     2274            if {[catch {set xar [findBinary $xar ${portutil::autoconf::xar_path}]} errmsg] == 0} {
    22562275                return 0
    22572276            }
     
    22592278        zip {
    22602279            set zip "zip"
    2261             if {[catch {set zip [binaryInPath $zip]} errmsg] == 0} {
     2280            if {[catch {set zip [findBinary $zip ${portutil::autoconf::zip_path}]} errmsg] == 0} {
    22622281                set unzip "unzip"
    2263                 if {[catch {set unzip [binaryInPath $unzip]} errmsg] == 0} {
     2282                if {[catch {set unzip [findBinary $unzip ${portutil::autoconf::unzip_path}]} errmsg] == 0} {
    22642283                    return 0
    22652284                }
Note: See TracChangeset for help on using the changeset viewer.