author | David Runge
<dvzrv@archlinux.org> 2022-07-25 16:31:06 UTC |
committer | David Runge
<dvzrv@archlinux.org> 2022-07-25 16:31:06 UTC |
parent | 4cb0571c86f698b14550f0045611b0db3352915c |
PKGBUILD | +147 | -71 |
diff --git a/PKGBUILD b/PKGBUILD index 2a407a3..0333555 100644 --- a/PKGBUILD +++ b/PKGBUILD @@ -1,85 +1,161 @@ # Maintainer: David Runge <dvzrv@archlinux.org> # Contributor: Eric BĂ©langer <eric@archlinux.org> -pkgname=audacity -pkgver=2.4.1 -pkgrel=9 +_name=Audacity +pkgbase=audacity +pkgname=(audacity audacity-docs) +pkgver=3.1.3 +pkgrel=1 epoch=1 pkgdesc="A program that lets you manipulate digital audio waveforms" -arch=('x86_64') +arch=(x86_64) url="https://audacityteam.org" -license=('GPL2' 'CCPL') -groups=('pro-audio') -# upstream hard codes/vendors portaudio/portmidi -# https://github.com/audacity/audacity/issues/522 -depends=('expat' 'gcc-libs' 'gdk-pixbuf2' 'glibc' 'libmad' -'libsoxr' 'soundtouch' 'wxwidgets-gtk3') -makedepends=('alsa-lib' 'cmake' 'ffmpeg4.4' 'flac' 'glib2' 'gtk3' 'jack' 'lame' -'libid3tag' 'libogg' 'libsndfile' 'libvorbis' 'lilv' 'lv2' 'portsmf' 'suil' -'twolame' 'vamp-plugin-sdk') -optdepends=('ffmpeg4.4: additional import/export capabilities') -source=("https://github.com/${pkgname}/${pkgname}/archive/Audacity-${pkgver}.tar.gz" - "${pkgname}-2.4.1-resize_crash.patch::https://github.com/dvzrv/audacity/commit/d7e769040b508aaf15ce7b51cc1a565d41cdb079.patch" - https://github.com/audacity/audacity/commit/9b743cc1.patch - https://github.com/audacity/audacity/commit/55383fcc.patch) -sha512sums=('2f0a3f7e24dce91ae520e285dbb05778b68e0fe37b8ded55ac568b5f8135069951b3986764adc5d0791c165b283a3c19596f1d6f51ba17028e0eb04558c63f25' - '9c111b6d74ff0cd76f5f2db0ce513bf1c5400c41497220c87ea694f5b2b75c1e6bc1a817dd1fb2e81ed5ddcf2c610bb334a091c2cd8f7bae1111a911f47cab4b' - '6c0945adaa2f6ec8afe7c7afd1fda56387cd0df438c7ea1d8103d75c55ecaf432083ad4d2741a4eb6a90cddee45cd3c1f4de80235749a79408bc8824f303c1ac' - '64fa3a78d56e8a44e1315d2d19d6310bbf185eed2fd1b0cdb4bc92338149a51c22e77986ecb1696477f367c459afa3b60638def96ef241cf7d162c82feb40016') +license=(GPL3) +groups=(pro-audio) +makedepends=( + alsa-lib + chrpath + cmake + ffmpeg + flac + gcc-libs + glibc + gdk-pixbuf2 + glib2 + gtk3 + jack + lame + libid3tag + libmad + libogg + libsbsms + libsndfile + libsoxr + libvorbis + lilv + lv2 + portaudio + portmidi + portsmf + python + soundtouch + sqlite + suil + twolame + wxwidgets-gtk3 + vamp-plugin-sdk +) +options=(debug) +source=( + $_name-$pkgver-Source.tar.gz::https://github.com/$pkgbase/$pkgbase/releases/download/Audacity-$pkgver/$pkgbase-$pkgver-source.tar.gz + https://github.com/$pkgbase/$pkgbase/releases/download/Audacity-$pkgver/$pkgbase-manual-$pkgver.tar.gz + $pkgbase-3.1.3-wxbitmap_constructor.patch::https://github.com/audacity/audacity/pull/2776/commits/342c4b588f2f069a2df2157ac166237a54277b3a.patch + $pkgbase-3.1.3-wxwidgets_3.1.6.patch::https://github.com/audacity/audacity/pull/2776/commits/efc11c4ac50ac51cd71d4dcfa84e63b11000c3f5.patch +) +sha512sums=('f3bb9a6cbf90c40d50f47bc296cf677e799fb8beb74e21ea3cd389de35a58ccd7df898f176a9326b682736b5dd9a9cfe56e83f56f2428f8ababb32037397fb53' + '077fcf3b3d1650c7eab62d9e324d13e5b2f14079ab4b0b105bd3689fee1cc3c56936997b8f4b5c3d44b9d003419acb604f4065129a6cfd6b254b5e10a857887f' + '29998229eac80e2b54cf457ebff6a56d8dad30e2b58f42956dea313610bd9d012bfa3ea6546fe520fcd05e45e9a96f1a17bab68fc3254fff56743c20c14c0e92' + '26a8910d0e86f96fd58ac7dfa9da823dee16fb37640632ba5cbc6687666acc628589be6a115435d01be02b898dbfc2774151df92854d6380349365731148736d') +b2sums=('e2f9160b244bef703ddb2808246ab22e499c9c68283b3ff648343c397d5760c08b9761f4c57bcab6bcbe42b0d4ea01ce6234bdf531de588871706ef41e1e841e' + '5f3106193b81210f8fd0fe9c7034ce3f7306e641fa4024f3120726b2f8fba7e9a48719813367ca56df85b84ac141cd3ac850cfcb69d0a1f24e932e24dac1f068' + 'fb33a3b5db4f292578c1c38db1b4122c1c2081d91ed437b78b0357bbea565d347e8c6b40f3989bce1b3cbf4c3513b63f244f3443f463166fc4616485704d148a' + '71d23b62d7d73131cb264141422b340e1a998d432aef0161bf1544efdc07e51f7852559ebcfe15a7df17b974fad1c75872dcb6ada6d311f54ce67df26f530851') prepare() { - mv -v "${pkgname}-Audacity-${pkgver}" "${pkgname}-${pkgver}" - cd "${pkgname}-${pkgver}" - # fix crash on resize: https://bugs.archlinux.org/task/66771 - patch -Np1 -i "../${pkgname}-2.4.1-resize_crash.patch" - # fix build with wxwidgets 3.2 - patch -p1 -i ../9b743cc1.patch - patch -p1 -i ../55383fcc.patch - sed -e 's|3\.1\.\*|3.2.*|' -i configure.ac -i lib-src/lib-widget-extra/configure.ac # Fix wxwidgets 3.2 detection - autoreconf -vfi - cd lib-src/lib-widget-extra - autoreconf -vfi + patch -Np1 -d $_name-$pkgver-Source -i ../$pkgbase-3.1.3-wxbitmap_constructor.patch + patch -Np1 -d $_name-$pkgver-Source -i ../$pkgbase-3.1.3-wxwidgets_3.1.6.patch } build() { - cd "${pkgname}-${pkgver}" - # the cmake setup is still more complicated and error-prone than the - # autotools setup: - # https://github.com/audacity/audacity/issues/519 - # https://github.com/audacity/audacity/issues/520 - # https://github.com/audacity/audacity/issues/521 - PKG_CONFIG_PATH=/usr/lib/ffmpeg4.4/pkgconfig \ - ./configure --prefix="/usr" \ - --with-libsndfile="system" \ - --with-ffmpeg="system" \ - --with-expat="system" \ - --with-lame="system" \ - --with-libsoxr="system" \ - --with-portaudio \ - --with-portmidi \ - --with-libflac \ - --with-libid3tag \ - --with-libsamplerate \ - --with-sbsms \ - --with-soundtouch \ - --with-libtwolame \ - --with-libvorbis \ - --with-lv2 - make + local cmake_options=( + -D CMAKE_BUILD_TYPE=None + -D CMAKE_INSTALL_PREFIX=/usr + -D audacity_conan_enabled=OFF + -D audacity_has_networking=OFF + -D audacity_has_crashreports=OFF + -D audacity_has_updates_check=OFF + -D audacity_has_sentry_reporting=OFF + -D audacity_lib_preference=system + -D audacity_obey_system_dependencies=ON + ) + + cmake "${cmake_options[@]}" -B build -S $_name-$pkgver-Source -Wno-dev + cmake --build build +} + +check() { + ctest --test-dir build --output-on-failure } -package() { - depends+=('libFLAC.so' 'libFLAC++.so' 'libasound.so' 'libgdk-3.so' - 'libglib-2.0.so' 'libgobject-2.0.so' 'libgtk-3.so' 'libid3tag.so' - 'libjack.so' 'liblilv-0.so' 'libogg.so' 'libsndfile.so' 'libsuil-0.so' - 'libtwolame.so' 'libvamp-hostsdk.so' 'libvorbis.so' 'libvorbisenc.so' - 'libvorbisfile.so' 'libportSMF.so') - cd "${pkgname}-${pkgver}" - make DESTDIR="${pkgdir}" install - # install libnyquist plugins, missing since 2.4.0: - # https://bugs.archlinux.org/task/66733 - install -vDm 644 plug-ins/*.ny -t "${pkgdir}/usr/share/${pkgname}/plug-ins" - # install missing *.lsp files for nyquist plugins, missing since 2.4.0: - # https://bugs.archlinux.org/task/66739 - install -vDm 644 nyquist/*.lsp -t "${pkgdir}/usr/share/${pkgname}/nyquist" +package_audacity() { + license+=(BSD) + depends=( + alsa-lib + flac + gcc-libs + glibc + gdk-pixbuf2 + glib2 + gtk3 + jack + lame + libid3tag + libmad + libogg + libsbsms + libsndfile + libsoxr + libvorbis + lilv + portaudio + portmidi + portsmf + python + soundtouch + sqlite + suil + twolame + wxwidgets-gtk3 + vamp-plugin-sdk + ) + depends+=(libFLAC.so libFLAC++.so libasound.so libgdk-3.so + libgdk_pixbuf-2.0.so libglib-2.0.so libgobject-2.0.so libgtk-3.so + libid3tag.so libjack.so liblilv-0.so libogg.so libportaudio.so libportmidi.so + libsbsms.so libsndfile.so libsuil-0.so libtwolame.so libvamp-hostsdk.so + libvorbis.so libvorbisenc.so libvorbisfile.so libportSMF.so) + optdepends=( + 'audacity-docs: for documentation' + 'ffmpeg: for additional import/export capabilities' + ) + + + DESTDIR="$pkgdir" cmake --install build + install -vDm 644 $_name-$pkgver-Source/lib-src/libnyquist/nyquist/license.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE.nyquist" + + # remove unsafe RPATH: https://github.com/audacity/audacity/issues/3289 + ( + cd "$pkgdir/usr/lib/$pkgname" + for _lib in *.so; do + chrpath --delete "$_lib" + chmod 755 "$_lib" + done + ) + ( + cd "$pkgdir/usr/lib/$pkgname/modules" + for _lib in *.so; do + chrpath --delete "$_lib" + chmod 755 "$_lib" + done + ) + # upstream installes a non-compliant script that we don't need: + # https://github.com/audacity/audacity/issues/3290 + rm -frv "$pkgdir/usr/$pkgname" +} + +package_audacity-docs() { + license+=(CCPL) + pkgdesc+=" - documentation" + + install -vdm 755 "$pkgdir/usr/share/doc/$pkgbase/html/" + cp -av help/manual/* "$pkgdir/usr/share/doc/$pkgbase/html/" }