Over the last few years I've spent a fair amount of time working deep inside the ON (OS/Networking) consolidation, improving the build system (https://blogs.oracle.com/jmcp/entry/my_own_private_crash_n) and enhancing some general gate plumbing. One significant aspect of that plumbing was migrating our automated bug update system from Sun's Bugster to Oracle's bug database.
When Oracle's acquisition of Sun took effect we were still developing Solaris 11, so we got an exemption from the "thou shalt migrate to the one true bug tracking tool" edict. Once we had shipped Solaris 11, however, we had to get cracking on that migration. My small part in that process was writing a python script to provide a gate tools interface. We needed to provide a way for engineers to check that their bugids, synopses and pre-integration state were correct, as well as automatically updating bug states on integration ("fix available"), backout ("fix failed") and build close (when the gate staff mark a bug as "fix delivered"). This was a surprisingly large amount of work, even though it resulted in only about 1500 lines of code (95% python, 5% shell). The majority of the effort came from learning the database schema and its APIs - and for that I needed to use sqlplus.
Those of you who need to interact directly with Oracle databases will be familiar with this tool, and a great many people use the version that comes with their full Oracle database installation. There is another way of obtaining this tool - the Oracle Instant Client. Until now you needed to download the Instant Client from https://www.oracle.com/technetwork/database/features/instant-client/index-100365.html in zipped format, and unpack the bits you needed into a convenient location. Some mucking around with LD_LIBRARY_PATH was necessary, too.
As follow-on from this bug service migration project I developed a hankering to see the Oracle Instant Client made available in IPS form, and I am delighted to announce that this is now possible with the Oracle Solaris 11.3 beta release for the 220.127.116.11.0 release of the Oracle Instant Client.
If you've downloaded the Oracle Instant Client from OTN, you will be aware that the zipfiles are split up into 32 and 64bit versions of the basic libraries, sqlplus, the ODBC and JDBC supplements and software development kit (sdk). What we are providing with our delivery is slightly different from what you'll find on OTN, because we've combined a few logically aligned packages into one:
There is also a pkg:/consolidation/instantclient/instantclient-incorporation which ties them all together. The contents of pkg:/database/oracle/instantclient almost completely match the OTN 'basic', 'sqlplus' and 'wrc' zipfiles - in both 32- and 64-bit versions. The sdk, odbc-supplement and jdbc-supplement packages match what is provided in the OTN zipfiles.
To install these packages, once you have set your solaris publisher to the Beta release repo, just utter
# pkg install pkg:/consolidation/instantclient/instantclient-incorporation
As newer versions of the Instant Client are released, we will update the version in https://pkg.oracle.com to match, and you will notice that the package FMRI tracks the Database release version (12.1) rather than the Solaris release.
We have also updated the runpaths in the libraries and binaries so there is no need for you to set LD_LIBRARY_PATH in a wrapper script - though you might find it useful to add /usr/oracle/instantclient/12.1/bin to your $PATH.
As a side note, you might find it useful to set ORACLE_HOME if you are going to build bindings such as cx_Oracle for Python or DBD::Oracle for Perl.
Finally, I could not have done this without the assistance of Chris Jones, the Instant Client program manager - thankyou Chris!