7 ms·
> And yeah, zlib is a weird one. It's listed as zlib1g sometimes and the files are libz from what I remember Fun fact: the "g" in the zlib1g package names come
by Denvercoder9 7y ago
> And yeah, zlib is a weird one. It's listed as zlib1g sometimes and the files are libz from what I remember
Fun fact: the "g" in the zlib1g package names comes from the transition to the GNU C library back in 1997, and zlib hasn't had any ABI-incompatible changes since then (ABI-breaks are the point where libraries are usually renamed, so that you can (temporarily) have both installed while users of the library are migrated to the new version).
If it would be introduced nowadays it would just be called libz1, consistent with other libraries.
> I have a followup if you don't mind. I'm trying to rack my brain for old confusions I've had... For instance I look up libssl. There is a libssl-dev, but no corresponding libssl. There are other libssl libs but all the names are inconsistent: libssl1.0.0 with no libssl1.0.0-dev and then there is a libssl1.0.2, but it has no libssl1.0.2-dev haha. But I do see a libssl1.0-dev and when I click through it have 1.0.2 as a dependency... So what's going on?
The usual structure is to have libfoo-dev with the development headers of the newest version, and then libfooX (with X the version number) with the shared libraries. There's usually only one of each, but during development older versions of the shared library might be around so that you can run binaries using them until they've been recompiled to link against the new version. There sometimes have been exceptions if it's very hard to get all software ported to the new version in time, but that's quite rare.
As far as I can see for OpenSSL, Debian 8 (jessie) shipped OpenSSL 1.0.0 (libssl-dev and libssl1.0.0). Debian 9 (stretch) had both OpenSSL 1.1 as default (libssl-dev and libssl1.1), and (as one of those exceptions) also OpenSSL 1.0 for legacy software (libssl1.0.2 and, again as an exception because the libssl-dev name is already taken, libssl1.0-dev). Debian 10 (buster), the current version, ships only OpenSSL 1.1.0 (libssl-dev and libssl1.1).
(In the case of OpenSSL it's even more confusing because 1.0.1 was a backward-compatible release with 1.0.0, but 1.0.2 wasn't. So the packages named 1.0.0 were actually version 1.0.1. Fortunately upstream has fixed their versioning scheme since then, so it will get better. That's also the reason old versions included the full version number, and now there's only the major and minor version -- since patch releases are compatible.)
- geokon 7y agothank you so much for that deep dive into the history and issues involved. I hadn't considered that it's tricky to have multiple -dev headers floating around. You can have packages link to different versions as needed, but you don't wanna hard code version paths into source code. Sounds like a tricky problem to solve cleanly. Thank you again for sharing your unique unsight. This is stuff that's really hard to find otherwise. I just wish all these details where in the package descriptions. It would be so incredibly helpful. Especially in -dev packages where the description isn't going to be seen by "casual" users anyway