Re: [Rd] shared libraries: missing soname

2016-11-23 Thread Dirk Eddelbuettel

On 22 November 2016 at 22:21, Joseph Mingrone wrote:
| Is this a more appropriate example?
| 
| # ldd /usr/local/lib/R/library/tseries/libs/tseries.so | grep libR
| libRblas.so => /usr/local/lib/R/lib/libRblas.so (0x80120c000)
| libR.so => /usr/local/lib/R/lib/libR.so (0x801c0)

No it is not.  Do you see the /usr/local/lib/R/lib here?

The trailing R/lib is what Martin and talk about. It means ldd / ldconfig
does not know about it -- if you do `ldconfig -p | grep libR` chances are you
see nothing.

On 23 November 2016 at 06:22, Joseph Mingrone wrote:
| Martin Maechler  writes:
| > To the issue:  I also don't see what your point is.
| > R works with these so libraries  as intended  in all cases as
| > far as we know, and so I don't understand why anything needs to
| > be changed.
| > All these libraries "belong to R" and are tied to a specific
| > version of R  and are not be used outside of R,  so I also don't see
| > your point.
| 
| "are not to be used outside of R".  You are distributing shared libraries that
| aren't meant to be shared (outside of R)?  But they are.  And I gave an 
example.

A wrong one though.
 
| I will just patch the FreeBSD port.

Please do.

You currently are the only one with an itch to scratch, and everybody else is
busy. If / when you have a patch which puts a token soname onto every shared
library produced [ internally ] by R feel free to offer it to R Core.

As Martin told you, so far there is no reason to take it but maybe that will
change. Or not. 

Consider eg this:

  edd@max:~$ locate Matrix.so
  /usr/lib/R/library/Matrix/libs/Matrix.so
  /usr/local/lib/R/site-library/Matrix/libs/Matrix.so
  /usr/local/lib/R-devel/lib/R/library/Matrix/libs/Matrix.so
  edd@max:~$

I have three versions of Matrix.so. And still not problem.  The third one
only enters for R-devel, not R.  The first two are distinguished by R itself
_by virtue of different paths_ just like Martin and I told you.

And _no_ other program on my system knows about Matrix.so:

  edd@max:~$ ldconfig -p | grep Matrix.so
  edd@max:~$ ldconfig -p | wc -l
  2814
  edd@max:~$

ldd / ldconfig do NOT know Matrix.so -- as I told you before -- despite the
fact that they know thousands of other things on this (development) machine.

All that you said or quoted about soname is fine and handy, and we all
respect it __for public libraries like libpng or libxml2.

R is different. So if FreeBSD has a problem with that you may indeed have to
work around that on the FreeBSD side of things.

Dirk

-- 
http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] shared libraries: missing soname

2016-11-23 Thread Joseph Mingrone
Martin Maechler  writes:
> To the issue:  I also don't see what your point is.
> R works with these so libraries  as intended  in all cases as
> far as we know, and so I don't understand why anything needs to
> be changed.
> All these libraries "belong to R" and are tied to a specific
> version of R  and are not be used outside of R,  so I also don't see
> your point.

"are not to be used outside of R".  You are distributing shared libraries that
aren't meant to be shared (outside of R)?  But they are.  And I gave an example.

This is the first sentence of section 3.1.1 [1] of the Linux Documentation
Project's -Program Library HOWTO-, "Every shared library has a special name
called the 'soname'".  I'll ask again, since this was ignored the two previous
times I asked it (but I don't expect an answer).  Are there any constructive
reasons not to include a proper soname in the shared libraries?

I will just patch the FreeBSD port.

Joseph

[1] http://www.tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html#AEN46


signature.asc
Description: PGP signature
__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Re: [Rd] shared libraries: missing soname

2016-11-23 Thread Martin Maechler
> Joseph Mingrone 
> on Tue, 22 Nov 2016 22:21:49 -0400 writes:

> Dirk Eddelbuettel  writes:
>> On 22 November 2016 at 00:02, Joseph Mingrone wrote:
>> | These are also not fatal errors on FreeBSD, where everything, for now, 
also just
>> | works.  ...until a library's interface changes.  You seem to be 
arguing that
>> | sonmaes are pointless.  We disagree.

>> You are putting words in my mouth. In my very first reply to you, I 
pointed
>> out that (for non-BSD systems at least) the sonames do not matter as R 
loads
>> the libraries itself, rather than via ldd.  No more, no less.

> Let me restate.  You seem to be arguing that, because R itself doesn't 
consume
> it's shared libraries via ldd(), sonames serve no purpose, in this case.  
Please
> correct me if I'm putting words in your mouth.

>> | I can't say for certain (I'm not an rkward user), but looking at the 
build

>> Why did _you_ then bring up rkward as an example? That was your 
suggestion.

> Because you asked, "Yes, well, but are there other customers?"  Also, I'm 
trying
> to put myself in the perspective of package users.

> Is this a more appropriate example?

> # ldd /usr/local/lib/R/library/tseries/libs/tseries.so | grep libR
> libRblas.so => /usr/local/lib/R/lib/libRblas.so (0x80120c000)
> libR.so => /usr/local/lib/R/lib/libR.so (0x801c0)

Well, Dirk has said to have given his last reply on this thread.
I (as a member of R-core) am glad about people like Dirk who
take some of our load and helpfully answer such
questions/reports on R-devel.

To the issue:  I also don't see what your point is.
R works with these so libraries  as intended  in all cases as
far as we know, and so I don't understand why anything needs to
be changed.
All these libraries "belong to R" and are tied to a specific
version of R  and are not be used outside of R,  so I also don't see
your point.

Best regards,

Martin Maechler
ETH Zurich

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel