[SCM] supercollider/master: libscsynth and libsclang get SOVERSION, 1.0.0
danstowell-guest at users.alioth.debian.org
danstowell-guest at users.alioth.debian.org
Mon Mar 28 15:14:00 UTC 2011
The following commit has been merged in the master branch:
commit 136ac3c12d3f5cfa613fb36ce636a95bbe6470f2
Author: Dan Stowell <danstowell at users.sourceforge.net>
Date: Mon Mar 28 16:12:33 2011 +0100
libscsynth and libsclang get SOVERSION, 1.0.0
diff --git a/debian/changelog b/debian/changelog
index b235640..f06d86d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -25,6 +25,8 @@ supercollider (3.4-rev2-1) UNRELEASED; urgency=low
* Can build against jack2 as well as jack1
* Update copyright to match rearranged folders and stripped linux
source tgz
+ * Versioned SONAMEs for libscsynth and libsclang
+ (backports from yet-to-be-released 3.4.2 git branch)
-- Alexandre Quessy <alexandre at quessy.net> Sat, 18 Sep 2010 20:21:00 -0400
diff --git a/debian/patches/15_versioned_sos.diff b/debian/patches/15_versioned_sos.diff
new file mode 100644
index 0000000..5f76e8a
--- /dev/null
+++ b/debian/patches/15_versioned_sos.diff
@@ -0,0 +1,87 @@
+Description: Add versioning to the libscsynth and libsclang installed SOs.
+Author: Dan Stowell and Felipe Satelier
+Forwarded: yes
+Index: supercollider/common/SConstruct
+===================================================================
+--- a/common/SConstruct
++++ b/common/SConstruct
+@@ -267,6 +267,16 @@
+ def make_static_objects(env, sources, postfix="_a"):
+ return map(lambda x: make_static_object(env, x, postfix), sources)
+
++# for linking libX.so => libX.so.1 on *nixy systems. Note, they must be in same dir.
++def make_local_symlink(target, source, env):
++ targetname = os.path.basename(str(target[0]))
++ if os.path.isfile(targetname):
++ if not os.path.islink(targetname):
++ liblog.error("ERROR: cannot create symlink %s because already exists as non-symlink." % (targetname))
++ else:
++ os.symlink(os.path.basename(str(source[0])), targetname)
++ return None
++
+ # ======================================================================
+ # command line options
+ # ======================================================================
+@@ -288,7 +298,8 @@
+ BoolOption('DEBUG',
+ 'Build with debugging information', 0),
+ PathOption('DESTDIR',
+- 'Intermediate installation prefix for packaging', '/'),
++ 'Intermediate installation prefix for packaging', '/',
++ PathOption.PathAccept),
+ BoolOption('DEVELOPMENT',
+ 'Build and install the development files', 0),
+ BoolOption('FFTW',
+@@ -795,11 +806,15 @@
+ libraries['rendezvous']),
+ PKGCONFIG_LIBS = ['-lscsynth'],
+ # PKGCONFIG_LIBS_PRIVATE = ['-lm', '-lpthread', '-ldl'],
+- PKGCONFIG_CFLAGS = ['-D' + PLATFORM_SYMBOL, '-I${includedir}/common', '-I${includedir}/plugin_interface', '-I${includedir}/server']
++ PKGCONFIG_CFLAGS = ['-D' + PLATFORM_SYMBOL, '-I${includedir}/common', '-I${includedir}/plugin_interface', '-I${includedir}/server'],
++ SHLIBSUFFIX='.so.1.0.0',
++ LIBSUFFIXES=['.so.1.0.0']
+ )
+ if PLATFORM == 'linux':
+ libscsynthEnv.Append(
+- LINKFLAGS = ['-Wl,-soname,libscsynth.so'])
++ LINKFLAGS = ['-Wl,-soname,libscsynth.so.1.0.0'])
++ # create local symlink for linker to follow (not installed)
++ libscsynthEnv.Command('build/libscsynth.so', 'build/libscsynth.so.1.0.0', make_local_symlink, chdir=1)
+
+ libscsynthSources = Split('''
+ Source/server/Rendezvous.cpp
+@@ -830,6 +845,7 @@
+
+ libscsynth = libscsynthEnv.SharedLibrary('build/scsynth', libscsynthSources)
+ env.Alias('install-programs', env.Install(lib_dir(INSTALL_PREFIX), [libscsynth]))
++env.Alias('install-programs', env.Command(lib_dir(INSTALL_PREFIX) + '/libscsynth.so', lib_dir(INSTALL_PREFIX) + '/libscsynth.so.1.0.0', make_local_symlink, chdir=1))
+
+ libscsynthStaticSources = libscsynthSources + make_static_objects(serverEnv, commonSources, "_libscsynthStatic");
+ libscsynthStatic = serverEnv.StaticLibrary('build/scsynth', libscsynthStaticSources)
+@@ -1037,11 +1053,16 @@
+ PKGCONFIG_PREFIX = FINAL_PREFIX,
+ PKGCONFIG_REQUIRES = make_pkgconfig_requires(libraries['sndfile']) + ['libscsynth'],
+ PKGCONFIG_LIBS = ['-lsclang'],
+- PKGCONFIG_CFLAGS = ['-D' + PLATFORM_SYMBOL, '-I${includedir}/common', '-I${includedir}/plugin_interface', '-I${includedir}/lang', '-I${includedir}/server']
++ PKGCONFIG_CFLAGS = ['-D' + PLATFORM_SYMBOL, '-I${includedir}/common', '-I${includedir}/plugin_interface', '-I${includedir}/lang', '-I${includedir}/server'],
++ SHLIBSUFFIX='.so.1.0.0',
++ LIBSUFFIXES=['.so.1.0.0']
+ )
+ if PLATFORM == 'linux':
+ libsclangEnv.Append(
+- LINKFLAGS = ['-Wl,-soname,libsclang.so'])
++ LINKFLAGS = ['-Wl,-soname,libsclang.so.1.0.0'])
++ # create local symlink for linker to follow (not installed)
++ libsclangEnv.Command('build/libsclang.so', 'build/libsclang.so.1.0.0', make_local_symlink, chdir=1)
++ Requires('build/libsclang.so.1.0.0', 'build/libscsynth.so')
+
+ # required libraries
+ merge_lib_info(langEnv, libraries['sndfile'])
+@@ -1146,6 +1167,7 @@
+ if env['LANG']:
+ libsclang = libsclangEnv.SharedLibrary('build/sclang', libsclangSources)
+ env.Alias('install-bin', env.Install(lib_dir(INSTALL_PREFIX), [libsclang]))
++ env.Alias('install-bin', env.Command(lib_dir(INSTALL_PREFIX) + '/libsclang.so', lib_dir(INSTALL_PREFIX) + '/libsclang.so.1.0.0', make_local_symlink, chdir=1))
+ if PLATFORM == 'darwin':
+ sclangLibs = ['scsynth', 'sclang']
+ else:
diff --git a/debian/patches/series b/debian/patches/series
index a9b48d2..7f7fcb9 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -5,3 +5,4 @@
08_deb_scvim_checkactive.diff
10_fix_rpath.diff
14_add_sonames.diff
+15_versioned_sos.diff
diff --git a/debian/rules b/debian/rules
index 0e21992..10f0af3 100755
--- a/debian/rules
+++ b/debian/rules
@@ -28,7 +28,7 @@ DEB_BUILDDIR=common
# SCVIM/SCED=0 here, because we install them by hand below
# (so that the build won't break)
DEB_SCONS_OPTIONS = DEVELOPMENT=yes PREFIX=/usr CROSSCOMPILE=1 STRIP=1 CURL=0 SCVIM=0 SCED=0
-DEB_SCONS_INSTALL_TARGET = --install-sandbox=$(DEB_DESTDIR) install
+DEB_SCONS_INSTALL_TARGET = DESTDIR=$(DEB_DESTDIR) install
# The build system apparently can't handle this
CXXFLAGS =
diff --git a/debian/supercollider-server.install b/debian/supercollider-server.install
index 4ccbadb..1303028 100644
--- a/debian/supercollider-server.install
+++ b/debian/supercollider-server.install
@@ -26,5 +26,6 @@ usr/lib/SuperCollider/plugins/TriggerUGens.so
usr/lib/SuperCollider/plugins/UnaryOpUGens.so
usr/lib/SuperCollider/plugins/UnpackFFTUGens.so
usr/lib/libscsynth.so
+usr/lib/libscsynth.so.1.0.0
usr/share/SuperCollider/Extensions/README
diff --git a/debian/supercollider.install b/debian/supercollider.install
index a9a54f7..ea3a157 100644
--- a/debian/supercollider.install
+++ b/debian/supercollider.install
@@ -1,2 +1,3 @@
usr/bin/sclang
usr/lib/libsclang.so
+usr/lib/libsclang.so.1.0.0
--
supercollider packaging
More information about the pkg-multimedia-commits
mailing list