[opensuse-packaging] packaging lib with plugins (the suil case)
Hi. I am still trying to figure out the right way to package somewhat complex suil library. It consists of library itself and four "wrap modules": /usr/lib64/libsuil-0.so.0 /usr/lib64/libsuil-0.so.0.8.2 /usr/lib64/suil-0/libsuil_gtk2_in_qt4.so /usr/lib64/suil-0/libsuil_qt4_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_qt4.so Historically wrap modules was all in individual packages, called "libsuil-gtk2-in-qt4", etc. This was wrong, as far as i understood from previous discussions on the list. So right now i am trying to make it right. Can i move all these wrap modules into libsuil package itself (libsuil-0-0 that is)? The reason for this is that library is useless without these modules. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tuesday 2015-12-08 07:19, Roman Evstifeev wrote:
/usr/lib64/libsuil-0.so.0 /usr/lib64/libsuil-0.so.0.8.2 /usr/lib64/suil-0/libsuil_gtk2_in_qt4.so /usr/lib64/suil-0/libsuil_qt4_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_qt4.so
Can i move all these wrap modules into libsuil package itself (libsuil-0-0 that is)? The reason for this is that library is useless without these modules.
Consider what happens when there is a libsuil-0.so.1. Then both libsuil-0-0 and libsuil-0-1 packages would have the plugins in their filelist => file conflict. /usr/lib64/libsuil-0.so.1 /usr/lib64/libsuil-0.so.1.0.0 /usr/lib64/suil-0/libsuil_gtk2_in_qt4.so /usr/lib64/suil-0/libsuil_qt4_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_qt4.so -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
/usr/lib64/libsuil-0.so.0 /usr/lib64/libsuil-0.so.0.8.2 /usr/lib64/suil-0/libsuil_gtk2_in_qt4.so /usr/lib64/suil-0/libsuil_qt4_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_qt4.so
Can i move all these wrap modules into libsuil package itself (libsuil-0-0 that is)? The reason for this is that library is useless without these modules. Consider what happens when there is a libsuil-0.so.1. Then both
On Tuesday 2015-12-08 07:19, Roman Evstifeev wrote: libsuil-0-0 and libsuil-0-1 packages would have the plugins in their filelist => file conflict.
/usr/lib64/libsuil-0.so.1 /usr/lib64/libsuil-0.so.1.0.0 /usr/lib64/suil-0/libsuil_gtk2_in_qt4.so /usr/lib64/suil-0/libsuil_qt4_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_qt4.so The package is called suil and upstream will most probably call libsuil,
On 08/12/2015 10:50, Jan Engelhardt wrote: libsuil-1 when the major version increments, their api docs go to _docdir/libsuil-0. The libs under suil-0 are plugins so they should go into a plugins package but you have a point Jan. I took this line from wafscript : module_dir = '${LIBDIR}/suil-' + SUIL_MAJOR_VERSION Sorry Roman I've been side tracked by blender out of memory build problems and midnight commander segmentation faults. Regards Dave Plater -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tuesday 2015-12-08 11:08, Dave Plater wrote:
/usr/lib64/libsuil-0.so.1 /usr/lib64/libsuil-0.so.1.0.0 /usr/lib64/suil-0/libsuil_gtk2_in_qt4.so /usr/lib64/suil-0/libsuil_qt4_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_qt4.so
The package is called suil and upstream will most probably call libsuil, libsuil-1 when the major version increments, their api docs go to _docdir/libsuil-0. The libs under suil-0 are plugins so they should go into a plugins package but you have a point Jan. I took this line from wafscript : module_dir = '${LIBDIR}/suil-' + SUIL_MAJOR_VERSION
Well, the easy way out is to just define module_dir = '${LIBDIR}/suil-0-0' (to match libsuil-0.so.0) and we could all go home and have a nice afternoon. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tue, Dec 8, 2015 at 1:53 PM, Jan Engelhardt
On Tuesday 2015-12-08 11:08, Dave Plater wrote:
/usr/lib64/libsuil-0.so.1 /usr/lib64/libsuil-0.so.1.0.0 /usr/lib64/suil-0/libsuil_gtk2_in_qt4.so /usr/lib64/suil-0/libsuil_qt4_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_qt4.so
The package is called suil and upstream will most probably call libsuil, libsuil-1 when the major version increments, their api docs go to _docdir/libsuil-0. The libs under suil-0 are plugins so they should go into a plugins package but you have a point Jan. I took this line from wafscript : module_dir = '${LIBDIR}/suil-' + SUIL_MAJOR_VERSION
Well, the easy way out is to just define
module_dir = '${LIBDIR}/suil-0-0' (to match libsuil-0.so.0)
and we could all go home and have a nice afternoon. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
From wscript:
# Library and package version (UNIX style major, minor, micro) # major increment <=> incompatible changes # minor increment <=> compatible changes (additions) # micro increment <=> no interface changes SUIL_VERSION = '0.8.2' SUIL_MAJOR_VERSION = '0' If i uderstand this correctly, SUIL_MAJOR_VERSION will always equal major part of SUIL_VERSION so there will never be: SUIL_VERSION = '1.8.2' SUIL_MAJOR_VERSION = '0' -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tuesday 2015-12-08 19:50, Roman Evstifeev wrote:
/usr/lib64/libsuil-0.so.1 /usr/lib64/libsuil-0.so.1.0.0
From wscript:
# Library and package version (UNIX style major, minor, micro) # major increment <=> incompatible changes # minor increment <=> compatible changes (additions) # micro increment <=> no interface changes SUIL_VERSION = '0.8.2' SUIL_MAJOR_VERSION = '0' If i uderstand this correctly, SUIL_MAJOR_VERSION will always equal major part of SUIL_VERSION
Well if they carry the major version in the front, then they probably should just drop the redundant number that comes after the .so, i.e. s{libsuil-0\.so\..*}{libsuil-0.so} -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tue, Dec 8, 2015 at 1:08 PM, Dave Plater
On 08/12/2015 10:50, Jan Engelhardt wrote:
On Tuesday 2015-12-08 07:19, Roman Evstifeev wrote:
/usr/lib64/libsuil-0.so.0 /usr/lib64/libsuil-0.so.0.8.2 /usr/lib64/suil-0/libsuil_gtk2_in_qt4.so /usr/lib64/suil-0/libsuil_qt4_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_qt4.so
Can i move all these wrap modules into libsuil package itself (libsuil-0-0 that is)? The reason for this is that library is useless without these modules.
Consider what happens when there is a libsuil-0.so.1. Then both libsuil-0-0 and libsuil-0-1 packages would have the plugins in their filelist => file conflict.
/usr/lib64/libsuil-0.so.1 /usr/lib64/libsuil-0.so.1.0.0 /usr/lib64/suil-0/libsuil_gtk2_in_qt4.so /usr/lib64/suil-0/libsuil_qt4_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_qt4.so
The package is called suil and upstream will most probably call libsuil, libsuil-1 when the major version increments, their api docs go to _docdir/libsuil-0. The libs under suil-0 are plugins so they should go into a plugins package but you have a point Jan.
FWIW, there is guidleine in the source: http://dev.drobilla.net/browser/trunk/suil/PACKAGING According to this, all the wrap modules should be in separate packages to prevent installing unwanted toolkits dependencies. But to my understanding the reasoning for this right now is not valid: there are only two supported toolkits: qt4 or gtk2, so if you need qt4_in_gtk2, implies you already have a gtk2 host app with all the needed deps installed, and the wrap module will only require qt4 libs. And vice versa.
I took this line from wafscript : module_dir = '${LIBDIR}/suil-' + SUIL_MAJOR_VERSION Sorry Roman I've been side tracked by blender out of memory build problems and midnight commander segmentation faults. Regards Dave Plater
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Tue, Dec 8, 2015 at 9:57 PM, Roman Evstifeev
On Tue, Dec 8, 2015 at 1:08 PM, Dave Plater
wrote: On 08/12/2015 10:50, Jan Engelhardt wrote:
On Tuesday 2015-12-08 07:19, Roman Evstifeev wrote:
/usr/lib64/libsuil-0.so.0 /usr/lib64/libsuil-0.so.0.8.2 /usr/lib64/suil-0/libsuil_gtk2_in_qt4.so /usr/lib64/suil-0/libsuil_qt4_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_qt4.so
Can i move all these wrap modules into libsuil package itself (libsuil-0-0 that is)? The reason for this is that library is useless without these modules.
Consider what happens when there is a libsuil-0.so.1. Then both libsuil-0-0 and libsuil-0-1 packages would have the plugins in their filelist => file conflict.
/usr/lib64/libsuil-0.so.1 /usr/lib64/libsuil-0.so.1.0.0 /usr/lib64/suil-0/libsuil_gtk2_in_qt4.so /usr/lib64/suil-0/libsuil_qt4_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_gtk2.so /usr/lib64/suil-0/libsuil_x11_in_qt4.so
The package is called suil and upstream will most probably call libsuil, libsuil-1 when the major version increments, their api docs go to _docdir/libsuil-0. The libs under suil-0 are plugins so they should go into a plugins package but you have a point Jan.
FWIW, there is guidleine in the source: http://dev.drobilla.net/browser/trunk/suil/PACKAGING According to this, all the wrap modules should be in separate packages to prevent installing unwanted toolkits dependencies. But to my understanding the reasoning for this right now is not valid: there are only two supported toolkits: qt4 or gtk2, so if you need qt4_in_gtk2, implies you already have a gtk2 host app with all the needed deps installed, and the wrap module will only require qt4 libs. And vice versa.
Oh. I was wrong ;) There are x11_in_* modules, which does not require new dependencies. So reasoning having them as separate packages is valid.
I took this line from wafscript : module_dir = '${LIBDIR}/suil-' + SUIL_MAJOR_VERSION Sorry Roman I've been side tracked by blender out of memory build problems and midnight commander segmentation faults. Regards Dave Plater
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
participants (3)
-
Dave Plater
-
Jan Engelhardt
-
Roman Evstifeev