Dag Wieers wrote:
Attached are my .specs for the instantclient and DBD::Oracle and some source files to build DBD::Oracle (patched Makefile.PL and a perlreq filter). The makefile there may be a much better way of working around, but I use this patch... You'll want to modify it so "/usr/local" becomes "/usr" (a relic from my solaris build)On Wed, 18 Jun 2008, Peter Willis wrote:Ralph Angenendt wrote:Peter Willis wrote:DBD::Oracle 1.21 P/PY/PYTHIAN/DBD-Oracle-1.21.tar.gzAFAIR that one needs liboci.so (at least). So I don't think it can be packaged for rpmforge, can it?I currently package the oracle instantclient libraries (free download) and link against those. I know it works with 10.2.0.x instantclient versions anyway... It's a bit of a bastard to set up so if you wanted to skip that one I could maintain it myself, or I could post my .spec and Makefile.PL patches for both.This we could ship as a nosrc RPM package and I can make it available in my build environment. If you have more information (link, procedure, SPEC file), please send it to me...Kind regards,
%define pkgname perl-DBD-Oracle %define filelist %{pkgname}-%{version}-filelist %define NVR %{pkgname}-%{version}-%{release} %define maketest 0 # user definitions name: perl-DBD-Oracle summary: perl-DBD-Oracle - Oracle database driver for the DBI module version: 1.20 release: 6 epoch: 2 vendor: [EMAIL PROTECTED] packager: Arix International <[EMAIL PROTECTED]> license: Artistic group: Applications/CPAN url: http://www.cpan.org buildroot: %{_tmppath}/%{name}-%{version} prefix: %(echo %{_prefix}) requires: perl >= 1:5.8.8 source: DBD-Oracle-1.20.tar.gz source99: dbdoracle-filter-perlreq.sh Patch0: DBD-Oracle-120-makefile.patch %if "%{_os}" == "linux" requires: fedora-release >= 3 buildarch: i386 %endif %description DBD::Oracle is a Perl module which works with the DBI module to provide access to Oracle databases. # # This package was generated automatically with the cpan2rpm # utility. To get this software or for more information # please visit: http://perl.arix.com/ # %define __perl_requires %{SOURCE99} %prep %setup -q -n DBD-Oracle-%{version} %patch0 -p1 -b .oldmf chmod -R u+w %{_builddir}/DBD-Oracle-%{version} %build find . -type f -exec grep -sl '^#!.*perl' {} | grep -v '.bak$' |xargs \ %__perl -MExtUtils::MakeMaker -e 'MY->fixin(@ARGV)' CFLAGS="$RPM_OPT_FLAGS" %{__perl} Makefile.PL INSTALLDIRS=vendor %{__make} CCFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_TS_ERRNO" OPTIMIZE="-O3" %if %maketest %{__make} test %endif %install [ "%{buildroot}" != "/" ] && rm -rf %{buildroot} %{makeinstall} `%{__perl} -MExtUtils::MakeMaker -e ' print \$ExtUtils::MakeMaker::VERSION <= 6.05 ? qq|PREFIX=%{buildroot}%{_prefix}| : qq|DESTDIR=%{buildroot}| '` cmd=/usr/share/spec-helper/compress_files [ -x $cmd ] || cmd=/usr/lib/rpm/brp-compress [ -x $cmd ] && $cmd # remove special files find %{buildroot} -name "perllocal.pod" \ -o -name ".packlist" \ -o -name "*.bs" \ |xargs -i rm -f {} # no empty directories [ -d "%{buildroot}%{_prefix}" ] && find "%{buildroot}%{_prefix}" -type d -depth -exec rmdir {} \; 2>/dev/null %{__perl} -MFile::Find -le ' find({ wanted => \&wanted, no_chdir => 1}, "%{buildroot}"); print "%doc Todo README.login.txt README hints README.sec.txt README.macosx.txt README.aix.txt Oracle.ex README.wingcc.txt README.explain.txt Changes README.help.txt README.java.txt README.win32.txt README.hpux.txt README-files README.clients.txt README.vms.txt README.linux.txt README.longs.txt"; for my $x (sort @dirs, @files) { push @ret, $x unless indirs($x); } print join "\n", sort @ret; sub wanted { return if /auto$/; local $_ = $File::Find::name; my $f = $_; s|^\Q%{buildroot}\E||; return unless length; return [EMAIL PROTECTED] = $_ if -f $f; $d = $_; /\Q$d\E/ && return for reverse sort @INC; $d =~ /\Q$_\E/ && return for qw|/etc %_prefix/man %_prefix/bin %_prefix/share|; [EMAIL PROTECTED] = $_; } sub indirs { my $x = shift; $x =~ /^\Q$_\E\// && $x ne $_ && return 1 for @dirs; } ' > %filelist [ -z %filelist ] && { echo "ERROR: empty %files listing" exit -1 } %clean [ "%{buildroot}" != "/" ] && rm -rf %{buildroot} %files -f %filelist %defattr(-,root,root) %changelog * Thu Jun 05 2008 [EMAIL PROTECTED] - Support solaris * Tue Mar 11 2008 [EMAIL PROTECTED] - Initial build. - Add makefile patch
%define name oracle-instantclient %define base oracle-instantclient-basic %define version 10.2.0.3 %define release 4 %define epoch 1 %define user_buildroot %{name}-%{version}-%{release} Name: %{name} Version: %{version} Release: %{release} Epoch: %{epoch} Summary: Instant Client for Oracle Database 10g. URL: http://www.oracle.com/ Vendor: Oracle License: Oracle Packager: %{current_packager} Group: System Environment/Libraries BuildRoot: %{_tmppath}/%{user_buildroot} %if "%{_os}" == "linux" Source: instantclient-basiclite-linux32.zip Requires: fedora-release >= 3 %endif %if "%{_os}" == "solaris" #Source: instantclient-basiclite-solaris64-%{version}-20070101.zip Source: instantclient-basiclite-solaris6432-%{version}-20070101.zip %define _prefix /usr/local %endif # DO NOT PLACE .so LIB REQUIRES HERE. Let rpmbuild figure those out, it's # better at it than you. ;) Provides: oracle-instantclient-basic = %{epoch}:%{version}-%{release} Provides: oracle-instantclient = %{epoch}:%{version} Conflicts: oracle-client, oracle-client %description Base files for Instant Client. Support for OCI, OCCI, and JDBC-OCCI applications. Note: The is the CBS DM repackaging (binary only) of these files for dependency tracking purposes. %prep [ -d %{name} ] && rm -rf %{name} ||: mkdir %{name} cd %{name} unzip %{SOURCE0} %build # No build necessary %install cd %{name} # was going to do this the easy way with rpm --root $RPM_BUILD_ROOT -i %SOURCE0 # # BUT Bug in rpm since 2004 prevents --root from working completed, it never # prepends the root path on to the transaction lock file when it goes to lock # that database and thus tries to lock the *real* db which can't be done w/out # root. #archive="`pwd`/%{base}-%{version}-%{release}.cpio" mkdir -p $RPM_BUILD_ROOT/%{_libdir}/oracle/%{version}/client/lib find . -type f -exec mv {} $RPM_BUILD_ROOT/%{_libdir}/oracle/%{version}/client/lib/ \; %if "%{_os}" == "linux" %post echo "%{_libdir}/oracle/%{version}/client/lib" > /etc/ld.so.conf.d/oracle-instantclient-%{version}.conf /sbin/ldconfig %postun rm -f /etc/ld.so.conf.d/oracle-instantclient-%{version}.conf /sbin/ldconfig %endif %if "%{_os}" == "solaris" %post #if [ ! -f /var/ld/64/ld.config ] ; then #/usr/bin/crle -64 -c /var/ld/64/ld.config -l /lib/64:/usr/lib/64:/usr/local/lib/64:/usr/sfw/lib/64 #fi #/usr/bin/crle -64 -c /var/ld/64/ld.config -l "%{_libdir}/oracle/%{version}/client/lib" -u /usr/bin/crle -l "%{_libdir}/oracle/%{version}/client/lib" -u %endif %clean [ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" %files %defattr(0755,root,root) %{_libdir}/oracle/%{version} %changelog * Fri Jun 06 2008 Peter Willis - cleanups for solaris - switch to 32-bit to support DBD::Oracle * Wed Nov 29 2006 Peter Willis - add ld.so.conf.d so perl can find the library * Thu Nov 24 2005 Jesse Sipprell - Initial build of CBS-oracle-instantclient # vi: sts=2 et sw=2 tw=0 noai
%define name oracle-instantclient-devel %define base oracle-instantclient-devel %define version 10.2.0.3 %define release 4 %define epoch 1 %define user_buildroot %{name}-%{version}-%{release}-%(eval "id -nu") Name: %{name} Version: %{version} Release: %{release} Epoch: %{epoch} Summary: Development headers and libs for Oracle instantclient 10g. URL: http://www.oracle.com/ Vendor: Oracle License: Oracle Packager: %{current_packager} Group: Development/Libraries BuildRoot: %{_tmppath}/%{user_buildroot} %if "%{_os}" == "linux" Source: instantclient-sdk-linux32-%{version}-20060331.zip Requires: fedora-release >= 3 %endif %if "%{_os}" == "solaris" #Source: instantclient-sdk-solaris64-%{version}-20070101.zip Source: instantclient-sdk-solaris6432-%{version}-20070101.zip %define _prefix /usr/local %endif # DO NOT PLACE .so LIB REQUIRES HERE. Let rpmbuild figure those out, it's # better at it than you. ;) Provides: oracle-instantclient-devel = %{epoch}:%{version}-%{release} Requires: oracle-instantclient = %{epoch}:%{version} Conflicts: oracle-client, oracle-client %description Header files and stub libraries needed to build software against the oracle instantclient. %prep [ -d %{name} ] && rm -rf %{name} ||: mkdir %{name} cd %{name} unzip %{SOURCE0} %build # No build necessary %install cd %{name} # was going to do this the easy way with rpm --root $RPM_BUILD_ROOT -i %SOURCE0 # # BUT Bug in rpm since 2004 prevents --root from working completed, it never # prepends the root path on to the transaction lock file when it goes to lock # that database and thus tries to lock the *real* db which can't be done w/out # root. #archive="`pwd`/%{base}-%{version}-%{release}.cpio" for dir in %{_includedir}/oracle/%{version}/client %{_libdir}/oracle/%{version}/client/lib %{_datadir}/oracle/%{version}/client ; do \ mkdir -p $RPM_BUILD_ROOT/$dir ; \ done find . -type f -name '*.h' -exec mv {} $RPM_BUILD_ROOT/%{_includedir}/oracle/%{version}/client/ \; ln -sf %{_libdir}/oracle/%{version}/client/lib/libclntsh.so.10.1 $RPM_BUILD_ROOT/%{_libdir}/oracle/%{version}/client/lib/libclntsh.so ln -sf %{_libdir}/oracle/%{version}/client/lib/libocci.so.10.1 $RPM_BUILD_ROOT/%{_libdir}/oracle/%{version}/client/lib/libocci.so find . -type f -name '*demo*' -exec mv {} $RPM_BUILD_ROOT/%{_datadir}/oracle/%{version}/client/ \; find . -type f -name 'occidml.cpp' -exec mv {} $RPM_BUILD_ROOT/%{_datadir}/oracle/%{version}/client/ \; cp -r "./instantclient_10_2/sdk" $RPM_BUILD_ROOT/%{_libdir}/oracle/%{version} %if "%{_os}" == "linux" %post echo "%{_libdir}/oracle/%{version}/client/lib" > /etc/ld.so.conf.d/oracle-instantclient-%{version}.conf /sbin/ldconfig %postun rm -f /etc/ld.so.conf.d/oracle-instantclient-%{version}.conf /sbin/ldconfig %endif %if "%{_os}" == "solaris" %post #if [ ! -f /var/ld/64/ld.config ] ; then #/usr/bin/crle -64 -c /var/ld/64/ld.config -l /lib/64:/usr/lib/64:/usr/local/lib/64:/usr/sfw/lib/64 #fi #/usr/bin/crle -64 -c /var/ld/64/ld.config -l "%{_libdir}/oracle/%{version}/client/lib" -u /usr/bin/crle -l "%{_libdir}/oracle/%{version}/client/lib" -u %endif %clean [ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" %files %defattr(0755,root,root) %{_includedir}/oracle/%{version} %{_datadir}/oracle/%{version} %{_libdir}/oracle/%{version} %changelog * Fri Jun 06 2008 Peter Willis - add in the 'sdk' directory to help DBD::Oracle build - change _prefix based on OS, make everything else respect macro'd stuff like that - switch to 32 bit to support DBD::Oracle * Fri May 30 2008 Peter Willis - support solaris * Wed Nov 29 2006 Peter Willis - add ld.so.conf.d so perl can find the library * Thu Nov 24 2005 Jesse Sipprell - Initial build of CBS-oracle-instantclient-devel # vi: sts=2 et sw=2 tw=0 noai
# this is a "template" spec file, for building an rpm from source. Template # is in quotes because there is no way to cookie-cutter rolling an rpm, but # this a good foundation. %define name oracle-instantclient-sqlplus %define base oracle-instantclient-sqlplus %define version 10.2.0.3 %define release 4 %define epoch 1 %define user_buildroot %{name}-%{version}-%{release} Name: %{name} Version: %{version} Release: %{release} Epoch: %{epoch} Summary: Instant Client for Oracle Database 10g. URL: http://www.oracle.com/ Vendor: Oracle License: Oracle Packager: %{current_packager} Group: System Environment/Libraries BuildRoot: %{_tmppath}/%{user_buildroot} %if "%{_os}" == "linux" Source: instantclient-sqlplus-linux32-%{version}-20060331.zip Requires: fedora-release >= 3 %endif %if "%{_os}" == "solaris" #Source: instantclient-sqlplus-solaris64-%{version}-20070101.zip Source: instantclient-sqlplus-solaris6432-%{version}-20070101.zip %define _prefix /usr/local %endif # DO NOT PLACE .so LIB REQUIRES HERE. Let rpmbuild figure those out, it's # better at it than you. ;) Provides: oracle-instantclient-sqlplus = %{epoch}:%{version}-%{release} Conflicts: oracle-client, oracle-client Requires: oracle-instantclient = %{epoch}:%{version}-%{release} %description Additional libraries and executable for running SQL*Plus with Instant Client Note: The is the CBS DM repackaging (binary only) of these files for dependency tracking purposes. %prep [ -d %{name} ] && rm -rf %{name} ||: mkdir %{name} cd %{name} unzip %{SOURCE0} %build # No build necessary %install cd %{name} # was going to do this the easy way with rpm --root $RPM_BUILD_ROOT -i %SOURCE0 # # BUT Bug in rpm since 2004 prevents --root from working completed, it never # prepends the root path on to the transaction lock file when it goes to lock # that database and thus tries to lock the *real* db which can't be done w/out # root. #archive="`pwd`/%{base}-%{version}-%{release}.cpio" for dir in %{_bindir} %{_libdir}/oracle/%{version}/client/bin %{_libdir}/oracle/%{version}/client/lib ; do \ mkdir -p $RPM_BUILD_ROOT/$dir ; \ done #find . -name sqlplus -exec cp {} %{_bindir}/sqlplus \; ln -sf %{_libdir}/oracle/%{version}/client/bin/sqlplus $RPM_BUILD_ROOT/%{_bindir}/sqlplus find . -name sqlplus -exec mv {} $RPM_BUILD_ROOT/%{_libdir}/oracle/%{version}/client/bin/sqlplus \; find . -name glogin.sql -exec mv {} $RPM_BUILD_ROOT/%{_libdir}/oracle/%{version}/client/lib/glogin.sql \; find . -name libsqlplus.so -exec mv {} $RPM_BUILD_ROOT/%{_libdir}/oracle/%{version}/client/lib/libsqlplus.so \; find . -name libsqlplusic.so -exec mv {} $RPM_BUILD_ROOT/%{_libdir}/oracle/%{version}/client/lib/libsqlplusic.so \; %if "%{_os}" == "linux" %post echo "%{_libdir}/oracle/%{version}/client/lib" > /etc/ld.so.conf.d/oracle-instantclient-%{version}.conf /sbin/ldconfig %postun rm -f /etc/ld.so.conf.d/oracle-instantclient-%{version}.conf /sbin/ldconfig %endif %if "%{_os}" == "solaris" %post #if [ ! -f /var/ld/64/ld.config ] ; then #/usr/bin/crle -64 -c /var/ld/64/ld.config -l /lib/64:/usr/lib/64:/usr/local/lib/64:/usr/sfw/lib/64 #fi #/usr/bin/crle -64 -c /var/ld/64/ld.config -l "%{_libdir}/oracle/%{version}/client/lib" -u /usr/bin/crle -l "%{_libdir}/oracle/%{version}/client/lib" -u %endif %clean [ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT" %files %defattr(0755,root,root) %{_libdir}/oracle/%{version} %{_bindir} %changelog * Fri May 30 2008 Peter Willis - support solaris - *sigh* switch to 32-bit version to support instantclient used by DBD::Oracle * Wed Nov 29 2006 Peter Willis - add ld.so.conf.d so perl can find the library * Tue Mar 21 2006 Mitch Lewandowski <[EMAIL PROTECTED]> - Initial build of CBS-oracle-instantclient-sqlplus # vi: sts=2 et sw=2 tw=0 noai
dbd-oracle-sources.tgz
Description: Binary data
_______________________________________________ suggest mailing list suggest@lists.rpmforge.net http://lists.rpmforge.net/mailman/listinfo/suggest