Mercurial > hgrepos > Python2 > PyMuPDF
comparison mupdf-source/thirdparty/curl/docs/libcurl/ABI @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1:1d09e1dec1d9 | 2:b50eed0cc0ef |
|---|---|
| 1 ABI - Application Binary Interface | |
| 2 ================================== | |
| 3 | |
| 4 "ABI" describes the low-level interface between an application program and a | |
| 5 library. Calling conventions, function arguments, return values, struct | |
| 6 sizes/defines and more. | |
| 7 | |
| 8 [Wikipedia has a longer description](https://en.wikipedia.org/wiki/Application_binary_interface) | |
| 9 | |
| 10 Upgrades | |
| 11 -------- | |
| 12 | |
| 13 In the vast majority of all cases, a typical libcurl upgrade does not break | |
| 14 the ABI at all. Your application can remain using libcurl just as before, | |
| 15 only with less bugs and possibly with added new features. You need to read | |
| 16 the release notes, and if they mention an ABI break/soname bump, you may have | |
| 17 to verify that your application still builds fine and uses libcurl as it now | |
| 18 is defined to work. | |
| 19 | |
| 20 Version Numbers | |
| 21 --------------- | |
| 22 | |
| 23 In libcurl land, you really can't tell by the libcurl version number if that | |
| 24 libcurl is binary compatible or not with another libcurl version. | |
| 25 | |
| 26 Soname Bumps | |
| 27 ------------ | |
| 28 | |
| 29 Whenever there are changes done to the library that will cause an ABI | |
| 30 breakage, that may require your application to get attention or possibly be | |
| 31 changed to adhere to new things, we will bump the soname. Then the library | |
| 32 will get a different output name and thus can in fact be installed in | |
| 33 parallel with an older installed lib (on most systems). Thus, old | |
| 34 applications built against the previous ABI version will remain working and | |
| 35 using the older lib, while newer applications build and use the newer one. | |
| 36 | |
| 37 During the first seven years of libcurl releases, there have only been four | |
| 38 ABI breakages. | |
| 39 | |
| 40 We are determined to bump the SONAME as rarely as possible. Ideally, we | |
| 41 never do it again. | |
| 42 | |
| 43 Downgrades | |
| 44 ---------- | |
| 45 | |
| 46 Going to an older libcurl version from one you're currently using can be a | |
| 47 tricky thing. Mostly we add features and options to newer libcurls as that | |
| 48 won't break ABI or hamper existing applications. This has the implication | |
| 49 that going backwards may get you in a situation where you pick a libcurl that | |
| 50 doesn't support the options your application needs. Or possibly you even | |
| 51 downgrade so far so you cross an ABI break border and thus a different | |
| 52 soname, and then your application may need to adapt to the modified ABI. | |
| 53 | |
| 54 History | |
| 55 ------- | |
| 56 | |
| 57 The previous major library soname number bumps (breaking backwards | |
| 58 compatibility) have happened the following times: | |
| 59 | |
| 60 0 - libcurl 7.1, August 2000 | |
| 61 | |
| 62 1 - libcurl 7.5 December 2000 | |
| 63 | |
| 64 2 - libcurl 7.7 March 2001 | |
| 65 | |
| 66 3 - libcurl 7.12.0 June 2004 | |
| 67 | |
| 68 4 - libcurl 7.16.0 October 2006 |
