[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug #42778] Frameworks with different SONAME cannot coexist
From: |
Yavor Doganov |
Subject: |
[bug #42778] Frameworks with different SONAME cannot coexist |
Date: |
Sun, 31 Dec 2017 12:05:21 -0500 (EST) |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36 |
Follow-up Comment #5, bug #42778 (project gnustep):
Niels, this hunk (in comment #3) was completely intentional. As it stands, if
a framework with a new interface version is installed, the Resources symlink
will be updated to point to the Current version. This is wrong. Different
versions may have different resources and this is 100% doomed to fail if some
of these resources are arch-dep, because an app still linking with the old
framework will attempt to load bundles that are linked against the new
framework.
I also thought it may break resource lookups, but it doesn't. Let me
demonstrate:
$ ls -l /usr/lib/GNUstep/Frameworks/PopplerKit.framework/
общо 4
lrwxrwxrwx 1 root root 24 юни 5 2012 Headers ->
Versions/Current/Headers
lrwxrwxrwx 1 root root 33 дек 7 01:47 libPopplerKit.so ->
Versions/Current/libPopplerKit.so
lrwxrwxrwx 1 root root 27 дек 7 01:47 PopplerKit ->
Versions/Current/PopplerKit
drwxr-xr-x 3 root root 4096 май 19 2014 Versions
Notice the *absence* of the Resources symlink. PopplerKit has fonts as
resources and this method in PopplerFontManager.m:
- (void) _addIncludedFonts
{
int i;
for (i = 0; IncludedFonts[i]; i++)
{
NSString* fontFile = [self _findIncludedFontFile: IncludedFonts[i]];
if (fontFile)
{
[self addFontFile: fontFile];
NSLog(@"added font %@", IncludedFonts[i]);
}
else
{
NSLog(@"WARNING: no font for %@", IncludedFonts[i]);
}
}
}
The fonts are available in the arch-indep location where the Resources symlink
under Versions/VER points to (as symlinks to the actual font files from the
gsfonts package in Debian, but this doesn't matter here):
$ ls -l /usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/
общо 204
lrwxrwxrwx 1 root root 78 юни 5 2012 Headers ->
../../../../../../include/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0
lrwxrwxrwx 1 root root 18 дек 7 01:47 libPopplerKit.so ->
libPopplerKit.so.0
lrwxrwxrwx 1 root root 22 дек 7 01:47 libPopplerKit.so.0 ->
libPopplerKit.so.0.0.1
-rw-r--r-- 1 root root 199880 дек 7 01:47 libPopplerKit.so.0.0.1
lrwxrwxrwx 1 root root 16 дек 7 01:47 PopplerKit -> libPopplerKit.so
lrwxrwxrwx 1 root root 76 юни 5 2012 Resources ->
../../../../../../share/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0
$ ls -l
/usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/Resources/
общо 4
lrwxrwxrwx 1 root root 47 дек 7 01:47 d050000l.pfb ->
../../../../../fonts/type1/gsfonts/d050000l.pfb
-rw-r--r-- 1 root root 495 дек 7 01:47 Info-gnustep.plist
lrwxrwxrwx 1 root root 47 дек 7 01:47 n019003l.pfb ->
../../../../../fonts/type1/gsfonts/n019003l.pfb
lrwxrwxrwx 1 root root 47 дек 7 01:47 n019004l.pfb ->
../../../../../fonts/type1/gsfonts/n019004l.pfb
lrwxrwxrwx 1 root root 47 дек 7 01:47 n019023l.pfb ->
../../../../../fonts/type1/gsfonts/n019023l.pfb
lrwxrwxrwx 1 root root 47 дек 7 01:47 n019024l.pfb ->
../../../../../fonts/type1/gsfonts/n019024l.pfb
lrwxrwxrwx 1 root root 47 дек 7 01:47 n021003l.pfb ->
../../../../../fonts/type1/gsfonts/n021003l.pfb
lrwxrwxrwx 1 root root 47 дек 7 01:47 n021004l.pfb ->
../../../../../fonts/type1/gsfonts/n021004l.pfb
lrwxrwxrwx 1 root root 47 дек 7 01:47 n021023l.pfb ->
../../../../../fonts/type1/gsfonts/n021023l.pfb
lrwxrwxrwx 1 root root 47 дек 7 01:47 n021024l.pfb ->
../../../../../fonts/type1/gsfonts/n021024l.pfb
lrwxrwxrwx 1 root root 47 дек 7 01:47 n022003l.pfb ->
../../../../../fonts/type1/gsfonts/n022003l.pfb
lrwxrwxrwx 1 root root 47 дек 7 01:47 n022004l.pfb ->
../../../../../fonts/type1/gsfonts/n022004l.pfb
lrwxrwxrwx 1 root root 47 дек 7 01:47 n022023l.pfb ->
../../../../../fonts/type1/gsfonts/n022023l.pfb
lrwxrwxrwx 1 root root 47 дек 7 01:47 n022024l.pfb ->
../../../../../fonts/type1/gsfonts/n022024l.pfb
lrwxrwxrwx 1 root root 47 дек 7 01:47 s050000l.pfb ->
../../../../../fonts/type1/gsfonts/s050000l.pfb
Relevant portion from the log:
$ ViewPDF /usr/share/GNUstep/Documentation/Gorm.pdf
...
2017-12-31 18:44:31.614 ViewPDF[3853:3853] added font n022003l.pfb
2017-12-31 18:44:31.617 ViewPDF[3853:3853] added font n022004l.pfb
2017-12-31 18:44:31.618 ViewPDF[3853:3853] added font n022024l.pfb
2017-12-31 18:44:31.618 ViewPDF[3853:3853] added font n022023l.pfb
2017-12-31 18:44:31.618 ViewPDF[3853:3853] added font n019003l.pfb
2017-12-31 18:44:31.618 ViewPDF[3853:3853] added font n019004l.pfb
2017-12-31 18:44:31.618 ViewPDF[3853:3853] added font n019024l.pfb
2017-12-31 18:44:31.619 ViewPDF[3853:3853] added font n019023l.pfb
2017-12-31 18:44:31.619 ViewPDF[3853:3853] added font s050000l.pfb
2017-12-31 18:44:31.619 ViewPDF[3853:3853] added font n021004l.pfb
2017-12-31 18:44:31.619 ViewPDF[3853:3853] added font n021024l.pfb
2017-12-31 18:44:31.619 ViewPDF[3853:3853] added font n021023l.pfb
2017-12-31 18:44:31.619 ViewPDF[3853:3853] added font n021003l.pfb
2017-12-31 18:44:31.620 ViewPDF[3853:3853] added font d050000l.pfb
using default fontconfig configuration
registered application font
/usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/Resources/n022003l.pfb
registered application font
/usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/Resources/n022004l.pfb
registered application font
/usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/Resources/n022024l.pfb
registered application font
/usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/Resources/n022023l.pfb
registered application font
/usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/Resources/n019003l.pfb
registered application font
/usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/Resources/n019004l.pfb
registered application font
/usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/Resources/n019024l.pfb
registered application font
/usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/Resources/n019023l.pfb
registered application font
/usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/Resources/s050000l.pfb
registered application font
/usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/Resources/n021004l.pfb
registered application font
/usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/Resources/n021024l.pfb
registered application font
/usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/Resources/n021023l.pfb
registered application font
/usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/Resources/n021003l.pfb
registered application font
/usr/lib/GNUstep/Frameworks/PopplerKit.framework/Versions/1.0/Resources/d050000l.pfb
poppler library initialized
2017-12-31 18:44:31.947 ViewPDF[3853:3853] PopplerKit Initialization
SUCCEEDED
The duplicate messages come from poppler_init in bindings/poppler.cc but the
important thing is that this symlink is not necessary for proper resource
lookups.
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?42778>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [bug #42778] Frameworks with different SONAME cannot coexist,
Yavor Doganov <=