[DebianGIS-dev] Bug#583203: ogdi-dfsg: please rebuild against tcl/tk 8.5 in experimental

Jonathan Nieder jrnieder at gmail.com
Wed May 26 10:26:10 UTC 2010


Source: ogdi-dfsg
Version: 3.2.0~beta2-6
Severity: wishlist
User: pkg-tcltk-devel at lists.alioth.debian.org
Usertags: UpgradeDefaultTclTkTo85

Hi Francesco,

Here’s another patch to prepare before uploading tcltk-defaults 8.5 to
sid.  Although ogdi build-depends on tcl-dev (rather than tcl8.4-dev),
it expects to find headers in /usr/include/tcl8.4.  So the build
system needs patching.

The patch here is not complete yet.  Questions:

The existing version of the tcl bindings does not link to tcl.  That
is okay, since the tcl interpreter will be available to resolve
symbols, but:

 . When loaded, the tcl bindings do not check whether the current
   tcl version is suitable
 . There is no corresponding dependency in the libogdi3.2 package.
   Shouldn’t it at least Suggests: tclsh?
 . I am not sure how well tools like prelink can handle this
 . Is using libtcl this way supported?  What kind of ABI guarantees
   can we count on?

I would be more comfortable using tcl stubs.  What do you think?

The patch below does not use tcl stubs but just uses -ltcl directly.
It also adds a few other missing -l<this or that> to compiler command
lines.  Tested only by building against tcl8.5-dev and running
load("/usr/lib/ogdi/libecs_tcl.so") from tclsh; in other words, no
actual functionality has been tested yet.

 debian/changelog               |   13 +++++
 debian/control                 |    2 +-
 debian/patches/00list          |    1 +
 debian/patches/hurd.dpatch     |  113 ----------------------------------------
 debian/patches/linklibs.dpatch |   90 +++++++++++++++++++++++++++++++
 debian/patches/makefile.dpatch |   10 +++-
 6 files changed, 112 insertions(+), 117 deletions(-)
 create mode 100755 debian/patches/linklibs.dpatch
 mode change 100644 => 100755 debian/patches/makefile.dpatch

diff --git a/debian/changelog b/debian/changelog
index 3d1af21..842c5df 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,16 @@
+ogdi-dfsg (3.2.0~beta2-7) experimental; urgency=low
+
+  * Changed makefile.dpatch:
+    - use headers from /usr/include/tcl instead of hard-coding
+      /usr/include/tcl8.4.
+    - specify flags to link to libtcl, libtk, and libm
+  * Removed unused GNU.mak from hurd.dpatch.
+  * Added linklibs.dpatch to make sure each object is
+    linked to the libraries it uses.
+  * Rebuilt against tk-dev (>= 8.5).
+
+ -- Jonathan Nieder <jrnieder at gmail.com>  Wed, 26 May 2010 04:37:40 -0500
+
 ogdi-dfsg (3.2.0~beta2-6) unstable; urgency=low
 
   [ David Paleino ]
diff --git a/debian/control b/debian/control
index 8bb5914..8f91f48 100644
--- a/debian/control
+++ b/debian/control
@@ -2,7 +2,7 @@ Source: ogdi-dfsg
 Priority: extra
 Maintainer: Debian GIS Project <pkg-grass-devel at lists.alioth.debian.org>
 Uploaders: Francesco Paolo Lovergine <frankie at debian.org>
-Build-Depends: debhelper (>= 7), autotools-dev, zlib1g-dev, libexpat1-dev, libproj-dev, dpatch, tcl-dev (>=8.4)
+Build-Depends: debhelper (>= 7), autotools-dev, zlib1g-dev, libexpat1-dev, libproj-dev, dpatch, tcl-dev (>= 8.5)
 Standards-Version: 3.8.4
 Section: libs
 Homepage: http://ogdi.sourceforge.net/
diff --git a/debian/patches/00list b/debian/patches/00list
index 48b3158..e7a26c1 100644
--- a/debian/patches/00list
+++ b/debian/patches/00list
@@ -2,3 +2,4 @@ makefile
 shared
 endianess
 hurd
+linklibs
diff --git a/debian/patches/hurd.dpatch b/debian/patches/hurd.dpatch
index 2490add..ececc49 100644
--- a/debian/patches/hurd.dpatch
+++ b/debian/patches/hurd.dpatch
@@ -5,119 +5,6 @@
 ## DP: Support the GNU Hurd too.
 
 @DPATCH@
-diff -urNad ogdi-dfsg~/config/GNU.mak ogdi-dfsg/config/GNU.mak
---- ogdi-dfsg~/config/GNU.mak
-+++ ogdi-dfsg/config/GNU.mak
-@@ -0,0 +1,109 @@
-+# Copyright (C) 2001 Her Majesty the Queen in Right of Canada.
-+# Permission to use, copy, modify and distribute this software and
-+# its documentation for any purpose and without fee is hereby granted,
-+# provided that the above copyright notice appear in all copies, that
-+# both the copyright notice and this permission notice appear in
-+# supporting documentation, and that the name of Her Majesty the Queen
-+# in Right  of Canada not be used in advertising or publicity pertaining
-+# to distribution of the software without specific, written prior
-+# permission.  Her Majesty the Queen in Right of Canada makes no
-+# representations about the suitability of this software for any purpose.
-+# It is provided "as is" without express or implied warranty.
-+
-+# Generic unix configuration file, processed by configure to make 
-+# platform specific.
-+
-+#
-+# Read in the configuration common to all Unix
-+#
-+include /config/unix.mak
-+
-+#
-+# platform specific Symbols
-+#
-+PLATFORM= 
-+_SOLARIS= 1
-+USE_TERMIO= -DUSE_TERMIO
-+
-+# 
-+# platform specific tools
-+#
-+AR= ar cr
-+
-+
-+#
-+# Compilation and linking flags
-+#
-+SHLIB_CFLAGS= -fPIC
-+COMMON_CFLAGS=  -Wall -O2  -Wall -DUNIX=1
-+
-+SHLIB_LDFLAGS= -shared 
-+COMMON_LDFLAGS  =  
-+
-+RPC_INCLUDES = -DHAVE_STD_RPC_INCLUDES
-+
-+UCB_STATICLIB = 
-+
-+TCL_INCLUDE = -I/usr/include/tcl8.4
-+TCL_LINKLIB =
-+
-+#
-+#Install Locations
-+#
-+prefix= /usr
-+exec_prefix = 
-+INST_INCLUDE= /include
-+INST_LIB= /lib
-+INST_BIN= /bin
-+
-+#
-+# platform specific file locations
-+#
-+#RPC_LINKLIB= -lrpcsvc -lnsl -lsocket
-+#RPC_LINKLIB=-ldl -ldbmalloc
-+RPC_LINKLIB=-ldl 
-+
-+#
-+# Endian definition, could be little or big
-+#
-+BIG_ENDIAN          = 0
-+
-+#
-+# Handle internal/external PROJ.4 library usage.
-+#
-+
-+PROJ_SETTING=external
-+
-+ifeq (,external)
-+PROJ_INCLUDE :=-I/usr/include
-+PROJ_STATICLIB := -lproj
-+endif
-+
-+#
-+# Handle internal/external ZLIB library usage.
-+#
-+
-+ZLIB_SETTING=external
-+
-+ifeq (,external)
-+ZLIB_INCLUDE :=-I/usr/include
-+ZLIB_LINKLIB := -lz
-+endif
-+
-+#
-+# Handle internal/external/disabled "Expat" library handling.
-+#
-+
-+EXPAT_SETTING=external
-+
-+ifeq (,external)
-+EXPAT_INCLUDE := -I/usr/include
-+EXPAT_LINKLIB := -lexpat
-+endif
-+
-+ifeq (,disabled)
-+EXPAT_INCLUDE := -DEXPAT_DISABLED
-+EXPAT_LINKLIB := 
-+endif
-+
-+
 diff -urNad ogdi-dfsg~/config/common.mak.in ogdi-dfsg/config/common.mak.in
 --- ogdi-dfsg~/config/common.mak.in
 +++ ogdi-dfsg/config/common.mak.in
