summaryrefslogtreecommitdiffstats
path: root/extra/source/pure-alsa-system
diff options
context:
space:
mode:
Diffstat (limited to 'extra/source/pure-alsa-system')
-rw-r--r--extra/source/pure-alsa-system/pure-alsa-system.buildlist34
-rw-r--r--extra/source/pure-alsa-system/xfce4-mixer/0001-Make-Unique-support-optional.patch87
-rw-r--r--extra/source/pure-alsa-system/xfce4-mixer/0001-Use-datadir-xfce4-mixer-as-MIXER_DATADIR.patch63
-rw-r--r--extra/source/pure-alsa-system/xfce4-mixer/0001-icons-Makefile.am-Remove-unnecessary-gtk-update-icon.patch36
-rw-r--r--extra/source/pure-alsa-system/xfce4-mixer/README.ALSA4
-rw-r--r--extra/source/pure-alsa-system/xfce4-mixer/doinst.sh14
-rw-r--r--extra/source/pure-alsa-system/xfce4-mixer/slack-desc19
-rwxr-xr-xextra/source/pure-alsa-system/xfce4-mixer/xfce4-mixer.SlackBuild125
-rw-r--r--extra/source/pure-alsa-system/xfce4-volumed/0001-Removed-deprecated-Encoding-entry-in-.desktop-file-t.patch37
-rw-r--r--extra/source/pure-alsa-system/xfce4-volumed/0003-Removing-edge-case-memleaks.patch80
-rw-r--r--extra/source/pure-alsa-system/xfce4-volumed/slack-desc19
-rwxr-xr-xextra/source/pure-alsa-system/xfce4-volumed/xfce4-volumed.SlackBuild117
12 files changed, 635 insertions, 0 deletions
diff --git a/extra/source/pure-alsa-system/pure-alsa-system.buildlist b/extra/source/pure-alsa-system/pure-alsa-system.buildlist
new file mode 100644
index 000000000..874d9acd8
--- /dev/null
+++ b/extra/source/pure-alsa-system/pure-alsa-system.buildlist
@@ -0,0 +1,34 @@
+# Before running this buildlist, remove the following packages:
+# removepkg pulseaudio pamixer pavucontrol xfce4-pulseaudio-plugin
+#
+# Then, build/install the ALSA-only packages with these commands:
+# cd ../../../source
+# BUILDLIST=../extra/source/pure-alsa-system/pure-alsa-system.buildlist ./make_world.sh
+#
+# After the build/install is complete, move the asound.conf.new into place:
+# mv /etc/asound.conf.new /etc/asound.conf
+#
+# If you use Xfce, add the audio mixer plugin to your panel.
+#
+# A reboot might be needed to release the pulseaudio processes/libraries.
+#
+# Enjoy! :-)
+#
+l/alsa-lib/alsa-lib.SlackBuild
+l/libao/libao.SlackBuild
+l/libcanberra/libcanberra.SlackBuild
+l/fluidsynth/fluidsynth.SlackBuild
+l/gst-plugins-good0/gst-plugins-good0.SlackBuild
+l/gst-plugins-good/gst-plugins-good.SlackBuild
+l/alsa-plugins/alsa-plugins.SlackBuild
+xap/audacious-plugins/audacious-plugins.SlackBuild
+l/ffmpeg/ffmpeg.SlackBuild
+l/phonon/phonon.SlackBuild
+xap/xine-lib/xine-lib.SlackBuild
+ap/sox/sox.SlackBuild
+ap/mpg123/mpg123.SlackBuild
+xap/MPlayer/MPlayer.SlackBuild
+kde/kde.SlackBuild kdebase:kde-runtime
+kde/kde.SlackBuild kdemultimedia:kmix
+../extra/source/pure-alsa-system/xfce4-mixer/xfce4-mixer.SlackBuild
+../extra/source/pure-alsa-system/xfce4-volumed/xfce4-volumed.SlackBuild
diff --git a/extra/source/pure-alsa-system/xfce4-mixer/0001-Make-Unique-support-optional.patch b/extra/source/pure-alsa-system/xfce4-mixer/0001-Make-Unique-support-optional.patch
new file mode 100644
index 000000000..c53cd566d
--- /dev/null
+++ b/extra/source/pure-alsa-system/xfce4-mixer/0001-Make-Unique-support-optional.patch
@@ -0,0 +1,87 @@
+From 7a18841c988edb593127842ec5c919df537f9ce0 Mon Sep 17 00:00:00 2001
+From: Andrzej <ndrwrdck@gmail.com>
+Date: Sat, 12 Apr 2014 08:53:09 +0100
+Subject: [PATCH] Make Unique support optional
+
+---
+ configure.ac.in | 4 +++-
+ xfce4-mixer/main.c | 21 +++++++++++++++++++++
+ 2 files changed, 24 insertions(+), 1 deletion(-)
+
+--- ./configure.ac.in.orig 2014-04-09 14:44:50.000000000 -0500
++++ ./configure.ac.in 2018-04-24 12:36:10.442764602 -0500
+@@ -98,7 +98,6 @@
+ XDT_CHECK_PACKAGE([DBUS_GLIB], [dbus-glib-1], [0.84])
+ XDT_CHECK_PACKAGE([GST_PLUGINS_BASE], [gstreamer-plugins-base-0.10], [0.10.25])
+ XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.20.0])
+-XDT_CHECK_PACKAGE([UNIQUE], [unique-1.0], [1.1])
+ XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.10.0])
+ XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-1], [4.10.0])
+ XDT_CHECK_PACKAGE([LIBXFCE4PANEL], [libxfce4panel-1.0], [4.10.0])
+--- ./xfce4-mixer/main.c.orig 2014-04-09 14:44:50.000000000 -0500
++++ ./xfce4-mixer/main.c 2018-04-24 12:35:56.340763434 -0500
+@@ -30,7 +30,10 @@
+ #include <gst/gst.h>
+
+ #include <gtk/gtk.h>
++
++#ifdef HAVE_UNIQUE
+ #include <unique/unique.h>
++#endif
+
+ #include <libxfce4util/libxfce4util.h>
+ #include <libxfce4ui/libxfce4ui.h>
+@@ -42,6 +45,7 @@
+
+
+
++#ifdef HAVE_UNIQUE
+ static UniqueResponse
+ message_received (UniqueApp *app,
+ UniqueCommand command,
+@@ -68,6 +72,7 @@
+
+ return response;
+ }
++#endif
+
+
+
+@@ -75,7 +80,9 @@
+ main (int argc,
+ char **argv)
+ {
++#ifdef HAVE_UNIQUE
+ UniqueApp *app;
++#endif
+ GtkWidget *window;
+ GError *error = NULL;
+ gboolean debug_mode = FALSE;
+@@ -162,6 +169,7 @@
+ if (debug_mode)
+ xfce_mixer_dump_gst_data ();
+
++#ifdef HAVE_UNIQUE
+ /* Create unique application */
+ app = unique_app_new ("org.xfce.xfce4-mixer", NULL);
+ if (unique_app_is_running (app))
+@@ -192,6 +200,19 @@
+ /* Destroy the window */
+ gtk_widget_destroy (window);
+ }
++#else
++ /* Create the mixer window */
++ window = xfce_mixer_window_new ();
++
++ /* Display the mixer window */
++ gtk_widget_show (window);
++
++ /* Enter the GTK+ main loop */
++ gtk_main ();
++
++ /* Destroy the window */
++ gtk_widget_destroy (window);
++#endif
+
+ /* Shutdown the mixer library */
+ xfce_mixer_shutdown ();
diff --git a/extra/source/pure-alsa-system/xfce4-mixer/0001-Use-datadir-xfce4-mixer-as-MIXER_DATADIR.patch b/extra/source/pure-alsa-system/xfce4-mixer/0001-Use-datadir-xfce4-mixer-as-MIXER_DATADIR.patch
new file mode 100644
index 000000000..f0b32dad3
--- /dev/null
+++ b/extra/source/pure-alsa-system/xfce4-mixer/0001-Use-datadir-xfce4-mixer-as-MIXER_DATADIR.patch
@@ -0,0 +1,63 @@
+From a60d7b81674449d1753fcf8bb15c57fc178424e6 Mon Sep 17 00:00:00 2001
+From: Robby Workman <rworkman@slackware.com>
+Date: Thu, 19 Feb 2015 19:36:21 -0600
+Subject: [PATCH 1/2] Use $(datadir)/xfce4/mixer/ as MIXER_DATADIR
+
+Follow common practice of other Xfce componenets and use
+$(datadir)/xfce4/mixer/ instead of $(datadir)/xfce4-mixer/.
+---
+ icons/16x16/Makefile.am | 2 +-
+ icons/scalable/Makefile.am | 2 +-
+ libxfce4mixer/Makefile.am | 2 +-
+ xfce4-mixer/Makefile.am | 2 +-
+ 4 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/icons/16x16/Makefile.am b/icons/16x16/Makefile.am
+index 803a2e4..ace4a07 100644
+--- a/icons/16x16/Makefile.am
++++ b/icons/16x16/Makefile.am
+@@ -1,4 +1,4 @@
+-iconsdir = $(pkgdatadir)/icons/hicolor/16x16/status
++iconsdir = $(datadir)/xfce4/mixer/icons/hicolor/16x16/status
+ icons_DATA = audio-input-microphone-muted.png
+
+ EXTRA_DIST = $(icons_DATA)
+diff --git a/icons/scalable/Makefile.am b/icons/scalable/Makefile.am
+index 5bfc12c..5212e63 100644
+--- a/icons/scalable/Makefile.am
++++ b/icons/scalable/Makefile.am
+@@ -1,4 +1,4 @@
+-iconsdir = $(pkgdatadir)/icons/hicolor/scalable/status
++iconsdir = $(datadir)/xfce4/mixer/icons/hicolor/scalable/status
+ icons_DATA = audio-input-microphone-muted.svg
+
+ EXTRA_DIST = $(icons_DATA)
+diff --git a/libxfce4mixer/Makefile.am b/libxfce4mixer/Makefile.am
+index 792a95e..e864ea8 100644
+--- a/libxfce4mixer/Makefile.am
++++ b/libxfce4mixer/Makefile.am
+@@ -25,7 +25,7 @@ libxfce4mixer_la_CPPFLAGS = \
+ -DDATADIR=\"$(datadir)\" \
+ -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \
+ -DG_LOG_DOMAIN=\"libxfce4mixer\" \
+- -DMIXER_DATADIR=\"$(pkgdatadir)\"
++ -DMIXER_DATADIR=\"$(datadir)/xfce4/mixer\"
+
+ libxfce4mixer_la_CFLAGS = \
+ $(PLATFORM_CFLAGS) \
+diff --git a/xfce4-mixer/Makefile.am b/xfce4-mixer/Makefile.am
+index 4af69e9..f979b92 100644
+--- a/xfce4-mixer/Makefile.am
++++ b/xfce4-mixer/Makefile.am
+@@ -23,7 +23,7 @@ xfce4_mixer_CPPFLAGS = \
+ -I$(top_srcdir) \
+ -DPACKAGE_LOCALE_DIR=\"$(localedir)\" \
+ -DDATADIR=\"$(datadir)\" \
+- -DMIXER_DATADIR=\"$(pkgdatadir)\" \
++ -DMIXER_DATADIR=\"$(datadir)/xfce4/mixer\" \
+ -DG_LOG_DOMAIN=\"xfce4-mixer\"
+
+ xfce4_mixer_CFLAGS = \
+--
+2.3.1
+
diff --git a/extra/source/pure-alsa-system/xfce4-mixer/0001-icons-Makefile.am-Remove-unnecessary-gtk-update-icon.patch b/extra/source/pure-alsa-system/xfce4-mixer/0001-icons-Makefile.am-Remove-unnecessary-gtk-update-icon.patch
new file mode 100644
index 000000000..ce1eae687
--- /dev/null
+++ b/extra/source/pure-alsa-system/xfce4-mixer/0001-icons-Makefile.am-Remove-unnecessary-gtk-update-icon.patch
@@ -0,0 +1,36 @@
+From 735927c7a72b69f60f13fe7bcf4a10c1a80ca151 Mon Sep 17 00:00:00 2001
+From: Robby Workman <rworkman@slackware.com>
+Date: Thu, 19 Feb 2015 19:07:06 -0600
+Subject: [PATCH] icons/Makefile.am: Remove unnecessary gtk-update-icon-cache
+
+No icons are installed in the standard paths any more, so this
+appears to be leftover code.
+---
+ icons/Makefile.am | 13 -------------
+ 1 file changed, 13 deletions(-)
+
+diff --git a/icons/Makefile.am b/icons/Makefile.am
+index 70638c1..035476a 100644
+--- a/icons/Makefile.am
++++ b/icons/Makefile.am
+@@ -4,17 +4,4 @@ SUBDIRS = \
+ 16x16 \
+ scalable
+
+-gtk_update_icon_cache = gtk-update-icon-cache -f -t $(datadir)/icons/hicolor
+-
+-install-data-hook:
+- @-if test -z "$(DESTDIR)"; then \
+- echo "Updating Gtk icon cache."; \
+- $(gtk_update_icon_cache); \
+- else \
+- echo "*** Icon cache not updated. Remember to run:"; \
+- echo "***"; \
+- echo "*** $(gtk_update_icon_cache)"; \
+- echo "***"; \
+- fi
+-
+ # vi:set ts=8 sw=8 noet ai nocindent syntax=automake:
+--
+2.3.1
+
diff --git a/extra/source/pure-alsa-system/xfce4-mixer/README.ALSA b/extra/source/pure-alsa-system/xfce4-mixer/README.ALSA
new file mode 100644
index 000000000..9e7947cee
--- /dev/null
+++ b/extra/source/pure-alsa-system/xfce4-mixer/README.ALSA
@@ -0,0 +1,4 @@
+This package is only useful on a pure ALSA system, and so it is not built
+by default. For information about removing PulseAudio and switching to
+pure ALSA (this is not generally recommended, but some use-cases demand it),
+please see the files in ../../l/alsa-lib.
diff --git a/extra/source/pure-alsa-system/xfce4-mixer/doinst.sh b/extra/source/pure-alsa-system/xfce4-mixer/doinst.sh
new file mode 100644
index 000000000..9830478e8
--- /dev/null
+++ b/extra/source/pure-alsa-system/xfce4-mixer/doinst.sh
@@ -0,0 +1,14 @@
+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 usr/share/icons/hicolor >/dev/null 2>&1
+ fi
+fi
+
diff --git a/extra/source/pure-alsa-system/xfce4-mixer/slack-desc b/extra/source/pure-alsa-system/xfce4-mixer/slack-desc
new file mode 100644
index 000000000..dbf29ce0b
--- /dev/null
+++ b/extra/source/pure-alsa-system/xfce4-mixer/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 ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+xfce4-mixer: xfce4-mixer (Sound mixer applet for Xfce)
+xfce4-mixer:
+xfce4-mixer: The xfce4-mixer package contains a volume control application based
+xfce4-mixer: on GStreamer written to conceptually fit into the Xfce desktop
+xfce4-mixer: environment. It also contains a plugin for the Xfce panel which is
+xfce4-mixer: especially designed for use with the mouse wheel.
+xfce4-mixer:
+xfce4-mixer:
+xfce4-mixer:
+xfce4-mixer:
+xfce4-mixer:
diff --git a/extra/source/pure-alsa-system/xfce4-mixer/xfce4-mixer.SlackBuild b/extra/source/pure-alsa-system/xfce4-mixer/xfce4-mixer.SlackBuild
new file mode 100755
index 000000000..9e38cdb0e
--- /dev/null
+++ b/extra/source/pure-alsa-system/xfce4-mixer/xfce4-mixer.SlackBuild
@@ -0,0 +1,125 @@
+#!/bin/bash
+
+# Slackware build script for xfce4-mixer
+
+# Copyright 2010, 2011 Robby Workman, Northport, Alabama, USA
+# Copyright 2018 Patrick J. Volkerding, Sebeka, Minnesota, USA
+# 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)
+
+PKGNAM=xfce4-mixer
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-1_alsa}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+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 "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.?z || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+zcat $CWD/0001-Make-Unique-support-optional.patch | patch -p1 --verbose || exit 1
+zcat $CWD/0001-Use-datadir-xfce4-mixer-as-MIXER_DATADIR.patch | patch -p1 --verbose || exit 1
+zcat $CWD/0001-icons-Makefile.am-Remove-unnecessary-gtk-update-icon.patch | patch -p1 --verbose || exit 1
+
+xdt-autogen
+
+CFLAGS="$SLKCFLAGS" \
+CXXFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc/xfce \
+ --localstatedir=/var \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --disable-debug \
+ --disable-unique \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \
+ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
+
+gzip -9 $PKG/usr/man/man?/*.?
+
+mkdir -p $PKG/usr/doc/$PKGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING* HACKING INSTALL NEWS README* THANKS TODO \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+zcat $CWD/doinst.sh.gz > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz
diff --git a/extra/source/pure-alsa-system/xfce4-volumed/0001-Removed-deprecated-Encoding-entry-in-.desktop-file-t.patch b/extra/source/pure-alsa-system/xfce4-volumed/0001-Removed-deprecated-Encoding-entry-in-.desktop-file-t.patch
new file mode 100644
index 000000000..f3f43ea1f
--- /dev/null
+++ b/extra/source/pure-alsa-system/xfce4-volumed/0001-Removed-deprecated-Encoding-entry-in-.desktop-file-t.patch
@@ -0,0 +1,37 @@
+From 2ee3b12be641501ee3a9ce0278291b8c5a865021 Mon Sep 17 00:00:00 2001
+From: Steve Dodier <sidnioulz@gmail.com>
+Date: Thu, 3 Mar 2011 11:43:26 +0100
+Subject: [PATCH 1/3] Removed deprecated "Encoding" entry in .desktop file
+ (thanks to Samuli Suominen)
+
+---
+ ChangeLog | 3 +++
+ data/xfce4-volumed.desktop | 1 -
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/ChangeLog b/ChangeLog
+index e1690ba..beeb5f6 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -1,4 +1,7 @@
+ 2011-03-03 Steve Dodier <sidnioulz@gmail.com>
++ * Removed deprecated "Encoding" entry in .desktop file (thanks to Samuli Suominen)
++
++2011-03-03 Steve Dodier <sidnioulz@gmail.com>
+ * Allow compatibility with Libnotify 0.7 (thanks to Samuli Suominen for the patch)
+
+ 2011-03-03 Steve Dodier <sidnioulz@gmail.com>
+diff --git a/data/xfce4-volumed.desktop b/data/xfce4-volumed.desktop
+index 8ac7dc7..be362c5 100644
+--- a/data/xfce4-volumed.desktop
++++ b/data/xfce4-volumed.desktop
+@@ -1,6 +1,5 @@
+
+ [Desktop Entry]
+-Encoding=UTF-8
+ Type=Application
+ Terminal=false
+ Name=XFCE Volume Daemon
+--
+2.3.0
+
diff --git a/extra/source/pure-alsa-system/xfce4-volumed/0003-Removing-edge-case-memleaks.patch b/extra/source/pure-alsa-system/xfce4-volumed/0003-Removing-edge-case-memleaks.patch
new file mode 100644
index 000000000..8d45bae32
--- /dev/null
+++ b/extra/source/pure-alsa-system/xfce4-volumed/0003-Removing-edge-case-memleaks.patch
@@ -0,0 +1,80 @@
+From ac129e178c24d7ec79b020a7912cc680a6008c5b Mon Sep 17 00:00:00 2001
+From: Steve Dodier-Lazaro <sidnioulz@gmail.com>
+Date: Wed, 10 Dec 2014 03:38:32 +0000
+Subject: [PATCH 3/3] Removing edge-case memleaks
+
+---
+ src/main.c | 2 +-
+ src/xvd_mixer.c | 30 ++++++++++++++++++------------
+ 2 files changed, 19 insertions(+), 13 deletions(-)
+
+diff --git a/src/main.c b/src/main.c
+index 18e8e01..d04920c 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -81,7 +81,7 @@ xvd_shutdown()
+ xvd_keys_release (Inst);
+ xvd_xfconf_shutdown (Inst);
+
+- //TODO xvd_instance_free
++ g_free (Inst);
+ }
+
+ static void
+diff --git a/src/xvd_mixer.c b/src/xvd_mixer.c
+index 1d580bf..cef3151 100644
+--- a/src/xvd_mixer.c
++++ b/src/xvd_mixer.c
+@@ -102,31 +102,37 @@ _xvd_mixer_bus_message (GstBus *bus, GstMessage *message,
+ {
+ gst_mixer_message_parse_mute_toggled (message, &msg_track, &Inst->muted);
+ g_object_get (msg_track, "label", &label, NULL);
+- if (g_strcmp0 (Inst->track_label, label) != 0)
+- return;
++
++ if (g_strcmp0 (Inst->track_label, label) == 0)
++ {
+ #ifdef HAVE_LIBNOTIFY
+- if (Inst->muted)
+- xvd_notify_notification (Inst, "audio-volume-muted", 0);
+- else {
+- xvd_mixer_init_volume (Inst);
+- xvd_notify_volume_notification (Inst);
++ if (Inst->muted)
++ xvd_notify_notification (Inst, "audio-volume-muted", 0);
++ else {
++ xvd_mixer_init_volume (Inst);
++ xvd_notify_volume_notification (Inst);
+ #endif
++ }
+ }
++
+ g_free (label);
+ }
+ else if (type == GST_MIXER_MESSAGE_VOLUME_CHANGED)
+ {
+ gst_mixer_message_parse_volume_changed (message, &msg_track, &volumes, &num_channels);
+ g_object_get (msg_track, "label", &label, NULL);
+- if (g_strcmp0 (Inst->track_label, label) != 0)
+- return;
+- xvd_calculate_avg_volume (Inst, volumes, num_channels);
++ if (g_strcmp0 (Inst->track_label, label) == 0)
++ {
++ xvd_calculate_avg_volume (Inst, volumes, num_channels);
+ #ifdef HAVE_LIBNOTIFY
+- xvd_notify_volume_notification (Inst);
++ xvd_notify_volume_notification (Inst);
+ #endif
++ }
++
+ g_free (label);
+ }
+- else if (type == GST_MIXER_MESSAGE_MIXER_CHANGED) {
++ else if (type == GST_MIXER_MESSAGE_MIXER_CHANGED)
++ {
+ // This kind of message shouldn't happen on an hardware card
+ g_debug ("GST_MIXER_MESSAGE_MIXER_CHANGED event\n");
+ }
+--
+2.3.0
+
diff --git a/extra/source/pure-alsa-system/xfce4-volumed/slack-desc b/extra/source/pure-alsa-system/xfce4-volumed/slack-desc
new file mode 100644
index 000000000..d7918924f
--- /dev/null
+++ b/extra/source/pure-alsa-system/xfce4-volumed/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 ':'.
+
+ |-----handy-ruler------------------------------------------------------|
+xfce4-volumed: xfce4-volumed (audio volume management daemon)
+xfce4-volumed:
+xfce4-volumed: This daemon is responsible for making the volume up/down and mute
+xfce4-volumed: keys of the keyboard work automatically, and uses the XFCE mixer's
+xfce4-volumed: defined card and track for choosing which track to act on.
+xfce4-volumed:
+xfce4-volumed: It also provides volume change and mute toggle notifications if
+xfce4-volumed: a notification daemon is running (using libnotify).
+xfce4-volumed:
+xfce4-volumed: Homepage: https://launchpad.net/xfce4-volumed
+xfce4-volumed:
diff --git a/extra/source/pure-alsa-system/xfce4-volumed/xfce4-volumed.SlackBuild b/extra/source/pure-alsa-system/xfce4-volumed/xfce4-volumed.SlackBuild
new file mode 100755
index 000000000..ea72fdf94
--- /dev/null
+++ b/extra/source/pure-alsa-system/xfce4-volumed/xfce4-volumed.SlackBuild
@@ -0,0 +1,117 @@
+#!/bin/sh
+
+# Slackware build script for xfce4-volumed
+
+# Copyright 2006-2011 Robby Workman Northport, Alabama, USA
+# Copyright 2009, 2018 Patrick J. Volkerding, Sebeka, MN, USA
+# 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)
+
+PKGNAM=xfce4-volumed
+VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)}
+BUILD=${BUILD:-4_alsa}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+NUMJOBS=${NUMJOBS:-" -j7 "}
+
+TMP=${TMP:-/tmp}
+PKG=$TMP/package-$PKGNAM
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+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 "$PKGNAM-$VERSION-$ARCH-$BUILD.txz"
+ exit 0
+fi
+
+rm -rf $PKG
+mkdir -p $TMP $PKG
+cd $TMP
+rm -rf $PKGNAM-$VERSION
+tar xvf $CWD/$PKGNAM-$VERSION.tar.xz || exit 1
+cd $PKGNAM-$VERSION || exit 1
+chown -R root:root .
+find . \
+ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \
+ -exec chmod 755 {} \; -o \
+ \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
+ -exec chmod 644 {} \;
+
+zcat $CWD/0001-Removed-deprecated-Encoding-entry-in-.desktop-file-t.patch | patch -p1 --verbose || exit 1
+zcat $CWD/0003-Removing-edge-case-memleaks.patch | patch -p1 --verbose || exit 1
+
+CFLAGS="$SLKCFLAGS" \
+./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib${LIBDIRSUFFIX} \
+ --sysconfdir=/etc \
+ --mandir=/usr/man \
+ --docdir=/usr/doc/$PKGNAM-$VERSION \
+ --enable-debug=no \
+ --build=$ARCH-slackware-linux || exit 1
+
+make $NUMJOBS || make || exit 1
+make install DESTDIR=$PKG || exit 1
+
+find $PKG | xargs 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/$PKGNAM-$VERSION
+cp -a \
+ AUTHORS COPYING* INSTALL NEWS README* THANKS \
+ $PKG/usr/doc/$PKGNAM-$VERSION
+
+# If there's a ChangeLog, installing at least part of the recent history
+# is useful, but don't let it get totally out of control:
+if [ -r ChangeLog ]; then
+ DOCSDIR=$(echo $PKG/usr/doc/${PKGNAM}-$VERSION)
+ cat ChangeLog | head -n 1000 > $DOCSDIR/ChangeLog
+ touch -r ChangeLog $DOCSDIR/ChangeLog
+fi
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+
+cd $PKG
+/sbin/makepkg -l y -c n $TMP/$PKGNAM-$VERSION-$ARCH-$BUILD.txz