File oracle-instantclient19.spec of Package oracle-instantclient19

#
# spec file for package oracle-instantclient19
#
# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

# SPEC file for
# oracle-instantclient-basic
# oracle-instantclient-devel
# oracle-instantclient-sqlplus
# oracle-instantclient-jdbc
# oracle-instantclient-odbc
# oracle-instantclient-tools
# oracle-instantclient-precomp

%define __arch_install_post /bin/true

#%%define version 19.0.0.0.0

%ifarch i386
%define version 19.9.0.0.0
%define version_precomp 19.9.0.0.0
%define topdir	instantclient_19_9
%define precomptopdir precomp/instantclient_19_9
%define oradir	%{_libdir}/oracle/%{version}/client
%define incdir	%{_includedir}/oracle/%{version}/client
%endif
%ifarch x86_64
%define version 19.6.0.0.0
%define version_precomp 19.10.0.0.0
%define topdir	instantclient_19_6
%define precomptopdir precomp/instantclient_19_10
%define oradir	%{_libdir}/oracle/%{version}/client
%define incdir	%{_includedir}/oracle/%{version}/client
%endif

Name: 		oracle-instantclient19
Summary: 	Instant Client for Oracle Database 18c
Version: 	%{version}
Release:	0
# http://www.oracle.com/technetwork/licenses/instant-client-lic-152016.html
License:	SUSE-NonFree
Group:		Productivity/Databases/Tools
Url:		http://www.oracle.com/technology/software/tech/oci/instantclient/index.html

%ifarch i386
Source0:	instantclient-basic-linux-%{version}dbru.zip
Source1:	instantclient-jdbc-linux-%{version}dbru.zip
Source2:	instantclient-odbc-linux-%{version}dbru.zip
Source3:	instantclient-sdk-linux-%{version}dbru.zip
Source4:	instantclient-sqlplus-linux-%{version}dbru.zip
Source5:	instantclient-tools-linux-%{version}dbru.zip
Source6:	instantclient-precomp-linux-%{version_precomp}dbru.zip

NoSource:       0
NoSource:       1
NoSource:       2
NoSource:       3
NoSource:       4
NoSource:       5
NoSource:       6
%endif

%ifarch x86_64
Source10:	instantclient-basic-linux.x64-%{version}dbru.zip
Source11:	instantclient-jdbc-linux.x64-%{version}dbru.zip
Source12:	instantclient-odbc-linux.x64-%{version}dbru.zip
Source13:	instantclient-sdk-linux.x64-%{version}dbru.zip
Source14:	instantclient-sqlplus-linux.x64-%{version}dbru.zip
Source15:	instantclient-tools-linux.x64-%{version}dbru.zip
Source16:	instantclient-precomp-linux.x64-%{version_precomp}dbru.zip

NoSource:       10
NoSource:       11
NoSource:       12
NoSource:       13
NoSource:       14
NoSource:       15
NoSource:       16
%endif

Source20:       oracle-instantclient-config
Source21:       %{name}-rpmlintrc

#BuildArch:      i386 x86_64
ExclusiveArch:  i386 x86_64
Buildroot: 	%{_tmppath}/%{name}-%{version}-build
BuildRequires:  unzip

Conflicts:	oracle-instantclient
Conflicts:	oracle-instantclient12.1
Conflicts:	oracle-instantclient12.2
Conflicts:	oracle-instantclient18.3

%description
Basic files for Instant Client.  Support for OCI, OCCI, 
and JDBC-OCI applications.

%package devel
Summary:	Development headers for Instant Client
Group:		Development/Tools/Other
Requires: 	%{name} = %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:		Productivity/Databases/Tools
Requires: 	%{name} = %version

%description jdbc
Additional support for XA, Internationalization,
and RowSet operations under JDBC.

%package odbc
Summary: 	Oracle  ODBC Instant Client for Linux
Group:		Productivity/Databases/Tools
Requires: 	%{name} = %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:		Productivity/Databases/Tools
Requires: 	%{name} = %version

%description sqlplus
Additional libraries and executable for running 
SQL*Plus with Instant Client.

%package tools
Summary:	Tools for Oracle Database 18c
Group:		Productivity/Databases/Tools
Requires: 	%{name} = %{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:		Development/Languages/Other
Requires:	%{name} = %{version}, %{name}-precomp-devel = %{version}
%if 0%?suse_version >= 1010
Recommends:	%{name}-devel = %{version}
%endif

%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.

%package precomp-devel
Summary:        Libraries needed by precompilers for Pro*C and Pro*COBOL
Group:          Development/Libraries/Other
BuildArch:      noarch
Requires:       %{name} = %{version}

%description precomp-devel
This are the Required libraries to run Pro*C and Pro*COBOL precompiler


%prep
%{__rm} -rf %{topdir}

%ifarch i386
%define _sdk_source %{S:3}
%define _precomp_source %{S:6}
unzip %{S:0}
unzip %{S:1}
unzip %{S:2}
unzip %{S:3}
unzip %{S:4}
unzip %{S:5}
unzip -d precomp %{S:6}
%endif

%ifarch x86_64
%define _sdk_source %{S:13}
%define _precomp_source %{S:16}
unzip %{S:10}
unzip %{S:11}
unzip %{S:12}
unzip %{S:13}
unzip %{S:14}
unzip %{S:15}
unzip -d precomp %{S:16}
%endif

# Fix rights
chmod -x ./%{topdir}/sdk/demo/*
chmod -x ./%{topdir}/*_LICENSE
chmod -x ./%{precomptopdir}/sdk/demo/*

%build
# Nothing to build


%install
cd %{topdir}
#chmod 0644 *.{htm,html}
#chmod 0644 *.html

%{__install} -d -m0755 %{buildroot}%{_bindir} 
%{__install} -d -m0755 %{buildroot}%{oradir}/{bin,lib,precomp,precomp/admin,network,network/admin} 
%{__install} -d -m0755 %{buildroot}%{incdir}
%{__install} -d -m0755 %{buildroot}%{_sysconfdir}/ld.so.conf.d
%{__install} -d -m0755 %{buildroot}%{_sysconfdir}/profile.d

# Basic
%{__install} -m0755 adrci		        %{buildroot}%{oradir}/bin
%{__install} -m0755 genezi		        %{buildroot}%{oradir}/bin
%{__install} -m0755 uidrvci		        %{buildroot}%{oradir}/bin
%{__install} -m0755 libclntshcore.so.19.1	%{buildroot}%{oradir}/lib
%{__install} -m0755 libclntsh.so.19.1		%{buildroot}%{oradir}/lib
%{__install} -m0755 libnnz19.so		    	%{buildroot}%{oradir}/lib
%{__install} -m0755 libocci.so.19.1	    	%{buildroot}%{oradir}/lib
%{__install} -m0755 libociei.so		    	%{buildroot}%{oradir}/lib
%{__install} -m0755 libocijdbc19.so	    	%{buildroot}%{oradir}/lib
%{__install} -m0755 liboramysql19.so    	%{buildroot}%{oradir}/lib
%{__install} -m0644 ojdbc8.jar		    	%{buildroot}%{oradir}/lib
%{__install} -m0644 ucp.jar		    	%{buildroot}%{oradir}/lib
%{__install} -m0644 xstreams.jar	    	%{buildroot}%{oradir}/lib
%{__install} -m0755 %{S:20}		        %{buildroot}%{_bindir}
%ifarch x86_64
%{__install} -m0755 libipc1.so 			%{buildroot}%{oradir}/lib
%{__install} -m0755 libmql1.so 			%{buildroot}%{oradir}/lib
%endif

%{__sed} -i -e "s/@version@/%{version}/g" -e "s/@lib@/%{_lib}/g" %{buildroot}%{_bindir}/oracle-instantclient-config

echo %{oradir}/lib >%{buildroot}%{_sysconfdir}/ld.so.conf.d/oracle-instantclient.conf

cat >%{buildroot}%{oradir}/network/admin/tnsnames.ora <<EOF
# Example configuration - RAC
#MYSID =
#  (DESCRIPTION =
#    (ADDRESS_LIST =
#      (ADDRESS = (PROTOCOL = TCP)(HOST = racnode1-vip)(PORT = 1521))
#      (ADDRESS = (PROTOCOL = TCP)(HOST = racnode2-vip)(PORT = 1521))
#      (LOAD_BALANCE = no)
#    )
#    (SDU = 8192)
#    (CONNECT_DATA =
#      (SERVICE_NAME = SNAME)
#        (INSTANCE_NAME = instance1)
#    )
#  )
EOF

cat >%{buildroot}%{_sysconfdir}/profile.d/instantclient.sh <<EOF
##!/bin/bash
export ORACLE_HOME=%{oradir}
EOF

# ERROR: the files above contain java bytecode for something later than java 1.5,
# ERROR: please set the javac target to 1.5 or lower
# Disabling BYTECODE check on SLES. Being a bynary package we can't specify target
export NO_BRP_CHECK_BYTECODE_VERSION=true

# Devel
%{__install} -m0644 sdk/include/*.h    %{buildroot}%{incdir}
%{__install} -m0644 sdk/include/*.hpp    %{buildroot}%{incdir}
%{__install} -m0644 sdk/ottclasses.zip %{buildroot}%{oradir}/lib
%{__install} -m0755 sdk/ott            %{buildroot}%{oradir}/bin

ln -sf %{oradir}/bin/ott    %{buildroot}%{_bindir}/ott
ln -s libocci.so.19.1       %{buildroot}%{oradir}/lib/libocci.so
ln -s libclntsh.so.19.1     %{buildroot}%{oradir}/lib/libclntsh.so
ln -s libclntshcore.so.19.1 %{buildroot}%{oradir}/lib/libclntshcore.so

unzip -l %{_sdk_source} | grep include/\. | \
  sed 's#.*include/#%{incdir}/#' > ../devel-include.files

# JDBC
%{__install} -m0755 libheteroxa19.so	%{buildroot}%{oradir}/lib
%{__install} -m0644 orai18n.jar			%{buildroot}%{oradir}/lib
%{__install} -m0644 orai18n-mapping.jar	%{buildroot}%{oradir}/lib

# ODBC
%{__install} -m0755 libsqora.so.19.1	%{buildroot}%{oradir}/lib
%{__install} -m0755 odbc_update_ini.sh	%{buildroot}%{oradir}/bin

# SQL*Plus
%{__install} -m0755 sqlplus 		%{buildroot}%{oradir}/bin
%{__install} -m0644 glogin.sql 		%{buildroot}%{oradir}/lib
%{__install} -m0755 libsqlplus.so 	%{buildroot}%{oradir}/lib
%{__install} -m0755 libsqlplusic.so 	%{buildroot}%{oradir}/lib

ln -sf %{oradir}/bin/sqlplus %{buildroot}%{_bindir}/sqlplus

#ERROR: RPATH "/ade/aime_sqlplus_179840/oracle/lib" on /var/tmp/oracle-instantclient-10.2.0.4-build/usr/lib64/oracle/10.2.0.4/client/bin/sqlplus is not allowed
#ERROR: RPATH "/ade/aime_rdbms_187601/oracle/lib" on /var/tmp/oracle-instantclient-10.2.0.4-build/usr/lib64/oracle/10.2.0.4/client/bin/genezi is not allowed
#ERROR: RPATH "/ade/aime_sqlplus_179840/oracle/lib" on /var/tmp/oracle-instantclient-10.2.0.4-build/usr/lib64/oracle/10.2.0.4/client/lib/libsqlplusic.so is not allowed
#ERROR: RPATH "/ade/aime_sqlplus_179840/oracle/lib" on /var/tmp/oracle-instantclient-10.2.0.4-build/usr/lib64/oracle/10.2.0.4/client/lib/libsqlplus.so is not allowed
#ERROR: RPATH "/ade/aime_rdbms_187601/oracle/lib" on /var/tmp/oracle-instantclient-10.2.0.4-build/usr/lib64/oracle/10.2.0.4/client/lib/libociei.so is not allowed
#ERROR: RPATH "/ade/aime_rdbms_187601/oracle/lib" on /var/tmp/oracle-instantclient-10.2.0.4-build/usr/lib64/oracle/10.2.0.4/client/lib/libclntsh.so.10.1 is not allowed
# bad RPATH=. which is not good
# But we cannot change this in a binary only package, we can only
# disable the check:
export NO_BRP_CHECK_RPATH="true"

# Tools
%{__install} -m0755 wrc 		%{buildroot}%{oradir}/bin
%{__install} -m0755 exp 		%{buildroot}%{oradir}/bin
%{__install} -m0755 expdp 		%{buildroot}%{oradir}/bin
%{__install} -m0755 imp 		%{buildroot}%{oradir}/bin
%{__install} -m0755 impdp 		%{buildroot}%{oradir}/bin
%{__install} -m0755 sqlldr 		%{buildroot}%{oradir}/bin
%{__install} -m0755 libnfsodm19.so 	%{buildroot}%{oradir}/lib

ln -sf %{oradir}/bin/wrc %{buildroot}%{_bindir}/wrc
ln -sf %{oradir}/bin/exp %{buildroot}%{_bindir}/exp
ln -sf %{oradir}/bin/expdp %{buildroot}%{_bindir}/expdp
ln -sf %{oradir}/bin/imp %{buildroot}%{_bindir}/imp
ln -sf %{oradir}/bin/impdp %{buildroot}%{_bindir}/impdp
ln -sf %{oradir}/bin/sqlldr %{buildroot}%{_bindir}/sqlldr

# Precomp
cd ../%{precomptopdir}
%{__install} -m0755 sdk/{proc,procob,rtsora}	%{buildroot}%{oradir}/bin
%{__install} -m0755 cobsqlintf.o	%{buildroot}%{oradir}/lib
%{__install} -m0644 precomp/admin/*	%{buildroot}%{oradir}/precomp/admin

ln -sf %{oradir}/bin/proc %{buildroot}%{_bindir}/proc
ln -sf %{oradir}/bin/procob %{buildroot}%{_bindir}/procob
ln -sf %{oradir}/bin/rtsora %{buildroot}%{_bindir}/rtsora

# Precomp-Devel
%{__install} -m0644 sdk/include/*.h     %{buildroot}%{incdir}

unzip -l %{_precomp_source} |grep include/\. | \
  sed 's#.*include/#%{incdir}/#' > ../precomp-include.files


%post
/sbin/ldconfig 

%postun
/sbin/ldconfig

%post jdbc
/sbin/ldconfig 

%postun jdbc
/sbin/ldconfig

%post odbc
/sbin/ldconfig 

%postun odbc
/sbin/ldconfig

%post sqlplus
/sbin/ldconfig 

%postun sqlplus
/sbin/ldconfig

%post precomp
/sbin/ldconfig

%postun precomp
/sbin/ldconfig


%files
%defattr(-,root,root)
%doc %{topdir}/BASIC_README
%config %{_sysconfdir}/ld.so.conf.d/oracle-instantclient.conf
%config %{_sysconfdir}/profile.d/instantclient.sh
%config %{oradir}/network/admin/tnsnames.ora
%dir %{_libdir}/oracle
%dir %{_libdir}/oracle/%{version}
%dir %{oradir}
%dir %{oradir}/bin
%dir %{oradir}/lib
%dir %{oradir}/network
%dir %{oradir}/network/admin
%{oradir}/lib/libclntsh.so.19.1
%{oradir}/lib/libclntshcore.so.19.1
%{oradir}/lib/libnnz19.so
%{oradir}/lib/libocci.so.19.1
%{oradir}/lib/libociei.so
%{oradir}/lib/libocijdbc19.so
%{oradir}/lib/liboramysql19.so
%{oradir}/lib/ojdbc8.jar
%{oradir}/lib/ucp.jar
%{oradir}/lib/xstreams.jar
%ifarch x86_64
%{oradir}/lib/libipc1.so
%{oradir}/lib/libmql1.so
%endif
%{oradir}/bin/genezi
%{oradir}/bin/adrci
%{oradir}/bin/uidrvci
%{_bindir}/oracle-instantclient-config

%files devel -f devel-include.files
%defattr(-,root,root)
%license %{topdir}/SDK_LICENSE
%doc %{topdir}/SDK_README %{topdir}/sdk/demo
%dir %{incdir}
%{oradir}/lib/libclntsh.so
%{oradir}/lib/libclntshcore.so
%{oradir}/lib/libocci.so
%{oradir}/lib/ottclasses.zip
%{_bindir}/ott
%{oradir}/bin/ott

%files jdbc
%defattr(-,root,root)
%doc %{topdir}/JDBC_README
%{oradir}/lib/libheteroxa19.so
%{oradir}/lib/orai18n.jar
%{oradir}/lib/orai18n-mapping.jar

%files odbc
%defattr(-,root,root)
%doc %{topdir}/ODBC_README
%{oradir}/bin/odbc_update_ini.sh
%{oradir}/lib/libsqora.so.19.1

%files sqlplus
%defattr(-,root,root)
%doc %{topdir}/SQLPLUS_README
%{_bindir}/sqlplus
%{oradir}/bin/sqlplus
%{oradir}/lib/glogin.sql
%{oradir}/lib/libsqlplus.so
%{oradir}/lib/libsqlplusic.so

%files tools
%defattr(-,root,root)
%doc %{topdir}/TOOLS_README
%{_bindir}/wrc
%{_bindir}/exp*
%{_bindir}/imp*
%{_bindir}/sqlldr
%{oradir}/bin/wrc
%{oradir}/bin/exp*
%{oradir}/bin/imp*
%{oradir}/bin/sqlldr
%{oradir}/lib/libnfsodm19.so

%files precomp
%defattr(-,root,root)
%doc %{precomptopdir}/sdk/demo %{precomptopdir}/PRECOMP_README
%dir %{_includedir}/oracle
%dir %{_includedir}/oracle/%{version}
%dir %{oradir}/precomp
%dir %{oradir}/precomp/admin
%config  %{oradir}/precomp/admin/pcbcfg.cfg
%config  %{oradir}/precomp/admin/pcscfg.cfg
%{oradir}/lib/cobsqlintf.o
%{oradir}/bin/proc
%{oradir}/bin/procob
%{oradir}/bin/rtsora
%{_bindir}/proc
%{_bindir}/procob
%{_bindir}/rtsora

%files precomp-devel -f precomp/precomp-include.files
%defattr(-,root,root)
%dir %{incdir}


%changelog
openSUSE Build Service is sponsored by