devel/foobillard foobillard.spec,1.3,1.4

Ralf Corsepius rc040203 at freenet.de
Sat Feb 19 05:16:15 UTC 2005


On Sat, 2005-02-19 at 05:08 +0100, Michael Schwendt wrote:
> On Fri, 18 Feb 2005 15:48:02 +0100, Nils Philippsen wrote:
> 
> > On Wed, 2005-02-16 at 10:56 +0100, Ralf Corsepius wrote:
> > > On Tue, 2005-02-15 at 09:07 +0200, Ville Skyttä wrote:
> > > > On Mon, 2005-02-14 at 18:03 -0500, Gérard Milmeister wrote:
> > > >  
> > > > > @@ -13,9 +13,7 @@
> > > > >  BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root
> > > > >  BuildRequires:  SDL-devel ImageMagick XFree86-devel alsa-lib-devel
> > > > >  BuildRequires:  freetype-devel libpng-devel perl zlib-devel
> > > > > -# Yes, that's right. libGLU.so is owned by xorg-x11-devel, but it is just
> > > > > -# a symlink to libGLU.so.1.3, which belongs to libGLU
> > > > > -BuildRequires:  libGLU
> > > > > +BuildRequires:  xorg-x11-devel
> > > > >  
> > > > >  %description
> > > > >  FooBillard is an attempt to create a free OpenGL-billard for Linux. 
> > > > > @@ -60,6 +58,9 @@
> > > > >  
> > > > > 
> > > > >  %changelog
> > > > > +* Mon Feb 14 2005 Gerard Milmeister <gemi at bluewin.ch> - 0:3.0-a.1
> > > > > +- Added BuildRequires: xorg-x11-devel
> > > > 
> > > > XFree86-devel was already there, and still is...
> > > 
> > > FWIW: I think you want
> > > BuildRequires: libGL.so.1 libGLU.so.1 XFree86-devel
> > > 
> > > That's what I am using in all of my GL/GLU based packages.
> > 
> > That's wrong:
> > 
> > nils at gibraltar:~> rpm -q --whatprovides libGL.so.1
> > xorg-x11-Mesa-libGL-6.8.1-12.FC3.21
> > 
> > it doesn't draw in the required -devel package.
> 
> That's why XFree86-devel is in the BR line, too.
> 
> Well, without the Mesa packages, libGL.so and libGLU.so are dangling
> symlinks only. And if you want to make your package build also on FC1 and
> older, you cannot BR xorg-x11-Mesa-libGLU, and you cannot depend on any
> virtual provides either, as e.g. FC3's xorg-x11-Mesa-libGLU no longer
> provides "libGLU".
Right, but there is more: 

There exist competing implementations of libGL and I am trying to play
nice to them and to the impact they have on users:

* BR: XFree86-devel ensures that packages pulls in the GL-headers from
XFree86/xorg-x11.

* BR: libGL.so.1 ensures that in a "clean" FC build environment the
package containing the "nominal libGL.so.1" is pulled in, whatever the
package is called (IIRC, the name has changed several times in RHL/FC
history).

The same considerations applies to libGLU.

=> Unless a package links statically and or plays tricks with include
paths, there is a fairly high possibility for users (in an "unclean"
build-environment) to be able to rebuild GL/GLU packages even if they
have competing/proprietary libGL/GLU implementations installed.

As a side effect, this construct also teaches users to setup a "proper
RHL/FH compliant" GL/GLU environment: It tries to enforce a "XFree/xorg-
x11" build/devel-environment, while giving them the freedom to use
proprietary/competing GL/GLU runtime environments.

To me, as person who is developing GL/GLU applications, this has saved
me a quite an amount of hair-loss :-)

Ralf






More information about the fedora-extras-commits mailing list