diff --git a/debian/patches/linklibs.dpatch b/debian/patches/linklibs.dpatch
new file mode 100755
index 0000000..c883704
--- /dev/null
+++ b/debian/patches/linklibs.dpatch
@@ -0,0 +1,90 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## linklibs.dpatch by Jonathan Nieder <jrnieder at gmail.com>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+##
+## DP: Link libraries and binaries to the libs providing the
+## DP: symbols they use, instead of relying on the user to do so.
+## DP:
+## DP: dpkg-shlibdeps, symbol versioning, the gold linker, and
+## DP: some versions of ld.so can benefit from this.
+
+ at DPATCH@
+diff --git a/contrib/ogdi_import/makefile b/contrib/ogdi_import/makefile
+index 0b32fb0..ba37449 100644
+--- a/contrib/ogdi_import/makefile
++++ b/contrib/ogdi_import/makefile
+@@ -17,14 +17,12 @@ TARGETGEN=$(PROGGEN)
+ SOURCES = ogdi_import.c shpopen.c dbfopen.c
+ 
+ INCLUDES = $(CURRENT_INCLUDE) $(OGDI_INCLUDE) $(PROJ_INCLUDE)\
+-	   $(ZLIB_INCLUDE) $(GENERAL_INCLUDE) $(TCLTK_INCLUDE)
++	   $(GENERAL_INCLUDE) $(TCLTK_INCLUDE)
+ 
+ CFLAGS 	= $(INCLUDES) $(COMMON_CFLAGS) $(FLAGS_X86DEF)
+ 
+-LINK_LIBS= $(OGDI_LINKLIB) $(ZLIB_LINKLIB) $(RPC_LINKLIB) \
+-           $(PROJ_STATICLIB) $(MATH_LINKLIB) \
+-	   $(LIBC_LINKLIB) $(UCB_STATICLIB) $(DL_LINKLIB) \
+-	   $(WIN_LINKLIB)
++LINK_LIBS= $(OGDI_LINKLIB) $(PROJ_STATICLIB) $(MATH_LINKLIB) \
++	   $(LIBC_LINKLIB) $(UCB_STATICLIB) $(WIN_LINKLIB)
+ 
+ include $(TOPDIR)/config/common.mak
+ 
+diff --git a/contrib/ogdi_info/makefile b/contrib/ogdi_info/makefile
+index 3a33089..fa195a9 100644
+--- a/contrib/ogdi_info/makefile
++++ b/contrib/ogdi_info/makefile
+@@ -16,15 +16,13 @@ TARGETGEN=$(PROGGEN)
+ 
+ SOURCES = ogdi_info.c
+ 
+-INCLUDES = $(CURRENT_INCLUDE) $(OGDI_INCLUDE) $(PROJ_INCLUDE)\
+-	   $(ZLIB_INCLUDE) $(GENERAL_INCLUDE) $(TCLTK_INCLUDE)
++INCLUDES = $(CURRENT_INCLUDE) $(OGDI_INCLUDE) $(PROJ_INCLUDE) \
++	   $(GENERAL_INCLUDE)
+ 
+ CFLAGS 	= $(INCLUDES) $(COMMON_CFLAGS) $(FLAGS_X86DEF)
+ 
+-LINK_LIBS= $(OGDI_LINKLIB) $(ZLIB_LINKLIB) $(RPC_LINKLIB) \
+-           $(PROJ_STATICLIB) $(MATH_LINKLIB) \
+-	   $(LIBC_LINKLIB) $(UCB_STATICLIB) $(DL_LINKLIB) \
+-	   $(WIN_LINKLIB)
++LINK_LIBS= $(OGDI_LINKLIB) $(PROJ_STATICLIB) $(MATH_LINKLIB) \
++	   $(LIBC_LINKLIB) $(UCB_STATICLIB) $(WIN_LINKLIB)
+ 
+ include $(TOPDIR)/config/common.mak
+ 
+diff --git a/ogdi/gltpd/makefile b/ogdi/gltpd/makefile
+index 353df7f..7feaa1b 100644
+--- a/ogdi/gltpd/makefile
++++ b/ogdi/gltpd/makefile
+@@ -21,11 +21,9 @@ INCLUDES = $(CURRENT_INCLUDE) $(OGDI_INCLUDE) $(PROJ_INCLUDE)\
+ 
+ CFLAGS 	= $(INCLUDES) $(COMMON_CFLAGS) $(FLAGS_X86DEF) $(RPC_INCLUDES)
+ 
+-LINK_LIBS= $(OGDI_LINKLIB) $(ZLIB_LINKLIB) $(RPC_LINKLIB) \
+-           $(PROJ_STATICLIB) $(MATH_LINKLIB) \
+-	   $(LIBC_LINKLIB) $(UCB_STATICLIB) $(DL_LINKLIB) \
+-	   $(WIN_LINKLIB) $(X11_LINKLIB) $(LXLIB_LINKLIB) \
+-	   $(TK_LINKLIB) $(TCL_LINKLIB) 
++LINK_LIBS= $(OGDI_LINKLIB) $(PROJ_STATICLIB) $(MATH_LINKLIB) \
++	   $(LIBC_LINKLIB) $(UCB_STATICLIB) \
++	   $(WIN_LINKLIB) $(X11_LINKLIB) $(LXLIB_LINKLIB)
+ 
+ include $(TOPDIR)/config/common.mak
+ 
+diff --git a/vpflib/makefile b/vpflib/makefile
+index b3fc68b..1207836 100644
+--- a/vpflib/makefile
++++ b/vpflib/makefile
+@@ -33,6 +33,8 @@ INCLUDES = $(CURRENT_INCLUDE) $(GENERAL_INCLUDE) $(VPF_INCLUDE)
+ CFLAGS 	= $(INCLUDES) $(COMMON_CFLAGS) $(UNIX_DEFINE) \
+ 	-DSYS_BIG_ENDIAN=$(BIG_ENDIAN)
+ 
++LINK_LIBS = $(MATH_LINKLIB)
++
+ include $(TOPDIR)/config/common.mak
+ 
+ all: MKOBJECTDIR 
diff --git a/debian/patches/makefile.dpatch b/debian/patches/makefile.dpatch
old mode 100644
new mode 100755
index dd8f25a..b7f88df
--- a/debian/patches/makefile.dpatch
+++ b/debian/patches/makefile.dpatch
@@ -10,13 +10,17 @@
 diff -urNad ogdi-dfsg~/config/generic.mak.in ogdi-dfsg/config/generic.mak.in
 --- ogdi-dfsg~/config/generic.mak.in	2007-03-27 17:35:33.000000000 +0200
 +++ ogdi-dfsg/config/generic.mak.in	2007-03-27 23:17:20.000000000 +0200
-@@ -44,7 +44,7 @@
+@@ -44,7 +44,10 @@
  
  UCB_STATICLIB = 
  
 -TCL_INCLUDE = -I/usr/include/tcl8.3
-+TCL_INCLUDE = -I/usr/include/tcl8.4
- TCL_LINKLIB =
+-TCL_LINKLIB =
++TCL_INCLUDE = -I/usr/include/tcl
++TCL_LINKLIB = -ltcl
++TK_LINKLIB = -ltk
++
++MATH_LINKLIB = -lm
  
  #
 diff -urNad ogdi-dfsg~/makefile ogdi-dfsg/makefile
-- 
1.7.1






More information about the Pkg-grass-devel mailing list