-
Notifications
You must be signed in to change notification settings - Fork 78
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
Add soname/soversion in Unix libs #143
Conversation
83e79a5
to
0b07e5d
Compare
I'm not opposed on principle, but I should note that AviSynth (Classic or Plus) major.minor.bugfix version numbers have little/no bearing on API or ABI compatibility. Anyone trying to use a soversion based on the release versioning to determine those things is potentially going to get burned at some point. Or at least express real confusion about lib compatibility when the numbers bump but there's not really any difference to end programs. What does make some sense to use is the value of |
then you mean, use in SOVERSION, the value of |
Yes, so the result would be libavisynth.so.7.0.0 in this case (or omit the extra zeroes, if there's no strict requirement for them to be there). |
let me try it |
like this?
|
0b07e5d
to
7c66565
Compare
After reading more about how all this is supposed to work together, a few things: A) The plugins do not need the
That's exactly the case here. None of the plugins in AviSynth+'s source tree are installed as system libraries. Not to mention that three of them will never be built or run on non-Windows OSes, making adding that information for them completely unnecessary. B) Despite trying to look for it, I couldn't find anything in the CMake documentation or Google stating that a A and B together basically mean that there's no reason to change away from C) The real intention of three numbers appended to the And when thinking through exactly what this means for us, there's three options: use only the current number, set to Which leaves option three: include the release number in the
|
Hi mmm, i'm not touch nothing abot the about the '3.5.0' for me is only for informative thing. but if you see in your local if you prefeer use other file naming scheme, i'm not problem with it. but i prefeer flollow the mainstream EDIT: the disscusion about how cmake handle |
f8e236a
to
47231a2
Compare
https://en.wikipedia.org/wiki/Soname https://cmake.org/cmake/help/latest/prop_tgt/SOVERSION.html - The SONAME/SOVERSION "rename" the libarary to `libavistnth.so.X.X.X` and add symlink to `libavisynth.so.X` and `libavisynth.so`. ~~~ └───╼ ls libavisynth.so* lrwxrwxrwx 1 sl1pkn07 users 16 mar 19 02:00 libavisynth.so -> libavisynth.so.3 lrwxrwxrwx 1 sl1pkn07 users 20 mar 19 02:00 libavisynth.so.3 -> libavisynth.so.3.5.0 -rwxr-xr-x 1 sl1pkn07 users 10916424 mar 19 02:00 libavisynth.so.3.5.0 └───╼ objdump -p libavisynth.so.3.5.0 | grep SONAME SONAME libavisynth.so.3 └───╼ readelf -d libavisynth.so.3.5.0 | grep SONAME 0x000000000000000e (SONAME) Nombre-so de la biblioteca: [libavisynth.so.3] ~~~ - Add `PROJECT_VERSION` in the `project()` function with moving some code from `avs_core\CMakeLists.txt` to main `CMakeLists`. - Add little tweak in all CMakeFiles.
47231a2
to
d6d1b89
Compare
Shuts up CMP0048 warning on newer versions of CMake. Topically split from pull AviSynth#143.
Topically split from pull AviSynth#143.
Topically split from pull AviSynth#143.
Shuts up CMP0048 warning on newer versions of CMake. Topically split from pull AviSynth#143.
Topically split from pull AviSynth#143.
Topically split from pull AviSynth#143.
Shuts up CMP0048 warning on newer versions of CMake. Topically split from pull #143.
Topically split from pull #143.
Topically split from pull #143.
Due to weirdness in testing (read: ldconfig wiping the install directory if a suffixed SONAME and non-suffixed symlink exists, requiring client programs to set LD_LIBRARY_PATH to find AviSynth+), I simply decided to go with the middle option, libavisynth.so.3.5.0, and symlinks to libavisynth.so.7 and libavisynth.so. It'll look weird, but it's the closest we can come to what people traditionally expect SOVERSIONs to actually indicate. I did take the liberty to break the commit up into its constituent topics, though. It's present in git master as well as the 3.5.1 tarball. |
https://en.wikipedia.org/wiki/Soname
https://cmake.org/cmake/help/latest/prop_tgt/SOVERSION.html
Also add
PROJECT_VERSION
in theproject()
function with moving some code fromavs_core\CMakeLists.txt
to mainCMakeLists
the SONAME/SOVERSION "rename" the libarary to
libavistnth.so.X.X.X
and add symlink tolibavisynth.so.X
andlibavisynth.so