glibc/libstdc++ dependency patches
authorArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:56:50 +0000 (16:56 +0000)
committerArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:56:50 +0000 (16:56 +0000)
Author: tausq
Date: 2001-02-27 04:16:05 GMT
glibc/libstdc++ dependency patches

apt-inst/makefile
apt-pkg/makefile
buildlib/environment.mak.in
buildlib/library.mak
buildlib/tools.m4
configure.in
debian/control
debian/rules
doc/apt-extracttemplates.1.sgml

index 4a0981f..23cdd37 100644 (file)
@@ -11,6 +11,7 @@ include ../buildlib/defaults.mak
 
 # The library name
 LIBRARY=apt-inst
+LIBEXT=$(GLIBC_VER)$(LIBSTDCPP_VER)
 MAJOR=1.0
 MINOR=0
 SLIBS=$(PTHREADLIB)
index cb66c36..979a99b 100644 (file)
@@ -11,6 +11,7 @@ include ../buildlib/defaults.mak
 
 # The library name, don't forget to update init.h
 LIBRARY=apt-pkg
+LIBEXT=$(GLIBC_VER)$(LIBSTDCPP_VER)
 MAJOR=3.1
 MINOR=1
 SLIBS=$(PTHREADLIB)
index 76d6cda..9ec0f4b 100644 (file)
@@ -7,6 +7,8 @@ CPPFLAGS+= @CPPFLAGS@ @DEFS@ -D_REENTRANT
 CXX = @CXX@
 CXXFLAGS+= @CXXFLAGS@
 NUM_PROCS = @NUM_PROCS@
+GLIBC_VER = @GLIBC_VER@
+LIBSTDCPP_VER = @LIBSTDCPP_VER@
 
 # Linker stuff
 PICFLAGS+= -fPIC -DPIC
index 229479f..fb944cf 100644 (file)
 # See defaults.mak for information about LOCAL
 
 # Some local definitions
-LOCAL := lib$(LIBRARY).so.$(MAJOR).$(MINOR)
+LOCAL := lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR)
 $(LOCAL)-OBJS := $(addprefix $(OBJ)/,$(addsuffix .opic,$(notdir $(basename $(SOURCE)))))
 $(LOCAL)-DEP := $(addprefix $(DEP)/,$(addsuffix .opic.d,$(notdir $(basename $(SOURCE)))))
 $(LOCAL)-HEADERS := $(addprefix $(INCLUDE)/,$(HEADERS))
-$(LOCAL)-SONAME := lib$(LIBRARY).so.$(MAJOR)
+$(LOCAL)-SONAME := lib$(LIBRARY)$(LIBEXT).so.$(MAJOR)
 $(LOCAL)-SLIBS := $(SLIBS)
 $(LOCAL)-LIBRARY := $(LIBRARY)
 
 # Install the command hooks
 headers: $($(LOCAL)-HEADERS)
-library: $(LIB)/lib$(LIBRARY).so $(LIB)/lib$(LIBRARY).so.$(MAJOR)
+library: $(LIB)/lib$(LIBRARY).so $(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR)
 clean: clean/$(LOCAL)
 veryclean: veryclean/$(LOCAL)
 
@@ -37,18 +37,18 @@ MKDIRS += $(OBJ) $(DEP) $(LIB) $(dir $($(LOCAL)-HEADERS))
 clean/$(LOCAL):
        -rm -f $($(@F)-OBJS) $($(@F)-DEP)
 veryclean/$(LOCAL): clean/$(LOCAL)
-       -rm -f $($(@F)-HEADERS) $(LIB)/lib$($(@F)-LIBRARY).so*
+       -rm -f $($(@F)-HEADERS) $(LIB)/lib$($(@F)-LIBRARY)*.so*
 
 # Build rules for the two symlinks
-.PHONY: $(LIB)/lib$(LIBRARY).so.$(MAJOR) $(LIB)/lib$(LIBRARY).so
-$(LIB)/lib$(LIBRARY).so.$(MAJOR): $(LIB)/lib$(LIBRARY).so.$(MAJOR).$(MINOR)
+.PHONY: $(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR) $(LIB)/lib$(LIBRARY).so
+$(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR): $(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR)
        ln -sf $(<F) $@
-$(LIB)/lib$(LIBRARY).so: $(LIB)/lib$(LIBRARY).so.$(MAJOR).$(MINOR)
+$(LIB)/lib$(LIBRARY).so: $(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR)
        ln -sf $(<F) $@
        
 # The binary build rule
