Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 26 Apr 2009 14:46:31 +0400 (MSD)
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        wenheping@gmail.com
Subject:   ports/134015: [patch] graphics/mapnik should install library with correct name
Message-ID:  <200904261046.n3QAkVUn060261@cell.glebius.int.ru>
Resent-Message-ID: <200904261120.n3QBK1hK035884@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         134015
>Category:       ports
>Synopsis:       [patch] graphics/mapnik should install library with correct name
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Apr 26 11:20:00 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator:     Gleb Smirnoff
>Release:        FreeBSD 7.1-STABLE i386
>Organization:
Rambler Internet Holding
>Environment:
System: FreeBSD cell.glebius.int.ru 7.1-STABLE FreeBSD 7.1-STABLE #0: Thu Feb 26 13:01:21 MSK 2009 glebius@cell.glebius.int.ru:/usr/obj/usr/src/sys/NUCLEUS i386
>Description:
	The graphics/mapnik port installs its shlib as libmapnik.so.0.5.0,
	while in FreeBSD it is common to use only major lib version for
	library file name.

	Now I am working on a port that will be linked to mapnik library,
	and I first need to get mapnik fixed to get my port committed.
>How-To-Repeat:
	Install graphics/mapnik.
>Fix:
diff -Nur mapnik.bak/Makefile mapnik/Makefile
--- mapnik.bak/Makefile	2009-04-26 01:07:23.000000000 +0400
+++ mapnik/Makefile	2009-04-26 13:10:17.000000000 +0400
@@ -7,7 +7,7 @@
 
 PORTNAME=	mapnik
 PORTVERSION=	0.5.1
-PORTREVISION=	1
+PORTREVISION=	2
 CATEGORIES=	graphics geography
 MASTER_SITES=	${MASTER_SITE_BERLIOS}/${PORTNAME}/
 DISTNAME=	mapnik_src-${PORTVERSION}
diff -Nur mapnik.bak/files/patch-src-SConscript mapnik/files/patch-src-SConscript
--- mapnik.bak/files/patch-src-SConscript	1970-01-01 03:00:00.000000000 +0300
+++ mapnik/files/patch-src-SConscript	2009-04-26 13:00:57.000000000 +0400
@@ -0,0 +1,41 @@
+--- src/SConscript.orig	2009-04-26 12:18:44.000000000 +0400
++++ src/SConscript	2009-04-26 13:00:21.000000000 +0400
+@@ -37,6 +37,8 @@
+     linkflags = '-Wl,-install_name,libmapnik.dylib'
+ elif env['PLATFORM'] == 'SunOS' and env['CXX'].startswith('CC'):
+     linkflags = '-R. -h libmapnik.so'
++elif env['PLATFORM'] == 'FreeBSD':
++    linkflags = '-Wl,-soname,libmapnik.so.' + ("%d" % (ABI_VERSION[0]))
+ else: # Linux and others
+     linkflags = '-Wl,-rpath-link,. -Wl,-soname,libmapnik.so.' + ("%d.%d" % (ABI_VERSION[0],ABI_VERSION[1])) 
+ 
+@@ -106,16 +108,24 @@
+ 
+     major, minor, micro = ABI_VERSION
+     
+-    soFile = "%s.%d.%d.%d" % (os.path.basename(str(mapnik[0])), major, minor, micro)
++    if env['PLATFORM'] == 'FreeBSD':
++        soFile = "%s.%d" % (os.path.basename(str(mapnik[0])), major)
++    else:
++        soFile = "%s.%d.%d.%d" % (os.path.basename(str(mapnik[0])), major, minor, micro)
+     libDir = install_prefix + '/' + env['LIBDIR_SCHEMA']
+     env.Alias(target='install', source=env.InstallAs(target=os.path.join(libDir, soFile), source=mapnik))
+     # Install symlinks
+-    link1 = env.Command(os.path.join(libDir, "%s.%d.%d" % (os.path.basename(str(mapnik[0])),major, minor)), 
++    if env['PLATFORM'] == 'FreeBSD':
++        link = env.Command(os.path.join(libDir, os.path.basename(str(mapnik[0]))), 
++                        os.path.join(libDir, "%s.%d" % (os.path.basename(str(mapnik[0])),major)), symlink)
++        env.Alias(target='install', source=link)
++    else:
++        link1 = env.Command(os.path.join(libDir, "%s.%d.%d" % (os.path.basename(str(mapnik[0])),major, minor)), 
+                         os.path.join(libDir, soFile), symlink)
+-    env.Alias(target='install', source=link1)
+-    link2 = env.Command(os.path.join(libDir, os.path.basename(str(mapnik[0]))), 
++        env.Alias(target='install', source=link1)
++        link2 = env.Command(os.path.join(libDir, os.path.basename(str(mapnik[0]))), 
+                         os.path.join(libDir, "%s.%d.%d" % (os.path.basename(str(mapnik[0])),major, minor)), symlink)
+-    env.Alias(target='install', source=link2)
++        env.Alias(target='install', source=link2)
+ else:
+     env.Alias(target='install', source=env.Install(install_prefix + '/' + env['LIBDIR_SCHEMA'], mapnik))
+ 
diff -Nur mapnik.bak/pkg-plist mapnik/pkg-plist
--- mapnik.bak/pkg-plist	2009-04-26 01:07:23.000000000 +0400
+++ mapnik/pkg-plist	2009-04-26 13:10:02.000000000 +0400
@@ -98,8 +98,7 @@
 include/mapnik/proj_transform.hpp
 include/mapnik/distance.hpp
 lib/libmapnik.so
-lib/libmapnik.so.0.5
-lib/libmapnik.so.0.5.0
+lib/libmapnik.so.0
 lib/mapnik/input/raster.input
 lib/mapnik/input/shape.input
 lib/mapnik/fonts/DejaVuSansMono-Oblique.ttf
>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200904261046.n3QAkVUn060261>