From: Arch Librarian Date: Mon, 20 Sep 2004 16:56:50 +0000 (+0000) Subject: glibc/libstdc++ dependency patches X-Git-Tag: 0.7.21~316^2~783 X-Git-Url: http://git.hcoop.net/ntk/apt.git/commitdiff_plain/a5b7cd8279132bc1ced7cc0845619aef8a831971 glibc/libstdc++ dependency patches Author: tausq Date: 2001-02-27 04:16:05 GMT glibc/libstdc++ dependency patches --- diff --git a/apt-inst/makefile b/apt-inst/makefile index 4a0981f2..23cdd375 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 cb66c363..979a99bb 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 76d6cda3..9ec0f4b4 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 229479fa..fb944cfb 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 $( /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 d47d79e7..281a4ec1 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 +#include +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 +#include +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 0dc5083a..60bea156 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 a748228b..40bee6b1 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 6e7b5f0e..2beeb35c 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 d2474c49..2079e518 100644 --- a/doc/apt-extracttemplates.1.sgml +++ b/doc/apt-extracttemplates.1.sgml @@ -41,7 +41,7 @@ package version template-file config-script template-file and config-script are written to the temporary directory - specified by the -t or --tempdir () + specified by the -t or --tempdir () directory, with filenames of the form template.XXXX and config.XXXX @@ -54,7 +54,7 @@ Temporary directory in which to write extracted debconf template files and config scripts - Configuration Item: &apt-commonoptions;