-$(LIB)/lib$(LIBRARY).so.$(MAJOR).$(MINOR): $($(LOCAL)-HEADERS) $($(LOCAL)-OBJS)
-       -rm -f $(LIB)/lib$($(@F)-LIBRARY).so* 2> /dev/null
+$(LIB)/lib$(LIBRARY)$(LIBEXT).so.$(MAJOR).$(MINOR): $($(LOCAL)-HEADERS) $($(LOCAL)-OBJS)
+       -rm -f $(LIB)/lib$($(@F)-LIBRARY)*.so* 2> /dev/null
        echo Building shared library $@
        $(CXX) $(CXXFLAGS) $(LDFLAGS) $(PICFLAGS) $(LFLAGS) $(LFLAGS_SO)\
           -o $@ $(SONAME_MAGIC)$($(@F)-SONAME) -shared \
index d47d79e..281a4ec 100644 (file)
@@ -88,3 +88,48 @@ AC_DEFUN(ah_NUM_PROCS,
        AC_MSG_RESULT([$NUM_PROCS])
        AC_SUBST(NUM_PROCS)
 ])
+
+AC_DEFUN(ah_GLIBC_VER,
+       [AC_MSG_CHECKING([glibc version])
+       dummy=if$$
+       cat <<_GLIBC_>$dummy.c
+#include <features.h>
+#include <stdio.h>
+int main(int argc, char **argv) { printf("libc6.%d",__GLIBC_MINOR__); exit(0); }
+_GLIBC_
+       ${CC-cc} $dummy.c -o $dummy
+       if test "$?" = 0; then
+               GLIBC_VER=`./$dummy`
+               AC_MSG_RESULT([$GLIBC_VER])
+               GLIBC_VER="-$GLIBC_VER"
+       else
+               AC_MSG_WARN([cannot determine GNU C library minor version number])
+       fi
+       rm -f $dummy $dummy.c
+       AC_SUBST(GLIBC_VER)
+])
+
+AC_DEFUN(ah_LIBSTDCPP_VER,
+       [AC_MSG_CHECKING([libstdc++ version])
+       dummy=if$$
+       cat <<_LIBSTDCPP_>$dummy.cc
+#include <features.h>
+#include <stdio.h>
+int main(int argc, char **argv) { exit(0); }
+_LIBSTDCPP_
+       ${CXX-c++} $dummy.cc -o $dummy
+
+       if test "$?" = 0; then
+               soname=`objdump -p ./$dummy |grep NEEDED|grep libstd`
+               LIBSTDCPP_VER=`echo $soname | sed -e 's/.*NEEDED.*libstdc++-libc.*-\(.*\).so.\(.*\)/\2-\1/'`
+       fi
+       rm -f $dummy $dummy.cc
+
+       if test -z "$LIBSTDCPP_VER"; then
+               AC_MSG_WARN([cannot determine standard C++ library version number])
+       else
+               AC_MSG_RESULT([$LIBSTDCPP_VER])
+               LIBSTDCPP_VER="-$LIBSTDCPP_VER"
+       fi
+       AC_SUBST(LIBSTDCPP_VER)
+])
index 0dc5083..60bea15 100644 (file)
@@ -159,5 +159,7 @@ dnl Check for YODL
 dnl AC_CHECK_PROG(YODL_MAN,yodl2man,"yes","")
 
 ah_NUM_PROCS
+ah_GLIBC_VER
+ah_LIBSTDCPP_VER
 
 AC_OUTPUT(environment.mak:buildlib/environment.mak.in makefile:buildlib/makefile.in,make -s dirs)
index a748228..40bee6b 100644 (file)
@@ -10,7 +10,7 @@ Architecture: any
 Depends: ${shlibs:Depends}
 Priority: standard
 Replaces: libapt-pkg-doc (<< 0.3.7), libapt-pkg-dev (<< 0.3.7)
-Provides: libapt-pkg${libapt-pkg:major}
+Provides: ${libapt-pkg:provides}
 Suggests: dpkg-dev
 Description: Advanced front-end for dpkg
  This is Debian's next generation front-end for the dpkg package manager.
@@ -24,7 +24,7 @@ Description: Advanced front-end for dpkg
 Package: libapt-pkg-dev
 Architecture: any
 Priority: optional
-Depends: libapt-pkg${libapt-pkg:major}
+Depends: ${libapt-pkg:provides}
 Description: Development files for APT's libapt-pkg
  This package contains the header files and static libraries for
  developing with APT's libapt-pkg Debian package manipulation
@@ -41,7 +41,7 @@ Package: apt-utils
 Architecture: any
 Depends: ${shlibs:Depends}
 Priority: optional
-Provides: libapt-inst${libapt-inst:major}
+Provides: ${libapt-inst:provides}
 Description: APT utility programs
  This package contains some infrequently used APT utility programs such
  as apt-ftparchive and apt-sortpkgs.
