parallel installation issues for gstreamer


so I'm spending my weekend preparing GStreamer for inclusion in gnome 2.2.
I am currently working out how to properly convert GStreamer to be 
parallel installable.  I've got most things worked out, but I need some 
guidance for some specific cases.

The theoretical goal is to make all versions with different major/minor 
before 1.0 parallel-installable.  We'll be doing minor even = stable 
releases from now on, so this basically applies to the "stable" versions 
gstreamer-0.6 and gstreamer-0.8, and the development versions for those, 
gstreamer-0.5 and gstreamer-0.7

Here's what I changed :

* include headers end up in $(includedir)/gstreamer-0.5
* all libraries end up as $(libdir)/,
  with proper libtool versioning
* all plug-ins end up as $(libdir)/gstreamer-0.5/libgst*, without any
  libtool versioning
* all .pc files end up as $(libdir)/pkgconfig/gstreamer-(...-)0.5.pc
* the registry cache ends up in $(localstatedir)/cache/gstreamer-0.5/
* a gst-element-check.m4 gets installed a gst-element-check-0.5.m4 as
  well (but this is debatable)

The gst-plugins package will install to the same locations (when it used 
to install to a gst-plugins namespace in the past).

As for binaries, I didn't version them, but moved them to a separate rpm, 
so that one gstreamer-tools rpm can work on both a 0.6 install and a 0.8 
install.  The details of that I will figure out later, they're not that 
important right now.

This makes the core of gstreamer fully parallel-installable.
 Now, on to some of the problems.

a) gst-plugins installs a schema.  I can do three things:
   - leave the path in gconf to /system/gstreamer and keep the filename
     gstreamer.schemas, making it not parallel-installable
   - change both the filename and the path to gstreamer-0.5
   - make a separate package ONLY for the schema file, so that this
     too can be reused among different incompatible versions.

   I prefer the second option.  The first would nullify the work I did
   already to make it fully parallel-installable, which is a worthwhile 
   goal.  The third one is overkill IMO.

b) gst-element-check.m4 being installed as gst-element-check-0.5.m4
   this is an m4 to check if a plug-in is available.  It seems stupid to
   version the filename only so it can be parallel installable, but I
   see no cleaner solution.
   Also, I'm not quite sure how aclocal behaves when two different files
   provide the same macro.  Does it use either one randomly or complain
   spectacularly ?

c) is it ok to "not care" about binaries and man pages for them, since
   it's stupid to version them and since they can be moved to a separate
   package that would work with both installs ?

Any hints from old-school hackers that faced similar problems as well as 
"newer" hackers with fresh minds are appreciated ;)



The Dave/Dina Project : future TV today ! -
<-*- thomas (dot) apestaart (dot) org -*->
I may be love's bitch
But at least I'm man enough to admit it.
<-*- thomas  (at) apestaart (dot) org -*->
URGent, the best radio on the Internet - 24/7 ! -

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