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 93175 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.

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #61
First of all I wish to thank the OP for keeping aotuv and lancer alive. I've stumbled here after a quite long search.

How hard would it be to "create" a static build of ffmpeg with this version of libvorbis? Sorry for the probably naive question.

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #62
Alternatively, does anyone have a oggenc optimized build for Linux? I mean the binary itself. I don't have any idea about how to build something and the binary linked to in the wiki gives an error (something to do about locale).

(The only one that doesn't lead to a dead link from the wiki, btw...)

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #63
Alternatively, does anyone have a oggenc optimized build for Linux? I mean the binary itself. I don't have any idea about how to build something and the binary linked to in the wiki gives an error (something to do about locale).

(The only one that doesn't lead to a dead link from the wiki, btw...)

https://formulae.brew.sh/formula/vorbis-tools

two single-line commands and you shall get what you want, the latest version for your installed distro, within a minute.

hope this helps.



Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #66
alternatively:
http://archive.ubuntu.com/ubuntu/pool/universe/v/vorbis-tools/?C=M;O=D
Unless I'm missing something, both of your links point to regular builds, not Aotuv/Lancer ones.

Yes they're the normal ones. Want the Linux AoTuv build? Not the latest v5 but v4.51 aoTuV.

Here it is: https://file.io/iUsab9GxBmNi

hydrogenaud.io blurb about this one:
oggenc aoTuV beta 4.51 and libogg 1.1.3 (Static GCC 4 compile) with impulse_trigger_profile
This static GCC 4 binary was compiled by QuantumKnot.

Hope this helps!

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #67
oggenc aoTuV beta 4.51 and libogg 1.1.3 (Static GCC 4 compile) with impulse_trigger_profile
This static GCC 4 binary was compiled by QuantumKnot.

Hope this helps!
It's better than nothing and I thank you for that. Let's hope some kind soul that knows how to do it can bring an updated build with latest tunings+lancer. At least it would be useful to have it working in the wiki too.

It actually states that the file at that link has been deleted. Which underlines the sad state of Linux binaries for aotuv tunings. :-(

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #68
Is it on freac?
Only in the continuous builds for Linux as of now. It will be included with fre:ac 1.1.3.

You can use the Rarewares builds with fre:ac 1.1.2b, though. To do that, replace both, Vorbis.dll and VorbisEnc.dll in fre:ac's codecs folder with the DLL from Rarewares (i.e. copy the libvorbis.dll to the codecs folder, then change its name to Vorbis.dll, then do the same again changing the name to VorbisEnc.dll, so you'll have two copies of the new DLL as Vorbis.dll and VorbisEnc.dll).
Oh, maybe I've found a solution to my problem. Are you saying that the AppImage for fre:ac includes by default aotuv+lancer when selecting the ogg encoder?


Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #70
It says here that it applies patches: https://github.com/enzo1982/freac/blob/258e97ed6ed41c39fa9ddb8baa52b291f58f0676/tools/build-codecs#L221

So yes, it seems those patches are included in the fre:ac builds.
Ok, that's great. Changelog confirms it too.

I still think it would be good to have some updated binaries to link from the Wiki but, for now, I'm set. Thanks!

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #71
FWIW, clang 15 change impacts patches -

"The -Wint-conversion warning diagnostic for implicit int <-> pointer conversions now defaults to an error in all C language modes. It may be downgraded to a warning with -Wno-error=int-conversion, or disabled entirely with -Wno-int-conversion."

https://releases.llvm.org/15.0.0/tools/clang/docs/ReleaseNotes.html

Code: [Select]
xmmlib.c:127:9: error: incompatible integer to pointer conversion assigning to 'void *' from 'size_t' (aka 'unsigned long') [-Wint-conversion]
        p2[-1] = size;
               ^ ~~~~
2 warnings and 1 error generated.
*** [xmmlib.lo] Error code 1

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #72
oggenc aoTuV beta 4.51 and libogg 1.1.3 (Static GCC 4 compile) with impulse_trigger_profile
This static GCC 4 binary was compiled by QuantumKnot.

Hope this helps!
It actually states that the file at that link has been deleted. Which underlines the sad state of Linux binaries for aotuv tunings. :-(

Uh oh, pretty late to the party, but I just noticed your edit. That delete wasn't actually from the source, but from that transfer I shared which expires after a certain amount of downloads ;-;

I have pm'ed you a link which should help you download that file.

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #73
Quote
Oggenc2.88 using libVorbis v1.3.7 - aoTuVb6.03 (Lancer Builds)
2021-05-11

Dear @john33, do you think it's time to update this build on Rarewares, given the posts in this thread?
• We can do better about lossy music: Opus complexity & qAAC dependence on Apple is a departure from Vorbis & Musepack breakthroughs
• Clipping-free MP3 encoding for vintage gear: SoX to 44.1 kHz → LoudMax -1 dB ISP → ADClip8 → Smart dither 16 bit → Lame3995o -Q1
• Plz, update WavPack hybrid & FSLAC

Re: Vorbis 1.3.7 aoTuV and Lancer patches

Reply #74
Why?