summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-inst/makefile1
-rw-r--r--apt-pkg/makefile1
-rw-r--r--buildlib/environment.mak.in2
-rw-r--r--buildlib/library.mak18
-rw-r--r--buildlib/tools.m445
-rw-r--r--configure.in2
-rw-r--r--debian/control6
-rwxr-xr-xdebian/rules43
-rw-r--r--doc/apt-extracttemplates.1.sgml4
9 files changed, 89 insertions, 33 deletions
diff --git a/apt-inst/makefile b/apt-inst/makefile
index 4a0981f2b..23cdd375b 100644
--- a/apt-inst/makefile
+++ b/apt-inst/makefile
@@ -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)
diff --git a/apt-pkg/makefile b/apt-pkg/makefile
index cb66c363e..979a99bb6 100644
--- a/apt-pkg/makefile
+++ b/apt-pkg/makefile
@@ -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)
diff --git a/buildlib/environment.mak.in b/buildlib/environment.mak.in
index 76d6cda32..9ec0f4b41 100644
--- a/buildlib/environment.mak.in
+++ b/buildlib/environment.mak.in
@@ -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
diff --git a/buildlib/library.mak b/buildlib/library.mak
index 229479fa2..fb944cfbc 100644
--- a/buildlib/library.mak
+++ b/buildlib/library.mak
@@ -15,17 +15,17 @@
# 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 \
diff --git a/buildlib/tools.m4 b/buildlib/tools.m4
index d47d79e7e..281a4ec1d 100644
--- a/buildlib/tools.m4
+++ b/buildlib/tools.m4
@@ -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)
+])
diff --git a/configure.in b/configure.in
index 0dc5083a0..60bea1569 100644
--- a/configure.in
+++ b/configure.in
@@ -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)
diff --git a/debian/control b/debian/control
index a748228b2..40bee6b1a 100644
--- a/debian/control
+++ b/debian/control
@@ -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.
diff --git a/debian/rules b/debian/rules
index 6e7b5f0e5..2beeb35c8 100755
--- a/debian/rules
+++ b/debian/rules
@@ -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$@
diff --git a/doc/apt-extracttemplates.1.sgml b/doc/apt-extracttemplates.1.sgml
index d2474c49a..2079e5189 100644
--- a/doc/apt-extracttemplates.1.sgml
+++ b/doc/apt-extracttemplates.1.sgml
@@ -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;