index 6e7b5f0..2beeb35 100755 (executable)
@@ -2,7 +2,7 @@
 # Made with the aid of dh_make, by Craig Small
 # Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess.
 # Some lines taken from debmake, by Christoph Lameter.
-# $Id: rules,v 1.26 2001/02/23 04:29:59 tausq Exp $
+# $Id: rules,v 1.27 2001/02/27 04:16:05 tausq Exp $
 
 # LD_LIBRARY_PATH=pwd/debian/tmp/usr/lib dh_shlibdeps -papt
 # dpkg: /home/jgg/work/apt2/debian/tmp/usr/lib/libapt-pkg.so.2.9 not found.
@@ -57,18 +57,23 @@ APT_UTILS=ftparchive sortpkgs extracttemplates
 # Find the libapt-pkg major version for use in other control files
 export LIBAPTPKG_MAJOR:=$(shell egrep '^MAJOR=' apt-pkg/makefile |cut -d '=' -f 2)
 export LIBAPTINST_MAJOR:=$(shell egrep '^MAJOR=' apt-inst/makefile |cut -d '=' -f 2)
+
+# Determine which package we should provide in the control files
+LIBAPTPKG_PROVIDE=libapt-pkg$(GLIBC_VER)$(LIBSTDCPP_VER)-$(LIBAPTPKG_MAJOR)
+LIBAPTINST_PROVIDE=libapt-inst$(GLIBC_VER)$(LIBSTDCPP_VER)-$(LIBAPTINST_MAJOR)
+
 debian/shlibs.local: apt-pkg/makefile
-        # We have 3 shlibs.local files.. One for 'apt', one for 'apt-utils' and
+       # We have 3 shlibs.local files.. One for 'apt', one for 'apt-utils' and
        # one for the rest of the packages. This ensures that each package gets
        # the right overrides.. 
        rm -rf $@ $@.apt $@.apt-utils
-       echo "libapt-pkg $(LIBAPTPKG_MAJOR)" > $@.apt
+       echo "libapt-pkg$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTPKG_MAJOR)" > $@.apt
 
-       echo "libapt-pkg $(LIBAPTPKG_MAJOR) libapt-pkg$(LIBAPTPKG_MAJOR)" > $@.apt-utils
-       echo "libapt-inst $(LIBAPTINST_MAJOR)" >> $@.apt-utils
+       echo "libapt-pkg$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@.apt-utils
+       echo "libapt-inst$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTINST_MAJOR)" >> $@.apt-utils
 
-       echo "libapt-pkg $(LIBAPTPKG_MAJOR) libapt-pkg$(LIBAPTPKG_MAJOR)" > $@
-       echo "libapt-inst $(LIBAPTINST_MAJOR) libapt-inst$(LIBAPTINST_MAJOR)" >> $@
+       echo "libapt-pkg$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTPKG_MAJOR) $(LIBAPTPKG_PROVIDE)" > $@
+       echo "libapt-inst$(GLIBC_VER)$(LIBSTDCPP_VER) $(LIBAPTINST_MAJOR) $(LIBAPTINST_PROVIDE)" >> $@
        
 build: build/build-stamp       
 
@@ -132,7 +137,7 @@ libapt-pkg-doc: build debian/shlibs.local
        dh_fixperms -p$@
 #      dh_suidregister -p$@
        dh_installdeb -p$@
-       dh_gencontrol -p$@ -u -Vlibapt-pkg:major=$(LIBAPTPKG_MAJOR)
+       dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE)
        dh_md5sums -p$@
        dh_builddeb -p$@
 
@@ -154,8 +159,8 @@ apt: build debian/shlibs.local
        rm $(addprefix debian/tmp/usr/bin/apt-,$(APT_UTILS))
        
        # install the shared libs
