[104521] trunk/dports/databases/oracle-instantclient/Portfile
ryandesign at macports.org
ryandesign at macports.org
Tue Mar 26 17:28:57 PDT 2013
Revision: 104521
https://trac.macports.org/changeset/104521
Author: ryandesign at macports.org
Date: 2013-03-26 17:28:57 -0700 (Tue, 26 Mar 2013)
Log Message:
-----------
oracle-instantclient: update Intel version to 11.2.0.3.0 (#37880) which now works 64-bit even on Lion and up. PowerPC version remains 10.1.0.3 and this is now indicated in the version field on PowerPC. Simplify port somewhat.
Modified Paths:
--------------
trunk/dports/databases/oracle-instantclient/Portfile
Modified: trunk/dports/databases/oracle-instantclient/Portfile
===================================================================
--- trunk/dports/databases/oracle-instantclient/Portfile 2013-03-26 22:06:58 UTC (rev 104520)
+++ trunk/dports/databases/oracle-instantclient/Portfile 2013-03-27 00:28:57 UTC (rev 104521)
@@ -4,24 +4,11 @@
PortSystem 1.0
name oracle-instantclient
-version 10.2.0.4.0
-revision 4
-set intel_version ${version}
-set powerpc_version 10.1.0.3
categories databases
platforms macosx
maintainers ryandesign
-supported_archs x86_64 i386 ppc
homepage http://www.oracle.com/technetwork/database/features/instant-client/
-
-# The distfiles mirror has been configured to not mirror these files.
-master_sites http://eduunix.ccut.edu.cn/index2/database/Oracle%20Instant%20Client/:powerpc \
- ftp://ftp.qut.edu.au/pub/oracle/instantclient/macos/:intel
-#master_sites http://download.oracle.com/otn/mac/instantclient/:powerpc \
-# http://download.oracle.com/otn/mac/instantclient/[join [lrange [split ${intel_version} .] 0 3] ""]/:intel
-
use_zip yes
-use_parallel_build no
description \
Oracle database connection libraries
@@ -29,83 +16,81 @@
long_description \
Oracle Instant Client allows you to run your applications without installing the standard Oracle client or having an ORACLE_HOME.
-checksums \
- [suffix instantclient-basic-macosx-${powerpc_version}] \
- md5 5b38ab0565d6189d2069a4abe0bf2ab2 \
- sha1 2f3aa35e99228fd08b686b19eba84ec34db8277b \
- rmd160 d1f056f8f1b308c5493f4938b29b55fcb32452cf \
- [suffix instantclient-sdk-macosx-${powerpc_version}] \
- md5 79c7cb3f8afaff076fb20bad75b37cc9 \
- sha1 486fe1c9a6c5cfc32401e72728ff821a50a22cf9 \
- rmd160 c819db7f739b8ca468c8059dfbac31a6a6965938 \
- [suffix instantclient-basic-${intel_version}-macosx-x86] \
- md5 75a7622f6852759294df19878106cd77 \
- sha1 c5ea4ca3e55eb8f2ce83b48c268f51fbb48ff867 \
- rmd160 3ce70104dfb4a53d2adda96e6ea20bb2cf43ee6f \
- [suffix instantclient-sdk-${intel_version}-macosx-x86] \
- md5 e8b5ca3b36a1849c2ca9fa3bf7979311 \
- sha1 2505faea0e24d52d50b96dc0b22081584de714cb \
- rmd160 4eb78290b0b44e1f80edbf5e7a84552cca70ac05 \
- [suffix instantclient-basic-${intel_version}-macosx-x64] \
- md5 b88c9133c61a2e6b5584879641541d68 \
- sha1 1e9cd2d0f77c9d2212beb73cdf5876a538eb7e14 \
- rmd160 05c727d57171381c201f92079074a7d907134c2d \
- [suffix instantclient-sdk-${intel_version}-macosx-x64] \
- md5 fc70b8e5a2f3324f3ab64c0564fd70e3 \
- sha1 05968db004808c43b4cc90cea83b904e6618bc9c \
- rmd160 61b6d7059598444be54e1dd43a2e765c3793554f
-
-# my_arch my_tag my_arch_version my_distname_format my_worksrcdir_format weird_prefix
-set my_arch_info "
- ppc powerpc ${powerpc_version} instantclient-%s-macosx-%s instantclient%s /b/729
- i386 intel ${intel_version} instantclient-%s-%s-macosx-x86 instantclient_%s /b/32_216
- x86_64 intel ${intel_version} instantclient-%s-%s-macosx-x64 instantclient_%s /b/227
-"
-
if {"powerpc" == ${os.arch}} {
- universal_variant no
+ epoch 1
+ version 10.1.0.3
+ set library_version 10.1
+ supported_archs ppc
+ universal_variant no
+
+ # The distfiles mirror has been configured not to mirror this port's files.
+ master_sites http://cmsrep.cern.ch/cmssw/cms/SOURCES/external/oracle/10.2.0.2/
+
+ checksums [suffix instantclient-basic-macosx-${version}] \
+ rmd160 d1f056f8f1b308c5493f4938b29b55fcb32452cf \
+ sha256 55dafdab1b7387b05226fd7eb0d86d52225a702a5e690fc82af42073f49e7725 \
+ [suffix instantclient-sdk-macosx-${version}] \
+ rmd160 c819db7f739b8ca468c8059dfbac31a6a6965938 \
+ sha256 350052656466cc2daecbb8b1c162ff444365def151636ba704f28ae5f05ca411
+
+ set my_worksrcdir_format instantclient%s
+ set my_distname_format(ppc) instantclient-%s-macosx-${version}
+ set my_library_prefix(ppc) /b/729
+
+ livecheck.type none
} else {
+ version 11.2.0.3.0
+ set library_version 11.1
+ supported_archs x86_64 i386
variant universal {}
+
+ # MacPorts won't be able to download these files.
+ master_sites http://download.oracle.com/otn/mac/instantclient/[join [lrange [split ${version} .] 0 3] {}]/
+
+ checksums [suffix instantclient-basic-macos.x32-${version}] \
+ rmd160 0ce640465611e0f5d3b9c3d421caa8c9531e573c \
+ sha256 ee11e57f03dd2a8b92abe09f28b1796a8956cb89d19dd015c9e9cd01701d3021 \
+ [suffix instantclient-sdk-macos.x32-${version}] \
+ rmd160 632bdd9998ca0b8d56965544ac3020b28a213086 \
+ sha256 2ad01e3fc2bcb0c1c4285a9b89037058b74039f6450d4b88176e8180ef2be763 \
+ [suffix instantclient-basic-macos.x64-${version}] \
+ rmd160 68edc03040258f5b8e7ccd4aa3c0f553d639ccf1 \
+ sha256 b86be0d924ec44d5d86ab212cc25b010f0b813ae0f3f22fd0cb0716e27c2d6ea \
+ [suffix instantclient-sdk-macos.x64-${version}] \
+ rmd160 934639cbc90b29eb1649bf31c2685870ffedd498 \
+ sha256 c2ddc7c6d93cd4e0f113362b642741d36d9e9052a9a0282ac583d086c191afcf
+
+ set my_worksrcdir_format instantclient_%s
+ set my_distname_format(i386) instantclient-%s-macos.x32-${version}
+ set my_distname_format(x86_64) instantclient-%s-macos.x64-${version}
+ set my_library_prefix(i386) /ade/b/233679120
+ set my_library_prefix(x86_64) /ade/b/2649109290
+
+ if {${os.platform} == "darwin" && ${os.major} < 9} {
+ pre-fetch {
+ ui_error "${name} on Intel requires OS X 10.5 or greater."
+ return -code error "incompatible OS X version"
+ }
+ }
+
+ livecheck.type regex
+ livecheck.url http://www.oracle.com/technetwork/topics/intel-macsoft-096467.html
+ livecheck.regex instantclient-basic-macos.x64-(\[0-9.\]+)${extract.suffix}
}
# merge() requires universal_archs to be set correctly. Since we use merge()
# even when not building universal we must always set universal_archs correctly.
-if {[variant_exists universal] && [variant_isset universal]} {
- # The only supported universal build is x86_64 i386.
- configure.universal_archs x86_64 i386
-} else {
+if {![variant_exists universal] || ![variant_isset universal]} {
configure.universal_archs ${configure.build_arch}
}
-set my_requested_archs ${configure.universal_archs}
distfiles
-foreach my_requested_arch ${my_requested_archs} {
- foreach {my_arch my_tag my_arch_version my_distname_format my_worksrcdir_format weird_prefix} ${my_arch_info} {
- if {${my_arch} == ${my_requested_arch}} {
- foreach my_distfile_type {basic sdk} {
- distfiles-append [suffix [format ${my_distname_format} ${my_distfile_type} ${my_arch_version}]]:${my_tag}
- }
- }
+foreach my_arch ${configure.universal_archs} {
+ foreach my_distfile_type {basic sdk} {
+ distfiles-append [suffix [format $my_distname_format(${my_arch}) ${my_distfile_type}]]
}
}
-pre-fetch {
- if {"darwin" != ${os.platform}} {
- ui_error "${name} requires Mac OS X."
- return -code error "incompatible operating system"
- }
- if {"i386" == ${os.arch} && ${os.major} < 9} {
- ui_error "${name} on Intel requires Mac OS X 10.5 or greater."
- return -code error "incompatible Mac OS X version"
- }
- if {"powerpc" == ${os.arch}} {
- ui_msg "Note that although the port says you're getting ${name} ${version},"
- ui_msg "on PowerPC you're actually getting version ${powerpc_version} because no newer version"
- ui_msg "is available."
- ui_msg ""
- }
-}
-
post-fetch {
set bad_distfiles {}
foreach distfile ${distfiles} {
@@ -137,41 +122,33 @@
extract {
set my_build_dir ${extract.dir}/build
xinstall -d ${my_build_dir}
- foreach my_requested_arch ${my_requested_archs} {
- foreach {my_arch my_tag my_arch_version my_distname_format my_worksrcdir_format weird_prefix} ${my_arch_info} {
- if {${my_arch} == ${my_requested_arch}} {
- foreach my_distfile_type {basic sdk} {
- system "${extract.cmd} ${extract.pre_args} ${extract.post_args} ${distpath}/[suffix [format ${my_distname_format} ${my_distfile_type} ${my_arch_version}]]"
- }
- move ${extract.dir}/[format ${my_worksrcdir_format} [join [lrange [split ${my_arch_version} .] 0 1] "_"]] ${my_build_dir}/${my_arch}
- }
+ foreach my_arch ${configure.universal_archs} {
+ foreach my_distfile_type {basic sdk} {
+ system "${extract.cmd} ${extract.pre_args} ${extract.post_args} ${distpath}/[suffix [format $my_distname_format(${my_arch}) ${my_distfile_type}]]"
}
+ move ${extract.dir}/[format ${my_worksrcdir_format} [join [lrange [split ${version} .] 0 1] "_"]] ${my_build_dir}/${my_arch}
}
}
use_configure no
-set lib_dir ${prefix}/lib/oracle
+set lib_dir ${prefix}/lib/oracle
build {
- # The pre-built libraries use weird prefixes and Oracle recommends setting
- # DYLD_LIBRARY_PATH to deal with this. I would rather fix the paths in the
- # libraries at install time.
- foreach my_requested_arch ${my_requested_archs} {
- foreach {my_arch my_tag my_arch_version my_distname_format my_worksrcdir_format weird_prefix} ${my_arch_info} {
- if {${my_arch} == ${my_requested_arch}} {
- # For each dylib in the distribution, change the directory of its own
- # "soname" to ${lib_dir}.
- foreach lib [glob -directory ${workpath}/build/${my_arch} *.dylib*] {
- system "install_name_tool -id ${lib_dir}/[strsed ${lib} /^.*\\///] ${lib}"
-
- # Then for each dependent dylib with a weird path that this dylib
- # references, fix the reference to use ${lib_dir}.
- foreach dep [exec otool -L ${lib}] {
- if [string match "${weird_prefix}/*" ${dep}] {
- system "install_name_tool -change ${dep} ${lib_dir}/[strsed ${dep} /^.*\\///] ${lib}"
- }
- }
+ # Oracle builds the libraries with strange install_names, which we fix, for
+ # neatness. Unfortunately users must still set DYLD_LIBRARY_PATH in their
+ # environment because one of the libraries, libociei, is dynamically loaded
+ # at runtime rather than being linked to.
+ foreach my_arch ${configure.universal_archs} {
+ # For each dylib, change the directory of its install_name to ${lib_dir}.
+ foreach lib [glob -directory ${workpath}/build/${my_arch} *.dylib*] {
+ system "install_name_tool -id ${lib_dir}/[strsed ${lib} /^.*\\///] ${lib}"
+
+ # Then for each dependent dylib with a strange install_name that
+ # this dylib references, fix the reference to use ${lib_dir}.
+ foreach dep [exec otool -L ${lib}] {
+ if [string match "$my_library_prefix(${my_arch})/*" ${dep}] {
+ system "install_name_tool -change ${dep} ${lib_dir}/[strsed ${dep} /^.*\\///] ${lib}"
}
}
}
@@ -179,41 +156,33 @@
}
destroot {
- foreach my_requested_arch ${my_requested_archs} {
- foreach {my_arch my_tag my_arch_version my_distname_format my_worksrcdir_format weird_prefix} ${my_arch_info} {
- if {${my_arch} == ${my_requested_arch}} {
- set my_destroot ${workpath}/pre-dest/${my_arch}
- set my_worksrcpath ${workpath}/build/${my_arch}
- xinstall -d ${my_destroot}${lib_dir}
- eval xinstall \
- [glob -directory ${my_worksrcpath} *.dylib*] \
- [glob -directory ${my_worksrcpath} *.jar] \
- ${my_destroot}${lib_dir}
-
- # You would think the includes should go in ${prefix}/include/oracle, but
- # the "instantclient layout" dictates they must be in ${prefix}/lib/oracle/sdk/include;
- # ports like php5-oracle will expect them there.
- xinstall -d ${my_destroot}${lib_dir}/sdk
- copy ${my_worksrcpath}/sdk/include ${my_destroot}${lib_dir}/sdk
- }
- }
+ foreach my_arch ${configure.universal_archs} {
+ set my_destroot ${workpath}/pre-dest/${my_arch}
+ set my_worksrcpath ${workpath}/build/${my_arch}
+ xinstall -d ${my_destroot}${lib_dir}
+ eval xinstall \
+ [glob -directory ${my_worksrcpath} *.dylib*] \
+ [glob -directory ${my_worksrcpath} *.jar] \
+ ${my_destroot}${lib_dir}
+
+ # You would think the includes should go in ${prefix}/include/oracle, but
+ # the "instantclient layout" dictates they must be in ${lib_dir}/sdk/include;
+ # ports like php-oracle will expect them there.
+ xinstall -d ${my_destroot}${lib_dir}/sdk
+ copy ${my_worksrcpath}/sdk/include ${my_destroot}${lib_dir}/sdk
}
merge ${workpath}/pre-dest
- # php5-oracle complains without a libclntsh.dylib symlink.
- ln -s libclntsh.dylib.10.1 ${destroot}${lib_dir}/libclntsh.dylib
+ # php-oracle complains without a libclntsh.dylib symlink.
+ ln -s libclntsh.dylib.${library_version} ${destroot}${lib_dir}/libclntsh.dylib
# Add a libocci.dylib symlink too for good measure.
- ln -s libocci.dylib.10.1 ${destroot}${lib_dir}/libocci.dylib
+ ln -s libocci.dylib.${library_version} ${destroot}${lib_dir}/libocci.dylib
}
notes "
-To use ${name},
-export DYLD_LIBRARY_PATH=${prefix}/lib/oracle
-in your environment.
-"
+To use ${name}, add this command to your environment:
-livecheck.type regex
-livecheck.url ${homepage}htdocs/intel_macsoft.html
-livecheck.regex instantclient-basic-(\[0-9.\]+)-macosx-x86\\.zip
+export DYLD_LIBRARY_PATH=${lib_dir}
+"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20130326/b7510313/attachment-0001.html>
More information about the macports-changes
mailing list