Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the DBD-Oracle CPAN distribution.

Report information
The Basics
Id: 72471
Status: rejected
Priority: 0/
Queue: DBD-Oracle

People
Owner: Nobody in particular
Requestors: cj10 [...] cam.ac.uk
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: (no value)
Fixed in: (no value)



Subject: Scary warning during install against 11.2 Oracle database server
Versions: Platform: SLES 11 SP 1 on Intel x86-64 Perl: 5.14.2 64-bit Oracle: 11.2.0.3.0 64-bit While building DBD::Oracle 1.34 against a 64-bit database server ORACLE_HOME, I received the following message from Makefile.PL. WARNING: Oracle /oracle/base/orahome/11.2.0.3.0/rdbms/lib/ins_rdbms.mk doesn't define a 'build' rule. WARNING: I will now try to guess how to build and link DBD::Oracle for you. This kind of guess work is very error prone and Oracle-version sensitive. It is possible that it won't be supported in future versions of DBD::Oracle. *PLEASE* notify dbi-users about exactly _why_ you had to build it this way. Despite this message, an apparently working DBD::Oracle was built. Experiment shows the same result as above for a 64-bit full client install. The behaviour with a 32-bit full client install is the subject of RT#72463. Instant Client builds, of course, work quite differently. I did not find the warning message particularly useful, not did I learn much from dbi-users, so did a bit of research. Two things together cause the warning. 1. The make file Oracle recommend for building OCI applications for Oracle 11 is $ORACLE_HOME/rdbms/demo/. See http://download.oracle.com/doc s/cd/E11882_01/server.112/e108 39/prcmp_cll_int.htm#BABDGIDJ This file is not shipped as part of either the full client or the server, so I did not have it at the time of the above events. (This file is now bundled into the optional 'Database Examples', which can be installed as a extra in server, or full client ORACLE_HOMEs). 2. The list of suitable make files in @mk_oci64 (near the top of find_mkfile()) in Makefile.PL includes rdbms/lib/ins_rdbms.mk. This is not a make file for building OCI applications. I presume it is for installing Oracle server software. The warning happens because the chosen make file is useless, and Makefile.PL has to fall back on other means of working out how to build an OCI application. It internally sets the dangerous -b=0 option, and continues. I solved this problem for myself by installing the 'Database Examples' (from disc 7 of 7) in my server Oracle Home. This caused Makefile.PL to use the Oracle-recommended make file, and not to hector me. My first thought was the best way forward would be to remove the useless rdbms/lib/ins_rdbms.mk from the list in find_mkfile(). This would cause a different route through Makefile.PL to lead to a fatal error with a message like: Unable to locate an oracle.mk or other suitable *.mk file in your Oracle installation. (I looked in <blah> under <blah>) The oracle.mk (or demo_rdbms.mk) file is part of the Oracle RDBMS product. You need to build DBD::Oracle on a system which has one of these Oracle components installed. (Other *.mk files such as the env_*.mk files will not work.) Alternatively you can use Oracle Instant Client. In the unlikely event that a suitable *.mk file is installed somewhere non-standard you can specify where it is using the -m option: perl Makefile.PL -m /path/to/your.mk See the appropriate README file for your OS for more information and some alternatives. This message could, in the case of Oracle 11 on Unix, be extended to advise the user either to use the Instant Client or to install the Database Examples. The only reason I have hesitated in producing such a patch is that the Database Examples take up more than 600 Mb of disk and its installer does not offer subsets. That is a lot of disk for one file! What do the maintainers of DBD::Oracle think about this? How serious is the threat that, "This kind of guess work is very error prone and Oracle-version sensitive. It is possible that it won't be supported in future versions of DBD::Oracle."?
Subject: Re: [rt.cpan.org #72471] Scary warning during install against 11.2 Oracle database server
Date: Wed, 16 Nov 2011 12:56:44 -0500
To: bug-DBD-Oracle [...] rt.cpan.org
From: Yanick Champoux <champoux [...] pythian.com>
On 11/16/11 12:40, Charles Jardine via RT wrote: Show quoted text
> What do the maintainers of DBD::Oracle think about this? How serious is > the threat that, "This kind of guess work is very error prone and > Oracle-version sensitive. It is possible that it won't be supported in > future versions of DBD::Oracle."?
The "error prone" part is the most serious. It's basically another wording for "okay, we didn't recognize your setting, so we're going to use heuristics, make guesses and generally try the best we can. Your mileage will vary. " As for that option going to be removed. Until we find a way to ensure DBD::Oracle is going to compile out of the box for all platforms, it's unlikely. :-) Of course, now that we know that the files have changes for 11.2 (yaaaaay....), we'll try to tweak the Makefile.PL so that it recognizes that new case. Cheers, `/anick -- Yanick Champoux, Senior Perl Developer The Pythian Group - love your data http://www.pythian.com -- Pythian proud winner of Oracle North America Titan Award for Exadata Solution...watch the video on pythian.com
From: Gwen Shapira
Show quoted text
> Of course, now that we know that the files have changes for 11.2 > (yaaaaay....), we'll try to tweak the Makefile.PL so that it recognizes > that new case.
Not simple. We should, as the OP said, remove ins_rdbms.mk from the "good makefiles" list. It is not, and never will be, a good mk file for us to use. The problem remains that in 11.2 and up, the mk files we need are not in the standard package and nearly everyone will get the scary message. It used to indicate a "strange and unusual" problem with the Oracle installation, but now this error happens on every 11.2 mainstream install. 99% of the time, the "guessing" works quiet well. The only time I remember an issue was on Solaris with serious mismatches between the environment in which Perl was build and the environment in which we attempted building DBD::Oracle - i.e. a bad situation to begin with. I'd like to: 1. Making the message significantly less scary. I don't see a point in scaring all our users just to give dubiously useful information to the minority that will run into issues. Oracle will not bring the makefiles back into the standard install package. 2. Add to the warning and to the troubleshooting guide the information that the makefiles you are looking for are in a separate installation CD (that is - a zip file. Why does Oracle still pretends there are installation CDs?). 3. Remove the ins_rdbms.mk from the list, as mentioned above. Does it look like this will solve the issue?
From: cj10 [...] cam.ac.uk
On Thu Nov 17 19:40:29 2011, http://prodlife.wordpress.com/ wrote: Show quoted text
> > Of course, now that we know that the files have changes for 11.2 > > (yaaaaay....), we'll try to tweak the Makefile.PL so that it recognizes > > that new case.
> > Not simple. > > We should, as the OP said, remove ins_rdbms.mk from the "good makefiles" > list. It is not, and never will be, a good mk file for us to use.
The effect of removing ins_rdbms.mk from the list in find_mkfile(), and doing nothing else, would be unsatisfactory. find_mkfile() does not return if it can't find a make file. I have looked more carefully at what happens after find_mkfile() has selected ins_rdbms.mk. Between the return of find_mkfile() and the generation of the scary message, some useful information is extracted from the make file. I have looked at the code in question, and it scares me. I don't understand it. I don't have the time to learn to understand it. Regrettably, I declare myself out of my depth. Although I have raised the problem, but I don't feel competent to advise how it should be fixed. I will continue to circumvent it be installing the Database Examples.
At this point, there is no plan to remove the warning. Things will change once we begin refactoring the Makefile.PL in earnest.