diff options
Diffstat (limited to 'oracle-instantclient.spec')
-rw-r--r-- | oracle-instantclient.spec | 338 |
1 files changed, 338 insertions, 0 deletions
diff --git a/oracle-instantclient.spec b/oracle-instantclient.spec new file mode 100644 index 0000000..66d97ce --- /dev/null +++ b/oracle-instantclient.spec @@ -0,0 +1,338 @@ +# remirepo/fedora spec file for oracle-instantclient +# +# Copyright (c) 2006-2021 Remi Collet +# License: CC-BY-SA +# http://creativecommons.org/licenses/by-sa/4.0/ +# +# Please, preserve the changelog entries +# + +%global __arch_install_post /bin/true +%global _build_id_links none + +%ifarch x86_64 noarch +%global major 21 +%global mainver 21.14 +%global libclnt 21.1 +%define topdir instantclient_%(echo %mainver|tr '.' '_') +%global archsuf x64 +%else +%global major 19 +%global mainver 19.22 +%global libclnt 19.1 +%define topdir instantclient_%(echo %mainver|tr '.' '_') +%global archsuf arm64 +%endif +%global oradir %{_libdir}/oracle/%{mainver}/client64 +%global incdir %{_includedir}/oracle/%{mainver}/client64 +%global tarsuf dbru + +Summary: Instant Client for Oracle Database %{major} +Name: oracle-instantclient +Version: %{mainver}.0.0.0 +Release: 1%{?dist} +License: Oracle +Group: Applications/File +Url: https://www.oracle.com/database/technologies/instant-client.html +Source0: instantclient-basic-linux.%{archsuf}-%{version}%{?tarsuf}.zip +Source1: instantclient-jdbc-linux.%{archsuf}-%{version}%{?tarsuf}.zip +Source2: instantclient-odbc-linux.%{archsuf}-%{version}%{?tarsuf}.zip +Source3: instantclient-sdk-linux.%{archsuf}-%{version}%{?tarsuf}.zip +Source4: instantclient-sqlplus-linux.%{archsuf}-%{version}%{?tarsuf}.zip +Source5: instantclient-tools-linux.%{archsuf}-%{version}%{?tarsuf}.zip +Source6: instantclient-precomp-linux.%{archsuf}-%{version}%{?tarsuf}.zip + +BuildArch: x86_64 aarch64 +BuildRequires: chrpath + +%description +Base files for Instant Client. Support for OCI, OCCI, +and JDBC-OCI applications. + +Oracle Call Interface %{mainver} can connect to Oracle Database 11.2 or later. + +%package basic +Summary: Instant Client for Oracle Database 11g +Group: Applications/File + +%description basic +Base files for Instant Client. Support for OCI, OCCI, +and JDBC-OCI applications. + +%package devel +Summary: Development headers for Instant Client +Group: Applications/File +Requires: oracle-instantclient-basic%{?_isa} = %version + +%description devel +Additional header files and an example Makefile for developing Oracle +applications with Instant Client. + +%package jdbc +Summary: Supplemental JDBC features under Instant Client +Group: Applications/File +Requires: oracle-instantclient-basic%{?_isa} = %version + +%description jdbc +Additional support for XA, Internationalization, +and RowSet operations under JDBC. + +%package odbc +Summary: Oracle ODBC Instant Client for Linux +Group: Applications/File +Requires: oracle-instantclient-basic%{?_isa} = %version + +%description odbc +Oracle ODBC Instant Client for Linux complies with +ODBC 3.52 specifications. It is based on features of +Oracle %{version} ODBC driver for Windows, without +the need for a traditional ORACLE_HOME installation. + +%package sqlplus +Summary: SQL*Plus for Instant Client +Group: Applications/File +Requires: oracle-instantclient-basic%{?_isa} = %version + +%description sqlplus +Additional libraries and executable for running +SQL*Plus with Instant Client. + +%package tools +Summary: Tools for Oracle Database 11g +Group: Applications/File +Requires: oracle-instantclient-basic%{?_isa} = %version + +%description tools +This package provides tools to be used with the Oracle Database. +It currently includes +- wrc : a client to be used with the Database Replay feature + +%package precomp +Summary: Oracle Precompilers for Pro*C and Pro*COBOL +Group: Applications/File +Requires: oracle-instantclient-devel%{?_isa} = %version + +%description precomp +PRECOMP Instant Client (IC) Package contains following +components: + i) "proc" binary to precompile a Pro*C application + ii) "procob" binary to precompile a Pro*COBOL application +iii) sample configuration files, demo programs and demo + make files for building proc and procob demos and + in general any Pro*C/Pro*COBOL application. + +%prep +rm -rf %{topdir} + +unzip %{SOURCE0} | tee BASIC +unzip %{SOURCE1} | tee JDBC +unzip %{SOURCE2} | tee ODBC +unzip %{SOURCE3} | tee DEVEL +unzip %{SOURCE4} | tee SQLPLUS +unzip %{SOURCE5} | tee TOOLS +unzip %{SOURCE6} | tee PRECOMP + + +%install +cd %{topdir} + +mkdir -p %{buildroot}%{_bindir} +mkdir -p %{buildroot}%{oradir}/{bin,lib} +mkdir -p %{buildroot}%{oradir}/lib/precomp/admin +mkdir -p %{buildroot}%{incdir} +mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d + +# Basic +install -p adrci %{buildroot}%{oradir}/bin +install -p genezi %{buildroot}%{oradir}/bin +install -p uidrvci %{buildroot}%{oradir}/bin +chrpath -d %{buildroot}%{oradir}/bin/{adrci,genezi,uidrvci} +install -p libclntshcore.so.%{libclnt} %{buildroot}%{oradir}/lib +install -p libclntsh.so.%{libclnt} %{buildroot}%{oradir}/lib +install -p libnnz%{major}.so %{buildroot}%{oradir}/lib +install -p libocci.so.%{libclnt} %{buildroot}%{oradir}/lib +%if "%{major}" >= "21" +install -p libocci_gcc53.so.%{libclnt} %{buildroot}%{oradir}/lib +%endif +install -p libociei.so %{buildroot}%{oradir}/lib +install -p libocijdbc%{major}.so %{buildroot}%{oradir}/lib +%if "%{major}" >= "21" +install -p liboramysql.so %{buildroot}%{oradir}/lib +%else +install -p liboramysql%{major}.so %{buildroot}%{oradir}/lib +%endif +install -p ojdbc8.jar %{buildroot}%{oradir}/lib +install -p xstreams.jar %{buildroot}%{oradir}/lib + +echo %{oradir}/lib >%{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}.conf + +# Devel +install -p -m 644 sdk/include/*.h %{buildroot}%{incdir} +install -p sdk/ottclasses.zip %{buildroot}%{oradir}/lib +install -p -m 755 sdk/ott %{buildroot}%{oradir}/bin + +ln -s %{oradir}/bin/ott %{buildroot}%{_bindir}/ott +ln -s libocci.so.%{libclnt} %{buildroot}%{oradir}/lib/libocci.so +%if "%{major}" >= "21" +ln -s libocci_gcc53.so.%{libclnt} %{buildroot}%{oradir}/lib/libocci_gcc53.so +%endif +ln -s libclntsh.so.%{libclnt} %{buildroot}%{oradir}/lib/libclntsh.so +ln -s libclntshcore.so.%{libclnt} %{buildroot}%{oradir}/lib/libclntshcore.so + +# sdk/admin/oraaccess.xsd not provided in upstream RPM. + +# SQL*Plus +install -p sqlplus %{buildroot}%{oradir}/bin +chrpath -d %{buildroot}%{oradir}/bin/sqlplus +install -p glogin.sql %{buildroot}%{oradir}/lib +install -p libsqlplus.so %{buildroot}%{oradir}/lib +install -p libsqlplusic.so %{buildroot}%{oradir}/lib + +ln -sf %{oradir}/bin/sqlplus %{buildroot}%{_bindir}/sqlplus + +# JDBC +install -p libheteroxa%{major}.so %{buildroot}%{oradir}/lib +install -p orai18n-mapping.jar %{buildroot}%{oradir}/lib +install -p orai18n.jar %{buildroot}%{oradir}/lib + +# ODBC +install -p libsqora.so.%{libclnt} %{buildroot}%{oradir}/lib + +# Tools +for cmd in exp expdp imp impdp sqlldr wrc; do + install -p $cmd %{buildroot}%{oradir}/bin/$cmd + chrpath -d %{buildroot}%{oradir}/bin/$cmd + ln -sf %{oradir}/bin/$cmd %{buildroot}%{_bindir}/$cmd +done +%if "%{major}" >= "21" +install -p libnfsodm.so %{buildroot}%{oradir}/lib +install -p libopcodm.so %{buildroot}%{oradir}/lib +%endif + +# Precomp +# NOTICE: don't install rtsora - broken dep on libcobcrtn64.so +install -p -m 755 sdk/{proc,procob} %{buildroot}%{oradir}/bin +chrpath -d %{buildroot}%{oradir}/bin/{proc,procob} +install -p -m 755 cobsqlintf.o %{buildroot}%{oradir}/lib +install -p -m 644 precomp/admin/* %{buildroot}%{oradir}/lib/precomp/admin + +ln -s %{oradir}/bin/proc %{buildroot}%{_bindir}/proc +ln -s %{oradir}/bin/procob %{buildroot}%{_bindir}/procob + +# Precomp-Devel +install -p -m 644 sdk/include/*.h %{buildroot}%{incdir} + +# Create files lists +rm -f devel.files precomp.files +for header in sdk/include/*.h +do if grep -q $header ../DEVEL + then echo %{incdir}/$(basename $header) >>devel.files + else echo %{incdir}/$(basename $header) >>precomp.files +fi +done + +chrpath -d %{buildroot}%{oradir}/lib/*.so* + +%post basic -p /sbin/ldconfig +%postun basic -p /sbin/ldconfig +%post sqlplus -p /sbin/ldconfig +%postun sqlplus -p /sbin/ldconfig + + +%{!?_licensedir:%global license %%doc} + +%files basic +%license %{topdir}/BASIC_LICENSE +%doc %{topdir}/BASIC_README +%dir %{oradir} +%dir %{oradir}/lib +%dir %{oradir}/bin +%{oradir}/lib/libclntshcore.so.%{libclnt} +%{oradir}/lib/libclntsh.so.%{libclnt} +%{oradir}/lib/libnnz%{major}.so +%{oradir}/lib/libocci.so.%{libclnt} +%if "%{major}" >= "21" +%{oradir}/lib/libocci_gcc53.so.%{libclnt} +%endif +%{oradir}/lib/libociei.so +%{oradir}/lib/libocijdbc%{major}.so +%if "%{major}" >= "21" +%{oradir}/lib/liboramysql.so +%else +%{oradir}/lib/liboramysql%{major}.so +%endif +%{oradir}/lib/ojdbc8.jar +%{oradir}/lib/xstreams.jar +%{_sysconfdir}/ld.so.conf.d/%{name}.conf +%{oradir}/bin/genezi +%{oradir}/bin/adrci +%{oradir}/bin/uidrvci + +%files devel -f %{topdir}/devel.files +%license %{topdir}/SDK_LICENSE +%doc %{topdir}/sdk/demo %{topdir}/SDK_README %{topdir}/sdk/ott +%{oradir}/lib/libclntshcore.so +%{oradir}/lib/libclntsh.so +%{oradir}/lib/libocci.so +%if "%{major}" >= "21" +%{oradir}/lib/libocci_gcc53.so +%endif +%{oradir}/lib/ottclasses.zip +%dir %{incdir} +%{_bindir}/ott +%{oradir}/bin/ott + +%files sqlplus +%license %{topdir}/SQLPLUS_LICENSE +%doc %{topdir}/SQLPLUS_README +%{_bindir}/sqlplus +%{oradir}/bin/sqlplus +%{oradir}/lib/glogin.sql +%{oradir}/lib/libsqlplus.so +%{oradir}/lib/libsqlplusic.so + +%files jdbc +%license %{topdir}/JDBC_LICENSE +%doc %{topdir}/JDBC_README +%{oradir}/lib/libheteroxa%{major}.so +%{oradir}/lib/orai18n-mapping.jar +%{oradir}/lib/orai18n.jar + +%files odbc +%license %{topdir}/ODBC_LICENSE +%doc %{topdir}/ODBC_README +%doc %{topdir}/odbc_update_ini.sh +%doc %{topdir}/help +%{oradir}/lib/libsqora.so.%{libclnt} + +%files tools +%license %{topdir}/TOOLS_LICENSE +%doc %{topdir}/TOOLS_README +%{_bindir}/exp +%{_bindir}/expdp +%{_bindir}/imp +%{_bindir}/impdp +%{_bindir}/sqlldr +%{_bindir}/wrc +%{oradir}/bin/exp +%{oradir}/bin/expdp +%{oradir}/bin/imp +%{oradir}/bin/impdp +%{oradir}/bin/sqlldr +%{oradir}/bin/wrc +%if "%{major}" >= "21" +%{oradir}/lib/libnfsodm.so +%{oradir}/lib/libopcodm.so +%endif + +%files precomp -f %{topdir}/precomp.files +%doc %{topdir}/sdk/demo %{topdir}/PRECOMP_README +%dir %{oradir}/lib/precomp +%dir %{oradir}/lib/precomp/admin +%config %{oradir}/lib/precomp/admin/pcbcfg.cfg +%config %{oradir}/lib/precomp/admin/pcscfg.cfg +%{oradir}/lib/cobsqlintf.o +%{oradir}/bin/proc +%{oradir}/bin/procob +%{_bindir}/proc +%{_bindir}/procob |