bug-gnustep
[Top][All Lists]
Advanced

[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/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]