summaryrefslogtreecommitdiffstats
path: root/PACKAGING
diff options
context:
space:
mode:
Diffstat (limited to 'PACKAGING')
-rw-r--r--PACKAGING49
1 files changed, 49 insertions, 0 deletions
diff --git a/PACKAGING b/PACKAGING
new file mode 100644
index 0000000..735a1c6
--- /dev/null
+++ b/PACKAGING
@@ -0,0 +1,49 @@
+These are generic guidelines, but please see below for important Suil specific
+information.
+
+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.
+
+*** IMPORTANT GUIDELINES FOR PACKAGING SUIL ***
+
+The purpose of Suil is to abstract plugin UI toolkits away from host code. To
+achieve this, Suil performs its magic by dynamically loading modules for each
+toolkit. The main Suil library does NOT depend on any toolkit libraries, and
+thus neither should your package. Please package the individual modules
+(e.g. libsuil_gtk2_in_qt4.so) as separate packages, which themselves depend on
+the involved toolkits. These packages should also be versioned as described
+above to support parallel installation.
+
+Please do not make the main Suil package depend on any toolkit package, this
+defeats the purpose of Suil and will severely irritate those who for whatever
+reason do not want a particular toolkit dependency. The main Suil package may
+have a weak dependency (e.g. "recommends") on the individual wrapper modules,
+and it's fine if these are installed by default, but it must be possible to
+install Suil without installing them if the user explicitly wishes to do so.