Re: managing symlinks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tor, 30.06.2005 kl. 17.40 skrev Bob Proulx:

> > install -m 644 db.h %{buildroot}/usr/local/BerkeleyDB.4.2/include
> > install -m 644 db_cxx.h %{buildroot}/usr/local/BerkeleyDB.4.2/include
> > install -m 755 .libs/libdb* %{buildroot}/usr/local/BerkeleyDB.4.2/lib
> > install -m 755 libdb.a %{buildroot}/usr/local/BerkeleyDB.4.2/lib
> > pushd %{buildroot}/usr/local/BerkeleyDB.4.2/lib/
> >   ln -s libdb-4.2.so libdb.so
> > popd
> 
> The %install script is run with /bin/sh by default.  You should not be
> using pushd and popd there.  Those are not standard commands and would
> fail if /bin/sh were a different shell than bash.  And you don't need
> them here anyway.

First off: If you don't get to the bottom - Thanks!
Secondly, this is meant for Red Hat, so bash is standard (sh *is* bash).

> The common idiom is to perform chdirs in a subshell.  Something like this.
> 
>  (cd %{buildroot}/usr/local/BerkeleyDB.4.2/lib/ && ln -s libdb-4.2.so libdb.so)

Ok.

> But you don't need to chdir here at all.  Just create the link.
> 
>   ln -s libdb-4.2.so %{buildroot}/usr/local/BerkeleyDB.4.2/lib/libdb.so

This *works*. But I can't see how. How does rpmbuild know where to find
libdb-4.2.so?

> > tir, 28.06.2005 kl. 17.55 skrev Bob Proulx:
> > > That is not the behavior that I am seeing here.  Can you show your
> > > spec file?  I do this all of the time and it works for me.
> > 
> > Could you please comment? I'm open for everything at the moment ...
> 
> > %files
> > 
> > [...]
> 
> Uhm, your %files section is completely empty.  You need to list
> something there in order to have your symlinks in the package.  This
> can't be your actual spec file.

No, of course it isn't. I tried to attach the spec file, but it was 4.9
kB and it appears the list doesn't accept anything over 4 kB. So you got
what was relevant to my question; my actual %fies section (which works,
everything works) is:

%files
%defattr(-,root,root)
/usr/local/BerkeleyDB.4.2/bin/*
/usr/local/BerkeleyDB.4.2/lib/*
/usr/local/BerkeleyDB.4.2/include/*
/usr/local/BerkeleyDB.4.2/docs/*

> Since you are trying to package the Berkeley DB which has been
> packaged many times before, you might try to find another version of
> the package and look at the techniques used by the other packager.
> Using http://www.rpmfind.net to find another package might be helpful.

Good call. That's how I got the pushd/popd stuff (I'm still learning ;)

Really the idea was, that what Sleepycat packaged for rpm building was
so utterly useless, that even though I got it to work in the end (by all
sorts of sleight of hand), I thought I could build my own from the
beginning. And I did.

Thanks again!


-- 
mail: tonye@xxxxxxxxxxxxxx
http://www.billy.demon.nl



[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux