Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > gnu.gnustep.bug > #4213

[bug #42778] Frameworks with different SONAME cannot coexist

Path csiph.com!3.us.feeder.erje.net!feeder.erje.net!news.linkpendium.com!news.linkpendium.com!panix!usenet.stanford.edu!not-for-mail
From Yavor Doganov <INVALID.NOREPLY@gnu.org>
Newsgroups gnu.gnustep.bug
Subject [bug #42778] Frameworks with different SONAME cannot coexist
Date Sun, 31 Dec 2017 12:05:21 -0500 (EST)
Lines 168
Approved bug-gnustep@gnu.org
Message-ID <mailman.6598.1514739927.27995.bug-gnustep@gnu.org> (permalink)
References <20140715-202837.sv47215.40632@savannah.gnu.org> <20140721-191921.sv47215.7786@savannah.gnu.org> <20140724-152542.sv47215.46777@savannah.gnu.org> <20160629-094020.sv69275.88243@savannah.gnu.org> <20170409-063519.sv337.34950@savannah.gnu.org>
NNTP-Posting-Host lists.gnu.org
Mime-Version 1.0
Content-Type text/plain;charset=UTF-8
X-Trace usenet.stanford.edu 1514739928 8642 208.118.235.17 (31 Dec 2017 17:05:28 GMT)
X-Complaints-To action@cs.stanford.edu
To Richard Frith-Macdonald <rfm@gnu.org>, Yavor Doganov <yavor@gnu.org>, Niels Grewe <thebeing+savannah@halbordnung.de>, bug-gnustep@gnu.org
Envelope-to bug-gnustep@gnu.org
X-PHP-Originating-Script 1001:sendmail.php
X-Savane-Server savannah.gnu.org:443 [208.118.235.79]
X-Savane-Project gnustep
X-Savane-Tracker bugs
X-Savane-Item-ID 42778
User-Agent Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36
X-Apparently-From 46.10.101.102 (Savane authenticated user yavor)
In-Reply-To <20170409-063519.sv337.34950@savannah.gnu.org>
X-detected-operating-system by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Received-From 208.118.235.79
X-BeenThere bug-gnustep@gnu.org
X-Mailman-Version 2.1.21
Precedence list
List-Id Bug reports for the GNUstep programming environment <bug-gnustep.gnu.org>
List-Unsubscribe <https://lists.gnu.org/mailman/options/bug-gnustep>, <mailto:bug-gnustep-request@gnu.org?subject=unsubscribe>
List-Archive <http://lists.gnu.org/archive/html/bug-gnustep/>
List-Post <mailto:bug-gnustep@gnu.org>
List-Help <mailto:bug-gnustep-request@gnu.org?subject=help>
List-Subscribe <https://lists.gnu.org/mailman/listinfo/bug-gnustep>, <mailto:bug-gnustep-request@gnu.org?subject=subscribe>
Xref csiph.com gnu.gnustep.bug:4213

Show key headers only | View raw


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/

Back to gnu.gnustep.bug | Previous | Next | Find similar


Thread

[bug #42778] Frameworks with different SONAME cannot coexist Yavor Doganov <INVALID.NOREPLY@gnu.org> - 2017-12-31 12:05 -0500

csiph-web