[Mageia-dev] Libification of oxygen-gtk3

Colin Guthrie mageia at colin.guthr.ie
Mon Nov 28 17:52:58 CET 2011


'Twas brillig, and Juan Luis Baptiste at 28/11/11 14:28 did gyre and gimble:
> On Mon, Nov 28, 2011 at 5:49 AM, Colin Guthrie <mageia at colin.guthr.ie> wrote:
>> Posted here as the officially listed maintainer hasn't actually updated
>> the package according to svn, so I figured some exposure would be nice.
>>
> 
> :O
> 
> That would be me :P

\o/

> But what I have to do to libify it ? I really don't have a clue of
> what that means :(

General info here:
https://wiki.mageia.org/en/Libraries_policy

But in this particular case:


The file list just now looks like:

[colin at jimmy pulseaudio (master)]$ rpm -ql oxygen-gtk3
/usr/bin/oxygen-gtk3-demo
/usr/lib64/gtk-3.0/3.0.0/theming-engines/liboxygen-gtk.so
/usr/share/themes/oxygen-gtk
/usr/share/themes/oxygen-gtk/gtk-3.0
/usr/share/themes/oxygen-gtk/gtk-3.0/argb-apps.conf
/usr/share/themes/oxygen-gtk/gtk-3.0/gtk.css
/usr/share/themes/oxygen-gtk/gtk-3.0/icons4
/usr/share/themes/oxygen-gtk/gtk-3.0/kdeglobals
/usr/share/themes/oxygen-gtk/gtk-3.0/oxygenrc
/usr/share/themes/oxygen-gtk/gtk-3.0/special-icons
/usr/share/themes/oxygen-gtk/gtk-3.0/special-icons/standardbutton-closetab-16.png
/usr/share/themes/oxygen-gtk/gtk-3.0/special-icons/standardbutton-closetab-down-16.png
/usr/share/themes/oxygen-gtk/gtk-3.0/special-icons/standardbutton-closetab-hover-16.png

As you can see three things have been bundled together there:
 1. The demo binary
 2. The library used for the theme engine
 3. Architecture independent data files

This means that if I want to have both:

/usr/lib64/gtk-3.0/3.0.0/theming-engines/liboxygen-gtk.so
 and
/usr/lib/gtk-3.0/3.0.0/theming-engines/liboxygen-gtk.so

installed at the same time, I'm out of luck.

It is technically possible to have two packages of the same name
installed at the same time, but only if the common files between them do
not conflict. Even so this is somewhat ugly.

So the idea is to package up the library part separately so that both
version can be installed.

In this case the library package should be called "lib64oxygen-gtk3"
(aka "%mklibname oxygen-gtk3" in the spec file).


Now in theory it might be nice to separate out the arch independent
stuff and the test binary too. This would save space on the mirrors by
only needing to have one version of all the artwork rather than separate
copies for each arch (it's done with hard links), tho' in this
particular case it wouldn't result in much saving.


So you could but the test files in oxygen-gtk3-test, the library in the
the afore mentioned library name and leave the oxygen-gtk3 package with
data only and flag it as noarch.

This isn't exactly how oxygen-gtk package does it (it puts the test
binary and the arch independent stuff together in the oxygen-gtk
package), but hopefully you catch the drift :)



HTHs

Col


-- 

Colin Guthrie
colin(at)mageia.org
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited http://www.tribalogic.net/
Open Source:
  Mageia Contributor http://www.mageia.org/
  PulseAudio Hacker http://www.pulseaudio.org/
  Trac Hacker http://trac.edgewall.org/


More information about the Mageia-dev mailing list