From 7d707ebeab4995427becff8744595d61a5ef68bb Mon Sep 17 00:00:00 2001 From: Paul Brossier Date: Sun, 27 Nov 2016 22:23:50 +0100 Subject: Import aubio_0.4.3-4.debian.tar.xz [dgit import tarball aubio 0.4.3-4 aubio_0.4.3-4.debian.tar.xz] --- aubio-tools.install | 1 + aubio-tools.manpages | 1 + changelog | 281 +++++++++++++++++++++++++++++++++++ clean | 4 + compat | 1 + control | 107 +++++++++++++ copyright | 91 ++++++++++++ docs | 1 + libaubio-dev.install | 4 + libaubio-doc.doc-base | 10 ++ libaubio-doc.docs | 1 + libaubio-doc.links | 1 + libaubio5.install | 1 + patches/alpha_norm-88c89e3.diff | 19 +++ patches/avcodec_update.diff | 91 ++++++++++++ patches/cleaner_clean.diff | 15 ++ patches/fixtests-5d8cc71.patch | 26 ++++ patches/local_mathjax.patch | 18 +++ patches/pytest_local_import.diff | 72 +++++++++ patches/series | 9 ++ patches/skip_ppc64.diff | 40 +++++ patches/sort_pysrc.diff | 44 ++++++ patches/waf_cstlib_inst-8698499.diff | 25 ++++ rules | 60 ++++++++ source/format | 1 + watch | 2 + 26 files changed, 926 insertions(+) create mode 100644 aubio-tools.install create mode 100644 aubio-tools.manpages create mode 100644 changelog create mode 100644 clean create mode 100644 compat create mode 100644 control create mode 100644 copyright create mode 100644 docs create mode 100644 libaubio-dev.install create mode 100644 libaubio-doc.doc-base create mode 100644 libaubio-doc.docs create mode 100644 libaubio-doc.links create mode 100644 libaubio5.install create mode 100644 patches/alpha_norm-88c89e3.diff create mode 100644 patches/avcodec_update.diff create mode 100644 patches/cleaner_clean.diff create mode 100644 patches/fixtests-5d8cc71.patch create mode 100644 patches/local_mathjax.patch create mode 100644 patches/pytest_local_import.diff create mode 100644 patches/series create mode 100644 patches/skip_ppc64.diff create mode 100644 patches/sort_pysrc.diff create mode 100644 patches/waf_cstlib_inst-8698499.diff create mode 100755 rules create mode 100644 source/format create mode 100644 watch diff --git a/aubio-tools.install b/aubio-tools.install new file mode 100644 index 0000000..1df36c6 --- /dev/null +++ b/aubio-tools.install @@ -0,0 +1 @@ +usr/bin/* diff --git a/aubio-tools.manpages b/aubio-tools.manpages new file mode 100644 index 0000000..d8c7027 --- /dev/null +++ b/aubio-tools.manpages @@ -0,0 +1 @@ +build/doc/*.1 diff --git a/changelog b/changelog new file mode 100644 index 0000000..2fdef26 --- /dev/null +++ b/changelog @@ -0,0 +1,281 @@ +aubio (0.4.3-4) unstable; urgency=medium + + * debian/control: aubio-tools now depends on python3-aubio + * debian/control: fix python3 Depends/Suggests for python3-aubio + * debian/control: remove old Provides, XB-P-V, and Replaces/Conflicts + * debian/python*-aubio.install: removed, use pybuild + * debian/patches/pytest_local_import.diff: create python/tests/__init__.py + * debian/patches/pytest_local_import.diff: use local imports for python3 + * debian/patches/sort_pysrc.diff: update to sort existing generated files + * debian/patches/cleaner_clean.diff: prevent ./setup.py clean failures + * debian/rules: remove old flags, not needed anymore for compat 9 + * debian/rules: use pybuild to install python packages + * debian/rules: customize pybuild to use nose2 tests + * debian/rules: simplify clean rule + + -- Paul Brossier Sun, 27 Nov 2016 22:23:50 +0100 + +aubio (0.4.3-3) unstable; urgency=medium + + * debian/patches/sort_pysrc.diff: also sort the list of generated files + * debian/control: update Vcs-Git to use https + * debian/patches/waf_cstlib_inst-8698499.diff: merge upstream, remove + hardcoded copy in debian/rules + * debian/rules: pass multi-arch libdir + * debian/libaubio*.install: install from multi-arch libdir + * debian/control: make libaubio5 multi-arch + * debian/control: bump to debhelper >=9.0.0 + + -- Paul Brossier Sat, 26 Nov 2016 16:34:33 +0100 + +aubio (0.4.3-2) unstable; urgency=medium + + * Now at last upstream version (closes: #828039) + * debian/patch/skip_ppc64.diff: skip test if fft(zeros).phas != 0 [powerpc] + (closes: #843482) + * debian/patches/alpha_norm-88c89e3.diff: pull from upstream (avoid random + test failures) + * debian/patches/sort_pysrc.diff: sort(glob.glob) to improve build + reproducibility + * debian/patches/avcodec_update.diff: avoid libav deprecation warning + * debian/control: update Vcs-Browser + * debian/rules: improve test command + + -- Paul Brossier Mon, 07 Nov 2016 13:18:01 +0100 + +aubio (0.4.3-1) unstable; urgency=medium + + * Imported Upstream version 0.4.3 + * debian/patches/wscript_avcodec.patch: merged upstream + * debian/patches/local_mathjax.patch: update + * debian/patches/fixtests-5d8cc71.patch: use 5s brown noise + * debian/rules: add -Wl,--as-needed + * debian/rules: update python build, run python tests + * debian/control: Standards-Version 3.9.8, debian/compat: 9 + * debian/control: bump to libaubio5 + * debian/control: update short description + + -- Paul Brossier Sun, 06 Nov 2016 01:38:30 +0100 + +aubio (0.4.2-1) unstable; urgency=medium + + * New upstream release. + * Acknowledge NMU, thanks to toddy and sramacher (closes: #806604, #803799). + * debian/patches/ffmpeg_2.9.patch: removed + * debian/patches/wscript_avcodec.patch: fix avcodec detection + * debian/patches/local_mathjax.patch: added .patch + * debian/patches/series: update + * debian/control: add | liback-jack2-dev, python-setuptools, dh-python + * debian/control: bump to Standards-Version 3.9.6 + * debian/rules: cleaner clean, use python install --root= --prefix= + * debian/rules: no more --nocache for waf, force static library install + + -- Paul Brossier Mon, 15 Aug 2016 13:40:35 +0200 + +aubio (0.4.1-2.2) unstable; urgency=medium + + * Non-maintainer upload. + * Fix FTBFS when built with dpkg-buildpackage -A. + Thanks to Santiago Vila (Closes: #806604) + + -- Dr. Tobias Quathamer Fri, 05 Aug 2016 17:34:40 +0200 + +aubio (0.4.1-2.1) unstable; urgency=medium + + * Non-maintainer upload. + + [ Andreas Cadhalpun ] + * debian/patches/ffmpeg_2.9.patch: Fix build against ffmpeg 3.0. (Closes: + #803799) + + -- Sebastian Ramacher Sun, 06 Mar 2016 22:06:41 +0100 + +aubio (0.4.1-2) unstable; urgency=medium + + * debian/control: always Build-Depends on txt2man to include manpages in + binary only builds + + -- Paul Brossier Tue, 25 Mar 2014 17:25:42 -0300 + +aubio (0.4.1-1) unstable; urgency=medium + + * New upstream release + * debian/copyright: simplify and update copyright + * debian/control: add Vcs-Git and Vcs-Browser + + -- Paul Brossier Wed, 12 Mar 2014 00:27:21 -0300 + +aubio (0.4.0-1) unstable; urgency=medium + + * New upstream release + * Acknowledge NMUs (closes: #619802, #553930, #625676), thanks Alessio + * debian/watch: update + * debian/copyright: update + * debian/README.source: removed + * debian/patches: removed obsolete patches + * debian/aubio-tools.install: no more sounds + * debian/aubio-tools.manpages: updated manpages location + * debian/pycompat: remove obsolete file + * debian/source/format: bump to 3.0 (quilt) + * debian/libaubio2.*: moved to libaubio4 + * debian/clean: added + * debian/libaubio-dev.docs: removed + * debian/libaubio-dev.install: remove *.la + * debian/python-aubio.install: move to dist-packages + * debian/pd-aubio.install: removed + * debian/docs: add README.md + * debian/control: remove pd-aubio + * debian/libaubio-doc.docs: remove obsolete files, update doxygen location + * debian/compat: bump to 8 + * debian/rules: rewrite (closes: #730150) + * debian/control: update Build-Depends, bump debhelper and Standards-Version + * debian/control: remove XS-Python-Version + * debian/control: add Homepage + * debian/control: bump to libaubio4, replaces libaubio2 + * debian/control: remove a from start of short description + * debian/control: use libfftw3-dev (closes: #582735) + * debian/aubio-tools.install: install tools + * debian/patches/local_mathjax: use local MathJax.js + * debian/rules: use current python + * debian/*.dirs: removed + + -- Paul Brossier Sun, 29 Dec 2013 14:47:16 -0400 + +aubio (0.3.2-4.2) unstable; urgency=low + + * Non-maintainer upload. + * Replace puredata with puredata-dev in the Build-Depends field to fix + FTBFS (Closes: #625676). + + -- Alessio Treglia Thu, 05 May 2011 10:09:35 +0200 + +aubio (0.3.2-4.1) unstable; urgency=low + + * Non-maintainer upload. + * Fix FTBFS with binutils-gold (Closes: #553930). + * Conditionally enable ALSA depending on whether building on Linux; + patch from Steven McDonald (Closes: #619802). + * Explicitly set packaging format by putting '1.0' into the + debian/source/format file. + + -- Alessio Treglia Fri, 29 Apr 2011 15:32:33 +0200 + +aubio (0.3.2-4) unstable; urgency=low + + * Fix building of architecture dependent packages + * Do not compress search.js in libaubio-doc + + -- Paul Brossier Mon, 28 Sep 2009 13:34:53 +0200 + +aubio (0.3.2-3) unstable; urgency=low + + * debian/patches/01_numarray_gnuplot.diff: pull patch from bzr rev 690 + (closes: #478438, #512622) + * debian/control: + - split Build-Depends on multiple lines + - change B-D from puredata to pd (closes: #491965) + - fix typo python Python + - switch to python-numpy (see: #478438) + - move libaubio-dev to libdevel + - bump Standards-Version to 3.8.3 + - use ${binary:Version}, not ${Source-Version} + - add ${shlibs:Depends}, ${misc:Depends} to libaubio-dev + - add Build-Depends on quilt + - switch to python-support + * debian/rules: + - use tiny model + - disable lash + - tighten debhelper Build-Depends to (>= 7.0.50~) + - move config.{sub,guess} updating to + debian/patches/10_uptodate_configure.diff + * debian/libaubio-dev.install: temporarly hack .la files until the + libtool dependency traverser is being fixed (closes: #465057) + * debian/aubio-tools.manpages: install all manpages + * debian/libaubio-doc.doc-base: correct section Programming + * debian/compat: bump to 7 + * debian/rules: move dh_installdeb before dh_makeshlibs + + -- Paul Brossier Mon, 28 Sep 2009 03:15:52 +0200 + +aubio (0.3.2-2) unstable; urgency=low + + * Update debian/copyright + * Upload to unstable (closes: #383550) + + -- Paul Brossier Thu, 2 Nov 2006 19:36:41 +0100 + +aubio (0.3.2-1) unstable; urgency=low + + * New upstream release + + -- Paul Brossier Tue, 31 Oct 2006 19:38:54 +0100 + +aubio (0.3.1-1) unstable; urgency=low + + * New upstream release + * Removed python2.3-aubio, moved to python-central + + -- Paul Brossier Tue, 27 Jun 2006 17:46:42 +0200 + +aubio (0.3.0-1) unstable; urgency=low + + * New upstream release + * Add package for PureData plugins + + -- Paul Brossier Fri, 19 May 2006 16:07:21 +0200 + +aubio (0.2.0-1) unstable; urgency=low + + * New upstream release + * Added -fPIC to swig python module python/aubio/Makefile.am + * Added manpages for aubiocut, aubiopitch and aubiotrack + * Splitted python-aubio and libaubio-doc packages + + -- Paul Brossier Tue, 27 Sep 2005 16:49:09 +0100 + +aubio (0.1.9beta5-1) unstable; urgency=low + + * New upstream release + + -- Paul Brossier Sun, 15 May 2005 16:20:03 +0100 + +aubio (0.1.8-1) unstable; urgency=low + + * New upstream release + * Added docbook-to-man and puredata Build-Depends + + -- Paul Brossier Sun, 12 Dec 2004 00:01:32 +0000 + +aubio (0.1.6-1) unstable; urgency=low + + * New release + * Added swig and python-dev Build-Depends + + -- Paul Brossier Sun, 26 Sep 2004 13:48:41 +0100 + +aubio (0.1.5-1) unstable; urgency=low + + * New upstream release + + -- Paul Brossier Mon, 23 Aug 2004 21:36:58 +0200 + +aubio (0.1.4-1) unstable; urgency=low + + * New upstream release + * Simplifies install scripts + + -- Paul Brossier Wed, 23 Jun 2004 18:24:55 +0100 + +aubio (0.1.3alpha-2) unstable; urgency=low + + * Manually added missing headers in libaubio-dev + * Added manpages for autio tools. + * Fixed dependancies. + + -- Paul Brossier Wed, 5 May 2004 12:18:39 +0100 + +aubio (0.1.3alpha-1) unstable; urgency=low + + * Initial Release. + + -- Paul Brossier Tue, 27 Apr 2004 15:01:59 +0100 diff --git a/clean b/clean new file mode 100644 index 0000000..926c645 --- /dev/null +++ b/clean @@ -0,0 +1,4 @@ +waflib/*.pyc +waflib/*/*.pyc +build/ +.lock-waf_* diff --git a/compat b/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/compat @@ -0,0 +1 @@ +9 diff --git a/control b/control new file mode 100644 index 0000000..0c17d37 --- /dev/null +++ b/control @@ -0,0 +1,107 @@ +Source: aubio +Section: sound +Priority: optional +Maintainer: Paul Brossier +Build-Depends: debhelper (>= 9.0.0), + libtool, + libjack-dev | libjack-jackd2-dev, + libavcodec-dev, + libavformat-dev, + libavresample-dev, + libavutil-dev, + libsndfile1-dev, + libsamplerate-dev, + libasound2-dev, + libfftw3-dev, + dh-python, + python | python-all | python-dev | python-all-dev, + python-setuptools, + libpython2.7-dev, + python-numpy, + python3 | python3-all | python3-dev | python3-all-dev, + python3-setuptools, + libpython3-dev, + python3-numpy, + sox, + python-nose2, + python3-nose2, + txt2man, +Build-Depends-Indep: doxygen, + libjs-jquery, + libjs-mathjax, +Standards-Version: 3.9.8 +X-Python-Version: >= 2.6 +X-Python3-Version: >= 3.2 +Homepage: http://aubio.org +Vcs-Git: https://anonscm.debian.org/git/collab-maint/aubio.git +Vcs-Browser: https://anonscm.debian.org/cgit/collab-maint/aubio.git/ + +Package: libaubio-dev +Section: libdevel +Architecture: any +Depends: libaubio5 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Description: library for audio and music analysis, synthesis, and effects + aubio gathers a set of functions for audio signal segmentation and labelling. + The library contains a phase vocoder, onset and pitch detection functions, a + beat tracking algorithm and other sound processing utilities. + . + This package contains the development files for libaubio. + +Package: libaubio5 +Section: libs +Architecture: any +Multi-Arch: same +Depends: ${shlibs:Depends}, ${misc:Depends} +Replaces: libaubio4 +Description: library for audio segmentation + aubio gathers a set of functions for audio signal segmentation and labelling. + The library contains a phase vocoder, onset and pitch detection functions, a + beat tracking algorithm and other sound processing utilities. + . + This package provides the shared library libaubio. + +Package: aubio-tools +Section: sound +Architecture: any +Depends: python3-aubio (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends} +Description: library for audio segmentation -- utilities + aubio gathers a set of functions for audio signal segmentation and labelling. + The library contains a phase vocoder, onset and pitch detection functions, a + beat tracking algorithm and other sound processing utilities. + . + This package provides command line tools to run the different algorithms. + +Package: libaubio-doc +Section: doc +Architecture: all +Depends: ${misc:Depends}, libjs-jquery, libjs-mathjax +Description: library for audio segmentation -- documentation + aubio gathers a set of functions for audio signal segmentation and labelling. + The library contains a phase vocoder, onset and pitch detection functions, a + beat tracking algorithm and other sound processing utilities. + . + This package provides the documentation for the C interface. + +Package: python-aubio +Section: python +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, ${python:Depends} +Suggests: python-matplotlib +Description: python interface for aubio, a library for audio segmentation + aubio gathers a set of functions for audio signal segmentation and labelling. + The library contains a phase vocoder, onset and pitch detection functions, a + beat tracking algorithm and other sound processing utilities. + . + This package provides the aubio module for Python 2. + +Package: python3-aubio +Section: python +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, ${python3:Depends} +Suggests: python3-matplotlib +Description: python interface for aubio, a library for audio segmentation + aubio gathers a set of functions for audio signal segmentation and labelling. + The library contains a phase vocoder, onset and pitch detection functions, a + beat tracking algorithm and other sound processing utilities. + . + This package provides the aubio module for Python 3. diff --git a/copyright b/copyright new file mode 100644 index 0000000..64b3716 --- /dev/null +++ b/copyright @@ -0,0 +1,91 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: aubio +Source: http://aubio.org + +Files: * +Copyright: 2003-2013 Paul Brossier +License: GPL-3+ + +Files: src/tempo/beattracking.h +Copyright: 2003-2013 Paul Brossier + 2003-2009 Matthew Davies +License: GPL-3+ + +Files: src/pitch/pitchfcomb.c + src/pitch/pitchfcomb.h + src/pitch/pitchschmitt.c + src/pitch/pitchschmitt.h +Copyright: 2003-2013 Paul Brossier + 2004-2005 Mario Lang +License: GPL-3+ + +Files: src/spec{tral/filterbank.c + src/spec{tral/filterbank.h + src/spec{tral/filterbank_mel.c + src/spec{tral/filterbank_mel.h + src/spec{tral/mfcc.c + src/spec{tral/mfcc.h +Copyright: 2007-2013 Paul Brossier + 2007-2009 Amaury Hazan +License: GPL-3+ + +Files: src/spectral/ooura_fft8g.c +Copyright: 1996-2001 Takuya OOURA +License: ooura + +Files: waf + waflib/* +Copyright: 2005-2012 Thomas Nagy +License: BSD-3 + +Files: debian/* +Copyright: 2013 Paul Brossier +License: GPL-3+ + +License: GPL-3+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + On Debian systems, the complete text of the GNU General + Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". + +License: BSD-3 + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + . + 3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +License: ooura + You may use, copy, modify this code for any purpose and without fee. You may + distribute this ORIGINAL package. diff --git a/docs b/docs new file mode 100644 index 0000000..b43bf86 --- /dev/null +++ b/docs @@ -0,0 +1 @@ +README.md diff --git a/libaubio-dev.install b/libaubio-dev.install new file mode 100644 index 0000000..76f28fa --- /dev/null +++ b/libaubio-dev.install @@ -0,0 +1,4 @@ +usr/include/* +usr/lib/*/lib*.a +usr/lib/*/lib*.so +usr/lib/*/pkgconfig/* diff --git a/libaubio-doc.doc-base b/libaubio-doc.doc-base new file mode 100644 index 0000000..3ed027f --- /dev/null +++ b/libaubio-doc.doc-base @@ -0,0 +1,10 @@ +Document: libaubio +Title: Aubio Manual +Author: Paul Brossier +Abstract: This is a programming manual for the libaubio library. +Section: Programming + +Format: HTML +Index: /usr/share/doc/libaubio-doc/html/index.html +Files: /usr/share/doc/libaubio-doc/html/*.html + diff --git a/libaubio-doc.docs b/libaubio-doc.docs new file mode 100644 index 0000000..2f2d0ec --- /dev/null +++ b/libaubio-doc.docs @@ -0,0 +1 @@ +doc/web/html diff --git a/libaubio-doc.links b/libaubio-doc.links new file mode 100644 index 0000000..8338a73 --- /dev/null +++ b/libaubio-doc.links @@ -0,0 +1 @@ +/usr/share/javascript/jquery/jquery.js /usr/share/doc/libaubio-doc/html/jquery.js diff --git a/libaubio5.install b/libaubio5.install new file mode 100644 index 0000000..1b77c48 --- /dev/null +++ b/libaubio5.install @@ -0,0 +1 @@ +usr/lib/*/libaubio*.so.* diff --git a/patches/alpha_norm-88c89e3.diff b/patches/alpha_norm-88c89e3.diff new file mode 100644 index 0000000..bb2fea3 --- /dev/null +++ b/patches/alpha_norm-88c89e3.diff @@ -0,0 +1,19 @@ +commit 88c89e3b2981c430d61079c9517fa37407ba2f58 +Author: Paul Brossier +Date: Thu Sep 22 13:46:16 2016 +0200 + + python/tests/test_fvec.py: reduce alpha norm precision to 10.-4 + +diff --git a/python/tests/test_fvec.py b/python/tests/test_fvec.py +index 4ea5533..4e50f0f 100755 +--- a/python/tests/test_fvec.py ++++ b/python/tests/test_fvec.py +@@ -98,7 +98,7 @@ class aubio_alpha_norm(TestCase): + x = np.random.rand(1024).astype(float_type) + alpha = np.random.rand() * 5. + x_alpha_norm = (np.sum(np.abs(x)**alpha)/len(x))**(1/alpha) +- assert_almost_equal(alpha_norm(x, alpha), x_alpha_norm, decimal = 5) ++ assert_almost_equal(alpha_norm(x, alpha), x_alpha_norm, decimal = 4) + + class aubio_zero_crossing_rate_test(TestCase): + diff --git a/patches/avcodec_update.diff b/patches/avcodec_update.diff new file mode 100644 index 0000000..c26eac2 --- /dev/null +++ b/patches/avcodec_update.diff @@ -0,0 +1,91 @@ +diff --git a/src/io/source_avcodec.c b/src/io/source_avcodec.c +index a4cbf6d..faf8015 100644 +--- a/src/io/source_avcodec.c ++++ b/src/io/source_avcodec.c +@@ -150,7 +150,11 @@ aubio_source_avcodec_t * new_aubio_source_avcodec(const char_t * path, uint_t sa + uint_t i; + sint_t selected_stream = -1; + for (i = 0; i < avFormatCtx->nb_streams; i++) { ++#if FF_API_LAVF_AVCTX ++ if (avFormatCtx->streams[i]->codecpar->codec_type == AVMEDIA_TYPE_AUDIO) { ++#else + if (avFormatCtx->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO) { ++#endif + if (selected_stream == -1) { + selected_stream = i; + } else { +@@ -167,13 +171,39 @@ aubio_source_avcodec_t * new_aubio_source_avcodec(const char_t * path, uint_t sa + s->selected_stream = selected_stream; + + AVCodecContext *avCodecCtx = s->avCodecCtx; ++#if FF_API_LAVF_AVCTX ++ AVCodecParameters *codecpar = avFormatCtx->streams[selected_stream]->codecpar; ++ if (codecpar == NULL) { ++ AUBIO_ERR("source_avcodec: Could not find decoder for %s", s->path); ++ goto beach; ++ } ++ AVCodec *codec = avcodec_find_decoder(codecpar->codec_id); ++ ++ /* Allocate a codec context for the decoder */ ++ avCodecCtx = avcodec_alloc_context3(codec); ++ if (!avCodecCtx) { ++ AUBIO_ERR("source_avcodec: Failed to allocate the %s codec context for path %s\n", ++ av_get_media_type_string(AVMEDIA_TYPE_AUDIO), s->path); ++ goto beach; ++ } ++#else + avCodecCtx = avFormatCtx->streams[selected_stream]->codec; + AVCodec *codec = avcodec_find_decoder(avCodecCtx->codec_id); ++#endif + if (codec == NULL) { + AUBIO_ERR("source_avcodec: Could not find decoder for %s", s->path); + goto beach; + } + ++#if FF_API_LAVF_AVCTX ++ /* Copy codec parameters from input stream to output codec context */ ++ if ((err = avcodec_parameters_to_context(avCodecCtx, codecpar)) < 0) { ++ AUBIO_ERR("source_avcodec: Failed to copy %s codec parameters to decoder context for %s\n", ++ av_get_media_type_string(AVMEDIA_TYPE_AUDIO), s->path); ++ goto beach; ++ } ++#endif ++ + if ( ( err = avcodec_open2(avCodecCtx, codec, NULL) ) < 0) { + char errorstr[256]; + av_strerror (err, errorstr, sizeof(errorstr)); +@@ -290,12 +320,34 @@ void aubio_source_avcodec_readframe(aubio_source_avcodec_t *s, uint_t * read_sam + } while (avPacket.stream_index != s->selected_stream); + + int got_frame = 0; ++#if FF_API_LAVF_AVCTX ++ int ret = avcodec_send_packet(avCodecCtx, &avPacket); ++ if (ret < 0 && ret != AVERROR_EOF) { ++ AUBIO_ERR("source_avcodec: error when sending packet for %s\n", s->path); ++ goto beach; ++ } ++ ret = avcodec_receive_frame(avCodecCtx, avFrame); ++ if (ret >= 0) { ++ got_frame = 1; ++ } ++ if (ret < 0) { ++ if (ret == AVERROR(EAGAIN)) { ++ AUBIO_WRN("source_avcodec: output is not available right now - user must try to send new input\n"); ++ } else if (ret == AVERROR_EOF) { ++ AUBIO_WRN("source_avcodec: the decoder has been fully flushed, and there will be no more output frames\n"); ++ } else { ++ AUBIO_ERR("source_avcodec: decoding errors on %s\n", s->path); ++ goto beach; ++ } ++ } ++#else + int len = avcodec_decode_audio4(avCodecCtx, avFrame, &got_frame, &avPacket); + + if (len < 0) { + AUBIO_ERR("Error while decoding %s\n", s->path); + goto beach; + } ++#endif + if (got_frame == 0) { + //AUBIO_ERR("Could not get frame for (%s)\n", s->path); + goto beach; diff --git a/patches/cleaner_clean.diff b/patches/cleaner_clean.diff new file mode 100644 index 0000000..4ac8bae --- /dev/null +++ b/patches/cleaner_clean.diff @@ -0,0 +1,15 @@ +diff --git a/python/lib/moresetuptools.py b/python/lib/moresetuptools.py +index 906b871..6318c1e 100644 +--- a/python/lib/moresetuptools.py ++++ b/python/lib/moresetuptools.py +@@ -117,7 +117,9 @@ def add_system_aubio(ext): + + class CleanGenerated(distutils.command.clean.clean): + def run(self): +- distutils.dir_util.remove_tree(output_path) ++ if os.path.isdir(output_path): ++ distutils.dir_util.remove_tree(output_path) ++ config = os.path.join('python', 'ext', 'config.h') + distutils.command.clean.clean.run(self) + + class GenerateCommand(distutils.cmd.Command): diff --git a/patches/fixtests-5d8cc71.patch b/patches/fixtests-5d8cc71.patch new file mode 100644 index 0000000..065001d --- /dev/null +++ b/patches/fixtests-5d8cc71.patch @@ -0,0 +1,26 @@ +diff --git a/python/tests/utils.py b/python/tests/utils.py +index 2e3c31e..b0963fc 100644 +--- a/python/tests/utils.py ++++ b/python/tests/utils.py +@@ -5,6 +5,8 @@ import glob + import numpy as np + from tempfile import mkstemp + ++DEFAULT_SOUND = '22050Hz_5s_brownnoise.wav' ++ + def array_from_text_file(filename, dtype = 'float'): + filename = os.path.join(os.path.dirname(__file__), filename) + with open(filename) as f: +@@ -21,7 +23,11 @@ def get_default_test_sound(TestCase, rel_dir = 'sounds'): + if len(all_sounds) == 0: + TestCase.skipTest("please add some sounds in \'python/tests/sounds\'") + else: +- return all_sounds[0] ++ default_sound = all_sounds[0] ++ if DEFAULT_SOUND in map(os.path.basename, all_sounds): ++ while os.path.basename(default_sound) != DEFAULT_SOUND: ++ default_sound = all_sounds.pop(0) ++ return default_sound + + def get_tmp_sink_path(): + fd, path = mkstemp() diff --git a/patches/local_mathjax.patch b/patches/local_mathjax.patch new file mode 100644 index 0000000..ae2deba --- /dev/null +++ b/patches/local_mathjax.patch @@ -0,0 +1,18 @@ +Description: use locally installed mathjax + This patch makes use of the locally installed mathjax script so that equations + in the documentation can be rendered when no internet connection is available. +Author: Paul Brossier +Forwarded: not-needed +Last-Update: 2013-12-29 + +--- a/doc/web.cfg ++++ b/doc/web.cfg +@@ -1483,7 +1483,7 @@ + # The default value is: http://cdn.mathjax.org/mathjax/latest. + # This tag requires that the tag USE_MATHJAX is set to YES. + +-MATHJAX_RELPATH = http://cdn.mathjax.org/mathjax/latest ++MATHJAX_RELPATH = file:///usr/share/javascript/mathjax + + # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax + # extension names that should be enabled during MathJax rendering. For example diff --git a/patches/pytest_local_import.diff b/patches/pytest_local_import.diff new file mode 100644 index 0000000..1b80e52 --- /dev/null +++ b/patches/pytest_local_import.diff @@ -0,0 +1,72 @@ +--- a/python/tests/eval_pitch ++++ b/python/tests/eval_pitch +@@ -24,7 +24,7 @@ + import time + import os.path + import numpy +-from utils import array_from_text_file, array_from_yaml_file ++from .utils import array_from_text_file, array_from_yaml_file + from aubio import source, pitch, freqtomidi + + start = time.time() +--- a/python/tests/test_filter.py ++++ b/python/tests/test_filter.py +@@ -3,7 +3,7 @@ + from unittest import main + from numpy.testing import TestCase, assert_equal, assert_almost_equal + from aubio import fvec, digital_filter +-from utils import array_from_text_file ++from .utils import array_from_text_file + + class aubio_filter_test_case(TestCase): + +--- a/python/tests/test_filterbank.py ++++ b/python/tests/test_filterbank.py +@@ -5,7 +5,7 @@ + from numpy.testing import assert_equal, assert_almost_equal + import numpy as np + from aubio import cvec, filterbank, float_type +-from utils import array_from_text_file ++from .utils import array_from_text_file + + class aubio_filterbank_test_case(TestCase): + +--- a/python/tests/test_sink.py ++++ b/python/tests/test_sink.py +@@ -4,7 +4,7 @@ + from nose2.tools import params + from numpy.testing import TestCase + from aubio import fvec, source, sink +-from utils import list_all_sounds, get_tmp_sink_path, del_tmp_sink_path ++from .utils import list_all_sounds, get_tmp_sink_path, del_tmp_sink_path + + list_of_sounds = list_all_sounds('sounds') + samplerates = [0, 44100, 8000, 32000] +--- a/python/tests/test_slicing.py ++++ b/python/tests/test_slicing.py +@@ -3,8 +3,8 @@ + from unittest import main + from numpy.testing import TestCase, assert_equal + from aubio import slice_source_at_stamps +-from utils import count_files_in_directory, get_default_test_sound +-from utils import count_samples_in_directory, count_samples_in_file ++from .utils import count_files_in_directory, get_default_test_sound ++from .utils import count_samples_in_directory, count_samples_in_file + + import tempfile + import shutil +--- a/python/tests/test_source.py ++++ b/python/tests/test_source.py +@@ -4,7 +4,7 @@ + from nose2.tools import params + from numpy.testing import TestCase + from aubio import source +-from utils import list_all_sounds ++from .utils import list_all_sounds + + list_of_sounds = list_all_sounds('sounds') + samplerates = [0, 44100, 8000, 32000] +--- /dev/null ++++ b/python/tests/__init__.py +@@ -0,0 +1 @@ ++ diff --git a/patches/series b/patches/series new file mode 100644 index 0000000..11190f9 --- /dev/null +++ b/patches/series @@ -0,0 +1,9 @@ +local_mathjax.patch +fixtests-5d8cc71.patch +skip_ppc64.diff +sort_pysrc.diff +alpha_norm-88c89e3.diff +avcodec_update.diff +waf_cstlib_inst-8698499.diff +pytest_local_import.diff +cleaner_clean.diff diff --git a/patches/skip_ppc64.diff b/patches/skip_ppc64.diff new file mode 100644 index 0000000..e730a22 --- /dev/null +++ b/patches/skip_ppc64.diff @@ -0,0 +1,40 @@ +diff --git a/python/tests/test_fft.py b/python/tests/test_fft.py +index fa349e5..a8f82b9 100755 +--- a/python/tests/test_fft.py ++++ b/python/tests/test_fft.py +@@ -33,7 +33,14 @@ class aubio_fft_test_case(TestCase): + f = fft (win_s) + fftgrain = f (timegrain) + assert_equal ( fftgrain.norm, 0 ) +- assert_equal ( fftgrain.phas, 0 ) ++ try: ++ assert_equal ( fftgrain.phas, 0 ) ++ except AssertionError: ++ assert_equal (fftgrain.phas[fftgrain.phas > 0], +pi) ++ assert_equal (fftgrain.phas[fftgrain.phas < 0], -pi) ++ assert_equal (np.abs(fftgrain.phas[np.abs(fftgrain.phas) != pi]), 0) ++ self.skipTest('fft(fvec(%d)).phas != +0, ' % win_s \ ++ + 'This is expected when using fftw3 on powerpc.') + + def test_impulse(self): + """ check the transform of one impulse at a random place """ +diff --git a/python/tests/test_phasevoc.py b/python/tests/test_phasevoc.py +index 23cbad5..957d3b1 100755 +--- a/python/tests/test_phasevoc.py ++++ b/python/tests/test_phasevoc.py +@@ -46,7 +46,14 @@ class aubio_pvoc_test_case(TestCase): + r = f.rdo(s) + assert_equal ( t, 0.) + assert_equal ( s.norm, 0.) +- assert_equal ( s.phas, 0.) ++ try: ++ assert_equal ( s.phas, 0 ) ++ except AssertionError: ++ assert_equal (s.phas[s.phas > 0], +np.pi) ++ assert_equal (s.phas[s.phas < 0], -np.pi) ++ assert_equal (np.abs(s.phas[np.abs(s.phas) != np.pi]), 0) ++ self.skipTest('pvoc(fvec(%d)).phas != +0, ' % win_s \ ++ + 'This is expected when using fftw3 on powerpc.') + assert_equal ( r, 0.) + + @params( diff --git a/patches/sort_pysrc.diff b/patches/sort_pysrc.diff new file mode 100644 index 0000000..ac28e3f --- /dev/null +++ b/patches/sort_pysrc.diff @@ -0,0 +1,44 @@ +--- a/python/lib/moresetuptools.py ++++ b/python/lib/moresetuptools.py +@@ -58,8 +58,8 @@ + # create an empty header, macros will be passed on the command line + fake_config_header = os.path.join('python', 'ext', 'config.h') + distutils.file_util.write_file(fake_config_header, "") +- aubio_sources = glob.glob(os.path.join('src', '**.c')) +- aubio_sources += glob.glob(os.path.join('src', '*', '**.c')) ++ aubio_sources = sorted(glob.glob(os.path.join('src', '**.c'))) ++ aubio_sources += sorted(glob.glob(os.path.join('src', '*', '**.c'))) + ext.sources += aubio_sources + # define macros (waf puts them in build/src/config.h) + for define_macro in ['HAVE_STDLIB_H', 'HAVE_STDIO_H', +--- a/setup.py ++++ b/setup.py +@@ -37,7 +37,7 @@ + if sys.platform.startswith('darwin'): + extra_link_args += ['-framework','CoreFoundation', '-framework','AudioToolbox'] + +-sources = glob.glob(os.path.join('python', 'ext', '*.c')) ++sources = sorted(glob.glob(os.path.join('python', 'ext', '*.c'))) + + aubio_extension = Extension("aubio._aubio", + sources, +--- a/python/lib/gen_external.py ++++ b/python/lib/gen_external.py +@@ -123,7 +123,7 @@ + + def generate_external(header=header, output_path=output_path, usedouble=False, overwrite=True): + if not os.path.isdir(output_path): os.mkdir(output_path) +- elif not overwrite: return glob.glob(os.path.join(output_path, '*.c')) ++ elif not overwrite: return sorted(glob.glob(os.path.join(output_path, '*.c'))) + sources_list = [] + cpp_output, cpp_objects = get_cpp_objects(header) + lib = {} +@@ -241,7 +241,7 @@ + print ("wrote %s" % output_file ) + # no need to add header to list of sources + +- return sources_list ++ return sorted(sources_list) + + if __name__ == '__main__': + if len(sys.argv) > 1: header = sys.argv[1] diff --git a/patches/waf_cstlib_inst-8698499.diff b/patches/waf_cstlib_inst-8698499.diff new file mode 100644 index 0000000..7738f2d --- /dev/null +++ b/patches/waf_cstlib_inst-8698499.diff @@ -0,0 +1,25 @@ +commit 8698499e0619b3c2cd0dcf7c880f3bec64bbb876 +Author: Paul Brossier +Date: Sat Nov 26 14:52:37 2016 +0100 + + src/wscript_build: also install static library + + See this post from waf author: + https://groups.google.com/forum/#!msg/waf-users/GBHPrmO_lDg/34VWYEaks40J + +diff --git a/src/wscript_build b/src/wscript_build +index f2bd2ba..c55d5f2 100644 +--- a/src/wscript_build ++++ b/src/wscript_build +@@ -29,6 +29,11 @@ elif ctx.env['DEST_OS'] in ['emscripten']: + else: #linux, darwin, android, mingw, ... + build_features = ['cstlib', 'cshlib'] + ++# also install static lib ++from waflib.Tools.c import cstlib ++from waflib.Tools.fc import fcstlib ++fcstlib.inst_to = cstlib.inst_to = '${LIBDIR}' ++ + for target in build_features: + ctx(features = 'c ' + target, + use = uselib + ['lib_objects'], diff --git a/rules b/rules new file mode 100755 index 0000000..67b525c --- /dev/null +++ b/rules @@ -0,0 +1,60 @@ +#!/usr/bin/make -f +# -*- makefile -*- + +#export DH_VERBOSE=1 + +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) + +# set environment for waf +export LINKFLAGS=-Wl,--as-needed +WAF_OPTIONS = --verbose --destdir=debian/tmp --prefix=/usr --enable-fftw3f +WAF_OPTIONS += --libdir=/usr/lib/$(DEB_HOST_MULTIARCH) +WAF_CMD = ./waf + +export PYBUILD_NAME=aubio +export PYBUILD_AFTER_INSTALL_python2=rm -vrf '{destdir}/usr/bin' +export PYBUILD_AFTER_INSTALL_python3=mv '{destdir}/usr/bin/aubiocut' '{dir}/debian/tmp/usr/bin' + +export PYBUILD_BEFORE_TEST=make create_test_sounds; cp -prv '{dir}/python/tests' '{build_dir}' +export PYBUILD_AFTER_TEST=rm -rf '{build_dir}/tests'; rm -rf '{dir}/python/tests/sounds' +export PYBUILD_TEST_ARGS_python2=cd '{build_dir}'; nose2-2.7 --verbose +export PYBUILD_TEST_ARGS_python3=cd '{build_dir}'; nose2-3 --verbose + +%: + dh $@ --with python2,python3 --buildsystem=pybuild + +override_dh_auto_clean: + dh_auto_clean --buildsystem=pybuild + -$(WAF_CMD) distclean + rm -rf doc/web/ + rm -rf python/ext/config.h + # extra rules to remove files manually + #-find waf -name '*.pyc' -delete + #rm -rf .waf* .lock-waf* + #rm -rf build/ dist/ .waf* .lock-waf* + #rm -rf python/gen/ aubio.egg-info + #rm -rf python/lib/*.pyc python/lib/aubio/*.so + #rm -rf python/tests/sounds + #rm -rf debian/tmp + #rm -rf manpages.refs manpages.links + +override_dh_auto_configure: + $(WAF_CMD) configure $(WAF_OPTIONS) + +override_dh_auto_build: + $(WAF_CMD) build $(WAF_OPTIONS) + dh_auto_build --buildsystem=pybuild + +override_dh_auto_test: + # run tests + PYBUILD_SYSTEM=custom \ + LD_LIBRARY_PATH=$(CURDIR)/build/src:$(LD_LIBRARY_PATH) \ + dh_auto_test --buildsystem=pybuild + +override_dh_auto_install: + # library + $(WAF_CMD) install $(WAF_OPTIONS) + # python extension + dh_auto_install --buildsystem=pybuild + # call dh_numpy to add dependency on numpy abi + if [ -x /usr/bin/dh_numpy ]; then dh_numpy; fi diff --git a/source/format b/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/watch b/watch new file mode 100644 index 0000000..ef3628e --- /dev/null +++ b/watch @@ -0,0 +1,2 @@ +version=2 +http://aubio.org/pub/ aubio-([0-9.]*)\.tar\.bz2 -- cgit v1.2.3