diff --git a/audio/rsgain/Makefile b/audio/rsgain/Makefile index 77f2e7f5f933..0c4d8bd4aa04 100644 --- a/audio/rsgain/Makefile +++ b/audio/rsgain/Makefile @@ -1,34 +1,35 @@ PORTNAME= rsgain DISTVERSION= 3.5 +PORTREVISION= 1 DISTVERSIONSUFFIX= -source CATEGORIES= audio MASTER_SITES= https://github.com/complexlogic/rsgain/releases/download/v${DISTVERSION}/ MAINTAINER= jhale@FreeBSD.org COMMENT= ReplayGain 2.0 tagging utility WWW= https://github.com/complexlogic/rsgain LICENSE= BSD2CLAUSE LICENSE_FILE= ${WRKSRC}/LICENSE LIB_DEPENDS= libtag.so:audio/taglib \ libfmt.so:devel/libfmt \ libinih.so:devel/inih \ libavcodec.so:multimedia/ffmpeg USES= cmake compiler:c++2b-lang ebur128 pkgconfig tar:xz CMAKE_ARGS= -DMAXPROGBARWIDTH=80 CMAKE_ON= INSTALL_MANPAGE WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION} OPTIONS_DEFINE= DOCS UNICODE OPTIONS_DEFAULT= UNICODE UNICODE_CMAKE_BOOL= UCHECKMARKS post-install: ${MKDIR} ${STAGEDIR}${DOCSDIR} ${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR} .include diff --git a/audio/rsgain/files/patch-src_scan.cpp b/audio/rsgain/files/patch-src_scan.cpp new file mode 100644 index 000000000000..3d9dbb23b23f --- /dev/null +++ b/audio/rsgain/files/patch-src_scan.cpp @@ -0,0 +1,16 @@ +Fix a segfault when calculating album loudness. + +PR: 278838 +Regressed by: https://github.com/complexlogic/rsgain/commit/63e87a4f7d3b5c816eab630fba41ba9a63b82519 + +--- src/scan.cpp.orig 2024-02-25 17:47:20 UTC ++++ src/scan.cpp +@@ -639,7 +639,7 @@ void ScanJob::calculate_album_loudness() + std::vector states(nb_states); + for (const Track &track : tracks) + if (track.result.track_loudness != -HUGE_VAL) +- states.emplace_back(track.ebur128.get()); ++ states[(size_t) (&track - &tracks[0])] = track.ebur128.get(); + + if (ebur128_loudness_global_multiple(states.data(), states.size(), &album_loudness) != EBUR128_SUCCESS) + album_loudness = config.target_loudness;