Scons is forcing a soname for shared libraries which doesn't jive
with our major.minor convention for shared library file names.

This isn't a huge issue in itself because programs still run.
But it seems to interfere with our lib-depends-check target.

I noticed this while trying to update net/serf to a newer version
which requires scons to compile. I need to update net/serf before
moving devel/subversion to Subversion 1.8.

If I run make lib-depends-check in devel/subversion, it complains
that libserf-1.so.1 cannot be found. libserf-1.so.1 is the SONAME
of the installed libserf-1.so.1.0 shared lib, and oddly enough even a
symlink from .1 to .1.0 doesn't seem to convince lib-depends-check.

subversion-1.8.3(devel/subversion,-main):
Missing lib: libserf-1.so.1 (/usr/local/bin/svnsync) (NOT REACHABLE)
Extra:  serf-1.1

$ ls -l /usr/local/lib/libserf*                        
-rw-r--r--  1 root  wheel  - 90.7K Sep  4 19:49 /usr/local/lib/libserf-1.a
lrwxr-xr-x  1 root  wheel  -   16B Sep  4 19:49 /usr/local/lib/libserf-1.so.1@ 
-> libserf-1.so.1.0
-rwxr-xr-x  1 root  wheel  -  103K Sep  4 19:49 /usr/local/lib/libserf-1.so.1.0*
$ 

This patch forces scons to use major.minor names as we usually do.
That makes it work, and should also prevent similar problems with other
ports built with scons. I'll try to discuss this with upstream, but for
now this allows me to move forward with my other ports.

ok?

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/scons/Makefile,v
retrieving revision 1.17
diff -u -p -r1.17 Makefile
--- Makefile    5 Jul 2013 20:09:59 -0000       1.17
+++ Makefile    4 Sep 2013 17:16:15 -0000
@@ -3,6 +3,7 @@
 COMMENT=       Python-based build system
 
 VERSION =      2.3.0
+REVISION =     1
 DISTNAME=      scons-${VERSION}
 CATEGORIES=    devel
 
Index: patches/patch-engine_SCons_Tool___init___py
===================================================================
RCS file: patches/patch-engine_SCons_Tool___init___py
diff -N patches/patch-engine_SCons_Tool___init___py
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-engine_SCons_Tool___init___py 4 Sep 2013 17:19:01 -0000
@@ -0,0 +1,14 @@
+$OpenBSD$
+--- engine/SCons/Tool/__init__.py.orig Wed Sep  4 19:15:44 2013
++++ engine/SCons/Tool/__init__.py      Wed Sep  4 19:15:56 2013
+@@ -304,8 +304,8 @@ symlinks for the platform we are on"""
+         if platform == 'posix':
+             suffix_re = re.escape(shlib_suffix + '.' + version)
+             (major, age, revision) = version.split(".")
+-            # soname will have only the major version number in it
+-            soname = re.sub(suffix_re, shlib_suffix, libname) + '.' + major
++            # soname will have only the major and age version number in it
++            soname = re.sub(suffix_re, shlib_suffix, libname) + '.' + major + 
'.' + age
+             shlink_flags += [ '-Wl,-Bsymbolic', '-Wl,-soname=%s' % soname ]
+             if Verbose:
+                 print " soname ",soname,", shlink_flags ",shlink_flags

Reply via email to