[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: freeze exception qpdf versioned symbols?



Hi,

Jay Berkenbilt wrote:

> Okay, I've attached two files here.  The first is a copy of
> version-symbols.patch with the real changes, so this excludes the
> changes to the regenerated configure file.  The second file is a source
> debdiff.

I am not on the release team, so please take anything I say with a
grain of salt.

[...]
> --- qpdf-2.3.1/debian/changelog	2012-05-19 09:21:52.000000000 -0400
> +++ qpdf-2.3.1/debian/changelog	2012-07-18 10:20:10.000000000 -0400
> @@ -1,3 +1,9 @@
> +qpdf (2.3.1-5) unstable; urgency=low
> +
> +  * Enable versioned symbols.

Are the symbol versions used shared with upstream, or is this a
Debian-specific thing?

*checks*

Looks like these are Debian-private but the patch is based on 92c94e7d
(Add symbol versioning, 2012-06-20).  Ok.

[...]
> --- qpdf-2.3.1/debian/libqpdf3.shlibs	2012-04-22 10:25:08.000000000 -0400
> +++ qpdf-2.3.1/debian/libqpdf3.shlibs	2012-07-18 10:20:43.000000000 -0400
> @@ -1 +1 @@
> -libqpdf 3 libqpdf3 (>= 2.3.0)
> +libqpdf 3 libqpdf3 (>> 2.3.1-5~)

Makes sense, and this doesn't change the squeeze->wheezy upgrade path
because libqdf3/squeeze is already << 2.3.0..

[...]
> --- qpdf-2.3.1/debian/patches/versioned-symbols.patch	1969-12-31 19:00:00.000000000 -0500
> +++ qpdf-2.3.1/debian/patches/versioned-symbols.patch	2012-07-18 10:08:30.000000000 -0400
> @@ -0,0 +1,1044 @@
[...]
> ++# Check if LD supports linker scripts, and define conditional
> ++# HAVE_LD_VERSION_SCRIPT if so.  This functionality is currently
> ++# constrained to compilers using GNU ld on ELF systems or systems
> ++# which provide an adequate emulation thereof.
> ++AC_ARG_ENABLE([ld-version-script],
> ++  AS_HELP_STRING([--enable-ld-version-script],
> ++    [enable linker version script (default is disabled)]),

Is the default really --disable?

> ++    [have_ld_version_script=$enableval], [have_ld_version_script=yes])
> ++if test "$have_ld_version_script" != no; then
> ++  AC_MSG_CHECKING([if LD -Wl,--version-script works])
> ++  save_LDFLAGS="$LDFLAGS"
> ++  LDFLAGS="$LDFLAGS -Wl,--version-script=conftest.map"
> ++  cat > conftest.map <<EOF
> ++VERS_1 {
> ++        global: sym;
[...]
> +--- /dev/null	1970-01-01 00:00:00.000000000 +0000
> ++++ qpdf-2.3.1/libqpdf.map	2012-07-18 10:08:07.677346374 -0400
> +@@ -0,0 +1,4 @@
> ++LIBQPDF_3 {
> ++  global:
> ++    *;
> ++};

It would be more comforting to have a list of symbols intended for
export here, so unintentional ABI changes could be caught more easily.
Do I understand that that would be hard to make because this is a C++
library?

[...]
> +--- qpdf-2.3.1.orig/configure	2011-12-28 17:20:43.000000000 -0500
> ++++ qpdf-2.3.1/configure	2012-07-18 10:08:25.257346605 -0400
> +@@ -1,11 +1,9 @@
> + #! /bin/sh
> + # Guess values for system-dependent variables and create Makefiles.
> +-# Generated by GNU Autoconf 2.68 for qpdf 2.3.1.
> ++# Generated by GNU Autoconf 2.69 for qpdf 2.3.1.

Annoying, but I guess switching to running autotools on autobuilders
can wait for wheezy+1.

To sum up: except for the help string for "./configure
--enable-ld-version-script", the patch looks correct and unrisky.  It
would be nice if the changelog were more explicit about the shlibs
bump and the relationship between this and the ABI used elsewhere
(upstream and other distros).

Thanks and hope that helps,
Jonathan


Reply to: