# $Id$ PortSystem 1.0 name oracle-instantclient version 10.1.0.3 categories databases platforms macosx maintainers ryandesign homepage http://www.oracle.com/technology/software/tech/oci/instantclient/ use_zip yes use_parallel_build no set weird_prefix "" description \ Oracle database connection libraries long_description \ Oracle Instant Client allows you to run your applications without installing the standard Oracle client or having an ORACLE_HOME. platform powerpc { worksrcdir instantclient[join [lrange [split ${version} .] 0 1] _] set weird_prefix /b/729 master_sites \ http://download.oracle.com/otn/mac/instantclient/ distfiles \ instantclient-basic-macosx-${version}${extract.suffix} \ instantclient-sdk-macosx-${version}${extract.suffix} checksums \ instantclient-basic-macosx-${version}${extract.suffix} \ md5 5b38ab0565d6189d2069a4abe0bf2ab2 \ sha1 2f3aa35e99228fd08b686b19eba84ec34db8277b \ rmd160 d1f056f8f1b308c5493f4938b29b55fcb32452cf \ instantclient-sdk-macosx-${version}${extract.suffix} \ md5 79c7cb3f8afaff076fb20bad75b37cc9 \ sha1 486fe1c9a6c5cfc32401e72728ff821a50a22cf9 \ rmd160 c819db7f739b8ca468c8059dfbac31a6a6965938 } platform i386 { # This is really awful. Oracle provides different version numbers of the # Instant Client library for PowerPC and Intel. You should not change the # version number of a port conditionally like this. But I don't know how \ # else to handle this here. Hopefully Oracle will release a new version \ # of the libraries with the same version number on both PowerPC and Intel. version 10.2.0.4.0 revision 2 worksrcdir instantclient_[join [lrange [split ${version} .] 0 1] _] set weird_prefix /b/32_216 master_sites \ http://download.oracle.com/otn/mac/instantclient/10204/ distfiles \ instantclient-basic-${version}-macosx-x86${extract.suffix} \ instantclient-sdk-${version}-macosx-x86${extract.suffix} checksums \ instantclient-basic-${version}-macosx-x86${extract.suffix} \ md5 75a7622f6852759294df19878106cd77 \ sha1 c5ea4ca3e55eb8f2ce83b48c268f51fbb48ff867 \ rmd160 3ce70104dfb4a53d2adda96e6ea20bb2cf43ee6f \ instantclient-sdk-${version}-macosx-x86${extract.suffix} \ md5 e8b5ca3b36a1849c2ca9fa3bf7979311 \ sha1 2505faea0e24d52d50b96dc0b22081584de714cb \ rmd160 4eb78290b0b44e1f80edbf5e7a84552cca70ac05 livecheck.url ${homepage}htdocs/intel_macsoft.html livecheck.regex instantclient-basic-(\[0-9.\]+)-macosx-x86\\.zip } pre-fetch { if {[variant_isset i386]} { if {${os.major} < 9} { return -code error "${name} on Intel requires Mac OS X 10.5 or greater." } } if {![file exists ${distpath}/[lindex ${distfiles} 0]] || ![file exists ${distpath}/[lindex ${distfiles} 1]]} { ui_warn "MacPorts may not be able to download the necessary distfiles for ${name}. If you get a checksum error, please download [join ${distfiles} " and "] manually from ${livecheck.url} and place them in ${distpath}" } } use_configure no universal_variant no 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. # For each dylib in the distribution, change the directory of its own # "soname" to our ${lib_dir}. foreach lib [glob -directory ${worksrcpath} *.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 our ${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}" } } } } destroot { xinstall -d ${destroot}${lib_dir} eval xinstall \ [glob -directory ${worksrcpath} *.dylib*] \ [glob -directory ${worksrcpath} *.jar] \ ${destroot}${lib_dir} # php5 +oracle complains without this symlink. ln -s libclntsh.dylib.10.1 ${destroot}${lib_dir}/libclntsh.dylib # You would think the includes should go in ${prefix}/include/oracle, but # the instantclient layout wants it in ${prefix}/lib/oracle/sdk/include xinstall -d ${destroot}${lib_dir}/sdk copy ${worksrcpath}/sdk/include ${destroot}${lib_dir}/sdk } livecheck.check regex livecheck.url ${homepage}htdocs/macsoft.html livecheck.regex instantclient-basic-macosx-(\[0-9.\]+)\\.zip