-       find $(BLD)/bin/ -type f -name "libapt-pkg.so.*" -exec cp -a "{}" debian/tmp/usr/lib/ \;
-       find $(BLD)/bin/ -type l -name "libapt-pkg.so.*" -exec cp -a "{}" debian/tmp/usr/lib/ \;
+       find $(BLD)/bin/ -type f -name "libapt-pkg*.so.*" -exec cp -a "{}" debian/tmp/usr/lib/ \;
+       find $(BLD)/bin/ -type l -name "libapt-pkg*.so.*" -exec cp -a "{}" debian/tmp/usr/lib/ \;
 
        cp $(BLD)/bin/methods/* debian/tmp/usr/lib/apt/methods/
 
@@ -181,8 +186,8 @@ apt: build debian/shlibs.local
        dh_installdeb -p$@
        dh_shlibdeps -papt -l`pwd`/debian/tmp/usr/lib -- -Ldebian/shlibs.local.apt
 #      LD_LIBRARY_PATH=`pwd`/debian/tmp/usr/lib dh_shlibdeps -papt
-       dh_gencontrol -p$@ -u -Vlibapt-pkg:major=$(LIBAPTPKG_MAJOR)
-       dh_makeshlibs -m$(LIBAPTPKG_MAJOR) -V 'libapt-pkg$(LIBAPTPKG_MAJOR)' -papt
+       dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE)
+       dh_makeshlibs -m$(LIBAPTPKG_MAJOR) -V '$(LIBAPTPKG_PROVIDE)' -papt
        dh_md5sums -p$@
        dh_builddeb -p$@
 
@@ -194,8 +199,8 @@ libapt-pkg-dev: build debian/shlibs.local
 #
 # libapt-pkg-dev install
 #
-       cp -a $(BLD)/bin/libapt-pkg.so debian/libapt-pkg-dev/usr/lib/
-       cp -a $(BLD)/bin/libapt-inst.so debian/libapt-pkg-dev/usr/lib/
+       cp -a $(BLD)/bin/libapt-pkg*.so debian/libapt-pkg-dev/usr/lib/
+       cp -a $(BLD)/bin/libapt-inst*.so debian/libapt-pkg-dev/usr/lib/
        #ln -s libapt-pkg.so.$(LIBAPTPKG_MAJOR) debian/libapt-pkg-dev/usr/lib/libapt-pkg.so
        cp $(BLD)/include/apt-pkg/*.h debian/libapt-pkg-dev/usr/include/apt-pkg/
 
@@ -211,7 +216,7 @@ libapt-pkg-dev: build debian/shlibs.local
        dh_fixperms -p$@
 #      dh_suidregister -p$@
        dh_installdeb -p$@
-       dh_gencontrol -p$@ -u -Vlibapt-pkg:major=$(LIBAPTPKG_MAJOR)
+       dh_gencontrol -p$@ -u -Vlibapt-pkg:provides=$(LIBAPTPKG_PROVIDE)
        dh_md5sums -p$@
        dh_builddeb -p$@
 
@@ -222,15 +227,15 @@ apt-utils: build debian/shlibs.local
        dh_installdirs -p$@
 
        # install the shared libs
-       find $(BLD)/bin/ -type f -name "libapt-inst.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \;
-       find $(BLD)/bin/ -type l -name "libapt-inst.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \;
+       find $(BLD)/bin/ -type f -name "libapt-inst*.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \;
+       find $(BLD)/bin/ -type l -name "libapt-inst*.so.*" -exec cp -a "{}" debian/$@/usr/lib/ \;
 
        cp $(addprefix $(BLD)/bin/apt-,$(APT_UTILS)) debian/$@/usr/bin/
        dh_installdocs -p$@
        
        # Install the man pages..
        mkdir -p debian/$@/usr/share/man/man1
-       cp doc/apt-sortpkgs.1 doc/apt-ftparchive.1 debian/$@/usr/share/man/man1/
+       -cp doc/apt-sortpkgs.1 doc/apt-ftparchive.1 debian/$@/usr/share/man/man1/
        
        dh_installchangelogs -p$@
        dh_strip -p$@
@@ -239,7 +244,7 @@ apt-utils: build debian/shlibs.local
        dh_installdeb -p$@
        LD_LIBRARY_PATH=`pwd`/debian/tmp/usr/lib:`pwd`/debian/$@/usr/lib dh_shlibdeps -p$@ -- -Ldebian/shlibs.local.apt-utils
        dh_gencontrol -p$@ -u -Vlibapt-inst:major=$(LIBAPTINST_MAJOR)
-       dh_makeshlibs -m$(LIBAPTINST_MAJOR) -V 'libapt-inst$(LIBAPTINST_MAJOR)' -p$@
+       dh_makeshlibs -m$(LIBAPTINST_MAJOR) -V '$(LIBAPTINST_PROVIDE)' -p$@
        dh_md5sums -p$@
        dh_builddeb -p$@
 
index d2474c4..2079e51 100644 (file)
@@ -41,7 +41,7 @@
    package version template-file config-script
    <para>
    template-file and config-script are written to the temporary directory
-   specified by the -t or --tempdir (<literal/ExtractTemplates::TempDir/>) 
+   specified by the -t or --tempdir (<literal/APT::ExtractTemplates::TempDir/>) 
    directory, with filenames of the form <filename>template.XXXX</> and 
    <filename>config.XXXX</>
  </RefSect1>
@@ -54,7 +54,7 @@
      <ListItem><Para>
      Temporary directory in which to write extracted debconf template files
      and config scripts
-     Configuration Item: <literal/ExtractTemplates::TempDir/.
+     Configuration Item: <literal/APT::ExtractTemplates::TempDir/.
      </VarListEntry>
 
      &apt-commonoptions;