New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Shared libraries need versions #2281
Comments
@peastman : This seems like a good idea. |
@peastman : Yes please! I would love to be able to distribute the full stack including molmodel and MMB. |
Those three might be plugins (they seem to link with That would still mean |
All the libraries at the top level of |
Hi Peter,
Thanks -- I am forwarding your response to Andrius and Andreas.
Sam
… On 29 Mar 2019, at 19:49, peastman ***@***.***> wrote:
All the libraries at the top level of lib are ones that other programs can link to directly. The plugins, which get loaded with dlopen, are in the plugins subdirectory.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub <#2281 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AGHOPVq_EUa28xAzHIhZOcdSL2kyczIPks5vbmAcgaJpZM4boJ5->.
|
@peastman : What happens if one wants to install two different versions of OpenMM at the system level? How will plugin libraries from different versions avoid clobbering each other? |
If you want to install two different versions, you install them in different locations. Since conda is our preferred installation mechanism these days, that happens automatically. Each conda environment gets its own plugin directory. |
We're talking about packaging for Debian in this thread:
|
I feel like I've missed part of the conversation. Why are we talking about it? We've standardized on conda as our recommended installation mechanism. Are there situations where that doesn't work? If so, what are they? What exactly are the problems we're trying to solve? We need to understand that, then consider all possible solutions. Are they problems that only occur on Debian? If not, then a Debian-specific solution won't meet our requirements. Adding another supported installation mechanism isn't something to do lightly, since it adds a major ongoing support burden. |
including andrius and andreas..
they are trying to package for debian. no idea if conda is compatible with that.
…Sent from my iPhone
On Apr 1, 2019, at 18:08, peastman ***@***.***> wrote:
I feel like I've missed part of the conversation. Why are we talking about it? We've standardized on conda as our recommended installation mechanism. Are there situations where that doesn't work? If so, what are they? What exactly are the problems we're trying to solve? We need to understand that, then consider all possible solutions. Are they problems that only occur on Debian? If not, then a Debian-specific solution won't meet our requirements.
Adding another supported installation mechanism isn't something to do lightly, since it adds a major ongoing support burden.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.
|
soname is UNIX-standard (not limited to Debian, but including all Linux and Mac systems) parameter of a shared library, denoting its name and ABI version. These are required by the software that links against the shared library to memorize what ABI version was used during the linking. Once an ABI of the shared library changes, the linked software has no way to check that. More explicit description of the system is given in this Stack Overflow thread. |
@peastman: Some very nice folks have offered to package up OpenMM for the debian packaging system. On Linux, as you well know, packaging systems (like These very nice folks have observed that, while the default CMake installation scheme installs OpenMM in system library paths, it doesn't follow standard conventions regarding what ABI version was installed. With some very simple changes to how CMake names these libraries, we can follow these standard conventions and allow these very nice people to package OpenMM for us, allowing Linux users who don't use
Linux users who don't use
Right now, we're trying to solve the problem that OpenMM doesn't conform to standard practices for how libraries should be named.
Is there a significant support burden to complying with UNIX standard practices in library naming? It would seem to be straightforward and simple, and enable these very nice folks (and others!) to easily package OpenMM for Linux package managers. |
I'm not talking about library naming. I'm talking about the major support burden that comes from having these nice people create Debian packages for OpenMM. Because they'll create the packages, but I'm the one who will get emailed every time someone encounters an error trying to install them! Then a year from now, the people who created the packages will move on and no one will be creating new packages, but the old ones will still be there. And five years from now I'll still be getting bug reports from people who installed OpenMM with the Debian tools and got an ancient version. |
It sounds like there are two distinct issues here:
I think (1) could be addressed if there are folks willing to assume the support responsibility for creating the Debian packages. (2) is something that we should address irrespective of how (1) is addressed. |
Hi Peter and John,
Regarding issue 1, I personally would not care if the OpenMM package in Debian were not updated regularly. The pieces of OpenMM I use are pretty ancient, mostly I just want the neighborlisting function which is super fast. Maybe the burden of updating could be left to some future interested party.
Sam
… On 2 Apr 2019, at 20:30, John Chodera ***@***.***> wrote:
It sounds like there are two distinct issues here:
We may or may not want anyone to create Debian packages for OpenMM
We don't conform to the soname standard <https://en.wikipedia.org/wiki/Soname>
I think (1) could be addressed if there are folks willing to assume the support responsibility for creating the Debian packages.
(2) is something that we should address irrespective of how (1) is addressed.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub <#2281 (comment)>, or mute the thread <https://github.com/notifications/unsubscribe-auth/AGHOPdVzNfCo33t1qJctrul85zeJ53uJks5vc6HRgaJpZM4boJ5->.
|
Feel free to submit a PR.
"Some future interested party" means me. If Debian packages get created and there's no long term commitment for someone else to support them, that automatically means that either I'll have to maintain them, or else I'll have to bear the burden of lots of people running archaic versions of OpenMM. |
@jchodera correctly identified two separate issues in this discussion. I'll try to answer questions regarding Debian (from my personal experience):
I am interested of packaging OpenMM as it is a dependency of MacroMolecule Builder. |
We decided against versioned libraries. They're incompatible with PyPI packaging, we never used them for anything, and they were never fully implemented. I removed them in #4498. |
Building OpenMM produces the following public shared libraries without versions in their sonames:
Without sonames the shared libraries cannot be represented in the shlibs system, and if linked by binaries its interface cannot safely change. Therefore no backward-compatible way exists to migrate programs linked against them to a new binary interface.
I have found this issue while packaging OpenMM for Debian.
The text was updated successfully, but these errors were encountered: