Bug#1004992: speex: diff for NMU version 1.2~rc1.2-2

Boyuan Yang byang at debian.org
Thu Feb 24 18:18:26 GMT 2022


Control: tags -1 +patch  +pending

Dear maintainer,

I've prepared an NMU for speex (versioned as 1.2~rc1.2-2) and
uploaded it to DELAYED/7. Please feel free to tell me if I
should delay it longer.

Regards.

diff -Nru speex-1.2~rc1.2/debian/changelog speex-1.2~rc1.2/debian/changelog
--- speex-1.2~rc1.2/debian/changelog	2022-02-24 13:15:44.000000000 -0500
+++ speex-1.2~rc1.2/debian/changelog	2022-02-24 13:03:43.000000000 -0500
@@ -1,3 +1,41 @@
+speex (1.2~rc1.2-2) unstable; urgency=medium
+
+  * debian/control: Take over maint via ITS. (Closes: #1004992, #960501)
+  * debian/upstream/metadata: Added (upstream GitLab repo).
+  * debian/changelog: Cleanup trailing spaces.
+  * debian/compat: Dropped, useless.
+  * debian/:
+    + Bump debhelper compat to v13. (Closes: #965827)
+    + Bump Standards-Version to 4.6.0.
+    + Apply "wrap-and-sort -abst".
+  * debian/control:
+    + Drop manual -dbg package. (Closes: #960498)
+    + Add missing ${misc:Depends} placeholder.
+    + Mark speex-doc as Multi-Arch: foreign.
+    + Let speex suggests speex-doc (Closes: #805897).
+    + debian/control: Drop ancient Conflicts fields.
+  * debian/rules: Simplified using dh.
+    + Do not set custom compile lags. Use default ones since they
+      are now good enough.
+    + Do not build extra sse2 library for i386. This greatly complicates
+      package maintenance with little benefit, and also not really used
+      by the OS.
+    + Only use fixed point + arm4-asm optimization for armel. Do not use
+      fixed point for armhf. (Closes: #736752)
+      Speex 1.2.0 has newer options, but we need to use them after 1.2.0
+      is packaged.
+  * debian/source/format: Use "3.0 (quilt)".
+  * debian/patches: Convert from 1.0-format direct changes.
+    + debian/patches/0001-CVE-2020-23903.patch:
+      Add patch from Ubuntu. (CVE-2020-23903)
+  * debian/libspeex{1,dsp1}.shlibs: Set up file based on d/rules.
+  * debian/speex-doc.manpages: Dropped. section 3 manpage has not been
+    provided for a long time.
+  * debian/speex-doc.doc-base: Correctly reference documentation in
+    usr/share/doc/speex/.
+
+ -- Boyuan Yang <byang at debian.org>  Thu, 24 Feb 2022 13:03:43 -0500
+
 speex (1.2~rc1.2-1.1) unstable; urgency=medium
 
   * Non-maintainer upload.
@@ -375,7 +413,7 @@
 speex (1.0.beta4-1) unstable; urgency=low
 
   * New upstream release
-  * Now with VAD - Voice Activity Detection and 
+  * Now with VAD - Voice Activity Detection and
     DTX - Discontinuous Transmission
 
  -- A. Maitland Bottoms <bottoms at debian.org>  Fri, 20 Dec 2002 17:53:02 -0500
diff -Nru speex-1.2~rc1.2/debian/compat speex-1.2~rc1.2/debian/compat
--- speex-1.2~rc1.2/debian/compat	2022-02-24 13:15:44.000000000 -0500
+++ speex-1.2~rc1.2/debian/compat	1969-12-31 19:00:00.000000000 -0500
@@ -1 +0,0 @@
-5
diff -Nru speex-1.2~rc1.2/debian/control speex-1.2~rc1.2/debian/control
--- speex-1.2~rc1.2/debian/control	2022-02-24 13:15:44.000000000 -0500
+++ speex-1.2~rc1.2/debian/control	2022-02-24 13:03:43.000000000 -0500
@@ -1,40 +1,49 @@
 Source: speex
 Section: sound
 Priority: optional
-Maintainer: Ron Lee <ron at debian.org>
-Build-Depends: debhelper (>= 8.1.3), libogg-dev, dpkg-dev (>= 1.13.19)
-Build-Depends-Indep: doxygen, graphviz
-Standards-Version: 3.9.5.0
+Maintainer: Debian Multimedia Maintainers
<debian-multimedia at lists.debian.org>
+Uploaders:
+ Boyuan Yang <byang at debian.org>,
+Build-Depends:
+ debhelper-compat (= 13),
+ libogg-dev,
+ pkg-config,
+Build-Depends-Indep:
+ doxygen,
+ graphviz,
+Standards-Version: 4.6.0
 Homepage: http://www.speex.org/
-Vcs-Git: https://salsa.debian.org/debian/speex.git
-Vcs-Browser: https://salsa.debian.org/debian/speex
+Vcs-Git: https://salsa.debian.org/ron/speex.git
+Vcs-Browser: https://salsa.debian.org/ron/speex
 
-Package: speex
+Package: libspeex-dev
 Architecture: any
-Multi-Arch: foreign
-Depends: ${shlibs:Depends}
-Description: The Speex codec command line tools
+Multi-Arch: same
+Section: libdevel
+Depends:
+ libspeex1 (= ${binary:Version}),
+ ${misc:Depends},
+Suggests:
+ pkg-config,
+Description: The Speex codec library development files
  Speex is an audio codec especially designed for compressing voice at low
  bit-rates for applications such as voice over IP (VoIP). In some senses,
  it is meant to be complementary to the Vorbis codec which places a greater
  emphasis on high-quality music reproduction.
  .
- This package contains the encoder and decoder command-line applications.
+ This package provides the speex library headers and development files.
 
 Package: libspeex1
 Architecture: any
 Multi-Arch: same
 Section: libs
-Pre-Depends: ${misc:Pre-Depends}
-Depends: ${shlibs:Depends}
-Suggests: speex
-Conflicts: libopal-2.2 (<= 2.2.11~dfsg1-3),
-           libopal-2.2-develop (<= 2.2.11~dfsg1-3),
-           libopal-2.2-ptrace (<= 2.2.11~dfsg1-3),
-           libopal-2.2.0,
-           libiaxclient1 (<= 2.0.2-1),
-           asterisk (<=1:1.4.18.1~dfsg-1),
-           libmediastreamer0 (<= 2.1.0-1)
+Pre-Depends:
+ ${misc:Pre-Depends},
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+Suggests:
+ speex,
 Description: The Speex codec runtime library
  Speex is an audio codec especially designed for compressing voice at low
  bit-rates for applications such as voice over IP (VoIP). In some senses,
@@ -43,26 +52,33 @@
  .
  This package provides the speex runtime library.
 
-Package: libspeex-dev
+Package: libspeexdsp-dev
 Architecture: any
 Multi-Arch: same
 Section: libdevel
-Depends: libspeex1 (= ${binary:Version})
-Suggests: pkg-config
-Description: The Speex codec library development files
+Depends:
+ libspeex-dev (= ${binary:Version}),
+ libspeexdsp1 (= ${binary:Version}),
+ ${misc:Depends},
+Suggests:
+ pkg-config,
+Description: The Speex extended library development files
  Speex is an audio codec especially designed for compressing voice at low
  bit-rates for applications such as voice over IP (VoIP). In some senses,
  it is meant to be complementary to the Vorbis codec which places a greater
  emphasis on high-quality music reproduction.
  .
- This package provides the speex library headers and development files.
+ This package provides the speex extended library headers and development
files.
 
 Package: libspeexdsp1
 Architecture: any
 Multi-Arch: same
 Section: libs
-Pre-Depends: ${misc:Pre-Depends}
-Depends: ${shlibs:Depends}
+Pre-Depends:
+ ${misc:Pre-Depends},
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
 Description: The Speex extended runtime library
  Speex is an audio codec especially designed for compressing voice at low
  bit-rates for applications such as voice over IP (VoIP). In some senses,
@@ -72,24 +88,29 @@
  This package provides the runtime library of additional functions that
  are part of the Speex distribution.
 
-Package: libspeexdsp-dev
+Package: speex
 Architecture: any
-Multi-Arch: same
-Section: libdevel
-Depends: libspeexdsp1 (= ${binary:Version}), libspeex-dev (=
${binary:Version})
-Suggests: pkg-config
-Description: The Speex extended library development files
+Depends:
+ ${misc:Depends},
+ ${shlibs:Depends},
+Suggests:
+ speex-doc,
+Description: The Speex codec command line tools
  Speex is an audio codec especially designed for compressing voice at low
  bit-rates for applications such as voice over IP (VoIP). In some senses,
  it is meant to be complementary to the Vorbis codec which places a greater
  emphasis on high-quality music reproduction.
  .
- This package provides the speex extended library headers and development
files.
+ This package contains the encoder and decoder command-line applications.
 
 Package: speex-doc
 Architecture: all
+Multi-Arch: foreign
 Section: doc
-Suggests: speex
+Depends:
+ ${misc:Depends},
+Suggests:
+ speex,
 Description: Documentation for speex
  Speex is an audio codec especially designed for compressing voice at low
  bit-rates for applications such as voice over IP (VoIP). In some senses,
@@ -97,11 +118,3 @@
  emphasis on high-quality music reproduction.
  .
  This package contains the Speex documentation.
-
-Package: libspeex-dbg
-Section: debug
-Priority: extra
-Architecture: any
-Depends: libspeex1 (= ${binary:Version}), libspeexdsp1 (= ${binary:Version})
-Description: debugging symbols for libspeex and libspeexdsp
- This package provides the detached debug symbols for those libraries.
diff -Nru speex-1.2~rc1.2/debian/libspeex1.install speex-
1.2~rc1.2/debian/libspeex1.install
--- speex-1.2~rc1.2/debian/libspeex1.install	1969-12-31 19:00:00.000000000
-0500
+++ speex-1.2~rc1.2/debian/libspeex1.install	2022-02-24 12:44:50.000000000
-0500
@@ -0,0 +1,2 @@
+usr/lib/*/libspeex.so.1
+usr/lib/*/libspeex.so.1.*
diff -Nru speex-1.2~rc1.2/debian/libspeex1.shlibs speex-
1.2~rc1.2/debian/libspeex1.shlibs
--- speex-1.2~rc1.2/debian/libspeex1.shlibs	1969-12-31 19:00:00.000000000
-0500
+++ speex-1.2~rc1.2/debian/libspeex1.shlibs	2022-02-24 12:35:00.000000000
-0500
@@ -0,0 +1 @@
+libspeex 1 libspeex1 (>= 1.2~beta3-1)
diff -Nru speex-1.2~rc1.2/debian/libspeex-dev.install speex-
1.2~rc1.2/debian/libspeex-dev.install
--- speex-1.2~rc1.2/debian/libspeex-dev.install	2022-02-24 13:15:44.000000000
-0500
+++ speex-1.2~rc1.2/debian/libspeex-dev.install	2022-02-24 12:46:45.000000000
-0500
@@ -8,3 +8,4 @@
 usr/lib/*/libspeex.a
 usr/lib/*/libspeex.so
 usr/lib/*/pkgconfig/speex.pc
+usr/share/aclocal/speex.m4
diff -Nru speex-1.2~rc1.2/debian/libspeexdsp1.install speex-
1.2~rc1.2/debian/libspeexdsp1.install
--- speex-1.2~rc1.2/debian/libspeexdsp1.install	1969-12-31 19:00:00.000000000
-0500
+++ speex-1.2~rc1.2/debian/libspeexdsp1.install	2022-02-24 12:45:07.000000000
-0500
@@ -0,0 +1,2 @@
+usr/lib/*/libspeexdsp.so.1
+usr/lib/*/libspeexdsp.so.1.*
diff -Nru speex-1.2~rc1.2/debian/libspeexdsp1.shlibs speex-
1.2~rc1.2/debian/libspeexdsp1.shlibs
--- speex-1.2~rc1.2/debian/libspeexdsp1.shlibs	1969-12-31 19:00:00.000000000
-0500
+++ speex-1.2~rc1.2/debian/libspeexdsp1.shlibs	2022-02-24 12:35:19.000000000
-0500
@@ -0,0 +1 @@
+libspeexdsp 1 libspeexdsp1 (>= 1.2~beta3.2-1)
diff -Nru speex-1.2~rc1.2/debian/not-installed speex-1.2~rc1.2/debian/not-
installed
--- speex-1.2~rc1.2/debian/not-installed	1969-12-31 19:00:00.000000000
-0500
+++ speex-1.2~rc1.2/debian/not-installed	2022-02-24 12:47:46.000000000
-0500
@@ -0,0 +1,4 @@
+# libtool .la file
+usr/lib/*/*.la
+# installed by speex-doc
+usr/share/doc/speex/manual.pdf
diff -Nru speex-1.2~rc1.2/debian/patches/0001-CVE-2020-23903.patch speex-
1.2~rc1.2/debian/patches/0001-CVE-2020-23903.patch
--- speex-1.2~rc1.2/debian/patches/0001-CVE-2020-23903.patch	1969-12-31
19:00:00.000000000 -0500
+++ speex-1.2~rc1.2/debian/patches/0001-CVE-2020-23903.patch	2022-02-24
12:26:50.000000000 -0500
@@ -0,0 +1,29 @@
+From: Leonidas Da Silva Barbosa <leo.barbosa at canonical.com>
+Date: Wed, 23 Feb 2022 10:33:17 -0300
+Subject: CVE-2020-23903
+
+Taken from speex/1.2~rc1.2-1.1ubuntu3:
+
+ * SECURITY UPDATE: Divide by Zero
+   - debian/patches/CVE-2020-23903.patch: guard against
+     invalid channel numbers in src/wav_io.c.
+
+Applied-Upstream:
https://gitlab.xiph.org/xiph/speex/-/commit/870ff845b32f314aec0036641ffe18aba4916887
+Forwarded: https://gitlab.xiph.org/xiph/speex/-/merge_requests/1
+---
+ src/wav_io.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/wav_io.c b/src/wav_io.c
+index 02931b1..a2d0c11 100644
+--- a/src/wav_io.c
++++ b/src/wav_io.c
+@@ -109,7 +109,7 @@ int read_wav_header(FILE *file, int *rate, int *channels,
int *format, spx_int32
+    stmp = le_short(stmp);
+    *channels = stmp;
+    
+-   if (stmp>2)
++   if (stmp>2 || stmp<1)
+    {
+       fprintf (stderr, "Only mono and (intensity) stereo supported\n");
+       return -1;
diff -Nru speex-1.2~rc1.2/debian/patches/0002-debian-changes.patch speex-
1.2~rc1.2/debian/patches/0002-debian-changes.patch
--- speex-1.2~rc1.2/debian/patches/0002-debian-changes.patch	1969-12-31
19:00:00.000000000 -0500
+++ speex-1.2~rc1.2/debian/patches/0002-debian-changes.patch	2022-02-24
12:26:42.000000000 -0500
@@ -0,0 +1,140 @@
+From: Boyuan Yang <byang at debian.org>
+Date: Thu, 24 Feb 2022 11:51:30 -0500
+Subject: debian-changes
+
+Changes from 1.2~rc1-4:
+
+[ Ron Lee ] (libspeex/speex_header.c)
+  * Check the size of the header packet before we look inside it in
+    speex_packet_to_header().  Which wasn't detected by the magic flags,
+    but was spotted in an old-fashioned by-eye code review while sanity
+    checking the new OggOpus spec.
+
+Changes from 1.2~rc1-7:
+
+[ Ron Lee ] (libspeex/resample.c)
+  * Minimal set of resampler RC fixes targeted for Wheezy.
+  * Fixes a bug with selecting the resampler with the smallest memory
footprint
+    for some sample rate pairs.
+  * Fixes a bug where the filter length may not have been a multiple of 8 for
+    some sample rate pairs, as is needed for the SSE implementation to avoid
+    the SSE operations reading past the end of the buffer.
+  * Fixes a type mismatch in computing allocation sizes.  This should not be
a
+    problem on any currently existing Debian arch, but it was obviously
wrong,
+    and the fix is trivial and obviously right, so there's no point waiting
for
+    someone to hit it before we correct this.
+  * Fixes the problem seen with some sample rate pairs if an integer number
of
+    samples are not processed every frame, leading to clicking or truncation.
+    Closes: #689049
+---
+ libspeex/resample.c     | 24 ++++++++++++++----------
+ libspeex/speex_header.c | 17 +++++++++--------
+ 2 files changed, 23 insertions(+), 18 deletions(-)
+
+diff --git a/libspeex/resample.c b/libspeex/resample.c
+index bebd1a8..0a0296b 100644
+--- a/libspeex/resample.c
++++ b/libspeex/resample.c
+@@ -561,8 +561,8 @@ static void update_filter(SpeexResamplerState *st)
+       st->cutoff = quality_map[st->quality].downsample_bandwidth * st-
>den_rate / st->num_rate;
+       /* FIXME: divide the numerator and denominator by a certain amount if
they're too large */
+       st->filt_len = st->filt_len*st->num_rate / st->den_rate;
+-      /* Round down to make sure we have a multiple of 4 */
+-      st->filt_len &= (~0x3);
++      /* Round up to make sure we have a multiple of 8 for SSE */
++      st->filt_len = ((st->filt_len-1)&(~0x7))+8;
+       if (2*st->den_rate < st->num_rate)
+          st->oversample >>= 1;
+       if (4*st->den_rate < st->num_rate)
+@@ -579,7 +579,7 @@ static void update_filter(SpeexResamplerState *st)
+    }
+    
+    /* Choose the resampling type that requires the least amount of memory */
+-   if (st->den_rate <= st->oversample)
++   if (st->filt_len*st->den_rate <= st->filt_len*st->oversample+8)
+    {
+       spx_uint32_t i;
+       if (!st->sinc_table)
+@@ -756,9 +756,9 @@ EXPORT SpeexResamplerState
*speex_resampler_init_frac(spx_uint32_t nb_channels,
+ #endif
+    
+    /* Per channel data */
+-   st->last_sample = (spx_int32_t*)speex_alloc(nb_channels*sizeof(int));
+-   st->magic_samples = (spx_uint32_t*)speex_alloc(nb_channels*sizeof(int));
+-   st->samp_frac_num = (spx_uint32_t*)speex_alloc(nb_channels*sizeof(int));
++   st->last_sample =
(spx_int32_t*)speex_alloc(nb_channels*sizeof(spx_int32_t));
++   st->magic_samples =
(spx_uint32_t*)speex_alloc(nb_channels*sizeof(spx_uint32_t));
++   st->samp_frac_num =
(spx_uint32_t*)speex_alloc(nb_channels*sizeof(spx_uint32_t));
+    for (i=0;i<nb_channels;i++)
+    {
+       st->last_sample[i] = 0;
+@@ -954,13 +954,15 @@ EXPORT int
speex_resampler_process_interleaved_float(SpeexResamplerState *st, co
+ {
+    spx_uint32_t i;
+    int istride_save, ostride_save;
+-   spx_uint32_t bak_len = *out_len;
++   spx_uint32_t bak_out_len = *out_len;
++   spx_uint32_t bak_in_len = *in_len;
+    istride_save = st->in_stride;
+    ostride_save = st->out_stride;
+    st->in_stride = st->out_stride = st->nb_channels;
+    for (i=0;i<st->nb_channels;i++)
+    {
+-      *out_len = bak_len;
++      *out_len = bak_out_len;
++      *in_len = bak_in_len;
+       if (in != NULL)
+          speex_resampler_process_float(st, i, in+i, in_len, out+i, out_len);
+       else
+@@ -975,13 +977,15 @@ EXPORT int
speex_resampler_process_interleaved_int(SpeexResamplerState *st, cons
+ {
+    spx_uint32_t i;
+    int istride_save, ostride_save;
+-   spx_uint32_t bak_len = *out_len;
++   spx_uint32_t bak_out_len = *out_len;
++   spx_uint32_t bak_in_len = *in_len;
+    istride_save = st->in_stride;
+    ostride_save = st->out_stride;
+    st->in_stride = st->out_stride = st->nb_channels;
+    for (i=0;i<st->nb_channels;i++)
+    {
+-      *out_len = bak_len;
++      *out_len = bak_out_len;
++      *in_len = bak_in_len;
+       if (in != NULL)
+          speex_resampler_process_int(st, i, in+i, in_len, out+i, out_len);
+       else
+diff --git a/libspeex/speex_header.c b/libspeex/speex_header.c
+index b743059..92cc0d4 100644
+--- a/libspeex/speex_header.c
++++ b/libspeex/speex_header.c
+@@ -147,20 +147,21 @@ EXPORT SpeexHeader *speex_packet_to_header(char
*packet, int size)
+    int i;
+    SpeexHeader *le_header;
+    const char *h = "Speex   ";
+-   for (i=0;i<8;i++)
+-      if (packet[i]!=h[i])
+-      {
+-         speex_notify("This doesn't look like a Speex file");
+-         return NULL;
+-      }
+-   
++
+    /*FIXME: Do we allow larger headers?*/
+    if (size < (int)sizeof(SpeexHeader))
+    {
+       speex_notify("Speex header too small");
+       return NULL;
+    }
+-   
++
++   for (i=0;i<8;i++)
++      if (packet[i]!=h[i])
++      {
++         speex_notify("This doesn't look like a Speex file");
++         return NULL;
++      }
++
+    le_header = (SpeexHeader*)speex_alloc(sizeof(SpeexHeader));
+    
+    SPEEX_COPY(le_header, (SpeexHeader*)packet, 1);
diff -Nru speex-1.2~rc1.2/debian/patches/series speex-
1.2~rc1.2/debian/patches/series
--- speex-1.2~rc1.2/debian/patches/series	1969-12-31 19:00:00.000000000
-0500
+++ speex-1.2~rc1.2/debian/patches/series	2022-02-24 12:26:42.000000000
-0500
@@ -0,0 +1,2 @@
+0001-CVE-2020-23903.patch
+0002-debian-changes.patch
diff -Nru speex-1.2~rc1.2/debian/rules speex-1.2~rc1.2/debian/rules
--- speex-1.2~rc1.2/debian/rules	2022-02-24 13:15:44.000000000 -0500
+++ speex-1.2~rc1.2/debian/rules	2022-02-24 12:53:09.000000000 -0500
@@ -1,181 +1,45 @@
 #!/usr/bin/make -f
-# Copyright Ron Lee 2003, 2004, 2007, 2008, 2012
+# -*- makefile -*-
+# Uncomment this to turn on verbose mode.
+# export DH_VERBOSE=1
+
+# see FEATURE AREAS in dpkg-buildflags(1)
+export DEB_BUILD_MAINT_OPTIONS = hardening=+all
+
+# see ENVIRONMENT in dpkg-buildflags(1)
+# package maintainers to append CFLAGS
+#export DEB_CFLAGS_MAINT_APPEND  = -Wall -pedantic
+# package maintainers to append LDFLAGS
+export DEB_LDFLAGS_MAINT_APPEND =
 
-#export DH_VERBOSE=1
-export DH_OPTIONS
-
-SHELL = /bin/bash
-
-NUM_CPUS = $(shell getconf _NPROCESSORS_ONLN 2>/dev/null)
-PARALLEL = $(subst parallel=,,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
-NJOBS    = -j$(or $(PARALLEL),$(NUM_CPUS),1)
-
-
-DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
-
-DEB_HOST_ARCH_CPU  ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
-DEB_HOST_ARCH      ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
-DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
-
-
-HARD_CPPFLAGS = -D_FORTIFY_SOURCE=2
-HARD_CFLAGS   = -Wformat=2
-HARD_LDFLAGS  = -Wl,-z,now
-
-ifneq (,$(filter-out $(DEB_HOST_ARCH), alpha hppa arm))
-	HARD_CFLAGS += -fstack-protector --param ssp-buffer-size=4
-endif
-ifneq (,$(filter-out $(DEB_HOST_ARCH), ia64 hppa avr32))
-	HARD_LDFLAGS += -Wl,-z,relro
-endif
-
-# Keep dpkg-buildpackage the hell out of messing with our compile flags,
-# we should trust upstream to know better than it what to use here.
-# We explicitly re-add -g and -O2 here, since not all configurations do
-# set it explicitly (and instead rely on autoconf's default of doing that,
-# which we override here when we set the hardening flags, if we do).
-CPPFLAGS = $(HARD_CPPFLAGS)
-CFLAGS   = $(HARD_CFLAGS) -g -O2
-CXXFLAGS = $(HARD_CFLAGS) -g -O2
-LDFLAGS  = $(HARD_LDFLAGS)
-
-ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
-	CFLAGS = -Wall -g -O0
-endif
-ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
-	INSTALL_PROGRAM += -s
-endif
-
-
-objdir            = objs
-objdir_sse        = objs-sse
-objdir_fixedpoint = objs-fixed-point
-
-all_objs  = $(objdir) $(objdir_sse) $(objdir_fixedpoint)
-arch_objs = $(objdir)
+include /usr/share/dpkg/architecture.mk
 
 ifeq ($(DEB_HOST_ARCH_CPU),arm)
-objdir             = $(objdir_fixedpoint)
 
-ifneq ($(DEB_HOST_ARCH),armhf)
+ifeq ($(DEB_HOST_ARCH),armel)
 EXTRA_CONFIG_FLAGS = --enable-arm4-asm
+EXTRA_CONFIG_FLAGS += --enable-fixed-point
 endif
 
 endif
 
 ifneq (,$(filter $(DEB_HOST_ARCH), mips mipsel))
-objdir             = $(objdir_fixedpoint)
+EXTRA_CONFIG_FLAGS = --enable-fixed-point
 endif
 
-ifeq ($(DEB_HOST_ARCH_CPU),i386)
-arch_objs += $(objdir_sse)
-endif
+%:
+	dh $@
 
+override_dh_auto_configure:
+	dh_auto_configure -- \
+	        $(EXTRA_CONFIG_FLAGS) \
+            $(NULL)
 
-clean:
-	dh_testdir
-	dh_testroot
-	$(RM) *-stamp
-	$(RM) -r $(all_objs) doc/{html,man,latex}
-	dh_clean
-
-
-# This first empty one is equivalent to declaring it .SECONDARY while we have
-# no target specific variables to set.  We don't want it removed by default
as
-# an unnamed intermediate file when the build target is completed.
-$(objdir)/config.status:
-$(objdir_sse)/config.status:        EXTRA_CONFIG_FLAGS += --enable-sse
-$(objdir_fixedpoint)/config.status: EXTRA_CONFIG_FLAGS += --enable-fixed-
point
-
-%/config.status: configure
-	dh_testdir
-	dh_update_autotools_config
-	mkdir -p $*
-	cd $* && ../configure --host=$(DEB_HOST_GNU_TYPE)	\
-			      --build=$(DEB_BUILD_GNU_TYPE)	\
-			      --prefix=/usr			\
-			      --libdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)
\
-			      $(EXTRA_CONFIG_FLAGS)		\
-			      CPPFLAGS="$(CPPFLAGS)"		\
-			      CFLAGS="$(CFLAGS)"		\
-			      CXXFLAGS="$(CXXFLAGS)"		\
-			      LDFLAGS="$(LDFLAGS)"
-
-build: build-arch build-indep
-
-build-arch: $(foreach d,$(arch_objs),build-target-$(d)-stamp)
-build-target-%-stamp : %/config.status
-	dh_testdir
-	$(MAKE) $(NJOBS) -C $*
-	touch $@
-
-build-indep: build-indep-stamp
-build-indep-stamp:
-	dh_testdir
+execute_before_dh_installdocs-indep:
 	doxygen Doxyfile
-	touch $@
-
-
-install: install-arch install-indep
-
-install-arch: install-arch-stamp
-install-arch-stamp: build-arch
-	dh_testdir
-	cd $(objdir) && $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp
-
-	if [ -d "$(objdir_sse)" ]; then \
-	    dh_install -plibspeex1   
$(objdir_sse)/libspeex/.libs/libspeex.so.* \
-				      usr/lib/$(DEB_HOST_MULTIARCH)/sse2; \
-	    dh_install -plibspeexdsp1
$(objdir_sse)/libspeex/.libs/libspeexdsp.so.* \
-				      usr/lib/$(DEB_HOST_MULTIARCH)/sse2; \
-	fi
-
-	dh_install -plibspeex1    $(objdir)/libspeex/.libs/libspeex.so.* \
-				  usr/lib/$(DEB_HOST_MULTIARCH)
-
-	dh_install -plibspeexdsp1 $(objdir)/libspeex/.libs/libspeexdsp.so.* \
-				  usr/lib/$(DEB_HOST_MULTIARCH)
-
-	dh_install -plibspeex-dev -plibspeexdsp-dev -pspeex --
sourcedir=debian/tmp
-	touch $@
-
-install-indep: build-indep
-
-
-binary: binary-indep binary-arch
-
-binary-indep: DH_OPTIONS = -i
-binary-indep: install-indep
-	dh_testdir
-	dh_testroot
-	dh_installdocs
-	dh_installchangelogs
-	dh_compress
-	dh_fixperms
-	dh_installdeb
-	dh_gencontrol
-	dh_md5sums
-	dh_builddeb
-
-binary-arch: install-arch
-	dh_testdir
-	dh_testroot
-	dh_installdocs -a
-	dh_installman -a
-	dh_installchangelogs -a
-	dh_strip -a --dbg-package=libspeex-dbg
-	dh_compress -a
-	dh_fixperms -a
-	dh_makeshlibs -plibspeex1 -V"libspeex1 (>= 1.2~beta3-1)"
-	dh_makeshlibs -plibspeexdsp1 -V"libspeexdsp1 (>= 1.2~beta3.2-1)"
-	dh_installdeb -a
-	dh_shlibdeps -a
-	dh_gencontrol -a
-	dh_md5sums -a
-	dh_builddeb -a
-
 
-.PHONY: clean build build-arch build-indep install install-arch install-indep
\
-	binary binary-arch binary-indep
+execute_after_dh_installdocs-indep:
+	dh_doxygen
 
+override_dh_strip:
+	dh_strip --dbgsym-migration='libspeex-dbg (<< 1.2~rc1.2-2~)'
diff -Nru speex-1.2~rc1.2/debian/source/format speex-
1.2~rc1.2/debian/source/format
--- speex-1.2~rc1.2/debian/source/format	1969-12-31 19:00:00.000000000
-0500
+++ speex-1.2~rc1.2/debian/source/format	2022-02-24 12:26:38.000000000
-0500
@@ -0,0 +1 @@
+3.0 (quilt)
diff -Nru speex-1.2~rc1.2/debian/speex-doc.doc-base speex-
1.2~rc1.2/debian/speex-doc.doc-base
--- speex-1.2~rc1.2/debian/speex-doc.doc-base	2022-02-24 13:15:44.000000000
-0500
+++ speex-1.2~rc1.2/debian/speex-doc.doc-base	2022-02-24 12:55:10.000000000
-0500
@@ -8,8 +8,8 @@
 Section: Programming/C
 
 Format: PDF
-Files: /usr/share/doc/speex-doc/manual.pdf.gz
+Files: /usr/share/doc/speex/manual.pdf.gz
 
 Format: HTML
-Index: /usr/share/doc/speex-doc/html/index.html
-Files: /usr/share/doc/speex-doc/html/*
+Index: /usr/share/doc/speex/html/index.html
+Files: /usr/share/doc/speex/html/*
diff -Nru speex-1.2~rc1.2/debian/speex-doc.manpages speex-
1.2~rc1.2/debian/speex-doc.manpages
--- speex-1.2~rc1.2/debian/speex-doc.manpages	2022-02-24 13:15:44.000000000
-0500
+++ speex-1.2~rc1.2/debian/speex-doc.manpages	1969-12-31 19:00:00.000000000
-0500
@@ -1 +0,0 @@
-doc/man/man3/*
diff -Nru speex-1.2~rc1.2/debian/speex.install speex-
1.2~rc1.2/debian/speex.install
--- speex-1.2~rc1.2/debian/speex.install	2022-02-24 13:15:44.000000000
-0500
+++ speex-1.2~rc1.2/debian/speex.install	2022-02-24 12:45:43.000000000
-0500
@@ -1 +1,2 @@
 usr/bin
+usr/share/man/man1/
diff -Nru speex-1.2~rc1.2/debian/speex.manpages speex-
1.2~rc1.2/debian/speex.manpages
--- speex-1.2~rc1.2/debian/speex.manpages	2022-02-24 13:15:44.000000000
-0500
+++ speex-1.2~rc1.2/debian/speex.manpages	1969-12-31 19:00:00.000000000
-0500
@@ -1 +0,0 @@
-src/*.1
diff -Nru speex-1.2~rc1.2/debian/upstream/metadata speex-
1.2~rc1.2/debian/upstream/metadata
--- speex-1.2~rc1.2/debian/upstream/metadata	1969-12-31 19:00:00.000000000
-0500
+++ speex-1.2~rc1.2/debian/upstream/metadata	2022-02-24 12:26:46.000000000
-0500
@@ -0,0 +1,2 @@
+---
+Repository: https://gitlab.xiph.org/xiph/speex
diff -Nru speex-1.2~rc1.2/libspeex/resample.c speex-
1.2~rc1.2/libspeex/resample.c
--- speex-1.2~rc1.2/libspeex/resample.c	2022-02-24 13:15:44.000000000 -0500
+++ speex-1.2~rc1.2/libspeex/resample.c	2014-08-26 06:35:22.000000000 -0400
@@ -561,8 +561,8 @@
       st->cutoff = quality_map[st->quality].downsample_bandwidth * st-
>den_rate / st->num_rate;
       /* FIXME: divide the numerator and denominator by a certain amount if
they're too large */
       st->filt_len = st->filt_len*st->num_rate / st->den_rate;
-      /* Round up to make sure we have a multiple of 8 for SSE */
-      st->filt_len = ((st->filt_len-1)&(~0x7))+8;
+      /* Round down to make sure we have a multiple of 4 */
+      st->filt_len &= (~0x3);
       if (2*st->den_rate < st->num_rate)
          st->oversample >>= 1;
       if (4*st->den_rate < st->num_rate)
@@ -579,7 +579,7 @@
    }
    
    /* Choose the resampling type that requires the least amount of memory */
-   if (st->filt_len*st->den_rate <= st->filt_len*st->oversample+8)
+   if (st->den_rate <= st->oversample)
    {
       spx_uint32_t i;
       if (!st->sinc_table)
@@ -756,9 +756,9 @@
 #endif
    
    /* Per channel data */
-   st->last_sample =
(spx_int32_t*)speex_alloc(nb_channels*sizeof(spx_int32_t));
-   st->magic_samples =
(spx_uint32_t*)speex_alloc(nb_channels*sizeof(spx_uint32_t));
-   st->samp_frac_num =
(spx_uint32_t*)speex_alloc(nb_channels*sizeof(spx_uint32_t));
+   st->last_sample = (spx_int32_t*)speex_alloc(nb_channels*sizeof(int));
+   st->magic_samples = (spx_uint32_t*)speex_alloc(nb_channels*sizeof(int));
+   st->samp_frac_num = (spx_uint32_t*)speex_alloc(nb_channels*sizeof(int));
    for (i=0;i<nb_channels;i++)
    {
       st->last_sample[i] = 0;
@@ -954,15 +954,13 @@
 {
    spx_uint32_t i;
    int istride_save, ostride_save;
-   spx_uint32_t bak_out_len = *out_len;
-   spx_uint32_t bak_in_len = *in_len;
+   spx_uint32_t bak_len = *out_len;
    istride_save = st->in_stride;
    ostride_save = st->out_stride;
    st->in_stride = st->out_stride = st->nb_channels;
    for (i=0;i<st->nb_channels;i++)
    {
-      *out_len = bak_out_len;
-      *in_len = bak_in_len;
+      *out_len = bak_len;
       if (in != NULL)
          speex_resampler_process_float(st, i, in+i, in_len, out+i, out_len);
       else
@@ -977,15 +975,13 @@
 {
    spx_uint32_t i;
    int istride_save, ostride_save;
-   spx_uint32_t bak_out_len = *out_len;
-   spx_uint32_t bak_in_len = *in_len;
+   spx_uint32_t bak_len = *out_len;
    istride_save = st->in_stride;
    ostride_save = st->out_stride;
    st->in_stride = st->out_stride = st->nb_channels;
    for (i=0;i<st->nb_channels;i++)
    {
-      *out_len = bak_out_len;
-      *in_len = bak_in_len;
+      *out_len = bak_len;
       if (in != NULL)
          speex_resampler_process_int(st, i, in+i, in_len, out+i, out_len);
       else
diff -Nru speex-1.2~rc1.2/libspeex/speex_header.c speex-
1.2~rc1.2/libspeex/speex_header.c
--- speex-1.2~rc1.2/libspeex/speex_header.c	2022-02-24 13:15:44.000000000
-0500
+++ speex-1.2~rc1.2/libspeex/speex_header.c	2014-08-26 06:35:22.000000000
-0400
@@ -147,21 +147,20 @@
    int i;
    SpeexHeader *le_header;
    const char *h = "Speex   ";
-
-   /*FIXME: Do we allow larger headers?*/
-   if (size < (int)sizeof(SpeexHeader))
-   {
-      speex_notify("Speex header too small");
-      return NULL;
-   }
-
    for (i=0;i<8;i++)
       if (packet[i]!=h[i])
       {
          speex_notify("This doesn't look like a Speex file");
          return NULL;
       }
-
+   
+   /*FIXME: Do we allow larger headers?*/
+   if (size < (int)sizeof(SpeexHeader))
+   {
+      speex_notify("Speex header too small");
+      return NULL;
+   }
+   
    le_header = (SpeexHeader*)speex_alloc(sizeof(SpeexHeader));
    
    SPEEX_COPY(le_header, (SpeexHeader*)packet, 1);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://alioth-lists.debian.net/pipermail/pkg-voip-maintainers/attachments/20220224/1621808c/attachment-0001.sig>


More information about the Pkg-voip-maintainers mailing list