new blfs: media-libs/libvorbis-1.3.7

This commit is contained in:
2026-01-12 02:36:50 -05:00
parent 13396fdd1d
commit e4b29362a6
5 changed files with 184 additions and 0 deletions

View File

@@ -0,0 +1,73 @@
pkgname=libvorbis
pkgver=1.3.7
pkgdesc='Reference implementation of the Ogg Vorbis audio format'
arch=(x86_64)
homepage=https://www.xiph.org/vorbis/
license=(BSD-3-Clause)
depends=(
glibc
libogg
)
_patches=("libvorbis-1.3.7-macro-wstrict-prototypes.patch"
"libvorbis-1.3.7-mismatched-free.patch"
"libvorbis-1.3.7-psy-bounds.patch"
"libvorbis-1.3.7-ubsan-shift.patch"
)
_patch_sums=("a13d1c323b811ba62b96f10232d1332e3ef5d90e7f4e02ff28de74a264c00bc660475c712fd3f90e1234d60fe13bcf3879442b5bac26cde8ff31bc09854c1ff7"
"ddf29b10a081ce13f3e430565437cc96b306c8d2231fa3996e27657e992ad302768044847beeb39d13a207b35d82abf8fb1fa13e38371fda8ded927c536e9920"
"6238266c296c647df282c2767b09512a572e8e0a1a2bb001aeaea66617f742f867b91c930b202345e0a27c294f0b06fc345d2d360ef2bec7a12907414c264a03"
"b008d3cf8509ea8fbb0a2bed306da6310ff58561c98d33633ccba28628e40f371b8e2e73f59ec6736af1ef5f4480e58157f8b6a8d303b86ff3f2b4dd67ca43c2"
)
sources=("${pkgname}-${pkgver}.tar.xz"
${_patches[@]}
)
urls=("https://downloads.xiph.org/releases/vorbis/${sources[0]}"
${_patches[@]}
)
sha512sums=("bbf5f11f623d959b3ba98d6b52806521b0b918b59b867f0658c153ea1013293364eead4987e9e71f8798021379310860a2e548fcf89d10caf23d45e41aba45cd"
${_patch_sums[@]}
)
src_prepare() {
tar -xf ${distdir}/${sources[0]} --strip-components=1
for _patch in ${_patches[@]}; do
patch -p1 -i ${filedir}/${_patch}
done
sed -i \
-e '/CFLAGS/s:-O20::' \
-e '/CFLAGS/s:-mcpu=750::' \
-e '/CFLAGS/s:-mno-ieee-fp::' \
configure.ac
find -name 'Makefile.am' \
-exec sed -i \
-e 's:$(datadir)/doc/$(PACKAGE)-$(VERSION):@docdir@/html:' \
{} +
autoreconf -fi
}
src_build() {
local config_args=(
--prefix=/usr
--docdir=/usr/share/doc/${pkgname}-${pkgver}
--enable-shared
--disable-static
--enable-oggtest
)
./configure "${config_args[@]}"
make
}
src_check() {
make -j1 check
}
src_install() {
make DESTDIR="${pkgdir}" install
install -Dm 644 COPYING -t "${pkgdir}/usr/share/licenses/${pkgname}"
}
# vim:ft=sh syn=sh et sw=2:

View File

