Copied usage discussion about *_header_version_* from libisoburn

This commit is contained in:
Thomas Schmitt 2008-02-06 18:23:06 +00:00
parent 623edf9d9d
commit bd8d4bb49f
2 changed files with 43 additions and 1 deletions

View File

@ -1 +1 @@
#define Cdrskin_timestamP "2008.02.06.174009" #define Cdrskin_timestamP "2008.02.06.182222"

View File

@ -2072,6 +2072,48 @@ void burn_version(int *major, int *minor, int *micro);
For the library compatibility check BURN_*_VERSION in configure.ac For the library compatibility check BURN_*_VERSION in configure.ac
are not decisive. Only the three numbers above do matter. are not decisive. Only the three numbers above do matter.
*/ */
/** Usage discussion:
Some developers of the libburnia project have differing
opinions how to ensure the compatibility of libaries
and applications.
It is about whether to use at compile time and at runtime
the version numbers isoburn_header_version_* provided here.
Thomas Schmitt advises to use them.
Vreixo Formoso advises to use other means.
At compile time:
Vreixo Formoso advises to leave proper version matching
to properly programmed checks in the the application's
build system, which will eventually refuse compilation.
Thomas Schmitt advises to use the macros defined here
for comparison with the application's requirements of
library revisions and to eventually break compilation.
Both advises are combinable. I.e. be master of your
build system and have #if checks in the source code
of your application, nevertheless.
At runtime (via *_is_compatible()):
Vreixo Formoso advises to compare the application's
requirements of library revisions with the runtime
library. This is to allow runtime libraries which are
young enough for the application but too old for
the lib*.h files seen at compile time.
Thomas Schmitt advises to compare the header
revisions defined here with the runtime library.
This is to enforce a strictly monotonous chain
of revisions from app to header to library,
at the cost of excluding some older libraries.
These two advises are mutually exclusive.
*/
/* ts A60924 : ticket 74 */ /* ts A60924 : ticket 74 */