[89609] trunk/dports/_resources/port1.0/group/php5pear-1.0.tcl
pixilla at macports.org
pixilla at macports.org
Fri Feb 3 15:25:15 PST 2012
Revision: 89609
http://trac.macports.org/changeset/89609
Author: pixilla at macports.org
Date: 2012-02-03 15:25:15 -0800 (Fri, 03 Feb 2012)
Log Message:
-----------
_resources/port1.0/group:
- Use command_exec in favor system.
Modified Paths:
--------------
trunk/dports/_resources/port1.0/group/php5pear-1.0.tcl
Modified: trunk/dports/_resources/port1.0/group/php5pear-1.0.tcl
===================================================================
--- trunk/dports/_resources/port1.0/group/php5pear-1.0.tcl 2012-02-03 23:21:07 UTC (rev 89608)
+++ trunk/dports/_resources/port1.0/group/php5pear-1.0.tcl 2012-02-03 23:25:15 UTC (rev 89609)
@@ -42,52 +42,97 @@
# version, and channel is the channel hosting the package (default: pear.php.net).
#
-options php5pear.package
-options php5pear.channel
-options php5pear.cmd-pre
-options php5pear.cmd-pear
-options php5pear.cmd-phar
-options php5pear.cmd-php
-options php5pear.cmd-post
-options php5pear.cmd
+# Args placed before the php or pear commands.
+options php5pear.env
+default php5pear.env {
+ "TZ=UTC \
+ HOME=${php5pear.installer} \
+ PHP_PEAR_INSTALL_DIR=${php5pear.installer}/pear \
+ PHP_PEAR_BIN_DIR=${php5pear.installer}/bin \
+ PHP_PEAR_PHP_BIN=${php5pear.cmd-php} \
+ PHP_PEAR_CFG_DIR=${php5pear.installer}/pear/cfg \
+ PHP_PEAR_DOC_DIR=${php5pear.installer}/pear/docs \
+ PHP_PEAR_DATA_DIR=${php5pear.installer}/pear/data \
+ PHP_PEAR_WWW_DIR=${php5pear.installer}/pear/www \
+ PHP_PEAR_TEST_DIR=${php5pear.installer}/pear/tests \
+ PHP_PEAR_SYSCONF_DIR=${php5pear.installer}"
+}
+
+# Args placed after php or pear commands.
+options php5pear.configure.pre_args
+default php5pear.configure.pre_args {
+ "-c ${php5pear.installer}/pear.conf \
+ -C ${php5pear.installer}/pear.conf"
+}
+
+# Where we instruct pear to install our package.
options php5pear.destroot
+default php5pear.destroot {${worksrcpath}/packagingroot}
+
+# Where the pear installer is installed for each port.
+options php5pear.installer
+default php5pear.installer {${worksrcpath}/installer}
+
+# Where we expand our source files.
options php5pear.sourceroot
+default php5pear.sourceroot {${worksrcpath}/packagesource}
+
+# The base paths for our pear.conf.
options php5pear.instpath
+default php5pear.instpath {${prefix}/lib/php}
options php5pear.pearpath
-options php5pear.installer
+default php5pear.pearpath {${php5pear.instpath}/pear}
+
+# The pear command we will use.
+options php5pear.cmd-pear
+default php5pear.cmd-pear {${php5pear.installer}/bin/pear}
+
+# The phar file that contains our pear installer.
+options php5pear.cmd-phar
+default php5pear.cmd-phar {${prefix}/lib/php/pear/install-pear-nozlib.phar}
+
+# The php binary we will use.
+options php5pear.cmd-php
+default php5pear.cmd-php {${prefix}/bin/php}
+
+# The pear channel for our package.
+options php5pear.channel
+
+# The name of the package xml file inside the pear package archive.
options php5pear.packagexml
+default php5pear.packagexml {[lindex [exec tar -tzf ${php5pear.packagefile} | grep package.*\.xml] 0]}
-proc php5pear.setup {php5pear.package version {php5pear.channel "pear.php.net"} {php5pear.packagexml "package.xml"}} {
- global worksrcpath distname extract.suffix master_sites prefix destroot distpath
- global php5pear.cmd-pre php5pear.cmd-pear php5pear.cmd-phar php5pear.cmd-php php5pear.cmd-post
- global php5pear.cmd php5pear.instpath php5pear.pearpath
- global php5pear.installer name php5pear.sourceroot
+# Package name.
+options php5pear.package
+
+# Package file.
+options php5pear.packagefile
+default php5pear.packagefile {"${distpath}/[lindex $distfiles 0]"}
+
+proc php5pear.setup {package_name package_version {package_channel "pear.php.net"}} {
+ global name extract.suffix version
+ global php5pear.env php5pear.cmd-pear php5pear.destroot php5pear.sourceroot
+ global php5pear.channel php5pear.package php5pear.packagexml
# The pear name for the package.
- php5pear.package ${php5pear.package}
+ php5pear.package ${package_name}
# The pear channel for the package.
- php5pear.channel ${php5pear.channel}
- # The name of the package's xml file used by pear to build the package.
- # Note: so far the two known names are package.xml and package2.xml.
- php5pear.packagexml ${php5pear.packagexml}
+ php5pear.channel ${package_channel}
- name pear-${php5pear.package}
- version ${version}
- categories php
- distname ${php5pear.package}-${version}
- extract.suffix .tgz
- homepage http://${php5pear.channel}/package/${php5pear.package}
- master_sites http://${php5pear.channel}/get
- livecheck.type regex
- livecheck.url http://${php5pear.channel}/package/${php5pear.package}/download
- livecheck.regex "http://download.${php5pear.channel}/package/${php5pear.package}-((?!\.tgz).*)${extract.suffix}"
+ name pear-${php5pear.package}
+ version ${package_version}
+ categories php
+ distname ${php5pear.package}-${version}
+ extract.suffix .tgz
+ homepage http://${php5pear.channel}/package/${php5pear.package}
+ master_sites http://${php5pear.channel}/get
+ dist_subdir pear
+ supported_archs noarch
+ use_parallel_build yes
+ depends_lib path:bin/phpize:php5 port:php5-pear
- dist_subdir pear
- supported_archs noarch
- use_parallel_build yes
- depends_lib path:bin/phpize:php5 port:php5-pear
-
# List of ports that pear-PEAR depends on.
+ # Add some pear-PEAR deps to make programmatic creation of pear Portfiles easier.
if {
${name} != "pear-Archive_Tar" &&
${name} != "pear-Console_Getopt" &&
@@ -95,58 +140,28 @@
${name} != "pear-XML_Util" &&
${name} != "pear-PEAR"
} {
- depends_lib-append port:pear-PEAR
+ depends_lib-append port:pear-PEAR
+ } elseif {
+ ${name} == "pear-PEAR"
+ } {
+ depends_lib-append port:pear-Archive_Tar \
+ port:pear-Console_Getopt \
+ port:pear-Structures_Graph \
+ port:pear-XML_Util
+
}
- # Where the pear installer is installed for each port.
- php5pear.installer ${worksrcpath}/installer
- # The base paths for our pear.conf.
- php5pear.instpath ${prefix}/lib/php
- php5pear.pearpath ${php5pear.instpath}/pear
- # Where we expand our source files.
- php5pear.sourceroot ${worksrcpath}/packagesource
- # Where we instruct pear to install our package.
- php5pear.destroot ${worksrcpath}/packagingroot
-
- # The pear command we will use.
- php5pear.cmd-pear ${php5pear.installer}/bin/pear
- # The phar file that contains our pear installer.
- php5pear.cmd-phar ${prefix}/lib/php/pear/install-pear-nozlib.phar
- # The php binary we will use.
- php5pear.cmd-php ${prefix}/bin/php
- # Args placed before the php or pear commands.
- php5pear.cmd-pre \
- cd ${php5pear.sourceroot} && \
- TZ=UTC \
- HOME=${php5pear.installer} \
- PHP_PEAR_INSTALL_DIR=${php5pear.installer}/pear \
- PHP_PEAR_BIN_DIR=${php5pear.installer}/bin \
- PHP_PEAR_PHP_BIN=${php5pear.cmd-php} \
- PHP_PEAR_CFG_DIR=${php5pear.installer}/pear/cfg \
- PHP_PEAR_DOC_DIR=${php5pear.installer}/pear/docs \
- PHP_PEAR_DATA_DIR=${php5pear.installer}/pear/data \
- PHP_PEAR_WWW_DIR=${php5pear.installer}/pear/www \
- PHP_PEAR_TEST_DIR=${php5pear.installer}/pear/tests \
- PHP_PEAR_SYSCONF_DIR=${php5pear.installer}
- # Args placed after php or pear commands.
- php5pear.cmd-post \
- -c ${php5pear.installer}/pear.conf \
- -C ${php5pear.installer}/pear.conf
-
- extract.mkdir yes
- extract.post_args "| tar --strip-components 1 -x -f - -C '${php5pear.sourceroot}'"
-
+ extract.post_args-append -C '${php5pear.sourceroot}' --strip-components 1
+
pre-extract {
- xinstall -d ${php5pear.sourceroot}
+ xinstall -d "${php5pear.sourceroot}"
}
post-extract {
- # Get the name of our package xml file.
- php5pear.packagexml [lindex [exec tar -tzf ${distpath}/${distname}${extract.suffix} | grep package.*\.xml] 0]
# The "--strip-components 1" causes the loss of our package file so we will extract it now.
- system "tar -z -x -v -f '${distpath}/${distname}${extract.suffix}' -C '${php5pear.sourceroot}' ${php5pear.packagexml}"
- # Install the pear command using the phar file.
- system "${php5pear.cmd-pre} ${php5pear.cmd-php} ${php5pear.cmd-phar}"
+ extract.post_args-delete --strip-components 1
+ extract.post_args-append ${php5pear.packagexml}
+ command_exec extract
}
post-patch {
@@ -155,41 +170,59 @@
${php5pear.sourceroot}/${php5pear.packagexml}
}
+ configure.env ${php5pear.env}
+ configure.dir ${php5pear.sourceroot}
configure {
+ # Install the pear command using the phar file.
+ configure.cmd ${php5pear.cmd-php}
+ configure.pre_args ${php5pear.cmd-phar}
+ command_exec configure
+ configure.cmd ${php5pear.cmd-pear}
+ configure.pre_args -c ${php5pear.installer}/pear.conf \
+ -C ${php5pear.installer}/pear.conf
# Set up pear's conf file.
# The order appears to be important; we get errors if we set php_dir before adding channels
# and the directory is not writable.
xinstall -d "${php5pear.installer}/pear/php"
- system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post} config-set auto_discover 1"
+ set pear_config [list]
+ lappend pear_config "config-set auto_discover 1"
if { "${php5pear.channel}" != "pear.php.net" } {
- system "curl -s http://${php5pear.channel}/channel.xml -o ${worksrcpath}/channel.xml"
- system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post} channel-add ${worksrcpath}/channel.xml"
- system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post} config-set default_channel ${php5pear.channel}"
+ lappend pear_config "channel-discover ${php5pear.channel}"
+ lappend pear_config "config-set default_channel ${php5pear.channel}"
}
# Change the install directories to the final destinations
- system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post} config-set php_dir ${php5pear.pearpath}"
- system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post} config-set bin_dir ${php5pear.pearpath}/bin"
- system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post} config-set doc_dir ${php5pear.pearpath}/docs"
- system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post} config-set data_dir ${php5pear.pearpath}/data"
- system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post} config-set www_dir ${php5pear.pearpath}/www"
- system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post} config-set test_dir ${php5pear.pearpath}/tests"
- system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post} config-show"
+ lappend pear_config "config-set php_dir ${php5pear.pearpath}"
+ lappend pear_config "config-set bin_dir ${php5pear.pearpath}/bin"
+ lappend pear_config "config-set cfg_dir ${php5pear.pearpath}/cfg"
+ lappend pear_config "config-set doc_dir ${php5pear.pearpath}/docs"
+ lappend pear_config "config-set data_dir ${php5pear.pearpath}/data"
+ lappend pear_config "config-set www_dir ${php5pear.pearpath}/www"
+ lappend pear_config "config-set test_dir ${php5pear.pearpath}/tests"
+ lappend pear_config "config-show"
+ foreach pear_args $pear_config {
+ configure.args "${pear_args}"
+ command_exec configure
+ }
}
build {
- # Get the name of our package xml file.
- php5pear.packagexml [lindex [exec tar -tzf ${distpath}/${distname}${extract.suffix} | grep package.*\.xml] 0]
- # Install our package into our pear's packagingroot.
- system "${php5pear.cmd-pre} ${php5pear.cmd-pear} ${php5pear.cmd-post} install -n -f -P '${php5pear.destroot}' ${php5pear.packagexml}"
+ build.env ${php5pear.env}
+ build.dir ${php5pear.sourceroot}
+ build.cmd ${php5pear.cmd-pear}
+ build.target install
+ build.args "-n -f -P '${php5pear.destroot}' ${php5pear.packagexml}"
+ command_exec build
}
-
+
destroot {
copy ${php5pear.destroot}${php5pear.instpath} ${destroot}${prefix}/lib
# Remove all invisible "dot" files.
fs-traverse -ignoreErrors item "${destroot}${php5pear.instpath}" {
if {[string first . [file tail ${item}] 0] == 0} {
- # Using system rm because I could not find a way to delete dot files with [file delete].
- system "rm -R ${item}"
+ if {[file tail ${item}] != "." && [file tail ${item}] != ".."} {
+ puts "Removing dot file ${item}"
+ delete ${item}
+ }
}
}
if { [file exists "${destroot}${php5pear.pearpath}/generate_package_xml.php"] } {
@@ -201,4 +234,9 @@
delete "${destroot}${php5pear.pearpath}/package.php"
}
}
+
+ livecheck.type regex
+ livecheck.url http://${php5pear.channel}/package/${php5pear.package}/download
+ livecheck.regex http://download.${php5pear.channel}/package/
+ livecheck.regex-append "${php5pear.package}-((?!\\${extract.suffix}).*)\\${extract.suffix}"
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20120203/815fd266/attachment.html>
More information about the macports-changes
mailing list