Name libsndfile
Description C library for reading and writing files containing sampled sound
Version 1.2.2-r2
Package Base libsndfile
Homepage https://libsndfile.github.io/libsndfile/
Maintainers ['Natanael Copa <ncopa@alpinelinux.org>']
Contributors ['Sergei Lukin <sergej.lukin@gmail.com>']
Distro-repo https://gitlab.alpinelinux.org/alpine/aports/-/tree/3.22-stable/main/libsndfile
Sources ['CVE-2024-50612.patch', 'https://github.com/libsndfile/libsndfile/releases/download/1.2.2-r2/libsndfile-1.2.2-r2.tar.xz']
Dependencies ['libFLAC.so.12', 'libasound.so.2', 'libc.musl-x86_64.so.1', 'libmp3lame.so.0', 'libmpg123.so.0', 'libogg.so.0', 'libopus.so.0', 'libvorbis.so.0', 'libvorbisenc.so.2']
Optional-Dependencies []
Build-Dependencies ['$depends_dev', 'alsa-lib-dev', 'cmake', 'flac-dev', 'lame-dev', 'libogg-dev', 'libvorbis-dev', 'linux-headers', 'mpg123-dev', 'python3', 'samurai']
Provides ['so:libsndfile.so.1=1.0.37', 'cmd:sndfile-cmp=1.2.2-r2', 'cmd:sndfile-concat=1.2.2-r2', 'cmd:sndfile-convert=1.2.2-r2', 'cmd:sndfile-deinterleave=1.2.2-r2', 'cmd:sndfile-info=1.2.2-r2', 'cmd:sndfile-interleave=1.2.2-r2', 'cmd:sndfile-metadata-get=1.2.2-r2', 'cmd:sndfile-metadata-set=1.2.2-r2', 'cmd:sndfile-play=1.2.2-r2', 'cmd:sndfile-salvage=1.2.2-r2']
Builddate 01-01-2025 13:10:35
Architecture x86_64
Distro-Version v3.22
Licenses ['LGPL-2.1-or-later']
Hash Q1dO92M+wOZrVRdXuzT9p6JL7Zj5E=
# Contributor: Sergei Lukin <sergej.lukin@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libsndfile
pkgver=1.2.2
pkgrel=2
pkgdesc="C library for reading and writing files containing sampled sound"
url="https://libsndfile.github.io/libsndfile/"
arch="all"
license="LGPL-2.1-or-later"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
depends_dev="opus-dev"
makedepends="
	$depends_dev
	alsa-lib-dev
	cmake
	flac-dev
	lame-dev
	libogg-dev
	libvorbis-dev
	linux-headers
	mpg123-dev
	python3
	samurai
	"
source="https://github.com/libsndfile/libsndfile/releases/download/$pkgver/libsndfile-$pkgver.tar.xz
	CVE-2024-50612.patch
	"

# arm: sporadic testsuite failures
# s390x: broken opus support but opus is required to make
#        external libraries work at all (all libraries or none).
#        See: https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/12659)
case $CARCH in
arm*)   options="!check" ;; # sporadic testsuite failures
s390x*) options="!check" ;; # broken opus support
esac

# secfixes:
#   1.2.2-r2:
#     - CVE-2024-50612
#   1.0.28-r8:
#     - CVE-2019-3832
#     - CVE-2018-19758
#   1.0.28-r6:
#     - CVE-2017-17456
#     - CVE-2017-17457
#     - CVE-2018-19661
#     - CVE-2018-19662
#   1.0.28-r4:
#     - CVE-2018-13139
#   1.0.28-r2:
#     - CVE-2017-12562
#   1.0.28-r0:
#     - CVE-2017-7585
#     - CVE-2017-7741
#     - CVE-2017-7742
#   1.0.28-r1:
#     - CVE-2017-8361
#     - CVE-2017-8362
#     - CVE-2017-8363
#     - CVE-2017-8365

build() {
	CFLAGS="$CFLAGS -flto=auto" \
	cmake -B build-shared -G Ninja \
		-DBUILD_SHARED_LIBS=ON \
		-DCMAKE_BUILD_TYPE=MinSizeRel \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DBUILD_TESTING=OFF
	cmake --build build-shared

	cmake -B build-static -G Ninja \
		-DBUILD_SHARED_LIBS=OFF \
		-DCMAKE_BUILD_TYPE=MinSizeRel \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DBUILD_TESTING="$(want_check && echo ON || echo OFF)"
	cmake --build build-static
}

check() {
	cd build-static
	ctest
}

package() {
	DESTDIR="$pkgdir" cmake --install build-static
	DESTDIR="$pkgdir" cmake --install build-shared
}

sha512sums="
a6e3ea3ac5d91befaa99f6a31a3fac44e7b7c11f1de4698167317a461d5a19a2651d47486a920b34400f18367b4f6173bf0c1c9ba80eb682cece1b5beee352a0  libsndfile-1.2.2.tar.xz
ea1c0ec736845d7c27e35bfd79610e9f4ffb094841078c66c6610f826fee7b435f02a4ed02fec1a950360369a789410b1986181eb3bf3264cf041d2c8b963928  CVE-2024-50612.patch
"