Re: Using X11 for an older program

2020-12-22 Thread Bill Cole

On 21 Dec 2020, at 22:01, Michael wrote:

OK. Next question: Is there any reason I cannot install libpng version 
15 at the sametime?


Not really. Better to update the software that wants it to use a current 
version.


But the 1.5.x source is in the libpng site at Sourceforge, so you can 
still get it, build it, and install the libraries where you need them 
(/opt/X11/lib/)without affecting the v1.6.x version that MacPorts 
installs.




I am aware that there is a non-versioned link file, that the latest 
version of the dynamic library installs. That can stay at 16 where it 
belongs. I mean specifically having both the libpng15 and the libpng16 
files.


I am very surprised at linking to a specific version of a dynamic 
library. This is actually commercial software, and it did not link to 
generic "libpng", nor to generic "libpng15" -- linking to a specific 
version of a dynamic library? Isn't the whole point of dynamic 
libraries that you don't get a single specific buggy version, but the 
latest non-buggy version?


Yes and no. Versioned libraries exist because sometimes you really don't 
want to link to anything but the version that you built against. 
Sometimes interfaces change between versions, particularly "major" 
version changes such as in this case, and software using the library may 
be known to not be forward-compatible.


Also see below...


On 2020-12-21, at 6:55 PM, Ken Cunningham 
 wrote:


On 2020-12-21, at 10:55 AM, Michael  wrote: 
> This should be a simple one. I hope.


I just installed a program that was compiled against the release 
version of mac's X11. Crashes on startup with this:


dyld: launch, loading dependent libraries

Dyld Error Message:
Library not loaded: /opt/X11/lib/libpng15.15.dylib

What symbolic links do I need? /opt has no X11 directory.


That's a bad sign, and a hint that you need to do more than just install 
the right version of libpng.


The /opt/X11/ tree is where the "XQuartz" implementation of X11 installs 
itself, along with a whole universe of its own required libraries. It 
includes (in the last version, 2.7.11) 4 versions of libpng, with a 
symlink for the unversioned name to libpng16.16.dylib. This implies 
something of a mess in how the various binaries in the XQuartz package 
were built, but you cannot fix that. You have a pre-built commercial 
package that specifies at least one older version of a library as 
installed by XQuartz so you can expect that it will also be dependent on 
the whole collection of libraries installed by XQuartz.


If you lack /opt/X11/, you do not have XQuartz installed. Apple has not 
included ANY X implementation in recent macOS versions, so you will need 
to install XQuartz if you can't get a version of the failing software 
built to use the X implementation that is installed by MacPorts.



--
Bill Cole
b...@scconsult.com or billc...@apache.org
(AKA @grumpybozo and many *@billmail.scconsult.com addresses)
Not Currently Available For Hire


Re: Using X11 for an older program

2020-12-22 Thread Dominik Reichardt
Hi,

download and install xquartz from https://www.xquartz.org 
. This is the semi-official X11.app replacement. Did 
not get an update for four years now but it brings the needed libraries and 
installs in /opt/x11.

Good luck! :)

Dominik

> On 22. Dec 2020, at 08:50, Michael  wrote:
> 
> 
> On 2020-12-21, at 8:38 PM, Ken Cunningham  
> wrote:
> 
>> A thought — perhaps you might just take the easy road, and install the 
>> libraries it is looking for, in /opt/X11
>> 
>> what is that, XQuartz? 
> 
> Except that the current version of XQuartz is, as I understand it, what 
> Macports provides.
> 
> i.e. -- my choice is either an 8 year old apple build, or a current Macport 
> build.
> 
> (If I'm wrong here, please tell me.)
> 
>> 
>> K
>> 
>>> On Dec 21, 2020, at 7:01 PM, Michael  wrote:
>>> 
>>> OK. Next question: Is there any reason I cannot install libpng version 15 
>>> at the sametime?
>>> 
>>> I am aware that there is a non-versioned link file, that the latest version 
>>> of the dynamic library installs. That can stay at 16 where it belongs. I 
>>> mean specifically having both the libpng15 and the libpng16 files.
>>> 
>>> I am very surprised at linking to a specific version of a dynamic library. 
>>> This is actually commercial software, and it did not link to generic 
>>> "libpng", nor to generic "libpng15" -- linking to a specific version of a 
>>> dynamic library? Isn't the whole point of dynamic libraries that you don't 
>>> get a single specific buggy version, but the latest non-buggy version?
>>> 
>>> On 2020-12-21, at 6:55 PM, Ken Cunningham  
>>> wrote:
>>> 
> On 2020-12-21, at 10:55 AM, Michael  wrote: > 
> This should be a simple one. I hope. 
>> 
>> I just installed a program that was compiled against the release version 
>> of mac's X11. Crashes on startup with this: 
>> 
>> dyld: launch, loading dependent libraries 
>> 
>> Dyld Error Message: 
>> Library not loaded: /opt/X11/lib/libpng15.15.dylib 
>> 
>> What symbolic links do I need? /opt has no X11 directory. 
> Ok, another question. I found this: /opt/local/lib/libpng16.16.dylib I 
> cannot find the older version. What do I need to do to install both the 
> current and the older version of this library at the same time? 
 
 There are likely to be more libraries missing after you fix this one, but 
 you can try.
 
 EIther symlink a real library that is the same or as similar as you have 
 into the position being looked for:
 
 sudo ln -s /opt/local/lib/libpng16.16.dylib /opt/X11/lib/libpng15.15.dylib
 
 or
 
 use install_name_tool to change /opt/local/lib/libpng16.16.dylib to 
 /opt/X11/lib/libpng15.15.dylib in your binary.
 
 install_name_tool -change  /opt/local/lib/libpng16.16.dylib 
 /opt/X11/lib/libpng15.15.dylib /path/to/my/binary
 
 
 You can see that there are many many ways this could break / not work at 
 all. 
 
 But it sometimes works, if you’re lucky, and the libraries are very close 
 to what is being looked for.
 
 K
>>> 
>>> ---
>>> This message was composed with the aid of a laptop cat, and no mouse
>>> 
>> 
> 
> ---
> Entertaining minecraft videos
> http://YouTube.com/keybounce
>