aboutsummaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
Diffstat (limited to 'audio')
-rw-r--r--audio/audacity/audacity.SlackBuild6
-rw-r--r--audio/audacity/audacity.info12
-rw-r--r--audio/butt/butt.SlackBuild4
-rw-r--r--audio/butt/butt.info6
-rw-r--r--audio/dopamine-bin/dopamine-bin.SlackBuild4
-rw-r--r--audio/dopamine-bin/dopamine-bin.info6
-rw-r--r--audio/flac-opt/flac-opt.SlackBuild7
-rw-r--r--audio/flac-opt/flac-opt.sh15
-rw-r--r--audio/guitarix/git2tarxz.sh48
-rw-r--r--audio/guitarix/guitarix.SlackBuild32
-rw-r--r--audio/guitarix/guitarix.info8
-rw-r--r--audio/libfreeaptx/libfreeaptx.SlackBuild2
-rw-r--r--audio/libfreeaptx/libfreeaptx.info6
-rw-r--r--audio/lxmusic/lxmusic.SlackBuild13
-rw-r--r--audio/lxmusic/lxmusic.info6
-rw-r--r--audio/mixxx/debc5051ddf02c4274cfe21eba3779a14a0fc55c.patch385
-rw-r--r--audio/mixxx/mixxx.SlackBuild7
-rw-r--r--audio/mixxx/mixxx.info10
-rw-r--r--audio/noisetorch-bin/noisetorch-bin.info2
-rw-r--r--audio/ocenaudio-bin/README2
-rw-r--r--audio/ocenaudio-bin/doinst.sh13
-rw-r--r--audio/ocenaudio-bin/ocenaudio-bin.SlackBuild181
-rw-r--r--audio/ocenaudio-bin/ocenaudio-bin.info10
-rw-r--r--audio/ocenaudio-bin/slack-desc19
-rw-r--r--audio/qmmp-plugin-pack-qt5/qmmp-plugin-pack-qt5.SlackBuild4
-rw-r--r--audio/qmmp-plugin-pack-qt5/qmmp-plugin-pack-qt5.info6
-rw-r--r--audio/qmmp-qt5/qmmp-qt5.SlackBuild2
-rw-r--r--audio/qmmp-qt5/qmmp-qt5.info6
-rw-r--r--audio/rack/rack.SlackBuild2
-rw-r--r--audio/rack/rack.info10
-rw-r--r--audio/sayonara-player/sayonara-player.SlackBuild4
-rw-r--r--audio/sayonara-player/sayonara-player.info6
-rw-r--r--audio/sndio/README21
-rw-r--r--audio/sndio/slack-desc10
-rw-r--r--audio/sndio/sndio.SlackBuild35
-rw-r--r--audio/xmms2/README2
-rw-r--r--audio/xmms2/xmms2.SlackBuild3
-rw-r--r--audio/xmms2/xmms2.info6
-rw-r--r--audio/yabridge/fix-libdbus-connection.patch48
-rw-r--r--audio/yabridge/fix_change_path.diff14
-rw-r--r--audio/yabridge/load_posix_spawn_addclosefrom_np.diff123
-rw-r--r--audio/yabridge/yabridge.SlackBuild61
-rw-r--r--audio/yabridge/yabridge.info12
-rw-r--r--audio/zoom-edit-n-share/README17
-rw-r--r--audio/zoom-edit-n-share/doinst.sh13
-rw-r--r--audio/zoom-edit-n-share/slack-desc19
-rw-r--r--audio/zoom-edit-n-share/zoom-edit-n-share35
-rw-r--r--audio/zoom-edit-n-share/zoom-edit-n-share.SlackBuild99
-rw-r--r--audio/zoom-edit-n-share/zoom-edit-n-share.desktop9
-rw-r--r--audio/zoom-edit-n-share/zoom-edit-n-share.info10
-rw-r--r--audio/zoom-edit-n-share/zoom-edit-n-share.pngbin0 -> 10315 bytes
51 files changed, 1165 insertions, 216 deletions
diff --git a/audio/audacity/audacity.SlackBuild b/audio/audacity/audacity.SlackBuild
index f2431498d9..4b60787712 100644
--- a/audio/audacity/audacity.SlackBuild
+++ b/audio/audacity/audacity.SlackBuild
@@ -34,8 +34,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=audacity
-VERSION=${VERSION:-3.6.4}
-MANVER=${MANVER:-3.6.4}
+VERSION=${VERSION:-3.7.3}
+MANVER=${MANVER:-3.7.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -97,7 +97,7 @@ find -L . \
# https://github.com/audacity/audacity/issues/6352
if [[ $(uname -m) =~ i*86 ]]; then SLKCFLAGS+=" -msse2"; fi
-sed -i 's|^#include "allegro.h"|#include "portsmf/allegro.h"|' libraries/lib-note-track/WrapAllegro.h
+sed -i 's|^#include "allegro.h"|#include "portsmf/allegro.h"|' libraries/lib-note-track/WrapAllegro.h || exit 1
mkdir -p build
cd build
diff --git a/audio/audacity/audacity.info b/audio/audacity/audacity.info
index 83cc8a7c23..e6fa524db9 100644
--- a/audio/audacity/audacity.info
+++ b/audio/audacity/audacity.info
@@ -1,12 +1,12 @@
PRGNAM="audacity"
-VERSION="3.6.4"
+VERSION="3.7.3"
HOMEPAGE="https://www.audacityteam.org"
-DOWNLOAD="https://github.com/audacity/audacity/releases/download/Audacity-3.6.4/audacity-sources-3.6.4.tar.gz \
- https://github.com/audacity/audacity/releases/download/Audacity-3.6.4/audacity-manual-3.6.4.tar.gz"
-MD5SUM="b7a8ccf5cdd46ff919ab5777fa5b8a43 \
- 7f711b59c0cd1181ee4dff36558faf97"
+DOWNLOAD="https://github.com/audacity/audacity/releases/download/Audacity-3.7.3/audacity-sources-3.7.3.tar.gz \
+ https://github.com/audacity/audacity/releases/download/Audacity-3.7.3/audacity-manual-3.7.3.tar.gz"
+MD5SUM="afc4016d8177a437d62a392012cccfb0 \
+ c47747f98ae4839b7ce6bdf314deef40"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
-REQUIRES="libsbsms lilv portaudio portmidi portsmf rapidjson soxr suil wxWidgets"
+REQUIRES="libsbsms lilv portaudio portmidi portsmf rapidjson soundtouch soxr suil wxWidgets"
MAINTAINER="Matteo Bernardini"
EMAIL="ponce@slackbuilds.org"
diff --git a/audio/butt/butt.SlackBuild b/audio/butt/butt.SlackBuild
index 44b896a29a..4462c6a973 100644
--- a/audio/butt/butt.SlackBuild
+++ b/audio/butt/butt.SlackBuild
@@ -29,7 +29,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=butt
-VERSION=${VERSION:-1.44.0}
+VERSION=${VERSION:-1.45.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -74,7 +74,7 @@ rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION-1.tar.gz
+tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
find -L . \
diff --git a/audio/butt/butt.info b/audio/butt/butt.info
index e7cb88f317..fffcc50279 100644
--- a/audio/butt/butt.info
+++ b/audio/butt/butt.info
@@ -1,8 +1,8 @@
PRGNAM="butt"
-VERSION="1.44.0"
+VERSION="1.45.0"
HOMEPAGE="http://danielnoethen.de/"
-DOWNLOAD="https://danielnoethen.de/butt/release/1.44.0/butt-1.44.0-1.tar.gz"
-MD5SUM="4540530b30de7b774d563f8c28dbb36f"
+DOWNLOAD="https://danielnoethen.de/butt/release/1.45.0/butt-1.45.0.tar.gz"
+MD5SUM="e2dd9d7bb72fd1a134dc520b42b10da1"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="fltk libdatachannel libfdk-aac portaudio portmidi"
diff --git a/audio/dopamine-bin/dopamine-bin.SlackBuild b/audio/dopamine-bin/dopamine-bin.SlackBuild
index 1fb0ca1db1..f663b305c3 100644
--- a/audio/dopamine-bin/dopamine-bin.SlackBuild
+++ b/audio/dopamine-bin/dopamine-bin.SlackBuild
@@ -24,8 +24,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=dopamine-bin
-SRCNAM=Dopamine-3.0.0-preview.37
-VERSION=${VERSION:-3.0.0.37}
+SRCNAM=Dopamine-3.0.0-preview.38
+VERSION=${VERSION:-3.0.0.38}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/audio/dopamine-bin/dopamine-bin.info b/audio/dopamine-bin/dopamine-bin.info
index 93859d419d..f5a8032906 100644
--- a/audio/dopamine-bin/dopamine-bin.info
+++ b/audio/dopamine-bin/dopamine-bin.info
@@ -1,10 +1,10 @@
PRGNAM="dopamine-bin"
-VERSION="3.0.0.37"
+VERSION="3.0.0.38"
HOMEPAGE="https://digimezzo.github.io/site/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://github.com/digimezzo/dopamine/releases/download/v3.0.0-preview.37/Dopamine-3.0.0-preview.37.snap"
-MD5SUM_x86_64="7d499127e3f9ce2ce4decef1aafb42ca"
+DOWNLOAD_x86_64="https://github.com/digimezzo/dopamine/releases/download/v3.0.0-preview.38/Dopamine-3.0.0-preview.38.snap"
+MD5SUM_x86_64="0d92fbb96c20b8a9dc72395f75f47b4f"
REQUIRES=""
MAINTAINER="Ioannis Anagnostakis"
EMAIL="rizitis@gmail.com"
diff --git a/audio/flac-opt/flac-opt.SlackBuild b/audio/flac-opt/flac-opt.SlackBuild
index 94a3bd70a1..4f5ec56233 100644
--- a/audio/flac-opt/flac-opt.SlackBuild
+++ b/audio/flac-opt/flac-opt.SlackBuild
@@ -6,6 +6,11 @@
# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+# 20250512 bkw: BUILD=2
+# - fix man breakage that occurred if MANPATH wasn't already set
+# when the profile script ran. Thanks to fourtysixandtwo for
+# catching this.
+
# Notes:
# - Not based on PV's flac.SlackBuild. Started with SBo template.
# - Static libraries, not shared, because they live in a weird prefix.
@@ -28,7 +33,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=flac-opt
SRCNAM=flac
VERSION=${VERSION:-1.5.0}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/audio/flac-opt/flac-opt.sh b/audio/flac-opt/flac-opt.sh
index 5ede5e21af..eb9a6dad59 100644
--- a/audio/flac-opt/flac-opt.sh
+++ b/audio/flac-opt/flac-opt.sh
@@ -1,19 +1,6 @@
# profile.d script for SBo flac-opt build, WTFPL, B. Watson.
-# don't know if MANPATH might be set already, so cover both cases.
-
-Mtmp=@PREFIX@/man
-
-if [ -z "$MANPATH" ]; then
- MANPATH="$Mtmp"
-else
- MANPATH="$Mtmp:$MANPATH"
-fi
-
-unset Mtmp
-
-# PATH will already be set (in /etc/profile) so don't worry about it.
-
+MANPATH="@PREFIX@/man:$MANPATH"
PATH=@PREFIX@/bin:$PATH
export PATH
diff --git a/audio/guitarix/git2tarxz.sh b/audio/guitarix/git2tarxz.sh
new file mode 100644
index 0000000000..e3c57c96ac
--- /dev/null
+++ b/audio/guitarix/git2tarxz.sh
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+# Create source tarball from rigel-engine git repo, including
+# submodules. The auto-generated source tarballs from github don't
+# have the submodules, which is the only reason this exists...
+
+# Note that this script doesn't need to be run as root. It does need to
+# be able to write to the current directory it's run from.
+
+# Takes one optional argument, which is the commit or tag to create a
+# tarball of. With no arg, HEAD is used.
+
+PRGNAM=guitarix
+CLONE_URL=https://github.com/brummer10/guitarix/
+
+set -e
+
+GITDIR=$( mktemp -dt $PRGNAM.git.XXXXXX )
+rm -rf $GITDIR
+git clone $CLONE_URL $GITDIR
+
+CWD="$( pwd )"
+cd $GITDIR
+
+if [ "$1" != "" ]; then
+ git reset --hard "$1" || exit 1
+fi
+
+git submodule update --init --recursive
+
+GIT_SHA=$( git rev-parse --short HEAD )
+
+DATE=$( git log --date=format:%Y%m%d --format=%cd | head -1 )
+
+VERTAG=$( git tag -l | tail -1 )
+
+VERSION=${VERTAG}+${DATE}_${GIT_SHA}
+
+find . -name .git\* -print0 | xargs -0 rm -rf
+
+cd "$CWD"
+rm -rf $PRGNAM-$VERSION $PRGNAM-$VERSION.tar.xz
+mv $GITDIR $PRGNAM-$VERSION
+tar cvfJ $PRGNAM-$VERSION.tar.xz $PRGNAM-$VERSION
+
+echo
+echo "Created tarball: $PRGNAM-$VERSION.tar.xz"
+echo "VERSION=$VERSION"
diff --git a/audio/guitarix/guitarix.SlackBuild b/audio/guitarix/guitarix.SlackBuild
index f55fb75477..3861745771 100644
--- a/audio/guitarix/guitarix.SlackBuild
+++ b/audio/guitarix/guitarix.SlackBuild
@@ -6,8 +6,11 @@
# Modified by B. Watson <urchlay@slackware.uk>. Modified version released
# under the WTFPL, for details see http://www.wtfpl.net/txt/copying/
-# Note to self: git URL for guitarix is:
-# git://git.code.sf.net/p/guitarix/git/
+# 20250603 bkw: Updated for 0.46.0 (new homepage, too).
+# 0.46.0 tarball includes git submodules, created with git2tarxz.sh
+# and renamed so I don't have to include the commit hash in VERSION.
+# Upstream no longer builds LADSPA plugins though it looks like
+# other (non-guitarix) LADSPA plugins can still be used.
# 20230723 bkw: Fix build following recent lilv update.
# 20230108 bkw: Updated for 0.44.1.
@@ -24,7 +27,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=guitarix
-VERSION=${VERSION:-0.44.1}
+VERSION=${VERSION:-0.46.0}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -61,21 +64,19 @@ else
LIBDIRSUFFIX=""
fi
-# Tarballs are now named "guitarix2-$VERSION", but the dir inside the
-# tarball is still "guitarix-$VERSION".
-TARNAME=${PRGNAM}2
-
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$TARNAME-$VERSION.tar.xz
-cd $PRGNAM-$VERSION
+rm -rf $PRGNAM-V$VERSION+*
+tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
+cd $PRGNAM-V$VERSION+*
chown -R root:root .
-find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
- \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} + -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} +
+
+cd trunk
# 20211205 bkw: why? *WHY?!*
sed -i '/chmod/s,0o664,0o644,g' wscript
@@ -94,7 +95,6 @@ LIBDIR="/usr/lib${LIBDIRSUFFIX}"
./waf configure \
--prefix=/usr \
--cxxflags-release="$SLKCFLAGS -DNDEBUG -fpermissive" \
- --ladspadir="$LIBDIR/ladspa/" \
--lv2dir="$LIBDIR/lv2/" \
--libdir="$LIBDIR" \
--no-avahi \
@@ -103,17 +103,15 @@ LIBDIR="/usr/lib${LIBDIRSUFFIX}"
--no-faust \
--includeresampler \
--includeconvolver \
- --ladspa \
- --new-ladspa \
--mod-lv2 \
--ldflags="-ldl" \
$EXTRAOPT \
$LV2OPT
-./waf build # -v # verbose, shows actual commands
+./waf build -v # verbose, shows actual commands
./waf install --destdir=$PKG
# Dunno how to make waf strip stuff...
-strip $PKG/usr/bin/* $PKG/usr/lib*/{,ladspa/*,lv2/*/*}*.so \
+strip $PKG/usr/bin/* $PKG/usr/lib*/{,lv2/*/*}*.so \
# --install-roboto-font does the wrong thing, we'll install it manually.
mkdir -p $PKG/usr/share/fonts/TTF
diff --git a/audio/guitarix/guitarix.info b/audio/guitarix/guitarix.info
index 8618e9f5ae..e01698e143 100644
--- a/audio/guitarix/guitarix.info
+++ b/audio/guitarix/guitarix.info
@@ -1,8 +1,8 @@
PRGNAM="guitarix"
-VERSION="0.44.1"
-HOMEPAGE="https://guitarix.sourceforge.net/"
-DOWNLOAD="https://downloads.sourceforge.net/guitarix/guitarix2-0.44.1.tar.xz"
-MD5SUM="d1757e08ddc54c4ec07defea6a30ac5b"
+VERSION="0.46.0"
+HOMEPAGE="https://guitarix.org/"
+DOWNLOAD="https://slackware.uk/~urchlay/src/guitarix-0.46.0.tar.xz"
+MD5SUM="26c3dd8f9af458e9410f617a9bc9631f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="jack liblrdf lilv"
diff --git a/audio/libfreeaptx/libfreeaptx.SlackBuild b/audio/libfreeaptx/libfreeaptx.SlackBuild
index d315ffe3d2..1ef0404b86 100644
--- a/audio/libfreeaptx/libfreeaptx.SlackBuild
+++ b/audio/libfreeaptx/libfreeaptx.SlackBuild
@@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd)
set -e
PRGNAM=libfreeaptx
-VERSION=${VERSION:-0.1.1}
+VERSION=${VERSION:-0.2.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/audio/libfreeaptx/libfreeaptx.info b/audio/libfreeaptx/libfreeaptx.info
index b53076beae..bd797ed501 100644
--- a/audio/libfreeaptx/libfreeaptx.info
+++ b/audio/libfreeaptx/libfreeaptx.info
@@ -1,8 +1,8 @@
PRGNAM="libfreeaptx"
-VERSION="0.1.1"
+VERSION="0.2.2"
HOMEPAGE="https://github.com/iamthehorker/libfreeaptx"
-DOWNLOAD="https://github.com/iamthehorker/libfreeaptx/archive/0.1.1/libfreeaptx-0.1.1.tar.gz"
-MD5SUM="58c2cf51f8b00d2414ae5f5239a64957"
+DOWNLOAD="https://github.com/iamthehorker/libfreeaptx/archive/0.2.2/libfreeaptx-0.2.2.tar.gz"
+MD5SUM="7e0f2ec62204cd808f2dd6b44800e554"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="%README%"
diff --git a/audio/lxmusic/lxmusic.SlackBuild b/audio/lxmusic/lxmusic.SlackBuild
index 80e0e10aca..7c33b05b2c 100644
--- a/audio/lxmusic/lxmusic.SlackBuild
+++ b/audio/lxmusic/lxmusic.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for lxmusic
-# Copyright 2010-2016 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
+# Copyright 2010-2025 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -28,8 +28,8 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=lxmusic
-VERSION=${VERSION:-0.4.7}
-BUILD=${BUILD:-2}
+VERSION=${VERSION:-0.4.8}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -41,9 +41,6 @@ if [ -z "$ARCH" ]; then
esac
fi
-# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
-# the name of the created package would be, and then exit. This information
-# could be useful to other scripts.
if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
@@ -84,9 +81,7 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \;
-patch -p1 < $CWD/0001-Use-themed-icon.patch
-
-autoreconf -fi
+./autogen.sh || true
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
diff --git a/audio/lxmusic/lxmusic.info b/audio/lxmusic/lxmusic.info
index 723c4125a7..ed4e437e8f 100644
--- a/audio/lxmusic/lxmusic.info
+++ b/audio/lxmusic/lxmusic.info
@@ -1,8 +1,8 @@
PRGNAM="lxmusic"
-VERSION="0.4.7"
+VERSION="0.4.8"
HOMEPAGE="https://wiki.lxde.org/en/LXMusic"
-DOWNLOAD="https://downloads.sf.net/lxde/lxmusic-0.4.7.tar.xz"
-MD5SUM="1bbd57f5b34e13ef31152c9ecb31ef68"
+DOWNLOAD="https://github.com/lxde/releases/raw/refs/heads/master/releases/lxmusic-0.4.8.tar.xz"
+MD5SUM="2beed49a5899f8e8e2dfb00d8a158fea"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="xmms2"
diff --git a/audio/mixxx/debc5051ddf02c4274cfe21eba3779a14a0fc55c.patch b/audio/mixxx/debc5051ddf02c4274cfe21eba3779a14a0fc55c.patch
new file mode 100644
index 0000000000..2b5571edf9
--- /dev/null
+++ b/audio/mixxx/debc5051ddf02c4274cfe21eba3779a14a0fc55c.patch
@@ -0,0 +1,385 @@
+From debc5051ddf02c4274cfe21eba3779a14a0fc55c Mon Sep 17 00:00:00 2001
+From: ronso0 <ronso0@mixxx.org>
+Date: Thu, 27 Feb 2025 13:45:15 +0100
+Subject: [PATCH] Track info: fix size of cover art label
+
+* max height is now height of the three top rows
+* max width is now width of the two rightmost columns
+
+This prevents
+* flickering of single-track dialog when switching tracks
+* unintentional vertical stretching grid rows
+---
+ src/library/dlgtagfetcher.cpp | 8 ++--
+ src/library/dlgtrackinfo.cpp | 36 ++++++++++++++-
+ src/library/dlgtrackinfo.h | 4 ++
+ src/library/dlgtrackinfomulti.cpp | 31 +++++++++++--
+ src/library/dlgtrackinfomulti.h | 4 +-
+ src/widget/wcoverartlabel.cpp | 77 +++++++++++++++++++++++--------
+ src/widget/wcoverartlabel.h | 13 ++++--
+ 7 files changed, 139 insertions(+), 34 deletions(-)
+
+diff --git a/src/library/dlgtagfetcher.cpp b/src/library/dlgtagfetcher.cpp
+index 59361de64b87..b460db7d62ad 100644
+--- a/src/library/dlgtagfetcher.cpp
++++ b/src/library/dlgtagfetcher.cpp
+@@ -255,7 +255,7 @@ void DlgTagFetcher::loadTrack(const TrackPointer& pTrack) {
+ &DlgTagFetcher::slotTrackChanged);
+ }
+
+- m_pWFetchedCoverArtLabel->setCoverArt(CoverInfo{}, QPixmap{});
++ m_pWFetchedCoverArtLabel->setCoverInfoAndPixmap(CoverInfo{}, QPixmap{});
+
+ m_coverCache.clear();
+
+@@ -580,7 +580,7 @@ void DlgTagFetcher::tagSelected() {
+ m_data.m_selectedTag = tagIndex;
+
+ m_fetchedCoverArtByteArrays.clear();
+- m_pWFetchedCoverArtLabel->setCoverArt(CoverInfo{},
++ m_pWFetchedCoverArtLabel->setCoverInfoAndPixmap(CoverInfo{},
+ QPixmap(CoverArtUtils::defaultCoverLocation()));
+
+ const mixxx::musicbrainz::TrackRelease& trackRelease = m_data.m_tags[tagIndex];
+@@ -612,7 +612,7 @@ void DlgTagFetcher::slotCoverFound(
+ m_pTrack &&
+ m_pTrack->getLocation() == coverInfo.trackLocation) {
+ m_trackRecord.setCoverInfo(coverInfo);
+- m_pWCurrentCoverArtLabel->setCoverArt(coverInfo, pixmap);
++ m_pWCurrentCoverArtLabel->setCoverInfoAndPixmap(coverInfo, pixmap);
+ }
+ }
+
+@@ -673,7 +673,7 @@ void DlgTagFetcher::loadPixmapToLabel(const QPixmap& pixmap) {
+ statusMessage->clear();
+ statusMessage->setVisible(true);
+
+- m_pWFetchedCoverArtLabel->setCoverArt(coverInfo, pixmap);
++ m_pWFetchedCoverArtLabel->setCoverInfoAndPixmap(coverInfo, pixmap);
+
+ checkBoxCover->setEnabled(!pixmap.isNull());
+ }
+diff --git a/src/library/dlgtrackinfo.cpp b/src/library/dlgtrackinfo.cpp
+index 070658721c91..97dbf200d8b1 100644
+--- a/src/library/dlgtrackinfo.cpp
++++ b/src/library/dlgtrackinfo.cpp
+@@ -382,7 +382,7 @@ void DlgTrackInfo::replaceTrackRecord(
+ const auto coverInfo = CoverInfo(
+ m_trackRecord.getCoverInfo(),
+ trackLocation);
+- m_pWCoverArtLabel->setCoverArt(coverInfo, QPixmap());
++ m_pWCoverArtLabel->setCoverInfoAndPixmap(coverInfo, QPixmap());
+ // Executed concurrently
+ CoverArtCache::requestCover(this, coverInfo);
+
+@@ -508,6 +508,9 @@ void DlgTrackInfo::loadTrack(const QModelIndex& index) {
+ return;
+ }
+ TrackPointer pTrack = m_pTrackModel->getTrack(index);
++ VERIFY_OR_DEBUG_ASSERT(pTrack) {
++ return;
++ }
+ m_currentTrackIndex = index;
+ loadTrackInternal(pTrack);
+ if (m_pDlgTagFetcher && m_pDlgTagFetcher->isVisible()) {
+@@ -537,7 +540,7 @@ void DlgTrackInfo::slotCoverFound(
+ m_pLoadedTrack &&
+ m_pLoadedTrack->getLocation() == coverInfo.trackLocation) {
+ m_trackRecord.setCoverInfo(coverInfo);
+- m_pWCoverArtLabel->setCoverArt(coverInfo, pixmap);
++ m_pWCoverArtLabel->setCoverInfoAndPixmap(coverInfo, pixmap);
+ }
+ }
+
+@@ -863,3 +866,32 @@ void DlgTrackInfo::slotImportMetadataFromMusicBrainz() {
+ }
+ m_pDlgTagFetcher->show();
+ }
++
++void DlgTrackInfo::resizeEvent(QResizeEvent* pEvent) {
++ QDialog::resizeEvent(pEvent);
++
++ if (!isVisible()) {
++ // Likely one of the resize events before show().
++ // Widgets don't have their final size, yet, so it
++ // makes no sense to resize the cover label.
++ return;
++ }
++
++ // Set a maximum size on the cover label so it can use the available space
++ // but doesn't force-expand the dialog.
++ // The cover label spans across three tag rows and the two rightmost columns.
++ // Unfortunately we can't read row/column sizes directly, so we use the widgets.
++ int contHeight = txtTitle->height() + txtArtist->height() + txtAlbum->height();
++ int vSpacing = tags_layout->verticalSpacing();
++ int totalHeight = vSpacing * 2 + contHeight;
++
++ int contWidth = lblYear->width() + txtYear->width();
++ int hSpacing = tags_layout->horizontalSpacing();
++ int totalWidth = contWidth + hSpacing;
++
++ m_pWCoverArtLabel->setMaxSize(QSize(totalWidth, totalHeight));
++
++ // Also clamp height of the cover's parent widget. Keeping its height minimal
++ // can't be accomplished with QSizePolicies alone unfortunately.
++ coverWidget->setFixedHeight(totalHeight);
++}
+diff --git a/src/library/dlgtrackinfo.h b/src/library/dlgtrackinfo.h
+index 8949c530eb47..525042b5ed13 100644
+--- a/src/library/dlgtrackinfo.h
++++ b/src/library/dlgtrackinfo.h
+@@ -45,6 +45,10 @@ class DlgTrackInfo : public QDialog, public Ui::DlgTrackInfo {
+ void next();
+ void previous();
+
++ protected:
++ // used to set the maximum size of the cover label
++ void resizeEvent(QResizeEvent* pEvent) override;
++
+ private slots:
+ void slotNextButton();
+ void slotPrevButton();
+diff --git a/src/library/dlgtrackinfomulti.cpp b/src/library/dlgtrackinfomulti.cpp
+index bbcd07a46ca0..7977dd55bc71 100644
+--- a/src/library/dlgtrackinfomulti.cpp
++++ b/src/library/dlgtrackinfomulti.cpp
+@@ -613,10 +613,35 @@ void DlgTrackInfoMulti::addValuesToCommentBox(QSet<QString>& comments) {
+
+ void DlgTrackInfoMulti::resizeEvent(QResizeEvent* pEvent) {
+ Q_UNUSED(pEvent);
++ if (!isVisible()) {
++ // Likely one of the resize events before show().
++ // Dialog & widgets don't have their final size, yet,
++ // so it makes no sense to resize the cover label.
++ return;
++ }
++
+ // Limit comment popup to dialog width. This may introduce some linebreaks
+ // but is still much better than letting the popup expand to screen width,
+ // which it would do regrardless if it's actually necessary.
+ txtCommentBox->view()->parentWidget()->setMaximumWidth(width());
++
++ // Set a maximum size on the cover label so it can use the available space
++ // but doesn't force-expand the dialog.
++ // The cover label spans across three tag rows and the two rightmost columns.
++ // Unfortunately we can't read row/column sizes directly, so we use the widgets.
++ int contHeight = txtTitle->height() + txtArtist->height() + txtAlbum->height();
++ int vSpacing = tags_layout->verticalSpacing();
++ int totalHeight = vSpacing * 2 + contHeight;
++
++ int contWidth = lblYear->width() + txtYear->width();
++ int hSpacing = tags_layout->horizontalSpacing();
++ int totalWidth = contWidth + hSpacing;
++
++ m_pWCoverArtLabel->setMaxSize(QSize(totalWidth, totalHeight));
++
++ // Also clamp height of the cover's parent widget. Keeping its height minimal
++ // can't be accomplished with QSizePolicies alone unfortunately.
++ coverWidget->setFixedHeight(totalHeight);
+ }
+
+ void DlgTrackInfoMulti::saveTracks() {
+@@ -1043,12 +1068,12 @@ void DlgTrackInfoMulti::updateCoverArtFromTracks() {
+ // Just make sure the same track is used in slotCoverFound(): the track
+ // location has to match in order to load the cover image to the label.
+ auto trCover = pRefTrack->getCoverInfoWithLocation();
+- m_pWCoverArtLabel->setCoverArt(trCover, QPixmap());
++ m_pWCoverArtLabel->setCoverInfoAndPixmap(trCover, QPixmap());
+ CoverArtCache::requestCover(this, trCover);
+ } else {
+ // Set empty cover + track location
+ auto trCover = CoverInfo(CoverInfoRelative(), pRefTrack->getLocation());
+- m_pWCoverArtLabel->setCoverArt(trCover, QPixmap());
++ m_pWCoverArtLabel->setCoverInfoAndPixmap(trCover, QPixmap());
+ }
+ }
+
+@@ -1061,7 +1086,7 @@ void DlgTrackInfoMulti::slotCoverFound(
+ m_pLoadedTracks.cbegin().value()->getLocation() == coverInfo.trackLocation) {
+ // Track records have already been updated in slotCoverInfoSelected,
+ // now load the image to the label.
+- m_pWCoverArtLabel->setCoverArt(coverInfo, pixmap);
++ m_pWCoverArtLabel->setCoverInfoAndPixmap(coverInfo, pixmap);
+ }
+ }
+
+diff --git a/src/library/dlgtrackinfomulti.h b/src/library/dlgtrackinfomulti.h
+index d733bda4788f..4c069f549d95 100644
+--- a/src/library/dlgtrackinfomulti.h
++++ b/src/library/dlgtrackinfomulti.h
+@@ -31,11 +31,11 @@ class DlgTrackInfoMulti : public QDialog, public Ui::DlgTrackInfoMulti {
+ void loadTracks(const QList<TrackPointer>& pTracks);
+ void focusField(const QString& property);
+
++ protected:
+ /// We need this to set the max width of the comment QComboBox which has
+ /// issues with long lines / multi-line content. See init() for details.
++ /// Also used to set the maximum size of the cover label
+ void resizeEvent(QResizeEvent* event) override;
+-
+- protected:
+ bool eventFilter(QObject* pObj, QEvent* pEvent) override;
+
+ private slots:
+diff --git a/src/widget/wcoverartlabel.cpp b/src/widget/wcoverartlabel.cpp
+index 519c65b5de6f..fa08bc55767a 100644
+--- a/src/widget/wcoverartlabel.cpp
++++ b/src/widget/wcoverartlabel.cpp
+@@ -9,61 +9,100 @@
+
+ namespace {
+
+-constexpr QSize kDeviceIndependentCoverLabelSize = QSize(100, 100);
++// Device-independent size for the label
++constexpr QSize kDefaultSize = QSize(100, 100);
++
++// Size for the pixmap. Assumes frame width is 1px.
++constexpr QSize kDefaultPixmapSize = kDefaultSize - QSize(2, 2);
+
+ inline QPixmap scaleCoverLabel(
+- QWidget* parent,
+- QPixmap pixmap) {
+- const auto devicePixelRatioF = parent->devicePixelRatioF();
++ QLabel* pLabel,
++ QPixmap pixmap,
++ QSize size) {
++ VERIFY_OR_DEBUG_ASSERT(size.isValid()) {
++ size = kDefaultPixmapSize;
++ }
++ const auto devicePixelRatioF = pLabel->devicePixelRatioF();
+ pixmap.setDevicePixelRatio(devicePixelRatioF);
+ return pixmap.scaled(
+- kDeviceIndependentCoverLabelSize * devicePixelRatioF,
++ size * devicePixelRatioF,
+ Qt::KeepAspectRatio,
+ Qt::SmoothTransformation);
+ }
+
+-QPixmap createDefaultCover(QWidget* parent) {
++QPixmap createDefaultCover(QLabel* pLabel, QSize size) {
+ auto defaultCover = QPixmap(CoverArtUtils::defaultCoverLocation());
+- return scaleCoverLabel(parent, defaultCover);
++ return scaleCoverLabel(pLabel, defaultCover, size);
+ }
+
+ } // anonymous namespace
+
+-WCoverArtLabel::WCoverArtLabel(QWidget* parent, WCoverArtMenu* pCoverMenu)
+- : QLabel(parent),
++WCoverArtLabel::WCoverArtLabel(QWidget* pParent, WCoverArtMenu* pCoverMenu)
++ : QLabel(pParent),
+ m_pCoverMenu(pCoverMenu),
+ m_pDlgFullSize(make_parented<DlgCoverArtFullSize>(this, nullptr, pCoverMenu)),
+- m_defaultCover(createDefaultCover(this)) {
+- setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
++ m_maxSize(kDefaultSize),
++ m_pixmapSizeMax(kDefaultPixmapSize),
++ m_defaultCover(createDefaultCover(this, m_pixmapSizeMax)) {
++ setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+ setFrameShape(QFrame::Box);
+ setAlignment(Qt::AlignCenter);
+- setPixmap(m_defaultCover);
++ setPixmapAndResize(m_defaultCover);
+ }
+
+ WCoverArtLabel::~WCoverArtLabel() = default;
+
+-void WCoverArtLabel::setCoverArt(const CoverInfo& coverInfo,
++void WCoverArtLabel::setCoverInfoAndPixmap(const CoverInfo& coverInfo,
+ const QPixmap& px) {
+ if (m_pCoverMenu != nullptr) {
+ m_pCoverMenu->setCoverArt(coverInfo);
+ }
++ setPixmapAndResize(px);
++}
++
++void WCoverArtLabel::setPixmapAndResize(const QPixmap& px) {
+ if (px.isNull()) {
+ m_loadedCover = px;
+ m_fullSizeCover = px;
+ setPixmap(m_defaultCover);
+ } else {
+- m_loadedCover = scaleCoverLabel(this, px);
++ m_loadedCover = scaleCoverLabel(this, px, m_pixmapSizeMax);
+ m_fullSizeCover = px;
+ setPixmap(m_loadedCover);
+ }
+ #if (QT_VERSION >= QT_VERSION_CHECK(5, 15, 0))
+- QSize frameSize = pixmap(Qt::ReturnByValue).size() / devicePixelRatioF();
++ QSize newSize = pixmap().size() / devicePixelRatioF();
+ #else
+- QSize frameSize = pixmap()->size() / devicePixelRatioF();
++ QSize newSize = pixmap()->size() / devicePixelRatioF();
+ #endif
+- frameSize += QSize(2, 2); // margin
+- setMinimumSize(frameSize);
+- setMaximumSize(frameSize);
++ // add the frame so the entire pixmap is visible
++ newSize += QSize(frameWidth() * 2, frameWidth() * 2);
++ if (size() != newSize) {
++ setFixedSize(newSize);
++ }
++}
++
++void WCoverArtLabel::setMaxSize(const QSize newSize) {
++ if (newSize == m_maxSize) {
++ return;
++ }
++
++ m_maxSize = newSize;
++ m_pixmapSizeMax = newSize - QSize(frameWidth() * 2, frameWidth() * 2);
++ // Skip resizing the pixmap and label if the pixmap already fits.
++ // Check if we got more space in one dimension and don't need it
++ // for the other.
++ const QSize pixmapSize = pixmap().size() / devicePixelRatioF();
++ if (m_pixmapSizeMax == pixmapSize ||
++ (m_pixmapSizeMax.height() == pixmapSize.height() &&
++ m_pixmapSizeMax.width() > pixmapSize.width()) ||
++ (m_pixmapSizeMax.width() == pixmapSize.width() &&
++ m_pixmapSizeMax.height() > pixmapSize.height())) {
++ return;
++ }
++
++ m_defaultCover = createDefaultCover(this, m_pixmapSizeMax);
++ setPixmapAndResize(m_fullSizeCover);
+ }
+
+ void WCoverArtLabel::slotCoverMenu(const QPoint& pos) {
+diff --git a/src/widget/wcoverartlabel.h b/src/widget/wcoverartlabel.h
+index 9b5421d26868..2611c7a140f4 100644
+--- a/src/widget/wcoverartlabel.h
++++ b/src/widget/wcoverartlabel.h
+@@ -19,24 +19,29 @@ class WCoverArtLabel : public QLabel {
+
+ ~WCoverArtLabel() override; // Verifies that the base destructor is virtual
+
+- void setCoverArt(const CoverInfo& coverInfo, const QPixmap& px);
++ void setCoverInfoAndPixmap(const CoverInfo& coverInfo, const QPixmap& px);
+ void loadTrack(TrackPointer pTrack);
++ void setMaxSize(const QSize size);
+
+ protected:
+- void mousePressEvent(QMouseEvent* event) override;
+- void contextMenuEvent(QContextMenuEvent* event) override;
++ void mousePressEvent(QMouseEvent* pEvent) override;
++ void contextMenuEvent(QContextMenuEvent* pEvent) override;
+
+ private slots:
+ void slotCoverMenu(const QPoint& pos);
+
+ private:
++ void setPixmapAndResize(const QPixmap& px);
++
+ WCoverArtMenu* m_pCoverMenu;
+
+ const parented_ptr<DlgCoverArtFullSize> m_pDlgFullSize;
+
+ TrackPointer m_pLoadedTrack;
+
+- const QPixmap m_defaultCover;
++ QSize m_maxSize;
++ QSize m_pixmapSizeMax;
++ QPixmap m_defaultCover;
+ QPixmap m_loadedCover;
+ QPixmap m_fullSizeCover;
+ };
diff --git a/audio/mixxx/mixxx.SlackBuild b/audio/mixxx/mixxx.SlackBuild
index e2ecff67b0..085d313c64 100644
--- a/audio/mixxx/mixxx.SlackBuild
+++ b/audio/mixxx/mixxx.SlackBuild
@@ -28,9 +28,9 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=mixxx
-VERSION=${VERSION:-2.5.0}
+VERSION=${VERSION:-2.5.1}
KEYFVER=${KEYFVER:-2.2.8}
-DJINVER=${DJINVER:-0.22.1}
+DJINVER=${DJINVER:-0.24.3}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
@@ -81,6 +81,9 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
+sed -i '/<QDomElement>/a #include <memory>' src/controllers/legacycontrollersettingsfactory.h
+patch -p1 -R < $CWD/debc5051ddf02c4274cfe21eba3779a14a0fc55c.patch
+
mkdir -p build
cd build
mkdir -p downloads
diff --git a/audio/mixxx/mixxx.info b/audio/mixxx/mixxx.info
index eb3c3417f8..05a1cace23 100644
--- a/audio/mixxx/mixxx.info
+++ b/audio/mixxx/mixxx.info
@@ -1,12 +1,12 @@
PRGNAM="mixxx"
-VERSION="2.5.0"
+VERSION="2.5.1"
HOMEPAGE="https://www.mixxx.org"
-DOWNLOAD="https://github.com/mixxxdj/mixxx/archive/2.5.0/mixxx-2.5.0.tar.gz \
+DOWNLOAD="https://github.com/mixxxdj/mixxx/archive/2.5.1/mixxx-2.5.1.tar.gz \
https://github.com/mixxxdj/libkeyfinder/archive/2.2.8/libkeyfinder-2.2.8.zip \
- https://github.com/xsco/libdjinterop/archive/0.22.1/libdjinterop-0.22.1.tar.gz"
-MD5SUM="9684638c12cd3eeda0403b6836cd3bde \
+ https://github.com/xsco/libdjinterop/archive/0.24.3/libdjinterop-0.24.3.tar.gz"
+MD5SUM="15dd2a5d8d70832bf63f7948e98308c7 \
020820804fd3e02bb8385943dceb688b \
- 48e03b58dc34b803a2670830729da8aa"
+ 6eca3d37816a2936367dc4a6e9621a6a"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="chromaprint faad2 googlebenchmark hidapi libebur128 libmodplug libmp4v2 libshout lilv microsoft-gsl opencore-amr portaudio portmidi protobuf3 rubberband soundtouch"
diff --git a/audio/noisetorch-bin/noisetorch-bin.info b/audio/noisetorch-bin/noisetorch-bin.info
index 5df3d4d2c1..1ab771aa9f 100644
--- a/audio/noisetorch-bin/noisetorch-bin.info
+++ b/audio/noisetorch-bin/noisetorch-bin.info
@@ -6,5 +6,5 @@ MD5SUM=""
DOWNLOAD_x86_64="https://github.com/noisetorch/NoiseTorch/releases/download/v0.12.2/NoiseTorch_x64_v0.12.2.tgz"
MD5SUM_x86_64="6ff067d6f5148de4b7dd4c096efdde5c"
REQUIRES=""
-MAINTAINER="Anagnostakis Ioannis"
+MAINTAINER="Ioannis Anagnostakis"
EMAIL="rizitis@gmail.com"
diff --git a/audio/ocenaudio-bin/README b/audio/ocenaudio-bin/README
new file mode 100644
index 0000000000..491cb80eb5
--- /dev/null
+++ b/audio/ocenaudio-bin/README
@@ -0,0 +1,2 @@
+ocenaudio-bin easy, fast and powerful audio editor.
+Repackage of binary file.
diff --git a/audio/ocenaudio-bin/doinst.sh b/audio/ocenaudio-bin/doinst.sh
new file mode 100644
index 0000000000..aea0f894eb
--- /dev/null
+++ b/audio/ocenaudio-bin/doinst.sh
@@ -0,0 +1,13 @@
+if [ -x /usr/bin/update-desktop-database ]; then
+ /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
+fi
+
+if [ -x /usr/bin/update-mime-database ]; then
+ /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1
+fi
+
+if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
+ if [ -x /usr/bin/gtk-update-icon-cache ]; then
+ /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
+ fi
+fi
diff --git a/audio/ocenaudio-bin/ocenaudio-bin.SlackBuild b/audio/ocenaudio-bin/ocenaudio-bin.SlackBuild
new file mode 100644
index 0000000000..2d2e6d1b1d
--- /dev/null
+++ b/audio/ocenaudio-bin/ocenaudio-bin.SlackBuild
@@ -0,0 +1,181 @@
+#!/bin/bash
+
+# Slackware build script for ocenaudio-bin
+
+# Copyright 2025 Ioannis Anagnostakis GR
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=ocenaudio-bin
+VERSION=${VERSION:-3.15.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+SRCNAM64=ocenaudio_debian10
+SRCNAM32=
+COMPRESS=deb
+
+# Many thanks to @aclemons for the time he spent to make it clear for me.
+Disposition64="$SRCNAM64"_"$VERSION"
+Disposition32=
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+if [ "$ARCH" = "i586" ]; then
+ SRCNAM="$SRCNAM32"
+ DISPO="$Disposition32"
+elif [ "$ARCH" = "i686" ]; then
+ SRCNAM="$SRCNAM32"
+ DISPO="$Disposition32"
+elif [ "$ARCH" = "x86_64" ]; then
+ SRCNAM="$SRCNAM64"
+ DISPO="$Disposition64"
+else
+ SRCNAM=
+ DISPO=
+fi
+
+if [ -z "$SRCNAM" ] || [ -z "$COMPRESS" ]; then
+ echo "SRCNAM and/or COMPRESS are empty, exiting."
+ exit 1
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+
+
+if [[ $COMPRESS = "deb" ]]; then
+# extract directly to $PKG/
+ ar x "$CWD"/$SRCNAM.$COMPRESS 2>/dev/null || \
+ ar x "$CWD"/"$DISPO"."$COMPRESS" 2>/dev/null || \
+ { echo "No valid archive found!"; exit 1; }
+ rm debian-binary control.tar.*
+ tar -xJf data.tar.xz -C "$PKG" 2>/dev/null || \
+ tar --use-compress-program=unzstd -xf data.tar.zst -C "$PKG" 2>/dev/null || \
+ tar -xzf data.tar.gz -C "$PKG" 2>/dev/null || \
+ { echo "No valid archive found!"; exit 1; }
+cd "$PKG"
+# Everything extracted in $PKG/ and you are in $PKG/ also.
+elif
+[[ $COMPRESS = "pkg.tar.zst" ]]; then
+# extract directly to $PKG/
+tar --use-compress-program=unzstd -xf "$CWD"/*.$COMPRESS -C "$PKG" || tar -I unzstd -xf "$CWD"/*.$COMPRESS -C "$PKG" 2>/dev/null || \
+ { echo "No valid archive found!"; exit 1; }
+cd "$PKG"
+# Everything extracted in $PKG/ and you are in $PKG/ also.
+elif
+ [[ $COMPRESS == "AppImage" ]]; then
+ mv "$CWD"/"$SRCNAM"*."$COMPRESS" "$TMP"/"$SRCNAM-$VERSION"."$COMPRESS"
+ chmod +x "$TMP"/"$SRCNAM-$VERSION"."$COMPRESS"
+ pushd "$TMP" || exit 1
+ ./"$SRCNAM-$VERSION"."$COMPRESS" --appimage-extract
+ popd || exit 1
+ mv "$TMP"/squashfs-root "$TMP"/"$PRGNAM-$VERSION"
+ cd "$TMP"/"$PRGNAM-$VERSION"
+elif
+# extract to $TMP/
+ [[ $COMPRESS == "snap" ]]; then
+ cd "$TMP"
+ unsquashfs -d "$CWD"/"$SRCNAM"."$COMPRESS"
+ mv squashfs-root "$PRGNAM-$VERSION"
+ cd "$PRGNAM-$VERSION"
+elif
+ [[ $COMPRESS = "rpm" ]]; then
+# extract to $PKG/
+ rpm -Kv "$CWD"/"$SRCNAM.$COMPRESS"
+ rpm2cpio "$CWD"/"$SRCNAM"."$COMPRESS" > "$TMP"/"$SRCNAM"."$COMPRESS".cpio
+ cd "$PKG"
+ cpio -idv < "$TMP"/"$SRCNAM"."$COMPRESS".cpio
+# Everything extracted in $PKG/ and you are in $PKG/ also.
+else
+# If you repackage other type of $COMPRESS here you can add commands to extract it...
+# You are in $CWD/
+echo "COMPRESS is not deb or rpm or snap or AppImage or pkg.tar.zst file"
+echo "Add here custom commands for $COMPRESS to proceed binary repackage..."
+exit 1
+fi
+
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+# Add additional commands here that needed: (for .deb and .rpm repackage most of times nothing needed)
+true
+
+
+
+# Strip binaries and libraries
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+find "$PKG"/ -type f -name "*.so*" -exec chmod 755 {} \;
+
+mkdir -p "$PKG"/usr/doc/$PRGNAM-"$VERSION"
+if [[ $COMPRESS != "rpm" && $COMPRESS != "deb" && $COMPRESS != "pkg.tar.zst" ]]; then
+cp -a \
+ documentation \
+ $PKG/usr/doc/$PRGNAM-$VERSION
+else
+# If COMPRESS = rpm,deb or Arch pkg.tar.zst it fix docs and man pages following Slackware culture.
+if [ -d "$PKG/usr/share/doc/$PRGNAM" ]; then
+ mv "$PKG/usr/share/doc/$PRGNAM" "$PKG/usr/doc/$PRGNAM-$VERSION/"
+fi
+
+# Move man pages, if exists
+if [ -d "$PKG/usr/share/man" ]; then
+ mv "$PKG/usr/share/man" "$PKG/usr/man/"
+fi
+
+# Move licenses, if exists
+if [ -d "$PKG/usr/share/licenses" ]; then
+ mv "$PKG/usr/share/licenses" "$PKG/usr/doc/$PRGNAM-$VERSION/"
+elif [ -f "$PKG/usr/share/LICENSE" ]; then
+ mv "$PKG/usr/share/LICENSE" "$PKG/usr/doc/$PRGNAM-$VERSION/"
+fi
+find "$PKG"/usr/doc/"$PRGNAM"-"$VERSION" -type f -exec chmod 644 {} \;
+fi
+
+cat "$CWD"/$PRGNAM.SlackBuild > $PKG/usr/doc/"$PRGNAM-$VERSION"/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+/sbin/makepkg --remove-tmp-rpaths -l y -c n "$OUTPUT"/"$PRGNAM"-"$VERSION"-"$ARCH"-"$BUILD""$TAG"."$PKGTYPE"
diff --git a/audio/ocenaudio-bin/ocenaudio-bin.info b/audio/ocenaudio-bin/ocenaudio-bin.info
new file mode 100644
index 0000000000..9f9c123de6
--- /dev/null
+++ b/audio/ocenaudio-bin/ocenaudio-bin.info
@@ -0,0 +1,10 @@
+PRGNAM="ocenaudio-bin"
+VERSION="3.15.0"
+HOMEPAGE="https://www.ocenaudio.com/"
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://www.ocenaudio.com/downloads/ocenaudio_debian10.deb"
+MD5SUM_x86_64="e933233ceb02f522ce2f41cdc5f87e78"
+REQUIRES="jack"
+MAINTAINER="Ioannis Anagnostakis"
+EMAIL="rizitis@gmail.com"
diff --git a/audio/ocenaudio-bin/slack-desc b/audio/ocenaudio-bin/slack-desc
new file mode 100644
index 0000000000..ba5ddec039
--- /dev/null
+++ b/audio/ocenaudio-bin/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+ocenaudio-bin: ocenaudio-bin (audio editor)
+ocenaudio-bin:
+ocenaudio-bin: A cross-platform, easy to use, fast and functional audio
+ocenaudio-bin: editor. It is the ideal software for people who need to edit and
+ocenaudio-bin: analyze audio files without complications. ocenaudio also has
+ocenaudio-bin: powerful features that will please more advanced users.
+ocenaudio-bin: application on one of these lines, but it's not necessary.
+ocenaudio-bin:
+ocenaudio-bin:
+ocenaudio-bin: https://www.ocenaudio.com/
+ocenaudio-bin:
diff --git a/audio/qmmp-plugin-pack-qt5/qmmp-plugin-pack-qt5.SlackBuild b/audio/qmmp-plugin-pack-qt5/qmmp-plugin-pack-qt5.SlackBuild
index 3924962cf7..8ceee269d1 100644
--- a/audio/qmmp-plugin-pack-qt5/qmmp-plugin-pack-qt5.SlackBuild
+++ b/audio/qmmp-plugin-pack-qt5/qmmp-plugin-pack-qt5.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for qmmp-plugin-pack-qt5.
#
# Copyright 2018-2022 Isaac Yu <isaacyu1@isaacyu1.com>
-# Copyright 2024 Edinaldo P. Silva, Rio de Janeiro, Brazil.
+# Copyright 2024-2025 Edinaldo P. Silva, Rio de Janeiro, Brazil.
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=qmmp-plugin-pack-qt5
-VERSION=${VERSION:-1.7.1}
+VERSION=${VERSION:-1.7.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/audio/qmmp-plugin-pack-qt5/qmmp-plugin-pack-qt5.info b/audio/qmmp-plugin-pack-qt5/qmmp-plugin-pack-qt5.info
index b3c8b46b65..d85c9ea8f0 100644
--- a/audio/qmmp-plugin-pack-qt5/qmmp-plugin-pack-qt5.info
+++ b/audio/qmmp-plugin-pack-qt5/qmmp-plugin-pack-qt5.info
@@ -1,8 +1,8 @@
PRGNAM="qmmp-plugin-pack-qt5"
-VERSION="1.7.1"
+VERSION="1.7.2"
HOMEPAGE="https://qmmp.ylsoftware.com/plugins.php"
-DOWNLOAD="https://qmmp.ylsoftware.com/files/qmmp-plugin-pack/1.7/qmmp-plugin-pack-1.7.1.tar.bz2"
-MD5SUM="3e2733409a5f1fbc760e11e8197e8968"
+DOWNLOAD="https://qmmp.ylsoftware.com/files/qmmp-plugin-pack/1.7/qmmp-plugin-pack-1.7.2.tar.bz2"
+MD5SUM="f92b5381bdc9f3daa196b2e17ac36d56"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="libmodplug yt-dlp qmmp-qt5"
diff --git a/audio/qmmp-qt5/qmmp-qt5.SlackBuild b/audio/qmmp-qt5/qmmp-qt5.SlackBuild
index c2ae40a49b..dd4e77c4c9 100644
--- a/audio/qmmp-qt5/qmmp-qt5.SlackBuild
+++ b/audio/qmmp-qt5/qmmp-qt5.SlackBuild
@@ -24,7 +24,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=qmmp-qt5
-VERSION=${VERSION:-1.7.3}
+VERSION=${VERSION:-1.7.6}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/audio/qmmp-qt5/qmmp-qt5.info b/audio/qmmp-qt5/qmmp-qt5.info
index b6d96fd9a8..6e5b3a3519 100644
--- a/audio/qmmp-qt5/qmmp-qt5.info
+++ b/audio/qmmp-qt5/qmmp-qt5.info
@@ -1,8 +1,8 @@
PRGNAM="qmmp-qt5"
-VERSION="1.7.3"
+VERSION="1.7.6"
HOMEPAGE="https://qmmp.ylsoftware.com/"
-DOWNLOAD="https://qmmp.ylsoftware.com/files/qmmp/1.7/qmmp-1.7.3.tar.bz2"
-MD5SUM="cb3cbe75a508fbc567ae0ddbf67f8e17"
+DOWNLOAD="https://qmmp.ylsoftware.com/files/qmmp/1.7/qmmp-1.7.6.tar.bz2"
+MD5SUM="f561a143968ee28c1c4025f26d47d241"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
diff --git a/audio/rack/rack.SlackBuild b/audio/rack/rack.SlackBuild
index d8d084ef60..01ff3a7f7c 100644
--- a/audio/rack/rack.SlackBuild
+++ b/audio/rack/rack.SlackBuild
@@ -24,7 +24,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=rack
SRCNAM=Rack2Free
-VERSION=${VERSION:-2.5.2}
+VERSION=${VERSION:-2.6.4}
SRCDIR=RackFree-$VERSION
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
diff --git a/audio/rack/rack.info b/audio/rack/rack.info
index dae116a235..ff770c2a5b 100644
--- a/audio/rack/rack.info
+++ b/audio/rack/rack.info
@@ -1,10 +1,10 @@
PRGNAM="rack"
-VERSION="2.5.2"
+VERSION="2.6.4"
HOMEPAGE="https://vcvrack.com"
-DOWNLOAD="https://vcvrack.com/downloads/RackFree-2.5.2-lin-x64.zip"
-MD5SUM="499da40d90bb0bada2b11cb99817099a"
-DOWNLOAD_x86_64=""
-MD5SUM_x86_64=""
+DOWNLOAD="UNSUPPORTED"
+MD5SUM=""
+DOWNLOAD_x86_64="https://vcvrack.com/downloads/RackFree-2.6.4-lin-x64.zip"
+MD5SUM_x86_64="b728b566c5d2f5f01bcb9fbf571b467f"
REQUIRES="jack"
MAINTAINER="David Ferrone"
EMAIL="zapwai@gmail.com"
diff --git a/audio/sayonara-player/sayonara-player.SlackBuild b/audio/sayonara-player/sayonara-player.SlackBuild
index 4089becae4..5fa19f150b 100644
--- a/audio/sayonara-player/sayonara-player.SlackBuild
+++ b/audio/sayonara-player/sayonara-player.SlackBuild
@@ -3,7 +3,7 @@
# Slackware build script for sayonara-player.
#
# Copyright 2016-2017 Edinaldo P. Silva, Rio de Janeiro, Brazil.
-# Copyright 2017-2024 Fellype do Nascimento, Guaratingueta, Brazil.
+# Copyright 2017-2025 Fellype do Nascimento, Guaratingueta, Brazil.
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -26,7 +26,7 @@
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=sayonara-player
-VERSION=${VERSION:-1.10.0_stable1}
+VERSION=${VERSION:-1.11.0_stable1}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/audio/sayonara-player/sayonara-player.info b/audio/sayonara-player/sayonara-player.info
index 415a3bf04b..491b482bd5 100644
--- a/audio/sayonara-player/sayonara-player.info
+++ b/audio/sayonara-player/sayonara-player.info
@@ -1,10 +1,10 @@
PRGNAM="sayonara-player"
-VERSION="1.10.0_stable1"
+VERSION="1.11.0_stable1"
HOMEPAGE="https://sayonara-player.com/"
DOWNLOAD="UNSUPPORTED"
MD5SUM=""
-DOWNLOAD_x86_64="https://gitlab.com/luciocarreras/sayonara-player/-/archive/1.10.0-stable1/sayonara-player-1.10.0-stable1.tar.gz"
-MD5SUM_x86_64="b97df4a255a550d1b250575c8ff2137b"
+DOWNLOAD_x86_64="https://gitlab.com/luciocarreras/sayonara-player/-/archive/1.11.0-stable1/sayonara-player-1.11.0-stable1.tar.gz"
+MD5SUM_x86_64="fb54991cfc4a774278ccb27508c59612"
REQUIRES=""
MAINTAINER="Fellype do Nascimento"
EMAIL="fellype (at) gmail (dot) com"
diff --git a/audio/sndio/README b/audio/sndio/README
index 31ad90d588..6e31f8daea 100644
--- a/audio/sndio/README
+++ b/audio/sndio/README
@@ -1,8 +1,13 @@
-Sndio is a small audio and MIDI framework part of the OpenBSD project
-and ported to FreeBSD, Linux and NetBSD. It provides a lightweight audio
-& MIDI server and a fully documented user-space API to access either the
-server or the hardware directly in a uniform way. Sndio is designed to
-work for desktop applications, but pays special attention to
-synchronization mechanisms and reliability required by music
-applications. Reliability through simplicity are part of the project
-goals.
+Sndio is a small audio and MIDI framework, part of the OpenBSD
+project, and ported to FreeBSD, Linux and NetBSD. It provides a
+lightweight audio & MIDI server and a fully documented user-space API
+to access either the server or the hardware directly in a uniform
+way. Sndio is designed to work for desktop applications, but pays
+special attention to synchronization mechanisms and reliability
+required by music applications. Reliability through simplicity are
+part of the project goals.
+
+Before running the SlackBuild script, you must create a sndiod user:
+
+ # mkdir -p /var/run/sndiod
+ # useradd -u 389 -g audio -d /var/run/sndiod sndiod
diff --git a/audio/sndio/slack-desc b/audio/sndio/slack-desc
index 87cacbd87d..f01a6cb85c 100644
--- a/audio/sndio/slack-desc
+++ b/audio/sndio/slack-desc
@@ -8,11 +8,11 @@
|-----handy-ruler------------------------------------------------------|
sndio: sndio (small audio and MIDI framework)
sndio:
-sndio: Sndio is a small audio and MIDI framework part of the OpenBSD project
-sndio: and ported to FreeBSD, Linux and NetBSD. It provides a lightweight
-sndio: audio & MIDI server and a fully documented user-space API to access
-sndio: either the server or the hardware directly in a uniform way.
-sndio:
+sndio: Sndio is a small audio and MIDI framework, part of the OpenBSD
+sndio: project, and ported to FreeBSD, Linux and NetBSD. It provides
+sndio: a lightweight audio & MIDI server and a fully documented
+sndio: user-space API to access either the server or the hardware
+sndio: directly in a uniform way.
sndio:
sndio:
sndio:
diff --git a/audio/sndio/sndio.SlackBuild b/audio/sndio/sndio.SlackBuild
index b134b9ebc7..6d88ed6f42 100644
--- a/audio/sndio/sndio.SlackBuild
+++ b/audio/sndio/sndio.SlackBuild
@@ -22,16 +22,25 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+# 20250602 bkw: Modified by SlackBuilds.org, BUILD=2:
+# - assign UID 389 for sndiod.
+# - use getent to check user existence (not grep /etc/passwd).
+# - tiny punctuation fixes in README and slack-desc.
+# - actually use SLKCFLAGS.
+# - fix 32-bit build (hardcoded lib64).
+# - add aarch64 lib64 support. untested.
+# - fix .pc file (by adding --prefix to ./configure).
+
cd "$(dirname "$0")" ; CWD=$(pwd)
PRGNAM=sndio
VERSION=${VERSION:-1.9.0}
-BUILD=${BUILD:-1}
+BUILD=${BUILD:-2}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
NAMVER=$PRGNAM-$VERSION
-SNDIO_GID='17' # Slackware's 'audio' group.
-SNDIO_UID='377' # A chosen ID for sndiod user.
+SNDIO_GRP='audio'
+SNDIO_UID='389' # UID for sndiod user, see https://slackbuilds.org/uid_gid.txt
if [ -z "$ARCH" ]; then
case "$(uname -m)" in
@@ -51,13 +60,13 @@ SRC="$TMP/$NAMVER"
PKG="$TMP/package-$PRGNAM"
OUTPUT="${OUTPUT:-/tmp}"
-# Bail out if user or group isn't valid on your system
-# For slackbuilds.org, assigned postgres uid/gid are 377/377
+# Bail out if user isn't valid on your system.
+# For slackbuilds.org, assigned sndiod UID is 389.
# See http://slackbuilds.org/uid_gid.txt
-if ! grep ^sndiod: /etc/passwd 2>&1 > /dev/null; then
- echo " You must have 'sndiod' user to run this script."
- echo " # mkdir /var/run/sndiod"
- echo " # useradd -u $SNDIO_UID -g $SNDIO_GID -d /var/run/sndiod sndiod"
+if ! getent passwd sndiod &>/dev/null; then
+ echo " You must have a 'sndiod' user to run this script."
+ echo " # mkdir -p /var/run/sndiod"
+ echo " # useradd -u $SNDIO_UID -g $SNDIO_GRP -d /var/run/sndiod sndiod"
exit 1
fi
@@ -65,8 +74,9 @@ if [ "$ARCH" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
-elif [ "$ARCH" = "x86_64" ]; then
+elif [ "$ARCH" = "x86_64" -o "$ARCH" = "aarch64" ]; then
SLKCFLAGS="-O2 -fPIC"
+ LSUF="64"
else
SLKCFLAGS="-O2"
fi
@@ -84,18 +94,19 @@ chmod -R u+w,go+r-w,a-s .
INSTPREFIX='/usr'
BINDIR="$INSTPREFIX/bin" # Binaries
-LIBDIR="$INSTPREFIX/lib64" # Libraries
+LIBDIR="$INSTPREFIX/lib$LSUF" # Libraries
PKGCONFDIR="$LIBDIR/pkgconfig" # pkg-config(1) files
INCLUDEDIR="$INSTPREFIX/include" # Headers
MANDIR="$INSTPREFIX/man" # Man pages
./configure \
+ --prefix=/usr \
--bindir="$BINDIR" \
--libdir="$LIBDIR" \
--pkgconfdir="$PKGCONFDIR" \
--includedir="$INCLUDEDIR" \
--mandir="$MANDIR"
-make
+make CFLAGS="$SLKCFLAGS"
make DESTDIR="$PKG" PREFIX="$INSTPREFIX" install
# Strip symbols.
diff --git a/audio/xmms2/README b/audio/xmms2/README
index ba3ef8ec70..6aa21aff61 100644
--- a/audio/xmms2/README
+++ b/audio/xmms2/README
@@ -4,5 +4,3 @@ robust and flexible design. The goal is to make the system easy for
developers to maintain and integrate with. In terms of the listening
experience, XMMS2 makes it possible for anyone to easily manage their
music collection and to interact with it in a flexible manner.
-
-ffmpeg is an optional dependency (but it's *BROKEN* ATM)
diff --git a/audio/xmms2/xmms2.SlackBuild b/audio/xmms2/xmms2.SlackBuild
index 42916441e2..e0fc6a41c2 100644
--- a/audio/xmms2/xmms2.SlackBuild
+++ b/audio/xmms2/xmms2.SlackBuild
@@ -5,11 +5,12 @@
# Written by Kyle Guinn <elyk03@gmail.com>
# Updated by Rainer Wittmaack <ningo@gmx.net>
# Updated by Andrew Brouwers, abrouwers at gmail d0t com (13.0, 64-bit)
+# Updated by Matteo Bernardini, ponce at slackbuilds d0t org
cd $(dirname $0) ; CWD=$(pwd)
PRGNAM=xmms2
-VERSION=${VERSION:-"0.9.3"}
+VERSION=${VERSION:-"0.9.5"}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
diff --git a/audio/xmms2/xmms2.info b/audio/xmms2/xmms2.info
index 60768508b5..2fd5a40960 100644
--- a/audio/xmms2/xmms2.info
+++ b/audio/xmms2/xmms2.info
@@ -1,8 +1,8 @@
PRGNAM="xmms2"
-VERSION="0.9.3"
+VERSION="0.9.5"
HOMEPAGE="http://wiki.xmms2.xmms.se/"
-DOWNLOAD="https://github.com/xmms2/xmms2-devel/releases/download/0.9.3/xmms2-0.9.3.tar.xz"
-MD5SUM="0b0e0df29fada5dfa638956813a34ce3"
+DOWNLOAD="https://github.com/xmms2/xmms2-devel/releases/download/0.9.5/xmms2-0.9.5.tar.xz"
+MD5SUM="8b8433618b43969da621a511015a5621"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES="perl-Pod-Parser"
diff --git a/audio/yabridge/fix-libdbus-connection.patch b/audio/yabridge/fix-libdbus-connection.patch
deleted file mode 100644
index 4acbee2927..0000000000
--- a/audio/yabridge/fix-libdbus-connection.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-commit 8d508dc2fefe9745ffa9cb14e1d7519a7852aa95
-Author: Robbert van der Helm <mail@robbertvanderhelm.nl>
-Date: Sun Apr 7 22:49:00 2024 +0200
-
- Fix segfault destroying libdbus connection
-
-diff --git a/CHANGELOG.md b/CHANGELOG.md
-index a1739b3d..429880a6 100644
---- a/CHANGELOG.md
-+++ b/CHANGELOG.md
-@@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
- and this project adheres to [Semantic
- Versioning](https://semver.org/spec/v2.0.0.html).
-
-+## [Unreleased]
-+
-+### Fixed
-+
-+- Fixed a potential segfault when unloading yabridge.
-+
- ## [5.1.0] - 2023-12-23
-
- ### Added
-diff --git a/src/common/notifications.cpp b/src/common/notifications.cpp
-index 403103bf..654b6c83 100644
---- a/src/common/notifications.cpp
-+++ b/src/common/notifications.cpp
-@@ -57,9 +57,19 @@ std::mutex libdbus_mutex;
- LIBDBUS_FUNCTIONS
- #undef X
-
-+/**
-+ * The deleter used for `libdbus_connection`. `libdbus_connection` can't
-+ * directly reference `libdbus_connection_unref` directly because it will not
-+ * yet have been initialized until just before `libdbus_connection` gets
-+ * initialized.
-+ */
-+static void close_dbus_connection(DBusConnection* connection) {
-+ libdbus_connection_unref(connection);
-+}
-+
- std::unique_ptr<DBusConnection, void (*)(DBusConnection*)> libdbus_connection(
- nullptr,
-- libdbus_connection_unref);
-+ close_dbus_connection);
-
- /**
- * Try to set up D-Bus. Returns `false` if a function could not be resolved or
diff --git a/audio/yabridge/fix_change_path.diff b/audio/yabridge/fix_change_path.diff
new file mode 100644
index 0000000000..0b0575deb1
--- /dev/null
+++ b/audio/yabridge/fix_change_path.diff
@@ -0,0 +1,14 @@
+diff --git a/tools/yabridgectl/src/main.rs b/tools/yabridgectl/src/main.rs
+index e66ef0da..6897260e 100644
+--- a/tools/yabridgectl/src/main.rs
++++ b/tools/yabridgectl/src/main.rs
+@@ -148,7 +148,8 @@ fn main() -> Result<()> {
+ "Automatically locate yabridge's files. This can be used after \
+ manually setting a path with the '--path' option to revert back to \
+ the default auto detection behaviour.",
+- ),
++ )
++ .action(ArgAction::SetTrue),
+ )
+ .arg(
+ Arg::new("vst2_location")
diff --git a/audio/yabridge/load_posix_spawn_addclosefrom_np.diff b/audio/yabridge/load_posix_spawn_addclosefrom_np.diff
new file mode 100644
index 0000000000..9c10fafbb2
--- /dev/null
+++ b/audio/yabridge/load_posix_spawn_addclosefrom_np.diff
@@ -0,0 +1,123 @@
+diff --git a/CHANGELOG.md b/CHANGELOG.md
+index 4af4cb1a..987a23fe 100644
+--- a/CHANGELOG.md
++++ b/CHANGELOG.md
+@@ -6,7 +6,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
+ and this project adheres to [Semantic
+ Versioning](https://semver.org/spec/v2.0.0.html).
+
+-## [5.1.1] - 2024-11-04
++## [Unreleased]
++
++### Fixed
++
++- Worked around an interaction between **Ubuntu 24.10** and certain hosts like
++ **Ardour** that would cause yabridge to hang and eventually crash the host by
++ consuming too much memory. This only affected the prebuilt binaries from the
++ releases page.
++
++## [5.1.1] - 2024-12-23
+
+ ### Fixed
+
+diff --git a/src/common/process.cpp b/src/common/process.cpp
+index d9f407d1..5408abed 100644
+--- a/src/common/process.cpp
++++ b/src/common/process.cpp
+@@ -19,6 +19,7 @@
+ #include <cassert>
+ #include <iostream>
+
++#include <dlfcn.h>
+ #include <spawn.h>
+ #include <sys/wait.h>
+
+@@ -323,6 +324,48 @@ Process::StatusResult Process::spawn_get_status() const {
+ }
+ }
+
++/**
++ * Add file handle close actions to a `posix_spawn_file_actions_t` that close
++ * all non-stdio file descriptors.
++ *
++ * If the Wine process outlives the host, then it may cause issues if our
++ * process is still keeping the host's file descriptors alive that. This can
++ * prevent Ardour from restarting after an unexpected shutdown. Because of this
++ * we won't use `vfork()`, but instead we'll just manually close all non-STDIO
++ * file descriptors.
++ */
++static void close_non_stdio_file_descriptions(
++ posix_spawn_file_actions_t& actions) {
++#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34)
++ posix_spawn_file_actions_addclosefrom_np(&actions, STDERR_FILENO + 1);
++#else
++ // NOTE: As of writing, yabridge is compiled on Ubuntu 20.04, where
++ // `posix_spawn_file_actions_addclosefrom_np()` is not yet available.
++ // For whatever reason that may be, on Ubuntu 24.10 closing all file
++ // handles manually becomes very slow and starts to leak memory when
++ // running yabridge under Ardour. We could bump the minimum Ubuntu
++ // version supported by the binaries and always use this function, but
++ // loading the function at runtime should be fine and gives us better
++ // compatibility even if yabridge is compiled on an older distro.
++ //
++ // https://github.com/robbert-vdh/yabridge/issues/377
++ int (*posix_spawn_file_actions_addclosefrom_np)(posix_spawn_file_actions_t*,
++ int);
++ posix_spawn_file_actions_addclosefrom_np =
++ reinterpret_cast<decltype(posix_spawn_file_actions_addclosefrom_np)>(
++ dlsym(nullptr, "posix_spawn_file_actions_addclosefrom_np"));
++
++ if (posix_spawn_file_actions_addclosefrom_np) {
++ posix_spawn_file_actions_addclosefrom_np(&actions, STDERR_FILENO + 1);
++ } else {
++ const int max_fds = static_cast<int>(sysconf(_SC_OPEN_MAX));
++ for (int fd = STDERR_FILENO + 1; fd < max_fds; fd++) {
++ posix_spawn_file_actions_addclose(&actions, fd);
++ }
++ }
++#endif
++}
++
+ #ifndef WITHOUT_ASIO
+ Process::HandleResult Process::spawn_child_piped(
+ // NOLINTNEXTLINE(bugprone-easily-swappable-parameters)
+@@ -348,20 +391,7 @@ Process::HandleResult Process::spawn_child_piped(
+ posix_spawn_file_actions_adddup2(&actions, stderr_pipe_fds[1],
+ STDERR_FILENO);
+ // We'll close the four pipe fds along with the rest of the file descriptors
+-
+-// NOTE: If the Wine process outlives the host, then it may cause issues if
+-// our process is still keeping the host's file descriptors alive
+-// that. This can prevent Ardour from restarting after an unexpected
+-// shutdown. Because of this we won't use `vfork()`, but instead we'll
+-// just manually close all non-STDIO file descriptors.
+-#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34)
+- posix_spawn_file_actions_addclosefrom_np(&actions, STDERR_FILENO + 1);
+-#else
+- const int max_fds = static_cast<int>(sysconf(_SC_OPEN_MAX));
+- for (int fd = STDERR_FILENO + 1; fd < max_fds; fd++) {
+- posix_spawn_file_actions_addclose(&actions, fd);
+- }
+-#endif
++ close_non_stdio_file_descriptions(actions);
+
+ pid_t child_pid = 0;
+ const auto result = posix_spawnp(&child_pid, command_.c_str(), &actions,
+@@ -407,16 +437,7 @@ Process::HandleResult Process::spawn_child_redirected(
+ O_WRONLY | O_CREAT | O_APPEND, 0640);
+ posix_spawn_file_actions_addopen(&actions, STDERR_FILENO, filename.c_str(),
+ O_WRONLY | O_CREAT | O_APPEND, 0640);
+-
+- // See the note in the other function
+-#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34)
+- posix_spawn_file_actions_addclosefrom_np(&actions, STDERR_FILENO + 1);
+-#else
+- const int max_fds = static_cast<int>(sysconf(_SC_OPEN_MAX));
+- for (int fd = STDERR_FILENO + 1; fd < max_fds; fd++) {
+- posix_spawn_file_actions_addclose(&actions, fd);
+- }
+-#endif
++ close_non_stdio_file_descriptions(actions);
+
+ pid_t child_pid = 0;
+ const auto result = posix_spawnp(&child_pid, command_.c_str(), &actions,
diff --git a/audio/yabridge/yabridge.SlackBuild b/audio/yabridge/yabridge.SlackBuild
index 0bde50812e..d30c5f574f 100644
--- a/audio/yabridge/yabridge.SlackBuild
+++ b/audio/yabridge/yabridge.SlackBuild
@@ -22,17 +22,17 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-cd $(dirname $0) || exit 1 ; CWD=$(pwd)
+cd "$(dirname "$0")" || exit 1 ; CWD=$(pwd)
PRGNAM=yabridge
-VERSION=${VERSION:-5.1.0}
-BUILD=${BUILD:-3}
+VERSION=${VERSION:-5.1.1}
+BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
PKGTYPE=${PKGTYPE:-tgz}
ARG_CLAP=${ARG_CLAP:-NO}
ARG_VST3=${ARG_VST3:-YES}
ARG_WINEDBG=${ARG_WINEDBG:-NO}
-#false/true
+
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
@@ -64,12 +64,12 @@ fi
# If the variable PRINT_PACKAGE_NAME is set, then this script will report what
# the name of the created package would be, and then exit. This information
# could be useful to other scripts.
-if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+if [ -n "${PRINT_PACKAGE_NAME}" ]; then
echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
exit 0
fi
-if [ $ARCH = "arm" ]; then
+if [ "$ARCH" = "arm" ]; then
echo "This script only supports x86 for now but Slackware ARM and ARM64 is happening FIXME"
exit 1
fi
@@ -81,13 +81,13 @@ WINE64_IN_PATH=$?
if [ "$ARCH" = "i586" ] || [ "$ARCH" = "i686" ]; then
LIBDIRSUFFIX=""
- if (($WINE_IN_PATH)); then
+ if ((WINE_IN_PATH)); then
echo "This script look for wine in PATH and needs it for compiling and using yabridge on i586"
exit 1
fi
-elif [ $ARCH = "x86_64" ]; then
+elif [ "$ARCH" = "x86_64" ]; then
LIBDIRSUFFIX="64"
- if (($WINE_IN_PATH)) || (($WINE64_IN_PATH)); then
+ if ((WINE_IN_PATH)) || ((WINE64_IN_PATH)); then
echo "This script look for wine and wine64 in PATH and needs them both for compiling and using yabridge on x86_64"
exit 1
fi
@@ -106,14 +106,14 @@ OUTPUT=${OUTPUT:-/tmp}
set -e
-rm -rf $PKG
-mkdir -p $TMP $PKG $OUTPUT
-cd $TMP
-rm -rf $PRGNAM-$VERSION
-tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
-cd $PRGNAM-$VERSION
+rm -rf "$PKG"
+mkdir -p "$TMP" "$PKG" "$OUTPUT"
+cd "$TMP"
+rm -rf "$PRGNAM-$VERSION"
+tar xvf "$CWD/$PRGNAM-$VERSION.tar.gz"
+cd "$PRGNAM-$VERSION"
echo -e "\Unpacking documentation, cargo dependencies and vstsdk meson.build"
-tar xvf $CWD/yabridge-html-docs-plus-build-files-$VERSION.tar.gz
+tar xvf "$CWD/yabridge-docs-plus-build-$VERSION.tar.gz"
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -121,15 +121,14 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-patch -p1 < $CWD/fix-libdbus-connection.patch
+patch -p1 < "$CWD/load_posix_spawn_addclosefrom_np.diff"
+patch -p1 < "$CWD/fix_change_path.diff"
#Build only capitalized
sed -i "s|bitsery_dep = dependency('bitsery', version : '>=5.2.0')|bitsery_dep = dependency('Bitsery', version : '>=5.2.0')|g" meson.build
sed -i "s|bitsery_dep = dependency('bitsery', 'Bitsery', version : '>=5.2.0')|bitsery_dep = dependency('Bitsery', version : '>=5.2.0')|g" meson.build
-mkdir subprojects/vst3
-tar xvzf $CWD/vst3sdk-3.7.7.tar.gz --strip-components=1 -C subprojects/vst3
-cp yabridge-html-docs-plus-build-files-$VERSION/meson.build subprojects/vst3
+mv yabridge-docs-plus-build/vst3sdk subprojects/vst3
if [ "$ARCH" = "i586" ] || [ "$ARCH" = "i686" ]; then
meson setup \
@@ -180,7 +179,7 @@ cd ./tools/yabridgectl
# This makes cargo target the locale identical copy of reflink in vendor source directory
sed -i 's|{ git = "https://github.com/nicokoch/reflink", rev = "e8d93b465f5d9ad340cd052b64bbc77b8ee107e2" }|"0.1.3"|g' Cargo.toml
sed -i 's|git+https://github.com/nicokoch/reflink?rev=e8d93b465f5d9ad340cd052b64bbc77b8ee107e2#e8d93b465f5d9ad340cd052b64bbc77b8ee107e2|registry+https://github.com/rust-lang/crates.io-index|g' Cargo.lock
-CARGO_HOME=../../yabridge-html-docs-plus-build-files-$VERSION/cargo/CARGO_HOME cargo build --release --locked --all-features --offline --target-dir=target
+CARGO_HOME=../../yabridge-docs-plus-build/cargo/CARGO_HOME cargo build --release --locked --all-features --offline --target-dir=target
cd ../../build
@@ -218,22 +217,22 @@ install ../tools/yabridgectl/target/release/yabridgectl "$PKG/usr/bin"
cd ..
-find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+find "$PKG" -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
-mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+mkdir -p "$PKG/usr/doc/$PRGNAM-$VERSION"
cp -a \
README.md \
docs/architecture.md \
COPYING \
CHANGELOG.md \
- $PKG/usr/doc/$PRGNAM-$VERSION
-cp tools/yabridgectl/README.md $PKG/usr/doc/$PRGNAM-$VERSION/README-yabridgectl.md
-cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
-cp -a yabridge-html-docs-plus-build-files-$VERSION/html/* $PKG/usr/doc/$PRGNAM-$VERSION
+ "$PKG/usr/doc/$PRGNAM-$VERSION"
+cp tools/yabridgectl/README.md "$PKG/usr/doc/$PRGNAM-$VERSION/README-yabridgectl.md"
+cat "$CWD/$PRGNAM.SlackBuild" > "$PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild"
+cp -a yabridge-docs-plus-build/html/* "$PKG/usr/doc/$PRGNAM-$VERSION"
-mkdir -p $PKG/install
-cat $CWD/slack-desc > $PKG/install/slack-desc
+mkdir -p "$PKG/install"
+cat "$CWD/slack-desc" > "$PKG/install/slack-desc"
-cd $PKG
-/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
+cd "$PKG"
+/sbin/makepkg -l y -c n "$OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
diff --git a/audio/yabridge/yabridge.info b/audio/yabridge/yabridge.info
index f449cb7d4a..8fcf797f28 100644
--- a/audio/yabridge/yabridge.info
+++ b/audio/yabridge/yabridge.info
@@ -1,12 +1,10 @@
PRGNAM="yabridge"
-VERSION="5.1.0"
+VERSION="5.1.1"
HOMEPAGE="https://github.com/robbert-vdh/yabridge"
-DOWNLOAD="https://github.com/robbert-vdh/yabridge/archive/5.1.0/yabridge-5.1.0.tar.gz \
- https://github.com/noisecode3/vst3sdk/archive/3.7.7/vst3sdk-3.7.7.tar.gz \
- https://github.com/noisecode3/yabridge-html-docs-plus-build-files/archive/v5.1.0/yabridge-html-docs-plus-build-files-5.1.0.tar.gz"
-MD5SUM="2383d67c9089a4fda8ae311baaa8fe3b \
- f9e2185ea8cdfbdc4d99c4a5f5e4d426 \
- a58876a05ac16ada09f750a4b8564443"
+DOWNLOAD="https://github.com/robbert-vdh/yabridge/archive/5.1.1/yabridge-5.1.1.tar.gz \
+ https://github.com/noisecode3/yabridge-docs-plus-build/releases/download/v5.1.1/yabridge-docs-plus-build-5.1.1.tar.gz"
+MD5SUM="94c80f969690c138a1e9f85552f24ce7 \
+ ad022ccdfad9b7e58e1ab55da1ef7a30"
DOWNLOAD_x86_64="UNSUPPORTED"
MD5SUM_x86_64=""
REQUIRES="wine-staging asio bitsery function2 ghc_filesystem tomlplusplus rust-opt"
diff --git a/audio/zoom-edit-n-share/README b/audio/zoom-edit-n-share/README
new file mode 100644
index 0000000000..2c6300837b
--- /dev/null
+++ b/audio/zoom-edit-n-share/README
@@ -0,0 +1,17 @@
+The Edit&Share application is used to control Zoom G3/B3 pedals from
+your favourite Slackware box.
+
+The Zoom G3/B3 guitar pedals opens the door to a new creativity level.
+It offers a number of effects, along with amp and cabinet models,
+and allows you to chain them together for full multi-effect complexity.
+
+Three stompbox-style displays—each with its own dedicated foot switch
+and control knobs—make it easy to edit effects and bring them in and
+out as needed.
+
+Advanced features like an onboard chromatic tuner, balanced line-level
+output, USB port, and integrated rhythm patterns and looper complete
+the picture.
+
+Both onstage and in the studio, you can count on your G3 to deliver
+the great sound you need from a guitar pedal.
diff --git a/audio/zoom-edit-n-share/doinst.sh b/audio/zoom-edit-n-share/doinst.sh
new file mode 100644
index 0000000000..aea0f894eb
--- /dev/null
+++ b/audio/zoom-edit-n-share/doinst.sh
@@ -0,0 +1,13 @@
+if [ -x /usr/bin/update-desktop-database ]; then
+ /usr/bin/update-desktop-database -q usr/share/applications >/dev/null 2>&1
+fi
+
+if [ -x /usr/bin/update-mime-database ]; then
+ /usr/bin/update-mime-database usr/share/mime >/dev/null 2>&1
+fi
+
+if [ -e usr/share/icons/hicolor/icon-theme.cache ]; then
+ if [ -x /usr/bin/gtk-update-icon-cache ]; then
+ /usr/bin/gtk-update-icon-cache -f usr/share/icons/hicolor >/dev/null 2>&1
+ fi
+fi
diff --git a/audio/zoom-edit-n-share/slack-desc b/audio/zoom-edit-n-share/slack-desc
new file mode 100644
index 0000000000..1527378fe4
--- /dev/null
+++ b/audio/zoom-edit-n-share/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+zoom-edit-n-share: zoom-edit-n-share (Control your Zoom G3/B3 guitar pedals)
+zoom-edit-n-share:
+zoom-edit-n-share: The Edit&Share application is used to control Zoom G3/B3 pedals from
+zoom-edit-n-share: your favourite Slackware box.
+zoom-edit-n-share: The Zoom G3/B3 guitar pedals opens the door to a new level of
+zoom-edit-n-share: creativity. It offers a number of effects, along with amp and cabinet
+zoom-edit-n-share: models, and allows you to chain them together for full multi-effect
+zoom-edit-n-share: complexity.
+zoom-edit-n-share:
+zoom-edit-n-share:
+zoom-edit-n-share:
diff --git a/audio/zoom-edit-n-share/zoom-edit-n-share b/audio/zoom-edit-n-share/zoom-edit-n-share
new file mode 100644
index 0000000000..be8038f5a0
--- /dev/null
+++ b/audio/zoom-edit-n-share/zoom-edit-n-share
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+# Slackware launcher script for ZOOM Edit&Share
+
+# Copyright 2024-2025 Antonio Leal, Porto Salvo, Oeiras, Portugal
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+FOLDER=`find $HOME/.wine/drive_c -name "Edit_Share" -print`
+PRGNAM=`find $HOME/.wine/drive_c -name "ZOOM\ Edit&Share.exe" -print`
+if ! [ -f "${PRGNAM}" ]; then
+ cd "/opt/Edit&Share/"
+ wine ./Edit\&Share\ 5.0.0.0\ Setup.exe /S/v/qn
+ rm -rf "$HOME/.local/share/applications/wine/Programs/ZOOM"
+ kbuildsycoca5 > /dev/null 2>&1
+fi
+cd "${FOLDER}/bin"
+wine "$PRGNAM"
diff --git a/audio/zoom-edit-n-share/zoom-edit-n-share.SlackBuild b/audio/zoom-edit-n-share/zoom-edit-n-share.SlackBuild
new file mode 100644
index 0000000000..85b2bd9599
--- /dev/null
+++ b/audio/zoom-edit-n-share/zoom-edit-n-share.SlackBuild
@@ -0,0 +1,99 @@
+#!/bin/bash
+
+# Slackware build script for ZOOM Edit&Share
+
+# Copyright 2024-2025 Antonio Leal, Porto Salvo, Oeiras, Portugal
+# All rights reserved.
+#
+# Redistribution and use of this script, with or without modification, is
+# permitted provided that the following conditions are met:
+#
+# 1. Redistributions of this script must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+cd $(dirname $0) ; CWD=$(pwd)
+
+PRGNAM=zoom-edit-n-share
+VERSION=${VERSION:-5.3.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+PKGTYPE=${PKGTYPE:-tgz}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
+ echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE"
+ exit 0
+fi
+
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+else
+ SLKCFLAGS="-O2"
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $PRGNAM-$VERSION
+mkdir $PRGNAM-$VERSION
+cd $PRGNAM-$VERSION
+
+chown -R root:root .
+find -L . \
+ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
+ -o -perm 511 \) -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+mkdir -p "$PKG/opt/Edit&Share"
+unzip $CWD/E_Edit_Share_Win_v5_3_0.zip
+cp "E_Edit&Share_Win/Edit&Share 5.0.0.0 Setup.exe" "$PKG/opt/Edit&Share"
+cp "E_Edit&Share_Win/Edit&Share Operation Manual English.pdf" "$PKG/opt/Edit&Share"
+install -T -m0755 $CWD/zoom-edit-n-share "$PKG/opt/Edit&Share/$PRGNAM"
+
+mkdir -p $PKG/usr/share/pixmaps
+cp $CWD/zoom-edit-n-share.png $PKG/usr/share/pixmaps/zoom-edit-n-share.png
+
+mkdir -p $PKG/usr/share/applications
+cp $CWD/zoom-edit-n-share.desktop $PKG/usr/share/applications
+
+find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE
diff --git a/audio/zoom-edit-n-share/zoom-edit-n-share.desktop b/audio/zoom-edit-n-share/zoom-edit-n-share.desktop
new file mode 100644
index 0000000000..4045c44cd0
--- /dev/null
+++ b/audio/zoom-edit-n-share/zoom-edit-n-share.desktop
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=ZOOM Edit&Share
+GenericName=ZOOM Edit&Share
+Exec="/opt/Edit&Share/zoom-edit-n-share"
+Icon=/usr/share/pixmaps/zoom-edit-n-share.png
+Terminal=false
+Type=Application
+Categories=AudioVideo;
+StartupNotify=false
diff --git a/audio/zoom-edit-n-share/zoom-edit-n-share.info b/audio/zoom-edit-n-share/zoom-edit-n-share.info
new file mode 100644
index 0000000000..38c23df1a5
--- /dev/null
+++ b/audio/zoom-edit-n-share/zoom-edit-n-share.info
@@ -0,0 +1,10 @@
+PRGNAM="zoom-edit-n-share"
+VERSION="5.3.0"
+HOMEPAGE="https://zoomcorp.com/en/jp/"
+DOWNLOAD="https://zoomcorp.com/documents/407/E_Edit_Share_Win_v5_3_0.zip"
+MD5SUM="ee06ca133b0bf2e99df4f118ff084b1f"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES="wine"
+MAINTAINER="Antonio Leal"
+EMAIL="antonioleal@yahoo.com"
diff --git a/audio/zoom-edit-n-share/zoom-edit-n-share.png b/audio/zoom-edit-n-share/zoom-edit-n-share.png
new file mode 100644
index 0000000000..9d621371b7
--- /dev/null
+++ b/audio/zoom-edit-n-share/zoom-edit-n-share.png
Binary files differ