mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-09-24 04:59:14 -07:00
dev-db/oracle-instantclient-12.1.0.2: really installs now, with EAPI 6
Package-Manager: portage-2.2.26
This commit is contained in:
@@ -3,8 +3,8 @@ known by CPAN DBD::Oracle (bug#165834).
|
||||
This provides absolute paths for headers and libraries.
|
||||
|
||||
Paranoia drops those REMOVE lines.
|
||||
--- sdk/demo/demo.mk
|
||||
+++ sdk/demo/demo.mk
|
||||
--- instantclient_12_1/sdk/demo/demo.mk
|
||||
+++ instantclient_12_1/sdk/demo/demo.mk
|
||||
@@ -28,8 +28,9 @@
|
||||
CC=/opt/SunProd/SUNWspro6.1/bin/CC
|
||||
cc=/opt/SunProd/SUNWspro6.1/bin/cc
|
||||
|
||||
93
dev-db/oracle-instantclient/files/tnsnames.ora.sample
Normal file
93
dev-db/oracle-instantclient/files/tnsnames.ora.sample
Normal file
@@ -0,0 +1,93 @@
|
||||
# This file contains the syntax information for
|
||||
# the entries to be put in any tnsnames.ora file
|
||||
# The entries in this file are need based.
|
||||
# There are no defaults for entries in this file
|
||||
# that Sqlnet/Net3 use that need to be overridden
|
||||
#
|
||||
# Typically you could have two tnsnames.ora files
|
||||
# in the system, one that is set for the entire system
|
||||
# and is called the system tnsnames.ora file, and a
|
||||
# second file that is used by each user locally so that
|
||||
# he can override the definitions dictated by the system
|
||||
# tnsnames.ora file.
|
||||
|
||||
# The entries in tnsnames.ora are an alternative to using
|
||||
# the names server with the onames adapter.
|
||||
# They are a collection of aliases for the addresses that
|
||||
# the listener(s) is(are) listening for a database or
|
||||
# several databases.
|
||||
|
||||
# The following is the general syntax for any entry in
|
||||
# a tnsnames.ora file. There could be several such entries
|
||||
# tailored to the user's needs.
|
||||
|
||||
<alias>= [ (DESCRIPTION_LIST = # Optional depending on whether u have
|
||||
# one or more descriptions
|
||||
# If there is just one description, unnecessary ]
|
||||
(DESCRIPTION=
|
||||
[ (SDU=2048) ] # Optional, defaults to 2048
|
||||
# Can take values between 512 and 32K
|
||||
[ (ADDRESS_LIST= # Optional depending on whether u have
|
||||
# one or more addresses
|
||||
# If there is just one address, unnecessary ]
|
||||
(ADDRESS=
|
||||
[ (COMMUNITY=<community_name>) ]
|
||||
(PROTOCOL=tcp)
|
||||
(HOST=<hostname>)
|
||||
(PORT=<portnumber (1521 is a standard port used)>)
|
||||
)
|
||||
[ (ADDRESS=
|
||||
(PROTOCOL=ipc)
|
||||
(KEY=<ipckey (PNPKEY is a standard key used)>)
|
||||
)
|
||||
]
|
||||
[ (ADDRESS=
|
||||
[ (COMMUNITY=<community_name>) ]
|
||||
(PROTOCOL=decnet)
|
||||
(NODE=<nodename>)
|
||||
(OBJECT=<objectname>)
|
||||
)
|
||||
]
|
||||
... # More addresses
|
||||
[ ) ] # Optional depending on whether ADDRESS_LIST is used or not
|
||||
[ (CONNECT_DATA=
|
||||
(SID=<oracle_sid>)
|
||||
[ (GLOBAL_NAME=<global_database_name>) ]
|
||||
)
|
||||
]
|
||||
[ (SOURCE_ROUTE=yes) ]
|
||||
)
|
||||
(DESCRIPTION=
|
||||
[ (SDU=2048) ] # Optional, defaults to 2048
|
||||
# Can take values between 512 and 32K
|
||||
[ (ADDRESS_LIST= ] # Optional depending on whether u have more
|
||||
# than one address or not
|
||||
# If there is just one address, unnecessary
|
||||
(ADDRESS
|
||||
[ (COMMUNITY=<community_name>) ]
|
||||
(PROTOCOL=tcp)
|
||||
(HOST=<hostname>)
|
||||
(PORT=<portnumber (1521 is a standard port used)>)
|
||||
)
|
||||
[ (ADDRESS=
|
||||
(PROTOCOL=ipc)
|
||||
(KEY=<ipckey (PNPKEY is a standard key used)>)
|
||||
)
|
||||
]
|
||||
... # More addresses
|
||||
[ ) ] # Optional depending on whether ADDRESS_LIST
|
||||
# is being used
|
||||
[ (CONNECT_DATA=
|
||||
(SID=<oracle_sid>)
|
||||
[ (GLOBAL_NAME=<global_database_name>) ]
|
||||
)
|
||||
]
|
||||
[ (SOURCE_ROUTE=yes) ]
|
||||
)
|
||||
[ (CONNECT_DATA=
|
||||
(SID=<oracle_sid>)
|
||||
[ (GLOBAL_NAME=<global_database_name>) ]
|
||||
)
|
||||
]
|
||||
... # More descriptions
|
||||
[ ) ] # Optional depending on whether DESCRIPTION_LIST is used or not
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
EAPI="6"
|
||||
|
||||
inherit eutils versionator multilib-minimal
|
||||
inherit eutils versionator pax-utils multilib-minimal
|
||||
|
||||
MY_PVM=$(get_version_component_range 1-2)
|
||||
|
||||
@@ -67,10 +67,6 @@ S="${WORKDIR}"
|
||||
|
||||
QA_PREBUILT="usr/lib*/oracle/*/client/lib*/lib*"
|
||||
|
||||
DOCS=( "demo/*" )
|
||||
|
||||
PATCHES=( "${FILESDIR}"/12.1.0.2-makefile.patch )
|
||||
|
||||
set_my_abivars() {
|
||||
S="${WORKDIR}/${ABI}/instantclient_$(
|
||||
replace_version_separator 1 "_" "${MY_PVM}"
|
||||
@@ -143,14 +139,19 @@ src_unpack() {
|
||||
done
|
||||
}
|
||||
|
||||
src_prepare() {
|
||||
use sdk && PATCHES=( "${FILESDIR}"/12.1.0.2-makefile.patch )
|
||||
default
|
||||
}
|
||||
|
||||
# silence configure&compile messages from multilib-minimal
|
||||
src_configure() { :; }
|
||||
src_compile() { :; }
|
||||
|
||||
src_install() {
|
||||
# all binaries go here
|
||||
local oracle_home=/usr/$(ABI= get_libdir)/oracle/${MY_PVM}/client
|
||||
into "${oracle_home}"
|
||||
# all content goes here
|
||||
local oracle_home=usr/$(get_libdir)/oracle/${MY_PVM}/client
|
||||
into "/${oracle_home}"
|
||||
|
||||
local ldpath= ABI
|
||||
for ABI in $(multilib_get_enabled_abis) # last iteration is final ABI
|
||||
@@ -169,47 +170,83 @@ src_install() {
|
||||
# ensure to be linkable
|
||||
[[ -e libocci$(get_libname) ]] ||
|
||||
dosym libocci$(get_libname ${MY_PVM}) \
|
||||
"${oracle_home}"/$(get_libdir)/libocci$(get_libname)
|
||||
"/${oracle_home}"/$(get_libdir)/libocci$(get_libname)
|
||||
[[ -e libclntsh$(get_libname) ]] ||
|
||||
dosym libclntsh$(get_libname ${MY_PVM}) \
|
||||
"${oracle_home}"/$(get_libdir)/libclntsh$(get_libname)
|
||||
"/${oracle_home}"/$(get_libdir)/libclntsh$(get_libname)
|
||||
|
||||
# java archives
|
||||
insinto "${oracle_home}"/$(get_libdir)
|
||||
insinto "/${oracle_home}"/$(get_libdir)
|
||||
doins *.jar
|
||||
|
||||
# runtime library path
|
||||
ldpath+=${ldpath:+:}${oracle_home}/$(get_libdir)
|
||||
ldpath+=${ldpath:+:}/${oracle_home}/$(get_libdir)
|
||||
|
||||
eend $?
|
||||
done
|
||||
|
||||
# ensure ORACLE_HOME/lib exists
|
||||
[[ -e ${ED}${oracle_home}/lib ]] ||
|
||||
dosym $(get_libdir) "${oracle_home}"/lib
|
||||
local DOCS=()
|
||||
local HTML_DOCS=()
|
||||
local paxbins=( adrci genezi uidrvci )
|
||||
local scripts=()
|
||||
|
||||
einfo "Installing SDK ..."
|
||||
cd "${S}"/sdk || die
|
||||
use sqlplus && paxbins+=( sqlplus )
|
||||
use tools && paxbins+=( wrc )
|
||||
|
||||
# SDK makefile, for #165834
|
||||
# As we change the relative filesystem layout compared
|
||||
# to vanilla instantclient.zip content, it feels easier
|
||||
# to fake the layout found in Oracle eXpress Edition.
|
||||
# Both layouts are known to DBD::Oracle (cpan).
|
||||
insinto "${oracle_home}"/rdbms/demo
|
||||
newins demo/demo.mk demo_xe.mk
|
||||
|
||||
# Remove ldap.h, #299562
|
||||
rm include/ldap.h || die
|
||||
# DBD::Oracle needs rdbms/public as real directory
|
||||
insinto "${oracle_home}"/rdbms/public
|
||||
doins include/*.h
|
||||
dosym rdbms/public "${oracle_home}"/include
|
||||
# ruby-oci8 expects the headers here
|
||||
dosym "${oracle_home}"/rdbms/public /usr/include/oracle/${MY_PVM}/client
|
||||
if use odbc; then
|
||||
scripts+=( odbc_update_ini.sh )
|
||||
HTML_DOCS+=( ODBC_IC_Readme_Unix.html help )
|
||||
fi
|
||||
|
||||
einfo "Installing binaries for ${MY_PLAT} ..."
|
||||
dobin ${paxbins[@]} ${scripts}
|
||||
cd "${ED}${oracle_home}"/bin || die
|
||||
pax-mark -c ${paxbins[@]} || die
|
||||
cd "${S}" || die
|
||||
eend $?
|
||||
|
||||
if use sqlplus; then
|
||||
insinto "/${oracle_home}"/sqlplus/admin
|
||||
doins glogin.sql
|
||||
dosym "/${oracle_home}"/bin/sqlplus /usr/bin/sqlplus
|
||||
fi
|
||||
|
||||
if use sdk; then
|
||||
einfo "Installing SDK ..."
|
||||
|
||||
DOCS+=( sdk/demo )
|
||||
cd "${S}"/sdk || die
|
||||
|
||||
# SDK makefile, for #165834
|
||||
# As we change the relative filesystem layout compared
|
||||
# to vanilla instantclient.zip content, it feels easier
|
||||
# to fake the layout found in Oracle eXpress Edition.
|
||||
# Both layouts are known to DBD::Oracle (cpan).
|
||||
insinto "/${oracle_home}"/rdbms/demo
|
||||
newins demo/demo.mk demo_xe.mk
|
||||
|
||||
# Remove ldap.h, #299562
|
||||
rm include/ldap.h || die
|
||||
# DBD::Oracle needs rdbms/public as real directory
|
||||
insinto "/${oracle_home}"/rdbms/public
|
||||
doins include/*.h
|
||||
dosym rdbms/public "/${oracle_home}"/include
|
||||
# ruby-oci8 expects the headers here
|
||||
dosym "/${oracle_home}"/rdbms/public /usr/include/oracle/${MY_PVM}/client
|
||||
|
||||
# ott
|
||||
insinto "/${oracle_home}"/$(get_libdir)
|
||||
dobin ott
|
||||
doins *.zip
|
||||
|
||||
# more files found in the zip
|
||||
insinto "/${oracle_home}"/admin
|
||||
doins admin/oraaccess.xsd
|
||||
|
||||
eend $?
|
||||
fi
|
||||
|
||||
cd "${S}" || die
|
||||
einstalldocs
|
||||
|
||||
# create path for tnsnames.ora
|
||||
@@ -221,12 +258,16 @@ src_install() {
|
||||
echo "# ${EPREFIX}/etc/env.d/50${PN}"
|
||||
echo "# Do not edit this file, but 99${PN} instead"
|
||||
echo
|
||||
echo "ORACLE_HOME=${EPREFIX}${oracle_home}"
|
||||
echo "ORACLE_HOME=${EPREFIX}/${oracle_home}"
|
||||
echo "LDPATH=${ldpath}"
|
||||
echo "TNS_ADMIN=/etc/oracle/"
|
||||
} > "${T}"/50${PN}
|
||||
|
||||
doenvd "${T}"/50${PN}
|
||||
|
||||
# ensure ORACLE_HOME/lib exists
|
||||
[[ -e ${ED}${oracle_home}/lib/. ]] ||
|
||||
dosym $(get_libdir) "${oracle_home}"/lib
|
||||
}
|
||||
|
||||
pkg_preinst() {
|
||||
|
||||
Reference in New Issue
Block a user