RPM build spec help

Dan Track dan.track at gmail.com
Tue Mar 6 09:30:45 UTC 2007


On 3/5/07, Sam Varshavchik <mrsam at courier-mta.com> wrote:
> Dan Track writes:
>
> > Hi
> >
> > I hope someone can help. Basically I want to access an environment
> > variable and place it in my  macro in my spec file.
> >
> > If I try to define a macro like the following:
> >
> > %define oracle_home $ORACLE_HOME
> >
> > and then try to build it "rpmbuild -ba perl-DBD-Oracle"
> >
> > I get the following error:
> > error: line 18: Dependency tokens must begin with alpha-numeric, '_'
> > or '/': BuildRequires: $ORACLE_HOME/lib/libclntsh.so
> >
> > On line 18 I have the following:
> > BuildRequires: %{oracle_home}/lib/libclntsh.so
> >
> > Any ideas how I can resolve this?
>
> %{expand:%%define oracle_home %(echo $ORACLE_HOME)}
>
> However, this is considered to be bad practice.  RPM build specs should not
> depend on the parent environment, because they won't be reproducible.  The
> correct way to do this is:
>
> 1) You should install Oracle via rpm.  Create an rpm package for Oracle, if
> necessary
>
> 2) Then, your BuildRequires becomes simply "BuildRequires: oracle"
>
> 3) Then, your %prep, %build, and %install sections would initialize
> ORACLE_HOME accordingly (use the same snippet in all three cases).
>
>
> --
> fedora-list mailing list
> fedora-list at redhat.com
> To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
>
>

Hi

Thanks for the tip, it helped. Sadly I can't make the oracle install
into an rpm as the local DBA is a bit conservative in his approach and
doesn't want to do something different from his normal installation
method.

I having a problem though. If I include the following

BuildRequires: %{oracle_home}/lib/libclntsh.so.10.1

Then try to build it I get:

rpmbuild -ba perl-DBD-Oracle.spec
error: Failed build dependencies:
        /opt/app/oracle/product/10.2.0/lib/libclntsh.so is needed by
perl-DBD-Oracle-1.16-4

although the file is there

ls -l /opt/app/oracle/product/10.2.0/lib/libclntsh.so
lrwxrwxrwx  1 oracle oinstall 17 Jul 20  2006
/opt/app/oracle/product/10.2.0/lib/libclntsh.so -> libclntsh.so.10.1

Any ideas why this would be happening?

Thanks in advance
Dan




More information about the fedora-list mailing list