[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