The officially official Devuan Forum!

You are not logged in.

#1 2025-05-26 23:17:19

igorzwx
Member
Registered: 2024-05-06
Posts: 140  

[HowTo] audacious_4.5-devel-1_amd64.deb (meson+samu and muon+samu)

How to compile Audacious with meson and samurai

Portable Meson is available here:
_https://github.com/mesonbuild/meson
arch-meson is available here:
_https://aur.archlinux.org/cgit/aur.git/snapshot/meson-git.tar.gz
samurai is easy to compile
_https://dev1galaxy.org/viewtopic.php?id=7203

Install Build_Deps, compilers and utilities:

sudo apt-get install build-essentials apt-file fakeroot git libglib2.0-dev libgtk-3-dev libjson-glib-dev libopusfile-dev

sudo apt install libadplug-dev adplug-utils libjson-glib-dev libopusfile-dev libasound2-dev libavcodec-dev libavformat-dev libavutil-dev libbinio-dev libbs2b-dev libcairo2-dev libcddb2-dev libcdio-cdda-dev libcue-dev libcurl4-gnutls-dev libdbus-glib-1-dev libfaad-dev libflac-dev libfluidsynth-dev libgtk2.0-dev libjack-dev liblircclient-dev libmms-dev libmodplug-dev libmp3lame-dev libmpg123-dev libneon27-gnutls-dev libnotify-dev libogg-dev libopenmpt-dev libsdl2-dev libsidplayfp-dev libsndfile1-dev libsndio-dev libtagc0-dev libvorbis-dev libwavpack-dev libxcomposite-dev libxml2-dev

Download the source code

mkdir Build1
cd Build1
git clone https://github.com/audacious-media-player/audacious.git --depth 1 

Configure the project, for example:

$ cat audacious/meson_options.txt
option('dbus', type: 'boolean', value: true,
       description: 'Whether D-Bus support is enabled')
option('qt', type: 'boolean', value: false,
       description: 'Whether Qt support is enabled')
option('qt5', type: 'boolean', value: false,
       description: 'Whether Qt 5 support is enabled')
option('gtk', type: 'boolean', value: true,
       description: 'Whether GTK support is enabled')
option('gtk2', type: 'boolean', value: false,
       description: 'Whether GTK 2 support is enabled')
option('libarchive', type: 'boolean', value: false,
       description: 'Whether libarchive support is enabled')
option('buildstamp', type: 'string', value: 'Devuan 5 Daedalus',
       description: 'Allows to set a custom build stamp')
option('valgrind', type: 'boolean', value: false,
       description: 'Whether Valgrind analysis support is enabled') 

1. Setup the build system

arch-meson audacious build 

2. Compile
 

samu -C build 

3. Install to debdir

DESTDIR=../debdir samu -C build install 
install -vDm644 audacious/contrib/audacious.appdata.xml -t "debdir/usr/share/metainfo"
install -vDm644 audacious/COPYING -t "debdir/usr/share/licenses/audacious" 

Make a template

mkdir debian
echo -e "Source: audacious\nPackage: audacious\nDepends: \${shlibs:Depends}" >> debian/control 
$ cat debian/control
Source: audacious
Package: audacious
Depends: ${shlibs:Depends} 

Run "dpkg-shlibdeps" to calculate dependencies

dpkg-shlibdeps -v -xaudacious -ldebdir/usr/lib --ignore-missing-info -e $(find debdir/usr -type f 2>/dev/null) 
$ cat debian/substvars
shlibs:Depends=libc6 (>= 2.35), libcairo2 (>= 1.2.4), libgcc-s1 (>= 3.3.1), libgdk-pixbuf-2.0-0 (>= 2.25.2), libglib2.0-0 (>= 2.37.3), libgtk-3-0 (>= 3.21.5), libpango-1.0-0 (>= 1.14.0), libstdc++6 (>= 12) 
install -vm0755 -d debdir/DEBIAN 

Create DEBIAN/control with a text editor, for example:

$ cat debdir/DEBIAN/control
Package: audacious
Version: 4.5-devel-1
Architecture: amd64
Maintainer: Devuan
Installed-Size: 2451
Depends: libc6 (>= 2.35), libcairo2 (>= 1.2.4), libgcc-s1 (>= 3.3.1), libgdk-pixbuf-2.0-0 (>= 2.25.2), libglib2.0-0 (>= 2.37.3), libgtk-3-0 (>= 3.21.5), libpango-1.0-0 (>= 1.14.0), libstdc++6 (>= 12)
Recommends: unzip
Suggests: audacious-plugins
Conflicts: audacious-dev, libaudcore5t64, libaudgui6, libaudqt3, libaudtag3t64
Provides: audacious-dev, libaudcore5t64, libaudgui6, libaudqt3, libaudtag3t64
Section: sound
Priority: optional
Homepage: https://www.audacious-media-player.org/
Description: small and fast audio player which supports lots of formats
  Audacious is a fork of beep-media-player which supports Winamp skins
  and many codecs.
  .
  In the default install, the following codecs are supported:
  .
   * MP3
   * Ogg Vorbis / Theora
   * AAC and AAC+
   * FLAC
   * ALAC
   * Windows Media (WMA)
   * WAVE
  .
  Additionally, Audacious is extendable through plugins, and contains
  other useful features like LIRC support. Support for many more codecs
  can also be added through plugins.
