1

Topic: Possibility to mark audacity as incompatible and use tenacity instead

Tenacity is a libre fork of audacity maintained by community. It has an anti-LLM policy and no telemetry.

wxgtk3.2 PKGBUILD:

# Maintainer (Arch): Eric Bélanger <eric@archlinux.org>
# Maintainer: André Silva <emulatorman@hyperbola.info>
# Contributor: Tobias Dausend <throgh@hyperbola.info>
# Maintainer: Allen123456hello
# Based on wxgtk package

pkgbase=wxgtk3.2
pkgname=('wxgtk3.2-gtk2' 'wxgtk3.2-gtk3' 'wxgtk3.2-common')
pkgver=3.2.9
_debver=$pkgver
_debrel=1
pkgrel=1
arch=('i686' 'x86_64')
url='https://wxwidgets.org'
license=('wxWindows-Library-3.1')
makedepends=('gst-plugins-base' 'glu' 'gtk' 'gtk2' 'quilt')
options=('!emptydirs')
source=(https://github.com/wxWidgets/wxWidgets/releases/download/v$pkgver/wxWidgets-${pkgver}.tar.bz2
        https://deb.debian.org/debian/pool/main/w/wxwidgets3.2/wxwidgets3.2_${_debver}+dfsg-${_debrel}.debian.tar.xz)
sha512sums=('6fe5caa3deaa02df0ef1891e417625b7719cffc9968a2d43e5fbca349ec9fdb8d4fc85fb422f835df751af3a816f946fb9d0d008163924be1669e54ce2346df7'
            '9905ad6dd8c73ceecae6125916b6fb37691b0a91710f95717dd5881bb3e12328f0dab55e4a1844471931ee2e41ccb9e08b4830bb5094b6a648387110557609c5')

prepare() {
  cd wxWidgets-$pkgver

  if [[ ${pkgver%.*} = ${_debver%.*} ]]; then
    # Debian patches
    export QUILT_PATCHES=debian/patches
    export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index'
    export QUILT_DIFF_ARGS='--no-timestamps'

    mv "$srcdir"/debian .

    quilt push -av
  fi

  cd ..
  cp -r wxWidgets-$pkgver wxWidgets-$pkgver-gtk3
}

build() {
  cd wxWidgets-$pkgver
  ./configure --prefix=/usr --libdir=/usr/lib --with-gtk=2 --with-opengl --enable-unicode \
    --enable-graphics_ctx --enable-mediactrl --with-regex=builtin \
    --with-libpng=sys --with-libxpm=sys --with-libjpeg=sys --with-libtiff=sys \
    --disable-precomp-headers --with-libnotify=no
  make
  make -C locale allmo

  cd ../wxWidgets-$pkgver-gtk3
  ./configure --prefix=/usr --libdir=/usr/lib --with-gtk=3 --with-opengl --enable-unicode \
    --enable-graphics_ctx --enable-mediactrl --with-regex=builtin \
    --with-libpng=sys --with-libxpm=sys --with-libjpeg=sys --with-libtiff=sys \
    --disable-precomp-headers --with-libnotify=no
  make
}

package_wxgtk3.2-common() {
  pkgdesc='Common libraries and headers for wxgtk2 and wxgtk3'
  depends=('zlib' 'gcc-libs' 'expat')

  cd wxWidgets-$pkgver
  make DESTDIR="$pkgdir" install
  rm -r "$pkgdir"/usr/{bin/wx-config,lib/{wx,libwx_gtk*}}

  # Fix conflicting files
  mv "$pkgdir"/usr/bin/wxrc{,3.2}
  mv "$pkgdir"/usr/share/aclocal/wxwin{,3.2}.m4
  rm -r "$pkgdir"/usr/share/bakefile

  install -D -m644 docs/licence.txt -t "$pkgdir"/usr/share/licenses/$pkgname
}

package_wxgtk3.2-gtk2() {
  pkgdesc='GTK+2 implementation of wxWidgets API for GUI'
  depends=('gtk2' 'libgl' 'gst-plugins-base-libs' 'libsm' 'libxxf86vm' 'wxgtk-common')

  cd wxWidgets-$pkgver
  make DESTDIR="$pkgdir" install
  rm -r "$pkgdir"/usr/{include,share,lib/libwx_base*,bin/wxrc*}

  mv "$pkgdir"/usr/bin/wx-config{,3.2}
  
  install -D -m644 docs/licence.txt -t "$pkgdir"/usr/share/licenses/$pkgname
}

package_wxgtk3.2-gtk3() {
  pkgdesc='GTK+3 implementation of wxWidgets API for GUI'
  depends=('gtk' 'gst-plugins-base-libs' 'libsm' 'libxxf86vm' 'wxgtk-common')

  cd wxWidgets-$pkgver-gtk3
  make DESTDIR="$pkgdir" install  
  rm -r "$pkgdir"/usr/{include,share,lib/libwx_base*,bin/wxrc*}
  mv "$pkgdir"/usr/bin/wx-config{,3.2-gtk3}
   
  install -Dm644 docs/licence.txt -t "$pkgdir"/usr/share/licenses/$pkgname
}

tenacity PKGBUILD:

# Maintainer (Arch): Christian Heusel <christian@heusel.eu>
# Contributor (Arch): Frederik “Freso” S. Olesen <archlinux@freso.dk>
# Contributor (Arch): Luke Huckman (Darkpelz) <lukeh@outlook.my>
# Contributor (Arch): Fabio 'Lolix' Loli <fabio.loli@disroot.org> -> https://github.com/FabioLolix
# Contributor (Arch): fossdd <fossdd@tutanota.com>
# Contributor (Arch): Ong Yong Xin <ongyongxin2020+github AT gmail DOT com>
# Contributor (Arch): Bernhard Landauer <oberon@manjaro.org>
# Contributor (Arch): Eric Bélanger <eric@archlinux.org>
# Contributor: Allen123456hello

pkgname=tenacity
pkgver=1.3.4
_nyquistver=20260523
pkgrel=1
pkgdesc="A free/libre easy-to-use multi-track audio editor and recorder without telemetry, forked from Audacity"
arch=(i686 x86_64)
url="https://tenacityaudio.org"
license=("GPL-2.0-or-later")
provides=('audacity')
replaces=('audacity')
conflicts=('audacity')
# Hyperbola already uses ffmpeg 4.4.*
depends=('expat' 'gcc-libs' 'gdk-pixbuf2' 'glibc' 'libmad'
         'libsoxr' 'portsmf' 'soundtouch' 'vamp-plugin-sdk'
         'twolame' 'wxgtk3.2-gtk3')
makedepends=('alsa-lib' 'cmake' 'ffmpeg' 'flac' 'glib2' 'gtk' 'jack' 'lame'
             'libid3tag' 'libogg' 'libsndfile' 'libvorbis' 'lilv' 'lv2' 'portsmf' 'suil'
             'twolame' 'vamp-plugin-sdk' 'git' 'nasm' 'quilt')
optdepends=('ffmpeg: additional import/export capabilities')
source=(${pkgname}-v${pkgver}.tar.gz::"https://codeberg.org/tenacityteam/tenacity/archive/v$pkgver.tar.gz"
        libnyquist-snapshot-v${_nyquistver}.tar.gz::"https://codeberg.org/Allen123456hello/libnyquist-snapshot/archive/v${_nyquistver}.tar.gz")
sha512sums=('75adae4da374084fd93063d146b4d7d97812e28bedb6c0c7699afc1e543352734b92072ed0bfc800eb79ba8f71695ff823b70f3469cf4dd157f36e24c0f52d10'
            'b0d39b2461d0a6dade6d829649599422ba194212f5a3026e51657725bd6bec6471e8a633df2c4fb0069d36bda14341cf5ac830daafc08ca79a7bb46e152072be')

prepare() {
  cd ${srcdir}
  mkdir build
  mv ${pkgname} ${pkgname}-${pkgver}
  cd ${pkgname}-${pkgver}/lib-src/
  rm -d libnyquist
  ln -s ../../libnyquist-snapshot libnyquist -rv
}

build() {
  cd ${srcdir}/build
  export WX_CONFIG=wx-config3.2-gtk3
  cmake ../${pkgname}-${pkgver} \
    -D CMAKE_BUILD_TYPE=Release \
    -D CMAKE_INSTALL_PREFIX=/usr \
    -D VCPKG=Off \
    -W no-dev
  make
}

package() {
  cd ${srcdir}
  make -C build DESTDIR="$pkgdir" install

  test -f ${pkgdir}/usr/tenacity && rm ${pkgdir}/usr/tenacity # remove unused launch script

  install -Dm644 ${srcdir}/build/bin/Release/plug-ins/*.ny -t "${pkgdir}/usr/share/${pkgname}/plug-ins"
  install -Dm644 ${srcdir}/build/bin/Release/nyquist/*.lsp -t "${pkgdir}/usr/share/${pkgname}/nyquist"

  mv "${pkgdir}/usr/share/pixmaps/gnome-mime-application-x-audacity-project.xpm" \
     "${pkgdir}/usr/share/pixmaps/gnome-mime-application-x-tenacity-project.xpm"

  install -Dm644 "${pkgname}-${pkgver}/LICENSE.txt" -t "${pkgdir}/usr/share/licenses/$pkgname"
}

2

Re: Possibility to mark audacity as incompatible and use tenacity instead

Hey, how is the overall performance of the application? Last time tried it was way slower than audacity.

Human being in favor with clear principles and so also for freedom in soft- and hardware!

Certainly anyone who has the power to make you believe absurdities has the power to make you commit injustices: For a life of every being full with peace and kindness, including diversity and freedom. Capitalism is destroying our minds, the planet itself and the universe in the end!

3

Re: Possibility to mark audacity as incompatible and use tenacity instead

On my computer, tenacity works well. I can find little differences on performance between tenacity and audacity-legacy. Maybe the former has some new features slowing down the application?

4

Re: Possibility to mark audacity as incompatible and use tenacity instead

Would you mind sharing parts of your hardware-setup?
In what way are the performance-indicators faster or slower? smile

Want to check because the last test was for me on a ThinkPad X60s and X200. Both surely a bit more back in time. But we need to grant also running the application fine on them.

Human being in favor with clear principles and so also for freedom in soft- and hardware!

Certainly anyone who has the power to make you believe absurdities has the power to make you commit injustices: For a life of every being full with peace and kindness, including diversity and freedom. Capitalism is destroying our minds, the planet itself and the universe in the end!

5

Re: Possibility to mark audacity as incompatible and use tenacity instead

Last tested on this:

Architecture:                x86_64
  CPU op-mode(s):            32-bit, 64-bit
  Address sizes:             39 bits physical, 48 bits virtual
  Byte Order:                Little Endian
CPU(s):                      8
  On-line CPU(s) list:       0-7
Vendor ID:                   GenuineIntel
  Model name:                11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
    CPU family:              6
    Model:                   140
    Thread(s) per core:      2
    Core(s) per socket:      4
    Socket(s):               1
    Stepping:                1
    CPU(s) scaling MHz:      60%
    CPU max MHz:             4700.0000
    CPU min MHz:             400.0000
    BogoMIPS:                5606.40
    Flags:                   fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse ss
                             e2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopol
                             ogy nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sd
                             bg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdran
                             d lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l2 cdp_l2 ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow 
                             flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdt_a avx512f avx512dq
                              rdseed adx smap avx512ifma clflushopt clwb intel_pt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec x
                             getbv1 xsaves split_lock_detect user_shstk dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp
                              hwp_pkg_req vnmi avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg 
                             avx512_vpopcntdq rdpid movdiri movdir64b fsrm avx512_vp2intersect md_clear ibt flush_l1d arch_capabiliti
                             es

6

Re: Possibility to mark audacity as incompatible and use tenacity instead

Thanks, but the showed statistics clearly indicate that your system has clear more performance than anything I could provide for example. And tenacity has therefore a very poor picture at the moment as I doubt the application will run anywhere good at Intel-Nehalem generations, Sandy-Bridge or Ivy-Bridge. And that is the major reasoning why Hyperbola exists! The current audacity maybe surely incompatible, but tenacity out of compatibility questions ... same for me. I'm surely not perfect and when somebody has the chance to approve different? Okay, please do so.

We have not won more when the resulting application has a poor performance on named systems and people will have a poor option in usage as the application reacts even worse on user-driven input.

Human being in favor with clear principles and so also for freedom in soft- and hardware!

Certainly anyone who has the power to make you believe absurdities has the power to make you commit injustices: For a life of every being full with peace and kindness, including diversity and freedom. Capitalism is destroying our minds, the planet itself and the universe in the end!