On 04/09/13 2:15 PM, Stefan Sperling wrote:
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?

The soname command line parameter should just be removed on the line below what is being modified.

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




--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

Reply via email to