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

Attachment: signature.asc
Description: Digital signature

Reply via email to