aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--PACKAGING29
1 files changed, 29 insertions, 0 deletions
diff --git a/PACKAGING b/PACKAGING
new file mode 100644
index 00000000..3eced169
--- /dev/null
+++ b/PACKAGING
@@ -0,0 +1,29 @@
+This library is designed to allow parallel installation of different major
+versions. To facilitate this, the shared library name, include directory, and
+pkg-config file are suffixed with the major version number of the library.
+
+For example, if this library was named "foo" and at version 1.x.y:
+
+/usr/include/foo-1/foo/foo.h
+/usr/lib/foo-1.so.1.x.y
+/usr/lib/pkgconfig/foo-1.pc
+
+Dependencies check for pkg-config name "foo-1" and will build
+against a compatible version 1, regardless any other installed versions.
+
+*** IMPORTANT GUIDELINES FOR PACKAGERS ***
+
+Packages should follow the same conventions as above, i.e. include the major
+version (and only the major version) in the name of the package. Continuing the
+example above, the package(s) would be named foo-1 and foo-1-dev. This way,
+if/when version 2 comes out, it may be installed at the same time as version 1
+without breaking anything.
+
+Please do not create packages of this library that do not follow these
+guidelines, you will break things and cause unnecessary headaches. Please do
+not use any number as a suffix other than the actual major version number of the
+upstream source package.
+
+Because program and documentation names are not versioned, these should be
+included in separate packages which may replace previous versions, since
+there is little use in having parallel installations of them. \ No newline at end of file