diff --git a/srcpkgs/audacity/patches/musl-pow10-name-clash.patch b/srcpkgs/audacity/patches/musl-pow10-name-clash.patch new file mode 100644 index 00000000000000..ed507230e9b1d4 --- /dev/null +++ b/srcpkgs/audacity/patches/musl-pow10-name-clash.patch @@ -0,0 +1,36 @@ +# audacity's pow10() clashes with musl's pow10() + +--- a/src/uicomponents/components/internal/numeric/beatsformatter.cpp ++++ b/src/uicomponents/components/internal/numeric/beatsformatter.cpp +@@ -10,7 +10,7 @@ + + using namespace au::uicomponents; + +-static constexpr size_t pow10(int power) ++static constexpr size_t audacity_pow10(int power) + { + size_t result = 1; + for (int i = 0; i < power; ++i) { +@@ -35,8 +35,8 @@ + + static constexpr std::array MIN_DIGITS { 3, 2, 2 }; + static constexpr std::array UPPER_BOUNDS { +- pow10(MIN_DIGITS[0] - 1) + 1, pow10(MIN_DIGITS[1] - 1) + 1, +- pow10(MIN_DIGITS[2] - 1) + 1 ++ audacity_pow10(MIN_DIGITS[0] - 1) + 1, audacity_pow10(MIN_DIGITS[1] - 1) + 1, ++ audacity_pow10(MIN_DIGITS[2] - 1) + 1 + }; + + static QString barString() +@@ -194,9 +194,9 @@ + const auto digitsCount = m_fields[fieldIndex].digits; + + // Format always allows at least two digits +- const auto lowerRange = digitsCount > MIN_DIGITS[fieldIndex] ? pow10(digitsCount - 1) : 0; ++ const auto lowerRange = digitsCount > MIN_DIGITS[fieldIndex] ? audacity_pow10(digitsCount - 1) : 0; + +- const auto upperRange = pow10(digitsCount); ++ const auto upperRange = audacity_pow10(digitsCount); + + return value >= int(lowerRange) && value < int(upperRange); + } diff --git a/srcpkgs/audacity/patches/pffft-simd-arch-gate.patch b/srcpkgs/audacity/patches/pffft-simd-arch-gate.patch new file mode 100644 index 00000000000000..b61c5b64a39ffc --- /dev/null +++ b/srcpkgs/audacity/patches/pffft-simd-arch-gate.patch @@ -0,0 +1,15 @@ +# Fix armv6l/armv7l build failure +# pffft.c is always compiled with its SIMD code path enabled. +# armv6l/armv7l have no NEON guarantee, so this fails to compile there. + +--- a/src/au3wrap/thirdparty/pffft/CMakeLists.txt ++++ b/src/au3wrap/thirdparty/pffft/CMakeLists.txt +@@ -15,3 +15,8 @@ + + target_sources( ${TARGET} PRIVATE ${SOURCES} ) + target_include_directories( ${TARGET} PUBLIC ${INCLUDES} ) ++ ++if( CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|armv6l|armv7l)$" ) ++ # No NEON guarantee on 32-bit ARM; fall back to the portable scalar path. ++ target_compile_definitions( ${TARGET} PRIVATE PFFFT_SIMD_DISABLE ) ++endif() diff --git a/srcpkgs/audacity/patches/soxr-simd32-arch-gate.patch b/srcpkgs/audacity/patches/soxr-simd32-arch-gate.patch new file mode 100644 index 00000000000000..b6b6dae7bda152 --- /dev/null +++ b/srcpkgs/audacity/patches/soxr-simd32-arch-gate.patch @@ -0,0 +1,23 @@ +# These three source files cause build failures on i686 and armv6l. +# WITH_CR32S enables soxr's CR32S SIMD kernels, but is always OFF. + +--- a/src/au3wrap/thirdparty/soxr/CMakeLists.txt ++++ b/src/au3wrap/thirdparty/soxr/CMakeLists.txt +@@ -8,17 +8,14 @@ + list( APPEND SOURCES + PRIVATE + ${TARGET_ROOT}/src/cr.c + ${TARGET_ROOT}/src/cr32.c +- ${TARGET_ROOT}/src/cr32s.c + ${TARGET_ROOT}/src/cr64.c + ${TARGET_ROOT}/src/data-io.c + ${TARGET_ROOT}/src/dbesi0.c + ${TARGET_ROOT}/src/fft4g.c + ${TARGET_ROOT}/src/fft4g32.c + ${TARGET_ROOT}/src/fft4g64.c + ${TARGET_ROOT}/src/filter.c +- ${TARGET_ROOT}/src/pffft32s.c + ${TARGET_ROOT}/src/soxr.c +- ${TARGET_ROOT}/src/util32s.c + ${TARGET_ROOT}/src/vr32.c + ) diff --git a/srcpkgs/audacity/template b/srcpkgs/audacity/template index 013fe8dc86044f..0f4e0472bf4653 100644 --- a/srcpkgs/audacity/template +++ b/srcpkgs/audacity/template @@ -1,48 +1,57 @@ # Template file for 'audacity' pkgname=audacity -version=3.7.8 -revision=2 +version=4.0.0 +revision=1 build_style=cmake -build_helper="cmake-wxWidgets-gtk3 qemu" -configure_args="-Daudacity_use_ffmpeg=loaded -Daudacity_lib_preference=system - -Daudacity_obey_system_dependencies=ON -Daudacity_conan_enabled=OFF - -Daudacity_use_portsmf=local -Daudacity_use_sbsms=local - -Daudacity_has_vst3=OFF -Daudacity_has_crashreports=OFF - -Daudacity_has_networking=OFF -Daudacity_has_sentry_reporting=OFF - -Daudacity_has_updates_check=OFF -DAUDACITY_BUILD_LEVEL=2" -hostmakedepends="pkg-config gettext python3" -makedepends="wxWidgets-gtk3-devel gtk+3-devel expat-devel lame-devel - libsoxr-devel portaudio-devel sqlite-devel ffmpeg6-devel - libid3tag-devel libmad-devel vamp-plugin-sdk-devel libogg-devel - libvorbis-devel libflac-devel lilv-devel lv2 serd-devel sord-devel - sratom-devel suil-devel portmidi-devel soundtouch-devel twolame-devel - zlib-devel jack-devel wavpack-devel libsndfile-devel - opusfile-devel rapidjson" -depends="desktop-file-utils hicolor-icon-theme" +configure_args="-DEXTDEPS_OVERRIDE_ALL=SYSTEM -DMUSE_ENABLE_UNIT_TESTS=OFF + -DMUSE_MODULE_UPDATE=OFF -DAU4_BUILD_MODE=release -DQT_HOST_PATH=/usr" +hostmakedepends="pkg-config gettext git qt6-declarative-host-tools qt6-tools qt6-shadertools" +makedepends="pugixml-devel utfcpp wxWidgets-gtk3-devel gtk+3-devel expat-devel lame-devel + libsoxr-devel portaudio-devel sqlite-devel libid3tag-devel vamp-plugin-sdk-devel libogg-devel + libvorbis-devel libflac-devel portmidi-devel soundtouch-devel twolame-devel zlib-devel + wavpack-devel libsndfile-devel opusfile-devel opus-devel mpg123-devel rapidjson libpng-devel + freetype-devel harfbuzz-devel fdk-aac-devel libopusenc-devel qt6-base-devel + qt6-base-private-devel qt6-declarative-devel qt6-declarative-private-devel qt6-svg-devel + qt6-qt5compat-devel qt6-networkauth-devel qt6-shadertools-devel qt6-scxml-devel qt6-tools-devel" +depends="desktop-file-utils hicolor-icon-theme qt6-svg qt6-qt5compat qt6-networkauth" short_desc="Graphical cross-platform audio editor" -maintainer="Orphaned " +maintainer="Aryo Nazaradeh " license="GPL-2.0-or-later, GPL-3.0-or-later, CC-BY-3.0" homepage="https://www.audacityteam.org" changelog="https://github.com/audacity/audacity/raw/master/CHANGELOG.txt" -distfiles="https://github.com/audacity/audacity/releases/download/Audacity-${version}/audacity-sources-${version}.tar.gz" -checksum=75f2b1d9c7d45faaaf193844d5fee796694deac7bf4932ca520563ab4fb74c27 +distfiles="https://github.com/audacity/audacity/releases/download/Audacity-${version}/audacity-sources-${version}.tar.xz" +checksum=b29076f99fa5d2f522d001db472a896db81f9effefd15948c940571753858058 + +CXXFLAGS="-D_FILE_OFFSET_BITS=64" case "$XBPS_TARGET_MACHINE" in i686*) CFLAGS="-msse2";; + armv6l*|armv7l*) CFLAGS="-DPFFFT_SIMD_DISABLE";; esac -CXXFLAGS="-D_FILE_OFFSET_BITS=64" +if [ -n "$CROSS_BUILD" ]; then + # lrelease is a target-arch binary and can't run on the host. + configure_args+=" -DAU_RUN_LRELEASE=OFF" +fi pre_configure() { + # A pre-populated cache is requred or configure fails trying to fetch tarballs. + export EXTDEPS_CACHE="${wrksrc}/offline-deps" + # muse_deps hardcodes find_program(NAMES wx-config), but Void ships it as wx-config-gtk3. + local _wxconfig_target if [ "$CROSS_BUILD" ]; then - cat > "${XBPS_WRAPPERDIR}/image-compiler" <<-EOF - #!/bin/sh - /usr/bin/qemu-${XBPS_TARGET_QEMU_MACHINE}-static ${wrksrc}/${build_wrksrc}/Release/bin/image-compiler "\$@" - EOF - chmod 0755 "${XBPS_WRAPPERDIR}/image-compiler" + _wxconfig_target="${XBPS_WRAPPERDIR}/wx-config-gtk3" + else + _wxconfig_target="/usr/bin/wx-config-gtk3" fi + mkdir -p "${wrksrc}/.wxconfig-shim" + ln -sf "${_wxconfig_target}" "${wrksrc}/.wxconfig-shim/wx-config" + export PATH="${wrksrc}/.wxconfig-shim:${PATH}" } post_install() { - rm ${DESTDIR}/usr/share/doc/audacity/LICENSE.txt + # "Portable" is added to the desktop name even if it is compiled from source. + # Get rid of that in this packaged version's desktop file. + sed -i 's/^Name=\(.*\) Portable$/Name=\1/' "${DESTDIR}/usr/share/applications/org.audacityteam.Audacity.desktop" + vlicense LICENSE.txt } diff --git a/srcpkgs/audacity3/template b/srcpkgs/audacity3/template new file mode 100644 index 00000000000000..2dc7fc1cbf4485 --- /dev/null +++ b/srcpkgs/audacity3/template @@ -0,0 +1,65 @@ +# Template file for 'audacity3' +pkgname=audacity3 +version=3.7.9 +revision=1 +build_style=cmake +build_helper="cmake-wxWidgets-gtk3 qemu" +configure_args="-Daudacity_use_ffmpeg=loaded -Daudacity_lib_preference=system + -Daudacity_obey_system_dependencies=ON -Daudacity_conan_enabled=OFF + -Daudacity_use_portsmf=local -Daudacity_use_sbsms=local + -Daudacity_has_vst3=OFF -Daudacity_has_crashreports=OFF + -Daudacity_has_networking=OFF -Daudacity_has_sentry_reporting=OFF + -Daudacity_has_updates_check=OFF -DAUDACITY_BUILD_LEVEL=2" +hostmakedepends="pkg-config gettext python3" +makedepends="wxWidgets-gtk3-devel gtk+3-devel expat-devel lame-devel + libsoxr-devel portaudio-devel sqlite-devel ffmpeg6-devel + libid3tag-devel libmad-devel vamp-plugin-sdk-devel libogg-devel + libvorbis-devel libflac-devel lilv-devel lv2 serd-devel sord-devel + sratom-devel suil-devel portmidi-devel soundtouch-devel twolame-devel + zlib-devel jack-devel wavpack-devel libsndfile-devel + opusfile-devel rapidjson" +depends="desktop-file-utils hicolor-icon-theme" +short_desc="Classic version of the graphical cross-platform audio editor" +maintainer="Aryo Nazaradeh " +license="GPL-2.0-or-later, GPL-3.0-or-later, CC-BY-3.0" +homepage="https://www.audacityteam.org" +changelog="https://github.com/audacity/audacity/raw/master/CHANGELOG.txt" +distfiles="https://github.com/audacity/audacity/releases/download/Audacity-${version}/audacity-sources-${version}.tar.gz" +checksum=9d224ebe4d5c4e38e3a2142ef6d36198d5c40db0e32329d7fbc547cce7422682 + +case "$XBPS_TARGET_MACHINE" in + i686*) CFLAGS="-msse2";; +esac + +CXXFLAGS="-D_FILE_OFFSET_BITS=64" + +pre_configure() { + if [ "$CROSS_BUILD" ]; then + cat > "${XBPS_WRAPPERDIR}/image-compiler" <<-EOF + #!/bin/sh + /usr/bin/qemu-${XBPS_TARGET_QEMU_MACHINE}-static ${wrksrc}/${build_wrksrc}/Release/bin/image-compiler "\$@" + EOF + chmod 0755 "${XBPS_WRAPPERDIR}/image-compiler" + fi +} + +post_install() { + rm ${DESTDIR}/usr/share/doc/audacity/LICENSE.txt + # Rename the desktop icon, desktop name, binary, and mime-info to not collide with Audacity 4. + mv "${DESTDIR}/usr/bin/audacity" "${DESTDIR}/usr/bin/audacity3" + mv "${DESTDIR}/usr/share/mime/packages/audacity.xml" "${DESTDIR}/usr/share/mime/packages/audacity3.xml" + mv "${DESTDIR}/usr/share/icons/hicolor/16x16/audacity.png" \ + "${DESTDIR}/usr/share/icons/hicolor/16x16/audacity3.png" + mv "${DESTDIR}/usr/share/icons/hicolor/22x22/audacity.png" \ + "${DESTDIR}/usr/share/icons/hicolor/22x22/audacity3.png" + mv "${DESTDIR}/usr/share/icons/hicolor/24x24/audacity.png" \ + "${DESTDIR}/usr/share/icons/hicolor/24x24/audacity3.png" + mv "${DESTDIR}/usr/share/icons/hicolor/32x32/audacity.png" \ + "${DESTDIR}/usr/share/icons/hicolor/32x32/audacity3.png" + mv "${DESTDIR}/usr/share/icons/hicolor/48x48/audacity.png" \ + "${DESTDIR}/usr/share/icons/hicolor/48x48/audacity3.png" + mv "${DESTDIR}/usr/share/icons/hicolor/scalable/apps/audacity.svg" \ + "${DESTDIR}/usr/share/icons/hicolor/scalable/apps/audacity3.svg" + mv "${DESTDIR}/usr/share/applications/audacity.desktop" "${DESTDIR}/usr/share/applications/audacity3.desktop" + sed -i 's/^Name=Audacity$/Name=Audacity 3/; s/^Icon=audacity$/Icon=audacity3/; s/Exec=env GDK_BACKEND=x11 UBUNTU_MENUPROXY=0 audacity %F/Exec=env GDK_BACKEND=x11 UBUNTU_MENUPROXY=0 audacity3 %F/' "${DESTDIR}/usr/share/applications/audacity3.desktop" +} diff --git a/srcpkgs/pugixml/patches/patch-src_pugiconfig.patch b/srcpkgs/pugixml/patches/patch-src_pugiconfig.patch index a04344fbfa65b7..1c7793598d5cb3 100644 --- a/srcpkgs/pugixml/patches/patch-src_pugiconfig.patch +++ b/srcpkgs/pugixml/patches/patch-src_pugiconfig.patch @@ -1,11 +1,11 @@ ---- a/src/pugiconfig.hpp 2015-08-18 17:07:06 UTC -+++ b/src/pugiconfig.hpp -@@ -41,7 +41,7 @@ +--- a/src/pugiconfig.hpp 2025-01-10 10:15:31.000000000 -0800 ++++ b/src/pugiconfig.hpp 2026-09-15 17:56:02.888563275 -0700 +@@ -47,7 +47,7 @@ // #define PUGIXML_HEADER_ONLY - // Uncomment this to enable long long support + // Uncomment this to enable long long support (usually enabled automatically) -// #define PUGIXML_HAS_LONG_LONG +#define PUGIXML_HAS_LONG_LONG - #endif - + // Uncomment this to enable support for std::string_view (usually enabled automatically) + // #define PUGIXML_HAS_STRING_VIEW diff --git a/srcpkgs/pugixml/template b/srcpkgs/pugixml/template index 00a4b4cbc4bd5b..b9f928e69ff968 100644 --- a/srcpkgs/pugixml/template +++ b/srcpkgs/pugixml/template @@ -1,6 +1,6 @@ # Template file for 'pugixml' pkgname=pugixml -version=1.14 +version=1.15 revision=1 build_style=cmake configure_args="-DBUILD_SHARED_LIBS=On" @@ -10,7 +10,7 @@ license="MIT" homepage="https://pugixml.org/" changelog="https://github.com/zeux/pugixml/releases" distfiles="https://github.com/zeux/pugixml/releases/download/v${version}/pugixml-${version}.tar.gz" -checksum=2f10e276870c64b1db6809050a75e11a897a8d7456c4be5c6b2e35a11168a015 +checksum=655ade57fa703fb421c2eb9a0113b5064bddb145d415dd1f88c79353d90d511a post_install() { tail -22 readme.txt > LICENSE