Tag: field::arts, implemented-in::c, interface::graphical, interface::x11,
  role::program, scope::application, sound::player, uitoolkit::gtk,
  use::learning, use::playing, works-with-format::mp3,
  works-with-format::oggvorbis, works-with::audio, x11::application 

Generate DEBIAN/md5sums

cd debdir
find . -type f -not -path "./DEBIAN/*" -exec md5sum {} + | sort -k 2 | sed 's/\.\/\(.*\)/\1/' > DEBIAN/md5sums
cd ..
chmod 0644 -- debdir/DEBIAN/md5sums 

Make Debian package

$ fakeroot -- dpkg-deb -b debdir audacious_4.5-devel-1_amd64.deb
dpkg-deb: building package 'audacious' in 'audacious_4.5-devel-1_amd64.deb'. 

Install

sudo dpkg -i audacious_4.5-devel-1_amd64.deb 
How to compile Audacious-plugins

sidplay-rom-paths.patch is available here:
_https://gitlab.archlinux.org/archlinux/packaging/packages/audacious-plugins/-/raw/main/sidplay-rom-paths.patch

Download the source code and the patch

mkdir Build1p
cd Build1p
git clone https://github.com/audacious-media-player/audacious-plugins.git --depth 1 
$ ls -1
audacious-plugins
sidplay-rom-paths.patch 

Apply the patch:

cd audacious-plugins
patch -Np1 -i ../sidplay-rom-paths.patch
cd .. 

Edit "meson_options.txt" with a text editor

nano audacious-plugins/meson_options.txt 

Disable QT6, enable OSS4 (if it is installed), disable pulse and unwanted resamplers. For example:

