Re: parallel installation issues for gstreamer

My idea here is that if the schema files are versioned we are in the
clear and there is no need to version the gconf paths themselves. As
long as we just add new keys and not change the name of old keys, newer
schemas should be backwards compatible. And AFAIK gconf do not complain
if more than one schema file attempts to set a particular path.


On Sun, 2002-12-08 at 14:46, Thomas Vander Stichele wrote:
> Hi,
> 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 ;)
> Thomas
Christian Fredrik Kalager Schaller <Uraeus linuxrising org>

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