tags 331634 patch tags 339253 patch thanks Ok, folks, 3 RC bugs (4, counting the unfiled alpha build failure which apparently the maintainers know about) is getting a bit ridiculous. I'm preparing an NMU to fix these bugs, get the package rebuild against libssl0.9.8, etc.
The full patch is attached; I'm also including the changelog inline here, and have cc:ed Matthias since he seems to be doing work on this over in Ubuntuland and will surely want to be in the loop regarding any library package name changes. pwlib (1.8.7-1.1) unstable; urgency=high * Non-maintainer upload. * High-urgency upload for multiple RC bugfixes. * Fix casts to match current OpenSSL prototypes (closes: #335490). * Use -O2 instead of -Os when building, as recommended by policy; this fixes a build-time failure on alpha when running any code linked against libpt. * Drop the libpt.so.1.8.3 and libpt.so.1.8.4 symlinks; the native soname is now libpt.so.1.8.7, so since we're no longer compatible with older reverse-dependencies anyway due to the ABI change, these serve no purpose. Here's hoping someone clues upstream in on handling of SONAMEs before the next release. * Rename libpt-1.8.3c2 to libpt-1.8.7 for the C++ mt allocator ABI transition, and conflict/replace libpt-1.8.3c2 accordingly (closes: #339253). Thanks to the change above, this only requires conflict/replacing libpt-1.8.3c2 (>= 1.8.7-1). * Get rid of the useless /usr/lib/libpt.so.1 link: this serves no purpose when the package soname is libpt.so.1.8.7, because *nothing* will ever use it, so the easiest way to avoid conflicts is to not ship it anywhere! (closes: #331634) -- Steve Langasek <[EMAIL PROTECTED]> Wed, 30 Nov 2005 23:58:58 -0800 The main difference here, compared with Matthias's patch, is that the new library name is libpt-1.8.7 instead of libpt-1.8.3c2a. Since the package is no longer ABI-compatible with the old libpt-1.8.3 due to the C++ ABI changes, there's no reason to continue fighting against the upstream changes to retain compatibility, so a clean break is best. Kilian, you also mentioned that upstream may have a fix in CVS for the failures on alpha. I'd be interested to know what that fix is; what I found is that the package builds fine if using -O2, and fails when using -Os (the upstream default). So given that the rationale in the changelog for using -Os is very light ("smaller binaries" is not necessarily a good general optimization choice), and policy does recommend -O2, I've opted in this diff to turn -O2 on for all architectures. If there's a better fix, feel free to apply it instead. Ideally, though, we would be able to offer the toolchain folks a minimal test case for this miscompile. Anyway, I'm going to let this sit for a couple of days before uploading to give the maintainers a chance to comment/object, since it does make a sizeable number of changes. The packages are actually still building here, so I'll need to see how they come out and poke at their contents a bit before I can even be sure this patch does the right thing, but I wanted to give folks a heads-up on this so we can get these problems resolved as quickly as possible. If no one objects or otherwise beats me to the upload, I'll plan to upload my NMU late Friday or Saturday. Also, in the process of trying to debug the alpha failure, I found a couple of miscellaneous warnings that might as well get fixed. The changes for these are attached as a second patch, and are not included in my NMU. Feel free to forward those bits upstream as well, and please let me know if you would prefer that I open a separate bug report about those changes. Thanks, -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. [EMAIL PROTECTED] http://www.debian.org/
diff -u pwlib-1.8.7/debian/control pwlib-1.8.7/debian/control --- pwlib-1.8.7/debian/control +++ pwlib-1.8.7/debian/control @@ -5,15 +5,15 @@ Uploaders: Kilian Krause <[EMAIL PROTECTED]>, Jose Carlos Garcia Sogo <[EMAIL PROTECTED]>, Mark Purcell <[EMAIL PROTECTED]>, Santiago Garcia Mantinan <[EMAIL PROTECTED]> Build-Depends: debhelper (>=4.9.0), bison, flex, libssl-dev, libldap2-dev, libsdl1.2-dev, libexpat1-dev, g++ (>=2.95), autotools-dev, dpatch (>=1.11), libasound2-dev, libavc1394-dev, libraw1394-dev, libdv-dev, libdc1394-13-dev, libsasl2-dev, libkrb5-dev, doxygen, linux-kernel-headers, binutils (>= 2.14.90.0.7) Build-Depends-Indep: doxygen -Build-Conflicts: libpt-1.8.3, libpt-1.8.3c2, libpt-dev +Build-Conflicts: libpt-1.8.3, libpt-1.8.3c2, libpt-1.8.7, libpt-dev Standards-Version: 3.6.2 -Package: libpt-1.8.3c2 +Package: libpt-1.8.7 Section: libs Architecture: any Depends: ${shlibs:Depends} -Replaces: libpt-1.8.3 -Conflicts: libpt-1.8.3 +Replaces: libpt-1.8.3c2 (>= 1.8.7-1) +Conflicts: libpt-1.8.3c2 (>= 1.8.7-1) Description: Portable Windows Library This package contains the shared version of the library PWLib, which is a moderately large class library that has its genesis many years ago as @@ -26,7 +26,7 @@ Package: libpt-dev Section: libdevel Architecture: any -Depends: libpt-1.8.3c2 (= ${Source-Version}), libc6-dev, libssl-dev, libldap2-dev, libsdl1.2-dev, libexpat1-dev, libsasl2-dev +Depends: libpt-1.8.7 (= ${Source-Version}), libc6-dev, libssl-dev, libldap2-dev, libsdl1.2-dev, libexpat1-dev, libsasl2-dev Description: Portable Windows Library development files This package contains the headers and a static version of the library PWLib, which is a moderately large class library that has its genesis @@ -40,7 +40,7 @@ Section: libdevel Priority: extra Architecture: any -Depends: libpt-1.8.3c2 (= ${Source-Version}) +Depends: libpt-1.8.7 (= ${Source-Version}) Description: Portable Windows Library development debug files This package contains the shared and static debug version of the library PWLib, which is a moderately large class library that has its genesis @@ -66,7 +66,7 @@ Package: libpt-plugins-v4l Section: libs Architecture: any -Depends: ${shlibs:Depends}, libpt-1.8.3c2 (= ${Source-Version}) +Depends: ${shlibs:Depends}, libpt-1.8.7 (= ${Source-Version}) Description: Portable Windows Library Video Plugin for Video4Linux This package contains the PWLib plugin for usage with Video4Linux devices. Install this package, if you want to use a video device @@ -75,7 +75,7 @@ Package: libpt-plugins-v4l2 Section: libs Architecture: any -Depends: ${shlibs:Depends}, libpt-1.8.3c2 (= ${Source-Version}) +Depends: ${shlibs:Depends}, libpt-1.8.7 (= ${Source-Version}) Description: Portable Windows Library Video Plugin for Video4Linux v2 This package contains the PWLib plugin for usage with Video4Linux v2 devices. Install this package, if you want to use a video device @@ -84,7 +84,7 @@ Package: libpt-plugins-avc Architecture: any -Depends: ${shlibs:Depends}, libpt-1.8.3c2 (= ${Source-Version}) +Depends: ${shlibs:Depends}, libpt-1.8.7 (= ${Source-Version}) Description: PWLib Video Plugin for IEEE1394 (FireWire) AVC devices This package contains the PWLib plugin for usage with AVC devices on FireWire. Install this package, if you want to use such a video @@ -92,7 +92,7 @@ Package: libpt-plugins-dc Architecture: any -Depends: ${shlibs:Depends}, libpt-1.8.3c2 (= ${Source-Version}) +Depends: ${shlibs:Depends}, libpt-1.8.7 (= ${Source-Version}) Description: PWLib Video Plugin for IEEE1394 (Firewire) DC Devices This package contains the PWLib plugin for usage with DC Devices on Firewire. Install this package, if you want to use such a video @@ -100,7 +100,7 @@ Package: libpt-plugins-oss Architecture: any -Depends: ${shlibs:Depends}, libpt-1.8.3c2 (= ${Source-Version}) +Depends: ${shlibs:Depends}, libpt-1.8.7 (= ${Source-Version}) Description: Portable Windows Library Audio Plugins for the OSS Interface This package contains the PWLib plugin for usage with the Open Sound System interface. Install this package, if you are utilising this @@ -108,7 +108,7 @@ Package: libpt-plugins-alsa Architecture: any -Depends: ${shlibs:Depends}, libpt-1.8.3c2 (= ${Source-Version}) +Depends: ${shlibs:Depends}, libpt-1.8.7 (= ${Source-Version}) Recommends: alsa-base Description: Portable Windows Library Audio Plugin for the ALSA Interface This package contains the PWLib plugin for usage with the Advanced diff -u pwlib-1.8.7/debian/changelog pwlib-1.8.7/debian/changelog --- pwlib-1.8.7/debian/changelog +++ pwlib-1.8.7/debian/changelog @@ -1,3 +1,26 @@ +pwlib (1.8.7-1.1) unstable; urgency=high + + * Non-maintainer upload. + * High-urgency upload for multiple RC bugfixes. + * Fix casts to match current OpenSSL prototypes (closes: #335490). + * Use -O2 instead of -Os when building, as recommended by policy; this + fixes a build-time failure on alpha when running the testsuite. + * Drop the libpt.so.1.8.3 and libpt.so.1.8.4 symlinks; the native soname + is now libpt.so.1.8.7, so since we're no longer compatible with older + reverse-dependencies anyway due to the ABI change, these serve no + purpose. Here's hoping someone clues upstream in on handling of SONAMEs + before the next release. + * Rename libpt-1.8.3c2 to libpt-1.8.7 for the C++ mt allocator ABI + transition, and conflict/replace libpt-1.8.3c2 accordingly + (closes: #339253). Thanks to the change above, this only requires + conflict/replacing libpt-1.8.3c2 (>= 1.8.7-1). + * Get rid of the useless /usr/lib/libpt.so.1 link: this serves no purpose + when the package soname is libpt.so.1.8.7, because *nothing* will ever + use it, so the easiest way to avoid conflicts is to not ship it + anywhere! (closes: #331634) + + -- Steve Langasek <[EMAIL PROTECTED]> Wed, 30 Nov 2005 23:58:58 -0800 + pwlib (1.8.7-1) unstable; urgency=low * Mimas_patch2 is 1.8.7. And shlibdeps imposes this as version. diff -u pwlib-1.8.7/debian/rules pwlib-1.8.7/debian/rules --- pwlib-1.8.7/debian/rules +++ pwlib-1.8.7/debian/rules @@ -2,11 +2,17 @@ export DH_COMPAT=5 +# technically, the upstream ABI is compatible all the way back to +# 1.8.3; but because of the C++ ABI change, there is no reason at all to +# provide these kludgy symlinks -- and avoiding them makes us +# coinstallable with the sarge version of the lib, which is a nice +# bonus. -srl 2005-12-01 # Change this on API breakage -export LIBPTCOMPAT=1.8.3 -export LIBPTCOMPAT2=1.8.4 +#export LIBPTCOMPAT=1.8.3 +#export LIBPTCOMPAT2=1.8.4 +export LIBPTCOMPAT=1.8.7 -PACKAGE=libpt-$(LIBPTCOMPAT)c2 +PACKAGE=libpt-$(LIBPTCOMPAT) VER_MAJOR := $(shell awk '/MAJOR_VERSION/ { print $$3 }' version.h) @@ -15,10 +21,12 @@ SHLIBSVER := $(VER_MAJOR).$(VER_MINOR).$(VER_SUB) -CFLAGS = -g +CFLAGS = -g -Wall ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 +else + CFLAGS += -O2 endif export CFLAGS @@ -86,8 +94,8 @@ clean-patched: $(checkdir) -rm -f build-arch-stamp build-indep-stamp patch-stamp - if [ -f Makefile ];then \ - -$(MAKE) PWLIBDIR=$(PWD) clean;\ + -if [ -f Makefile ];then \ + $(MAKE) PWLIBDIR=$(PWD) clean;\ fi -rm -f include/ptbuildopts.h -rm -f Makefile config.log config.status autotools @@ -124,13 +132,9 @@ ln -s libpt.so.$(SHLIBSVER) \ debian/$(PACKAGE)/usr/lib/libpt.so.$(LIBPTCOMPAT) endif -ifneq ($(SHLIBSVER),$(LIBPTCOMPAT2)) - ln -s libpt.so.$(SHLIBSVER) \ - debian/$(PACKAGE)/usr/lib/libpt.so.$(LIBPTCOMPAT2) -endif # libpt-dev - dh_movefiles -plibpt-dev --sourcedir=debian/$(PACKAGE) `cd debian/$(PACKAGE); ls -1 usr/lib/*.so*|grep -v -E lib.*\.[0-9]\+\.[0-9]\+\.[0-9]\+` + dh_movefiles -plibpt-dev --sourcedir=debian/$(PACKAGE) usr/lib/libpt.so cp -vr include/pt* debian/libpt-dev/usr/include cp -vr make `pwd`/debian/libpt-dev/usr/share/pwlib only in patch2: unchanged: --- pwlib-1.8.7.orig/src/ptclib/pssl.cxx +++ pwlib-1.8.7/src/ptclib/pssl.cxx @@ -297,14 +297,14 @@ PSSLPrivateKey::PSSLPrivateKey(const BYTE * keyData, PINDEX keySize) { - key = d2i_AutoPrivateKey(NULL, (BYTE **)&keyData, keySize); + key = d2i_AutoPrivateKey(NULL, &keyData, keySize); } PSSLPrivateKey::PSSLPrivateKey(const PBYTEArray & keyData) { const BYTE * keyPtr = keyData; - key = d2i_AutoPrivateKey(NULL, (BYTE **)&keyPtr, keyData.GetSize()); + key = d2i_AutoPrivateKey(NULL, &keyPtr, keyData.GetSize()); } @@ -472,14 +472,14 @@ PSSLCertificate::PSSLCertificate(const BYTE * certData, PINDEX certSize) { - certificate = d2i_X509(NULL, (unsigned char **)&certData, certSize); + certificate = d2i_X509(NULL, &certData, certSize); } PSSLCertificate::PSSLCertificate(const PBYTEArray & certData) { const BYTE * certPtr = certData; - certificate = d2i_X509(NULL, (unsigned char **)&certPtr, certData.GetSize()); + certificate = d2i_X509(NULL, &certPtr, certData.GetSize()); } @@ -489,7 +489,7 @@ PBase64::Decode(certStr, certData); if (certData.GetSize() > 0) { const BYTE * certPtr = certData; - certificate = d2i_X509(NULL, (unsigned char **)&certPtr, certData.GetSize()); + certificate = d2i_X509(NULL, &certPtr, certData.GetSize()); } else certificate = NULL; only in patch2: unchanged: --- pwlib-1.8.7.orig/plugins/vidinput_dc/Makefile +++ pwlib-1.8.7/plugins/vidinput_dc/Makefile @@ -0,0 +1,12 @@ +ifndef PWLIBDIR +PWLIBDIR = $(HOME)/pwlib +endif + +PLUGIN_NAME = dc +PLUGIN_FAMILY = device/videoinput +PLUGIN_LIBS = -lraw1394 -ldv -ldc1394_control +PLUGIN_SOURCES = video4dc1394.cxx + +CFLAGS = + +include ../../make/plugins.mak
only in patch2: unchanged: --- pwlib-1.8.7.orig/src/ptclib/pdns.cxx +++ pwlib-1.8.7/src/ptclib/pdns.cxx @@ -265,7 +265,7 @@ BYTE * cp = reply.buf + sizeof(HEADER); // ignore questions in response - unsigned i; + uint16_t i; for (i = 0; i < ntohs(reply.hdr.qdcount); i++) { char qName[MAXDNAME]; if (!GetDN(replyStart, replyEnd, cp, qName)) only in patch2: unchanged: --- pwlib-1.8.7.orig/src/ptlib/common/osutils.cxx +++ pwlib-1.8.7/src/ptlib/common/osutils.cxx @@ -1010,9 +1010,9 @@ stderr is used the unitbuf flag causes the out_waiting() not to work so we must suffer with blank lines in that case. */ - ::streambuf & rb = *s.rdbuf(); #if 0 #ifndef P_LINUX + ::streambuf & rb = *s.rdbuf(); if (((s.flags()&ios::unitbuf) != 0) || #ifdef __USE_STL__ rb.pubseekoff(0, ios::cur, ios::out) > 0
signature.asc
Description: Digital signature