# GUI toolkits
option('qt', type: 'boolean', value: false,

# output plugins
option('oss4', type: 'boolean', value: true,
       description: 'Whether OSS4 support is enabled')
       
option('pipewire', type: 'boolean', value: false,
option('pulse', type: 'boolean', value: false,
option('qtaudio', type: 'boolean', value: false,

option('resample', type: 'boolean', value: false,
option('soxr', type: 'boolean', value: false,
option('speedpitch', type: 'boolean', value: false, 

1. Setup the build system

arch-meson audacious-plugins build 

2. Compile

samu -C build 

3. Install to "debdir"

DESTDIR=../debdir samu -C build install 
install -vDm644 audacious-plugins/COPYING -t "debdir/usr/share/licenses/audacious-plugins" 

 

$ ls -1
audacious-plugins
build
debdir
sidplay-rom-paths.patch 

Make a template

mkdir debian
echo -e "Source: audacious-plugins\nPackage: audacious-plugins\nDepends: \${shlibs:Depends}" >> debian/control 
$ cat debian/control
Source: audacious-plugins
Package: audacious-plugins
Depends: ${shlibs:Depends} 

Run "dpkg-shlibdeps" to calculate dependencies

dpkg-shlibdeps -v -xaudacious-plugins -ldebdir/usr/lib --ignore-missing-info -e $(find debdir/usr -type f 2>/dev/null) 
$ cat debian/substvars
shlibs:Depends=libadplug-2.3.3-0 (>= 2.3.3+dfsg), libasound2 (>= 1.0.16), libavcodec59 (>= 7:5.0), libavformat59 (>= 7:5.0), libavutil57 (>= 7:5.0), libbinio1v5 (>= 1.4+dfsg1), libbs2b0 (>= 3.1.0+dfsg), libc6 (>= 2.35), libcairo2 (>= 1.10.0), libcddb2 (>= 1.3.2), libcdio-cdda2 (>= 10.2+2.0.0), libcdio19 (>= 2.1.0), libcue2, libcurl3-gnutls (>= 7.16.2), libfaad2 (>= 2.7), libflac12 (>= 1.3.0), libfluidsynth3 (>= 2.0.5), libgcc-s1 (>= 3.3.1), libgdk-pixbuf-2.0-0 (>= 2.22.0), libgl1, libglib2.0-0 (>= 2.37.3), libgtk-3-0 (>= 3.21.5), libjack-jackd2-0 (>= 1.9.10+20150825) | libjack-0.125, libjson-glib-1.0-0 (>= 1.5.2), liblirc-client0, libmms0 (>= 0.4), libmodplug1 (>= 1:0.8.8.5), libmp3lame0 (>= 3.100), libmpg123-0 (>= 1.28.0), libneon27-gnutls, libnotify4 (>= 0.7.0), libogg0 (>= 1.1.0), libopenmpt0 (>= 0.3.0), libopusfile0 (>= 0.5), libpango-1.0-0 (>= 1.22.0), libpangocairo-1.0-0 (>= 1.14.0), libsdl2-2.0-0 (>= 2.0.12), libsidplayfp6 (>= 2.4.2), libsndfile1 (>= 1.0.20), libsndio7.0 (>= 1.9.0), libstdc++6 (>= 12), libvorbis0a (>= 1.2.0), libvorbisenc2 (>= 1.1.2), libvorbisfile3 (>= 1.1.2), libwavpack1 (>= 4.40.0), libx11-6, libxcomposite1 (>= 1:0.4.5), libxml2 (>= 2.7.4), libxrender1, zlib1g (>= 1:1.1.4) 
install -m0755 -d debdir/DEBIAN

Create DEBIAN/control, for example:

$ cat debdir/DEBIAN/control
Package: audacious-plugins
Version: 4.5-devel-1
Architecture: amd64
Maintainer: Devuan
Installed-Size: 7313
Depends: libadplug-2.3.3-0 (>= 2.3.3+dfsg), libasound2 (>= 1.0.16), libavcodec59 (>= 7:5.0), libavformat59 (>= 7:5.0), libavutil57 (>= 7:5.0), libbinio1v5 (>= 1.4+dfsg1), libbs2b0 (>= 3.1.0+dfsg), libc6 (>= 2.35), libcairo2 (>= 1.10.0), libcddb2 (>= 1.3.2), libcdio-cdda2 (>= 10.2+2.0.0), libcdio19 (>= 2.1.0), libcue2, libcurl3-gnutls (>= 7.16.2), libfaad2 (>= 2.7), libflac12 (>= 1.3.0), libfluidsynth3 (>= 2.0.5), libgcc-s1 (>= 3.3.1), libgdk-pixbuf-2.0-0 (>= 2.22.0), libgl1, libglib2.0-0 (>= 2.37.3), libgtk-3-0 (>= 3.21.5), libjack-jackd2-0 (>= 1.9.10+20150825) | libjack-0.125, libjson-glib-1.0-0 (>= 1.5.2), liblirc-client0, libmms0 (>= 0.4), libmodplug1 (>= 1:0.8.8.5), libmp3lame0 (>= 3.100), libmpg123-0 (>= 1.28.0), libneon27-gnutls, libnotify4 (>= 0.7.0), libogg0 (>= 1.1.0), libopenmpt0 (>= 0.3.0), libopusfile0 (>= 0.5), libpango-1.0-0 (>= 1.22.0), libpangocairo-1.0-0 (>= 1.14.0), libsdl2-2.0-0 (>= 2.0.12), libsidplayfp6 (>= 2.4.2), libsndfile1 (>= 1.0.20), libsndio7.0 (>= 1.9.0), libstdc++6 (>= 12), libvorbis0a (>= 1.2.0), libvorbisenc2 (>= 1.1.2), libvorbisfile3 (>= 1.1.2), libwavpack1 (>= 4.40.0), libx11-6, libxcomposite1 (>= 1:0.4.5), libxml2 (>= 2.7.4), libxrender1, zlib1g (>= 1:1.1.4)
Recommends: audacious (>= 4.5-devel)
Conflicts: audacious-plugins-data
Provides: audacious-plugins-data
Section: sound
Priority: optional
Homepage: https://audacious-media-player.org/
Description: Base plugins for audacious
 Audacious is a fork of beep-media-player which supports winamp skins
 and many codecs.
 .
 In the default install, the following codecs are supported:
 .
  * MP3
  * Ogg Vorbis
  * AAC and AAC+
  * FLAC
  * Windows Media (WMA)
  * Many module formats and much more!
 .
 Additionally, Audacious is extendable through plugins, and contains
 other useful features like LIRC support.
 .
 This package contains the plugins for Audacious.
  * Audio CD reading
  * MPEG support (mp3)
  * Ogg Vorbis support
  * Windows Media support (WMA)
  * AAC support
  * FLAC support
  * ALAC support
  * WAVE support
  * ALSA output
  * OSS4 output
  * Disk writer output
  * And many more! 

Generate DEBIAN/md5sums

cd debdir
find . -type f -not -path "./DEBIAN/*" -exec md5sum {} + | sort -k 2 | sed 's/\.\/\(.*\)/\1/' > DEBIAN/md5sums 

Make a Debian package

$ fakeroot -- dpkg-deb -b debdir audacious-plugins_4.5-devel-1_amd64.deb
dpkg-deb: building package 'audacious-plugins' in 'audacious-plugins_4.5-devel-1_amd64.deb'. 

Install

sudo dpkg -i audacious-plugins_4.5-devel-1_amd64.deb 
$ audacious -v
Audacious 4.5-devel (Devuan 5 Daedalus) 

DEBUG

$ audacious -VV
...
INFO ../audacious/src/libaudcore/output.cc:270 [setup_output]: 
Setup output, format 11, 2 channels, 192000 Hz.
DEBUG ../audacious-plugins/src/oss4/oss.cc:219 [open_audio]: 
Opening audio.
DEBUG ../audacious-plugins/src/oss4/oss.cc:144 [open_device]: 
Enabled exclusive mode.
DEBUG ../audacious-plugins/src/oss4/oss.cc:61 [set_format]: 
Audio format: AFMT_S32_LE, sample rate: 192000Hz, number of channels: 2.
DEBUG ../audacious-plugins/src/oss4/oss.cc:68 [set_format]: 
Disabled format conversions made by the OSS software. 

Last edited by igorzwx (2025-05-28 09:24:56)

Offline

#2 2025-05-28 09:26:18

igorzwx
Member
Registered: 2024-05-06
Posts: 140  

Re: [HowTo] audacious_4.5-devel-1_amd64.deb (meson+samu and muon+samu)

How to compile audacious with muon+samu

Portable static Muon (with embedded samu) is available here:
_https://muon.build/
_https://muon.build/releases/v0.5.0/muon-v0.5.0-amd64-linux

$ file muon-v0.5.0-amd64-linux
muon-v0.5.0-amd64-linux: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, BuildID[sha1]=1a2a3022413581300d66c86f02329ed4aa782022, stripped

The procedure of compiling is very similar to that of meson. The main difference is that muon may refuse to search for headers, unless PKG_CONFIG_PATH is set. Although it might be very inconvenient for the slaves of pulseaudio (because of progressive dementia caused by pulseaudio), it provides the freedom to decide which headers should be used.

Dementia is progressive. This means signs and symptoms may be relatively mild at first but they get worse with time. Dementia affects everyone differently, however it can be helpful to think of dementia progressing in 'three stages'.
_https://www.alzheimers.org.uk/about-dementia/symptoms-and-diagnosis/how-dementia-progresses/progression-stages-dementia

⟡ AI Overview
Engaging in intellectually stimulating activities may offer a degree of protection against dementia, particularly for individuals who may have otherwise lower levels of education or occupation. While more research is needed, evidence suggests that activities like reading, playing board games, musical instrument playing, journaling, and crossword puzzles are associated with a reduced risk of developing dementia.

There is a belief that compiling with muon may protect pulseaudio users against Alzheimer's disease (AD). That is why, perhaps, muon is available even in Debian repositories (a very old version, of course).

Because of progressive dementia, it might be necessary to explain how to set PKG_CONFIG_PATH. Otherwise it might be a very difficult problem to solve.

PKG_CONFIG_PATH can be set with a secret command, for example:

export PKG_CONFIG_PATH="$HOME/.local/lib/pkgconfig:$(pkgconf --variable pc_path pkgconf)" 
$ cat $HOME/.local/lib/pkgconfig/GL.pc
prefix=/usr
includedir=${prefix}/include
libdir=${prefix}/lib/x86_64-linux-gnu

Name: GL
Description: Legacy OpenGL and GLX library and headers.
Version: 1.2
Libs: -L${libdir} -lGL
Cflags: -I${includedir}/GL 

GL.pc is needed for Audacious-plugins (OpenGL Spectrum Analyzer).

The "meson_options.txt" of Audacious and Audacious-plugins can be configured in the same way as it was done for "meson+samu" (see above). Audacious-plugins should be patched, of course (as it was described above). In any case, Audacious should be compiled and installed BEFORE the compilation Audacious-plugins. And, of course, the Debian packages can be made in exactly the same way.

Audacious:

1. Setup the build system

cd audacious
muon setup -Dprefix=/usr -Ddefault_library=shared -Dbuildtype=release build 

2. Compile

muon samu -C build 

3. Install to a folder "debdir"

cd build
DESTDIR="../../debdir" muon install
cd ../../
install -vDm644 audacious/contrib/audacious.appdata.xml -t "debdir/usr/share/metainfo"
install -vDm644 audacious/COPYING -t "debdir/usr/share/licenses/audacious" 

Audacious-plugins:

1. Setup the build system

cd audacious-plugins
muon setup -Dprefix=/usr -Ddefault_library=shared -Dbuildtype=release build 

2. Compile

muon samu -C build 

3. Install to a folder "debdir"

cd build
DESTDIR="../../debdir" muon install
cd ../../
install -vDm644 audacious-plugins/COPYING -t "debdir/usr/share/licenses/audacious-plugins" 

Last edited by igorzwx (2025-05-28 10:34:56)

Offline

Board footer