Open giordano opened 3 years ago
@giordano Can you bump bzip2 to 1.0.8 in this note? 1.0.7 isn’t built for all platforms (arm)
Not sure if this helps, but I overlooked these packages, while GSL_jll is in the list above.
GEOS_jll.jl: soname changes every minor version (without breaking changes in the API)
Dependency("GEOS_jll"; compat="~3.9") # correctly done since v3.9, currently at v3.13
PROJ_jll.jl: soname changed (dropped minor version) in https://github.com/JuliaPackaging/Yggdrasil/pull/9548 in 9.5
Dependency("PROJ_jll"; compat="~901.400") # has minor version in soname
Dependency("PROJ_jll"; compat="~902.500") # preferred, should be forwards compatible with newer
Bzip2_jll
: the v1.0.6 for macOS forces the soname to include the full version, this was fixed for v1.0.8 (#2981) and v1.0.7boost_jll
: the soname of the Linux libraries has the full version number (great idea, isn't it? evidence)Cairo_jll
: the minimum compatible version for macOS changes at every minor version, but the rest seems to be backward compatible. You need to build against the oldest compatible version:Expat_jll
: I previously reported incompatibilities for this package, but that was inaccurate. I'm not aware of any incompatibilities at the moment, but while we're here it's still good to specify compat bounds for good measureFLAC_jll
: changes the soversion between minor versions (evidence)Gettext_jll
: the soname includes the full version number, so it changes even between patch versions:Glib_jll
: packages built against v2.68.1 can't be loaded when using Glib v2.59.0 (there is an incompatible minimum version for macOS, plus another issue on Windows which I don't understand). I believe Glib is supposed to be backward-compatible, so building against the oldest version possible should be fine, but only v2.68.1 is available for new platforms:GMP_jll
: packages built against v6.2.1 can't be loaded by old Julia versions which link to v6.1.2. However GMP is backward compatible, so we can use GMP v6.1.2 when building:GSL_jll
: breaks the ABI at every minor version. But they don't necessarily remember to change the soversion accordingly:HarfBuzz_jll
: the minimum compatible version for macOS changes at every minor version, but the rest seems to be backward compatible. You need to build against the oldest compatible version:ICU_jll
: the soname seems to change every major version (example)libass_jll
: the minimum compatible version for macOS changes at every minor version, but the rest seems to be backward compatible. You need to build against the oldest compatible version:Libffi_jll
: the soname seems to change every minor version (verified locally by building v3.3.0):Libgpg_error_jll
: the soname for FreeBSD and Windows changed when moving v1.36 -> v1.42 (evidence), but in the future it may be more stable:Libtiff_jll
: the minimum compatible version for macOS changes at every minor version. Also, ABI was broken when switched to v4.5Lua_jll
: the name of the library on Windows depends on the major+minor version (evidence):MbedTLS_jll
is a mess. The soversion of at least one of the libraries provided changes between minor versions (example 2.26 -> 2.27), but not always (e.g., nothing changed 2.25 -> 2.26). On top of that,MbedTLS_jll
is a Julia dependency, so you can't possibly build a single library that can be loaded by different Julia versions which ship different versions ofMbedTLS_jll
, as they'd have different ABIs:NetCDF_jll
: the major soversion changed from 18 to 19 in the 4.7 -> 4.8 transition (evidence). OptionsNettle_jll
: the soname seems to change every minor version (example)OpenSSL_jll
: OpenSSL 3 was recently released, which is ABI breaking. At the moment we only have v1.1.1 (and a fake 1.1.10, which is the same as 1.1.1 but for all platforms):Pango_jll
: the minimum compatible version for macOS changes at every minor version, but the rest seems to be backward compatible. You need to build against the oldest compatible version:x264_jll
: the soname changed (evidence)x265_jll
: the soname changed (evidence)