@@ -0,0 +1,20 @@
https://gitlab.xiph.org/xiph/vorbis/-/merge_requests/25
From 63132c52ee4694171f663ecf536ab1236b6c46ba Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Wed, 23 Nov 2022 03:27:44 +0000
Subject: [PATCH] vorbis.m4: fix -Wstrict-prototypes
Signed-off-by: Sam James <sam@gentoo.org>
--- a/vorbis.m4
+++ b/vorbis.m4
@@ -67,7 +67,7 @@ dnl
#include <vorbis/codec.h>
#include <vorbis/vorbisenc.h>
-int main ()
+int main (void)
{
vorbis_block vb;
vorbis_dsp_state vd;
GitLab

View File

@@ -0,0 +1,29 @@
https://gitlab.xiph.org/xiph/vorbis/-/commit/4e1155cc77a2c672f3dd18f9a32dbf1404693289
From 4e1155cc77a2c672f3dd18f9a32dbf1404693289 Mon Sep 17 00:00:00 2001
From: Robert Kausch <robert.kausch@freac.org>
Date: Sat, 20 Feb 2021 16:22:02 +0100
Subject: [PATCH] Fix tests run with make check when using alternative
allocators.
The call to free in line 584 of sharedbook.c mismatches
the _ogg_calloc call used to allocated that data in line 216.
This causes make check to fail when alternative allocators
are used, e.g. the xmm_malloc family of allocators used with
the Lancer optimizations.
Signed-off-by: Ralph Giles <giles@thaumas.net>
--- a/lib/sharedbook.c
+++ b/lib/sharedbook.c
@@ -581,7 +581,7 @@ void run_test(static_codebook *b,float *comp){
exit(1);
}
}
- free(out);
+ _ogg_free(out);
}
int main(){
--
GitLab

View File

@@ -0,0 +1,35 @@
https://gitlab.xiph.org/xiph/vorbis/-/commit/315da9cc9d30484c802b2e2ea150df39e060e2b9
From 315da9cc9d30484c802b2e2ea150df39e060e2b9 Mon Sep 17 00:00:00 2001
From: "Timothy B. Terriberry" <tterribe@xiph.org>
Date: Wed, 5 Feb 2025 08:11:19 -0800
Subject: [PATCH] Fix the half-octave bounds check in _vp_psy_init
The existing code ensured that halfoc would not exceed P_BANDS-1,
but the interpolation used index P_BANDS (albeit with a weight
of 0) when this bound was actually hit.
Add an extra clamp on the integer index to avoid this.
Thanks to Paul Adenot for the report.
Fixes #2353
---
lib/psy.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/lib/psy.c b/lib/psy.c
index 036b094a..96213c42 100644
--- a/lib/psy.c
+++ b/lib/psy.c
@@ -339,6 +339,10 @@ void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi,
if(halfoc<0)halfoc=0;
if(halfoc>=P_BANDS-1)halfoc=P_BANDS-1;
inthalfoc=(int)halfoc;
+ /*If we hit the P_BANDS-1 clamp above, inthalfoc+1 will be out of bounds,
+ even though it will have an interpolation weight of 0.
+ Shift the interval so we don't read past the end of the array.*/
+ if(inthalfoc>=P_BANDS-2)inthalfoc=P_BANDS-2;
del=halfoc-inthalfoc;
for(j=0;j<P_NOISECURVES;j++)
--
GitLab

View File

@@ -0,0 +1,27 @@
https://gitlab.xiph.org/xiph/vorbis/-/commit/bb4047de4c05712bf1fd49b9584c360b8e4e0adf
From bb4047de4c05712bf1fd49b9584c360b8e4e0adf Mon Sep 17 00:00:00 2001
From: Tristan Matthews <tmatth@videolan.org>
Date: Fri, 14 Jun 2024 11:39:26 -0400
Subject: [PATCH] sharedbook: cast to unsigned to avoid undefined shift
Fixes #2351
---
lib/sharedbook.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/sharedbook.c b/lib/sharedbook.c
index 444f42b5..7a98b479 100644
--- a/lib/sharedbook.c
+++ b/lib/sharedbook.c
@@ -422,7 +422,7 @@ int vorbis_book_init_decode(codebook *c,const static_codebook *s){
long lo=0,hi=0;
for(i=0;i<tabn;i++){
- ogg_uint32_t word=i<<(32-c->dec_firsttablen);
+ ogg_uint32_t word=((ogg_uint32_t)i<<(32-c->dec_firsttablen));
if(c->dec_firsttable[bitreverse(word)]==0){
while((lo+1)<n && c->codelist[lo+1]<=word)lo++;
while( hi<n && word>=(c->codelist[hi]&mask))hi++;
--
GitLab