Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Vorbis 1.3.7 aoTuV and Lancer patches (Read 55114 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #50
Hi @enzo! In updating the AUR package to v1.3.7, I am getting a segfault during `make check` for test 4:

Code: [Select]
Making check in m4
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/m4'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/m4'
Making check in include
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include'
Making check in vorbis
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include/vorbis'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include/vorbis'
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include'
make[2]: Nothing to be done for 'check-am'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include'
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include'
Making check in vq
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/vq'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/vq'
Making check in lib
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib'
Making check in modes
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/modes'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/modes'
Making check in books
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books'
Making check in coupled
make[3]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/coupled'
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/coupled'
Making check in uncoupled
make[3]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/uncoupled'
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/uncoupled'
Making check in floor
make[3]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/floor'
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/floor'
make[3]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books'
make[3]: Nothing to be done for 'check-am'.
make[3]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books'
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books'
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib'
make[2]: Nothing to be done for 'check-am'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib'
./test_sharedbook
Dequant test 1... OK
Dequant test 2... OK
Dequant test 3... OK
Dequant test 4... make[1]: *** [Makefile:1033: check] Segmentation fault (core dumped)
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib'
make: *** [Makefile:530: check-recursive] Error 1
==> ERROR:(B A failure occurred in check().(B
    Aborting...(B

I am using the following PKGBUILD:

Code: [Select]
pkgname=libvorbis-aotuv-lancer
pkgver=1.3.7
_srcname="libvorbis-${pkgver}"
pkgrel=1
_aotuv_ver=b6.03
pkgdesc='A fork of libvorbis intended to provide better quality sound at low to medium bitrates, with lancer patches to improve performance'
arch=('i686' 'x86_64')
url='https://hydrogenaud.io/index.php?topic=115774.0'
license=('BSD')
depends=('libogg.so')
conflicts=('libvorbis' 'libvorbis-aotuv')
provides=(
  'libvorbis.so'
  'libvorbisenc.so'
  'libvorbisfile.so'
)
source=("http://downloads.xiph.org/releases/vorbis/${_srcname}.tar.gz"
        "https://freac.org/patches/${_srcname}-aotuv-${_aotuv_ver}.patch"
        "https://freac.org/patches/${_srcname}-aotuv-${_aotuv_ver}-lancer.patch")
sha256sums=('0e982409a9c3fc82ee06e08205b1355e5c6aa4c36bca58146ef399621b0ce5ab'
            '21c9801f70fa254bb2019266ae51cdabf9b9bbf089fe91275db8722a0cfc46b6'
            'db4a6698913c4e05d43cfbbd174b1deb3747f7283a8618d8e009425d93a23769')
prepare() {
cd "${_srcname}"

# apply aotuv patches
patch -p1 -i "${srcdir}/${_srcname}-aotuv-${_aotuv_ver}.patch"

# apply lancer patches
patch -p1 -i "${srcdir}/${_srcname}-aotuv-${_aotuv_ver}-lancer.patch"
}

build() {
cd "${_srcname}"
./configure \
    --prefix=/usr \
    --disable-static \
    --enable-shared
    make
}

check() {
cd "${_srcname}"
make -k check
}

package() {
cd "${_srcname}"
make DESTDIR="${pkgdir}/" install
install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}

The build log looks normal (external link because otherwise post exceeds character limit).

There are no issues with building the current 1.3.6 version or standard libvorbis 1.3.7 (without patches) using the same method (building in a clean chroot), however the exact same issue happens when I do a standard build from your repo's master branch.

Any idea of what might be at play here?

Thanks!

edit: I got something slightly better using the previously used `make -j1 check` (as it is in the current 1.3.6 PKBGUILD):

Code: [Select]
Making check in m4
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/m4'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/m4'
Making check in include
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include'
Making check in vorbis
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include/vorbis'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include/vorbis'
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include'
make[2]: Nothing to be done for 'check-am'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include'
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include'
Making check in vq
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/vq'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/vq'
Making check in lib
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib'
Making check in modes
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/modes'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/modes'
Making check in books
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books'
Making check in coupled
make[3]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/coupled'
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/coupled'
Making check in uncoupled
make[3]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/uncoupled'
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/uncoupled'
Making check in floor
make[3]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/floor'
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/floor'
make[3]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books'
make[3]: Nothing to be done for 'check-am'.
make[3]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books'
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books'
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib'
make[2]: Nothing to be done for 'check-am'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib'
./test_sharedbook
Dequant test 1... OK
Dequant test 2... OK
Dequant test 3... OK
Dequant test 4... make[1]: *** [Makefile:1033: check] Segmentation fault (core dumped)
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib'
Making check in test
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/test'
make  test
  CC       util.o
  CC       write_read.o
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/test'
  CC       test.o
  CC       util.o
  CC       write_read.o
  CC       test.o
mv: cannot move '.deps/write_read.Tpo' to '.deps/write_read.Po': No such file or directory
make[1]: *** [Makefile:385: write_read.o] Error 1
  CCLD     test
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/test'
make[1]: Target 'check' not remade because of errors.
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/test'
Making check in doc
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc'
Making check in libvorbis
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc/libvorbis'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc/libvorbis'
Making check in vorbisfile
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc/vorbisfile'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc/vorbisfile'
Making check in vorbisenc
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc/vorbisenc'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc/vorbisenc'
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc'
make[2]: Nothing to be done for 'check-am'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc'
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc'
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7'
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7'
make: *** [Makefile:530: check-recursive] Error 1
make: Target 'check' not remade because of errors.
==> ERROR:(B A failure occurred in check().(B
    Aborting...(B

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #51
I got slightly further by adding an `./autogen.sh` step in the `prepare()` stage, although that should not (and was not) needed while building from a tarball?

Code: [Select]
Making check in m4
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/m4'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/m4'
Making check in include
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include'
Making check in vorbis
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include/vorbis'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include/vorbis'
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include'
make[2]: Nothing to be done for 'check-am'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include'
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/include'
Making check in vq
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/vq'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/vq'
Making check in lib
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib'
Making check in modes
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/modes'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/modes'
Making check in books
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books'
Making check in coupled
make[3]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/coupled'
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/coupled'
Making check in uncoupled
make[3]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/uncoupled'
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/uncoupled'
Making check in floor
make[3]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/floor'
make[3]: Nothing to be done for 'check'.
make[3]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books/floor'
make[3]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books'
make[3]: Nothing to be done for 'check-am'.
make[3]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books'
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/books'
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib'
make[2]: Nothing to be done for 'check-am'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib'
./test_sharedbook
Dequant test 1... OK
Dequant test 2... OK
Dequant test 3... OK
Dequant test 4... make[1]: *** [Makefile:1033: check] Segmentation fault (core dumped)
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib'
Making check in test
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/test'
make  test
  CC       write_read.o
  CC       test.o
  CC       util.o
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/test'
  CC       write_read.o
  CC       util.o
  CC       test.o
  CCLD     test
  CCLD     test
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/test'
./test

Testing 1 channel

<all channel tests ok up to...>

    vorbis_8ch_q9.5_96000.ogg : ok
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/test'
Making check in doc
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc'
Making check in libvorbis
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc/libvorbis'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc/libvorbis'
Making check in vorbisfile
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc/vorbisfile'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc/vorbisfile'
Making check in vorbisenc
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc/vorbisenc'
make[2]: Nothing to be done for 'check'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc/vorbisenc'
make[2]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc'
make[2]: Nothing to be done for 'check-am'.
make[2]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc'
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/doc'
make[1]: Entering directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7'
make[1]: Leaving directory '/build/libvorbis-aotuv-lancer/src/libvorbis-1.3.7'
make: *** [Makefile:532: check-recursive] Error 1
make: Target 'check' not remade because of errors.
==> ERROR:(B A failure occurred in check().(B
    Aborting...(B

The current PKGBUILD as it stands:

Code: [Select]
pkgname=libvorbis-aotuv-lancer
pkgver=1.3.7
_srcname="libvorbis-${pkgver}"
pkgrel=1
_aotuv_ver=b6.03
pkgdesc='A fork of libvorbis intended to provide better quality sound at low to medium bitrates, with lancer patches to improve performance'
arch=('i686' 'x86_64')
url='https://hydrogenaud.io/index.php?topic=115774.0'
license=('BSD')
depends=('libogg.so')
conflicts=('libvorbis' 'libvorbis-aotuv')
provides=(
  'libvorbis.so'
  'libvorbisenc.so'
  'libvorbisfile.so'
)
source=("http://downloads.xiph.org/releases/vorbis/${_srcname}.tar.gz"
        "https://freac.org/patches/${_srcname}-aotuv-${_aotuv_ver}.patch"
        "https://freac.org/patches/${_srcname}-aotuv-${_aotuv_ver}-lancer.patch")
sha256sums=('0e982409a9c3fc82ee06e08205b1355e5c6aa4c36bca58146ef399621b0ce5ab'
            '21c9801f70fa254bb2019266ae51cdabf9b9bbf089fe91275db8722a0cfc46b6'
            'db4a6698913c4e05d43cfbbd174b1deb3747f7283a8618d8e009425d93a23769')
prepare() {
cd "${_srcname}"

./autogen.sh

# apply aotuv patches
patch -p1 -i "${srcdir}/${_srcname}-aotuv-${_aotuv_ver}.patch"

# apply lancer patches
patch -p1 -i "${srcdir}/${_srcname}-aotuv-${_aotuv_ver}-lancer.patch"
}

build() {
cd "${_srcname}"
./configure \
    --prefix=/usr \
    --disable-static \
    --enable-shared
    make
}

check() {
cd "${_srcname}"
make -k check
}

package() {
cd "${_srcname}"
make DESTDIR="${pkgdir}/" install
install -Dm644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}

PS: I noticed there was no 1.3.7 release/tag on your Github repo, was it intentional?
Thanks

edit: extract from systemd journal if that may help:

Code: [Select]
févr. 20 03:48:23 kernel: test_sharedbook[68595]: segfault at 556bb0000000 ip 00007ff21fb84c9e sp 00007ffea83e76b0 error 4 in libc-2.33.so[7ff21fb1f000+14c000]
févr. 20 03:48:23 kernel: Code: a8 02 75 40 48 8b 15 d1 50 13 00 64 48 83 3a 00 0f 84 9e 00 00 00 48 8d 3d 6f 5d 13 00 a8 04 74 0c 48 89 f0 48 25 00 00 00 fc <48> 8b 38 31 d2 e8 08 c0 ff ff 64 89 2b 48 83 c4 18 5b 5d c3 66 0f
févr. 20 03:48:23 systemd[1]: Started Process Core Dump (PID 68596/UID 0).
févr. 20 03:48:23 systemd-coredump[68597]: Resource limits disable core dumping for process 68595 (test_sharedbook).
févr. 20 03:48:23 systemd-coredump[68597]: [🡕] Process 68595 (test_sharedbook) of user 1000 dumped core.

Some more lines appeared when building outside of the chroot:
Code: [Select]
Stack trace of thread 91257:
#0  0x00007f6b478c5cde __libc_free (libc.so.6 + 0x8bcde)
#1  0x0000559ea490a0e3 n/a (<buildpath>/libvorbis-aotuv-lancer/src/libvorbis-1.3.7/lib/test_sharedbook + 0x10e3)

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #52
Thank you for bringing this up, @Isayama!

Just investigated this and found that it's a bug in the test itself, i.e. not in the library / the patches. In the test code in sharedbook.c there's a mismatched alloc and free which causes the error. The call to free in line 584 of sharedbook.c needs to be changed to _ogg_free to fix this.

I applied the fix in the enzo1982/vorbis-aotuv-lancer repository and also opened a pull request for the official xiph/libvorbis code.

I won't update the patch for this. You can either apply a custom patch or sed call in the prepare section of the packaging script or directly refer to the 6df96d98 commit from enzo1982/vorbis-aotuv-lancer instead of the original package and patch files.

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #53
Custom patch is probably the best way to apply a post-release fix to an AUR or even non-AUR package, and bump the pkgrel.

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #54
Thank you very much @enzo for looking into this so quickly and upstreaming it. I can confirm the build completes successfully after applying your patch.

Regarding this specific AUR package, I would be in favor of directly using your repo as its source since this package pertains to "A fork of libvorbis intended to provide better quality sound at low to medium bitrates, with lancer patches to improve performance", however as a non-development package it would require a 1.3.7 release to be made/tagged (no need to differ from upstream) to use it as a base and then apply the patch on top.
(Arch also has VCS packages, but to make proper use of it I'd need to request a package name change to *-git, although in the long run that might be a better idea...)

That's definitely nitpicking, but can you tag/make a release for 1.3.7 in enzo1982/vorbis-aotuv-lancer?

In any case thanks a lot for responding quickly to this.

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #55
Just pushed the v1.3.7 tag. Simply forgot to do that when I updated the repository for that version.

However, thinking about it, it might not be such a good idea to base the package on my repository after all. I'll likely do a force push when integrating a future libvorbis 1.3.8. This means the three commits after the 1.3.7 tag will go away and be replaced with new commits. Using patch files on top of the 1.3.7 tag will be fine, but don't reference the commit hashes directly.

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #56
Thanks! Well, if it gives you more leeway like that, I've used the upstream tarball and applied your patches on top. As an added bonus it allows to verify the integrity of the sources with the provided signature. We'll see down the road with 1.3.8 how we change it :)

Cheers

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #57
A fre:ac user sent me a sample file today that exhibits severe glitches when decoded with fre:ac, but not with other converters. The first few seconds of the sample are attached and demonstrate the issue.

Investigation revealed that this is caused by a bug (or rather two separate bugs) in the Lancer decoder optimizations. For block->dim == 4 or 8, the mid cut-off points for the iteration are calculated wrongly (with step size 4 instead of 8 ) which causes severe glitches when decoding the sample file.

There also is a bug in the code for block->dim == 2 where the wrong index is used for t in the head and tail loops. This also causes audible glitches, though not nearly as bad as the first issue.

Both issues are fixed in this commit and the patches in the first post of this thread have been updated.

As the issues are already present in the original Lancer patches from 2006, everyone using a Lancer based decoder to convert or play Vorbis files should probably upgrade to a fixed version.

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #58
If anyone is concerned by this I'll look at it and recompile as necessary tomorrow.

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #59
Updated compiles now at Rarewares. :)

 

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #60
Thank you both enzo and john33 for your ongoing great services.

 
SimplePortal 1.0.0 RC1 © 2008-2021