You are not logged in.
RE: "Devuanite experience"
I have not yet noticed pulseaudio in Recommends. It should not be there. If it is in Recommends, it is automatically installed.
Of course, it can be installed against your will. That is why you have to pin it with a secret esoteric command.
On Devuan, one may still need to have a long list of pinned packages.
There is a conspiracy theory about "Apt’s Best Kept Secret" (a sort of post-esoteric surrealism, perhaps).
Since I am using OSS4 with gstreamer, I have to pin gstreamer1.0-pulseaudio and gstreamer1.0-alsa with the secret command.
Now, they are not going to be installed:
➤ apt-cache policy gstreamer1.0-pulseaudio gstreamer1.0-alsa
gstreamer1.0-pulseaudio:
Installed: (none)
Candidate: (none)
Version table:
1.22.0-5+deb12u2 -1
500 http://deb.devuan.org/merged daedalus/main amd64 Packages
500 http://deb.devuan.org/merged daedalus-security/main amd64 Packages
gstreamer1.0-alsa:
Installed: (none)
Candidate: (none)
Version table:
1.22.0-3+deb12u4 -1
500 http://deb.devuan.org/merged daedalus/main amd64 Packages
1.22.0-3+deb12u3 -1
500 http://deb.devuan.org/merged daedalus-security/main amd64 Packages ➤ apt install clementine --simulate
NOTE: This is only a simulation!
...
Recommended packages:
gstreamer1.0-alsa | gstreamer1.0-pulseaudio
The following NEW packages will be installed:
clementine liblastfm5-1 libmygpo-qt5-1 ⟡ AI Overview
Post-esoteric surrealism refers to the period of surrealism after World War II, where the movement shifted away from the initial emphasis on the unconscious and dreamlike imagery towards a greater focus on the occult and esoteric aspects of art and philosophy. This shift was influenced by the tumultuous events of the war and the subsequent rise of existentialism and other philosophical movements.
There is a secret method with which to calculate the true dependencies of a Debian package.
➤ man dh_shlibdeps | grep DESCRIPTION -A5 DESCRIPTION dh_shlibdeps is a debhelper program that is responsible for calculating shared library dependencies for packages. This program is merely a wrapper around dpkg-shlibdeps(1) that calls it once for each package listed in the control file, passing it a list of ELF executables and shared libraries it has found.
Let us try it with the advanced music player for semi-deaf and semi-blind audiphiles:
_https://github.com/strawberrymusicplayer/strawberry/releases/download/1.2.11/strawberry_1.2.11-bookworm_amd64.deb
➤ dpkg --info strawberry_1.2.11-bookworm_amd64.deb | grep Depends -B5
Package: strawberry
Version: 1.2.11-bookworm
Architecture: amd64
Maintainer: Jonas Kvinge <jonas@jkvinge.net>
Installed-Size: 13929
Depends: libasound2 (>= 1.0.16), libc6 (>= 2.34), libcdio19 (>= 2.1.0), libchromaprint1 (>= 1.3.2), libebur128-1 (>= 1.1.0), libfftw3-double3 (>= 3.3.10), libgcc-s1 (>= 3.0), libgdk-pixbuf-2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.51.0), libgpod4 (>= 0.7.0), libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.6.0), libicu72 (>= 72.1~rc-1~), libmtp9 (>= 1.1.0), libpulse0 (>= 0.99.1), libqt6concurrent6 (>= 6.1.2), libqt6core6 (>= 6.4.0), libqt6dbus6 (>= 6.4.0), libqt6gui6 (>= 6.3.0), libqt6network6 (>= 6.4.0), libqt6sql6 (>= 6.1.2), libqt6widgets6 (>= 6.3.0), libsqlite3-0 (>= 3.6.11), libstdc++6 (>= 11), libtag1v5 (>= 1.11), libx11-6, libqt6sql6-sqlite, qt6-qpa-plugins, gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-alsa, gstreamer1.0-pulseaudio What is obviously wrong is the dependency on "gstreamer1.0-alsa, gstreamer1.0-pulseaudio".
Although it is immoral to deceive the deaf, blind, and demented, Linux users are often fooled about pulseaudio dependencies. Therefore, you have to be paranoid and constantly verify the dependencies of Debian packages.
Open the fakeroot console:
➤ fakeroot
# mkdir debdir
# ls -1
debdir
strawberry_1.2.11-bookworm_amd64.deb
# dpkg-deb -R *.deb debdir
# mkdir debian
# ls -1
debdir
debian
strawberry_1.2.11-bookworm_amd64.deb
# echo -e "Source: strawberry\nPackage: strawberry\nDepends: \${shlibs:Depends}" >> debian/control
# cat debian/control
Source: strawberry
Package: strawberry
Depends: ${shlibs:Depends} Run "dpkg-shlibdeps" to calculate the true dependencies
# dpkg-shlibdeps -v -xstrawberry --ignore-missing-info -e $(find debdir -type f 2>/dev/null) The result of calculations is written into debian/substvars
# cat debian/substvars
shlibs:Depends=libasound2 (>= 1.0.16), libc6 (>= 2.34), libcdio19 (>= 2.1.0), libchromaprint1 (>= 1.3.2), libebur128-1 (>= 1.1.0), libfftw3-double3 (>= 3.3.10), libgcc-s1 (>= 3.0), libgdk-pixbuf-2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.51.0), libgpod4 (>= 0.7.0), libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.6.0), libicu72 (>= 72.1~rc-1~), libmtp9 (>= 1.1.0), libpulse0 (>= 0.99.1), libqt6concurrent6 (>= 6.1.2), libqt6core6 (>= 6.4.0), libqt6dbus6 (>= 6.4.0), libqt6gui6 (>= 6.3.0), libqt6network6 (>= 6.4.0), libqt6sql6 (>= 6.1.2), libqt6widgets6 (>= 6.3.0), libsqlite3-0 (>= 3.6.11), libstdc++6 (>= 11), libtag1v5 (>= 1.11), libx11-6 Now, with the help of a text editor, you can simply replace the false "Depends" with the true "Depends".
nano debdir/DEBIAN/control It should look like this:
# cat debdir/DEBIAN/control | grep Depends
Depends: libasound2 (>= 1.0.16), libc6 (>= 2.34), libcdio19 (>= 2.1.0), libchromaprint1 (>= 1.3.2), libebur128-1 (>= 1.1.0), libfftw3-double3 (>= 3.3.10), libgcc-s1 (>= 3.0), libgdk-pixbuf-2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.51.0), libgpod4 (>= 0.7.0), libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.6.0), libicu72 (>= 72.1~rc-1~), libmtp9 (>= 1.1.0), libpulse0 (>= 0.99.1), libqt6concurrent6 (>= 6.1.2), libqt6core6 (>= 6.4.0), libqt6dbus6 (>= 6.4.0), libqt6gui6 (>= 6.3.0), libqt6network6 (>= 6.4.0), libqt6sql6 (>= 6.1.2), libqt6widgets6 (>= 6.3.0), libsqlite3-0 (>= 3.6.11), libstdc++6 (>= 11), libtag1v5 (>= 1.11), libx11-6 When dependencies are corrected, you can build the package:
# dpkg-deb -b debdir strawberry_1.2.11-devuan_amd64-fixed.deb
dpkg-deb: building package 'strawberry' in 'strawberry_1.2.11-devuan_amd64-fixed.deb'.Exit fakeroot console:
# exit
exitNow, you can install Strawberry with true dependencies:
sudo dpkg -i strawberry_1.2.11-devuan_amd64-fixed.deb The question remains: what is the origin of pseudo-dependencies in Debian packages?
Obviously, they are man-made rather than naturally produced by invisible magic forces.
Debian packages can be build manually in an old-fashioned way (e.g., with dpkg-deb), without the help of the "debhelper". However, the Debian packaging system is also capable of producing pseudo-dependencies. You can simply add such dependencies into debian/control, for example:
Depends:
${shlibs:Depends},
${misc:Depends},
pulseaudioThen, build the package with "dpkg-buildpackage -us -uc -b". It will produce a Debian package which depends on pulseaudio.
@stopAI
It should be "clearly noticeable", because, the fftrate plugin (if it is correctly configured) replaces ALSA resamplers with the magic fftrate real-time codec.
See also:
_https://dev1galaxy.org/viewtopic.php?id=6593
By the way, have you noticed a secret command "dh_auto_build --list",
and a trick with dpkg-shlibdeps
_https://dev1galaxy.org/viewtopic.php?id=7214
@stopAI
I didn't expect that anyone would be interested in Debian packaging.
Have you tried to compile fftrate?
The updated manual is here:
_https://dev1galaxy.org/viewtopic.php?id=7142
The user manual is here:
_https://dev1galaxy.org/viewtopic.php?id=6644
It will improve sound quality of your pipewire.
You can test it with and without fftrate. The difference should be obvious.
Although, of course, it will be much better without pipewire and pulseaudio.
To disable fftrate, you can simply remove/rename ~/.asoundrc
And, by renaming, you can enable it again.
WhiteSur GTK Theme: A macOS like theme for Linux GTK Desktops
_https://github.com/vinceliuice/WhiteSur-gtk-theme
_https://aur.archlinux.org/packages/whitesur-gtk-theme-git
_https://aur.archlinux.org/packages/whitesur-icon-theme-git
_https://aur.archlinux.org/packages/whitesur-cursor-theme-git
Build-Deps:
sudo apt install git fakeroot sassc libglib2.0-dev-bin libglib2.0-dev libxml2-utils imagemagick dialog optipng inkscape mkdir Build_Sur
cd Build_Sur Open fakeroot console:
fakerootDownload sourcedir:
git clone https://github.com/vinceliuice/WhiteSur-gtk-theme.git --depth=1 Install "debdir":
install -dm755 debdir/usr/share/themes
install -dm755 debdir/usr/share/docs/whitesur-gtk-theme
install -dm755 debdir/usr/share/icons # ls -1
debdir
WhiteSur-gtk-theme cd WhiteSur-gtk-theme Install WhiteSur Dark theme to debdir
./install.sh -d ../debdir/usr/share/themes -c Dark -t green -o solid # ls -1 ../debdir/usr/share/themes
WhiteSur-Dark-solid-green
WhiteSur-Dark-solid-green-hdpi
WhiteSur-Dark-solid-green-xhdpiInstall Firefox theme to debdir:
cp -r src/other/firefox ../debdir/usr/share/docs/whitesur-gtk-theme cd .. #ls -1
debdir
WhiteSur-gtk-themeDownload WhiteSur icon theme sourcedir:
git clone https://github.com/vinceliuice/WhiteSur-icon-theme.git --depth=1 # ls -1
debdir
WhiteSur-gtk-theme
WhiteSur-icon-themeInstall icon theme to debdir:
./WhiteSur-icon-theme/install.sh -d "$(pwd)/debdir/usr/share/icons" -t green # ls -1
debdir
WhiteSur-gtk-theme
WhiteSur-icon-theme Download WhiteSur-cursors sourcedir:
git clone https://github.com/vinceliuice/WhiteSur-cursors.git --depth 1 # ls -1
debdir
WhiteSur-cursors
WhiteSur-gtk-theme
WhiteSur-icon-theme Build WhiteSur-cursors
cd WhiteSur-cursors
./build.sh Install WhiteSur-cursors to debdir:
cp -pr dist ../debdir/usr/share/icons/WhiteSur-cursors # cd ..
# ls -1
debdir
WhiteSur-cursors
WhiteSur-gtk-theme
WhiteSur-icon-theme Configure WhiteSur Dark theme:
IconTheme=WhiteSur-green-dark
CursorTheme=WhiteSur-cursors It should look like this:
# cat debdir/usr/share/themes/WhiteSur-Dark-solid-green/index.theme
[Desktop Entry]
Type=X-GNOME-Metatheme
Name=WhiteSur-Dark-solid-green
Comment=A MacOS BigSur like Gtk+ theme based on Elegant Design
Encoding=UTF-8
[X-GNOME-Metatheme]
GtkTheme=WhiteSur-Dark-solid-green
MetacityTheme=WhiteSur-Dark-solid-green
IconTheme=WhiteSur-green-dark
CursorTheme=WhiteSur-cursors
ButtonLayout=close,minimize,maximize:menu The "Name=" of WhiteSur-cursors should also be fixed:
# cat debdir/usr/share/icons/WhiteSur-cursors/index.theme
[Icon Theme]
Name=WhiteSur-cursors Make a template for Debian package
install -vm0755 -d debdir/DEBIAN Create DEBIAN/control with a text editor:
nano debdir/DEBIAN/control For example:
# cat debdir/DEBIAN/control
Package: whitesur-gtk-theme
Version: 2025.05.29-1
Architecture: all
Maintainer: Devuan
Installed-Size: 52.2 kB
Depends: libxml2-utils, imagemagick, dialog, optipng
Section: x11
Priority: optional
Homepage: https://github.com/vinceliuice/WhiteSur-gtk-theme
Description: MacOS Big Sur like theme for MATE Desktop Generate 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 a Debian package:
dpkg-deb -b debdir whitesur-gtk-theme_2025.05.29-1_all.deb Exit fakeroot
# exit
exitInstall WhiteSur-Dark theme
sudo dpkg -i whitesur-gtk-theme_2025.05.29-1_all.deb Enable WhiteSur-Dark theme
mate-appearance-propertiesTheme ➔ WhiteSur-Dark-solid-greenConfigure WhiteSur theme for "greeter" (display-manager)
➤ cat /etc/X11/default-display-manager
/usr/sbin/lightdm
➤ sudo lightdm-gtk-greeter-settings[ArchWiki] LightDM
_https://wiki.archlinux.org/title/LightDM
Tweaks:
sudo apt install mate-tweak
mate-tweak
sudo apt install vivid
man vivid
cat ~/.bashrc | grep alias
cat ~/.bashrc | grep less$ cat ~/.bashrc | grep LESS
export LESS='-R --use-color -Dd+g$Du+b$'How to remove WhiteSur Dark theme:
sudo apt remove whitesur-gtk-theme@greenjeans
If you are going to compile X-apps, you may try first to compile XED.
If it works, you may try to compile them all.
@greenjeans
Do you really want to be busy with X-Apps?
You may need to compile a lot of dependencies.
This is what X-Apps are about.
The only X-App which is easy to compile is XED
_https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=xed-git
XED is very similar to Pluma. You may not need it.
Perhaps, you may better try a sort of WhiteSur (dark theme)
_https://github.com/vinceliuice/WhiteSur-gtk-theme
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" What is:
$ pkgconf --libs --cflags gl
-lGL
$ pkgconf --libs --cflags GL
Package GL was not found in the pkg-config search path.
Perhaps you should add the directory containing `GL.pc'
to the PKG_CONFIG_PATH environment variable
Package 'GL', required by 'virtual:world', not found What should be:
$ pkgconf --libs --cflags gl
-I/usr/include/GL -lGL
$ pkgconf --libs --cflags GL
-I/usr/include/GL -lGLOtherwise, you may get errors like this:
dependency GL found: NO
OpenGL Spectrum Analyzer: falseA workaround might be obvious, if you do not suffer from dementia.
What might be needed is "/usr/include/" in a sort of 'virtual:path' in the so-called 'virtual:world'. This might be an esoteric problem.
In any case, a simple workaround fixed the problem. Now it looks like this:
dependency GL version: 1.2 found: YES
OpenGL Spectrum Analyzer: true However, opengl.pc might also be wrong:
$ pkgconf --libs --cflags opengl
-lOpenGL It seems that "gtk+-3.0" was already fixed:
$ pkgconf --libs --cflags gtk+-3.0
-I/usr/include/gtk-3.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/libmount -I/usr/include/blkid -I/usr/include/fribidi -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/x86_64-linux-gnu -I/usr/include/gio-unix-2.0 -I/usr/include/GL -I/usr/include/atk-1.0 -I/usr/include/at-spi2-atk/2.0 -I/usr/include/at-spi-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include -pthread -lgtk-3 -lgdk-3 -lz -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -latk-1.0 -lcairo-gobject -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 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-devDownload 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 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/DEBIANCreate 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. The updated installation manual for Petrov's fftrate ALSA plugin is here:
_https://dev1galaxy.org/viewtopic.php?id=7142
Thanks to the magic patch provided by the Arch Linux community, the fftrate ALSA plugin can now be compiled with gcc-12 (Devuan 5) and newer versions of GCC available in Arch Linux and Debian repositories. You do not need to install gcc-10 from the oldstable repository.
samurai is a ninja-compatible build tool written in C99 with a focus on simplicity, speed, and portability.
_https://github.com/michaelforney/samurai
samurai - Arch Linux
_https://archlinux.org/packages/extra/x86_64/samurai/
_https://gitlab.archlinux.org/archlinux/packaging/packages/samurai
_https://gitlab.archlinux.org/archlinux/packaging/packages/samurai/-/blob/main/PKGBUILD?ref_type=heads
Install build-essential, etc.
sudo apt install build-essential debhelper dh_make fakeroot git sed tree quilt Download sourcedir:
mkdir BUILD_SAMU
cd BUILD_SAMU
git clone https://github.com/michaelforney/samurai.git --depth 1 Install a template:
cd samurai
export DEBFULLNAME="John Frum"
dh_make --createorig -p samurai_1.9.0 -c apache -e my@mail.org -s $ dh_auto_build --list | grep Auto-selected
Auto-selected: makefile Create debian/samurai.install
echo -e 'LICENSE usr/share/licenses/samurai' >> debian/samurai.install $ cat debian/samurai.install
LICENSE usr/share/licenses/samurai Append 7 lines to debian/rules with echo command
echo -e "# For HTML docs are missing\nexport DH_ALWAYS_EXCLUDE=doc:doc-base\n# Patching Makefile with sed\noverride_dh_auto_build:\n\tsed -i -e 's/usr\/local/usr/g' Makefile\n\tdh_auto_build --\n" >> debian/rules $ cat -A debian/rules |grep Patching -A5 -B2
# For HTML docs are missing$
export DH_ALWAYS_EXCLUDE=doc:doc-base$
# Patching Makefile with sed$
override_dh_auto_build:$
^Ised -i -e 's/usr\/local/usr/g' Makefile$
^Idh_auto_build --$
$ $ tail -7 debian/rules
# For HTML docs are missing
export DH_ALWAYS_EXCLUDE=doc:doc-base
# Patching Makefile with sed
override_dh_auto_build:
sed -i -e 's/usr\/local/usr/g' Makefile
dh_auto_build --Edit debian/control
nano debian/control$ cat debian/control
Source: samurai
Section: devel
Priority: optional
Maintainer: John Frum <my@mail.org>
Rules-Requires-Root: no
Build-Depends:
debhelper-compat (= 13),
Standards-Version: 4.6.2
Homepage: https://github.com/michaelforney/samurai
#Vcs-Browser: https://salsa.debian.org/debian/samurai
#Vcs-Git: https://salsa.debian.org/debian/samurai.git
Package: samurai
Architecture: amd64
Depends:
${shlibs:Depends},
${misc:Depends},
Description: samurai is a ninja-compatible build tool written in C99
• with a focus on simplicity, speed, and portability.
• samurai implements the ninja build language through version 1.9.0 except for MSVC dependency handling (deps = msvc).
• It uses the same format for .ninja_log and .ninja_deps as ninja, currently version 5 and 4 respectively.
• It is feature-complete and supports most of the same options as ninja. Create Debian source package
dpkg-source -b . Build Debian binary package (deb)
dpkg-buildpackage -us -uc -b $ ls -1 ../*.deb
../samurai_1.9.0-1_amd64.deb
../samurai-dbgsym_1.9.0-1_amd64.deb Install samurai
sudo dpkg -i ../samurai_1.9.0-1_amd64.deb $ samu --version
1.9.0
$ man samu Build-Depends:
$ objdump -p /usr/bin/samu | grep NEEDED
NEEDED libc.so.6
$ apt-file find /usr/lib/x86_64-linux-gnu/libc.so | grep dev
libc6-dev: /usr/lib/x86_64-linux-gnu/libc.so Now you can build wxMaxima with the help of samurai.
A static muon is not easy to compile on Devuan, but the newest version of static muon executable with embedded samurai is already available for download.
$ ldd muon-v0.5.0-amd64-linux
not a dynamic executable
$ 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 Enable portable CMake 4.0.2
export PATH="$HOME/.CTools/cmake-4.0.2/bin:$PATH"$ cmake --version
cmake version 4.0.21. Generate the Buildsystem
cmake -S wxmaxima -B build -G Ninja -DCMAKE_BUILD_TYPE="Release" -DCPACK_DEBIAN_PACKAGE_MAINTAINER=Daedalus -DCMAKE_INSTALL_PREFIX='/usr' -DwxWidgets_CONFIG_EXECUTABLE=/usr/bin/wx-config -DWXM_INTERPROCEDURAL_OPTIMIZATION=ON -Wno-dev $ ls -1
build
wxmaxima
$ ls build | grep ninja
build.ninja 2. Compile wxMaxima with samu
samu -C build3. Make a Debian package with CPack
$ ls build | grep Config.cmake
CPackConfig.cmake
CPackSourceConfig.cmake cpack --config build/CPackConfig.cmake -G DEB $ cpack --config build/CPackConfig.cmake -G DEB
CPack: Create package using DEB
CPack: Install projects
CPack: - Install project: wxMaxima []
CPack: Create package
CPackDeb: - Generating dependency list
CPack: - package: /home/.../wxmaxima_25.04.0-1_amd64.deb generated.$ ls *.deb
wxmaxima_25.04.0-1_amd64.deb Install wxMaxima
sudo dpkg -i wxmaxima_25.04.0-1_amd64.deb$ wxmaxima --version
wxMaxima 25.04.0 (Git version: 6bc13e5)I want to thank you, the sound is really good, everything works perfectly !
If you enjoy it, you may say thanks to the creator of the magic fftrate codec, Sergei Petrov.
_https://github.com/PetrovSE/fftrate
There is a belief that fftrate may cure deafness. It may not always work. If it does not, the victims of pulseaudio may not have any chance to regain hearing loss. It seems impossible to cure deafness: "there are no known treatments to restore hearing, because auditory hair cells in mammals, unlike those in birds or fish, do not regenerate once lost."
_https://www.hsci.harvard.edu/major-step-toward-treatment-leading-form-hearing-loss
There might be obstacles on the road to freedom. You may get problems like this:
$ dpkg-buildpackage -b
...
fatal error: toml++/toml.hpp: No such file or directory
2 | #include "toml++/toml.hpp" To overcome this obstacle you can simply borrow "toml++/toml.hpp" from Debian testing and compile the package you need on Devuan stable. For some strange reason, this method usually works.
You can find "toml++/toml.hpp" in a Debian (testing=trixie) package:
Package: libtomlplusplus-dev (3.4.0+ds-0.2 and others)
_https://packages.debian.org/trixie/libtomlplusplus-dev
$ tree -L 4 libtomlplusplus-dev_3.4.0+ds-0.2+b1_amd64
libtomlplusplus-dev_3.4.0+ds-0.2+b1_amd64
├── DEBIAN
│ ├── control
│ └── md5sums
└── usr
├── include
│ └── toml++
│ ├── impl
│ ├── toml.h
│ └── toml.hpp
├── lib
│ └── x86_64-linux-gnu
│ ├── cmake
│ ├── libtomlplusplus.so -> libtomlplusplus.so.3
│ └── pkgconfig
└── share
├── doc
│ └── libtomlplusplus-dev
└── doc-base
└── libtomlplusplus-dev.tomlplusplus You can download this package, and extract "usr" to a folder like this:
$HOME/.CTools/LIBS/
$HOME/.CTools/LIBS/usr/include/toml++/toml.hpp Then you can add "$HOME/.CTools/LIBS/usr/include" to $CPLUS_INCLUDE_PATH
The secret knowledge is here:
_https://gcc.gnu.org/onlinedocs/cpp/Environment-Variables.html
It is very simple:
$ echo $CPLUS_INCLUDE_PATH
# It is empty
$ export CPLUS_INCLUDE_PATH="$HOME/.CTools/LIBS/usr/include" Verify the INCLUDE_PATH for g++ with a secret command:
echo | gcc -Wp,-v -xc++ - -fsyntax-only$ echo | gcc -Wp,-v -xc++ - -fsyntax-only
ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/12"
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/12/include-fixed"
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/12/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/home/<YOUR USER NAME>/.CTools/LIBS/usr/include
/usr/include/c++/12
/usr/include/x86_64-linux-gnu/c++/12
/usr/include/c++/12/backward
/usr/lib/gcc/x86_64-linux-gnu/12/include
/usr/local/include
/usr/include/x86_64-linux-gnu
/usr/include
End of search list. Now everything works. The "fatal error" had gone away.
The question remains: why does this method work. It looks like they do not update software on Debian stable. They have restricted resources, and, of course, they have to fix problems caused by systemd, pipewire and pulseaudio.
Knowledge and ignorance—
a man who knows them both together,
Passes beyond death by ignorance,
and by knowledge attains immortality.
Isha Upanishad, Verse 12
The road to freedom is short and straightforward. Read PKGBUILs of AUR packages, and do the same on Devuan.
It doesn't always work. Sometimes it is much better with Debian sources, if you know the secret commands. Debian packaging is a sacred ritual, not a secular one. It requires initiation into secret knowledge. If you are not initiated, you are doomed to dwell in ignorance and doubt. In essence, initiation is a rite of passage marking entrance into a sort of esoteric society. In particular, it signifies a transformation in which the initiate is 'reborn' into a new role.
Step 1: Install a secret package
sudo apt-get install packaging-dev Step 2: Download the source you need. For example:
Debian testing (Trixie)
_https://packages.debian.org/source/testing/gnuplotSource Package: gnuplot (6.0.2+dfsg1-1)
Debian Package Source Repository (Browsable)
https://salsa.debian.org/science-team/gnuplot
mkdir BUILD_GIT
cd BUILD_GIT
git clone https://salsa.debian.org/science-team/gnuplot.git --depth 1 $ ls
gnuplot
$ du -sh *
17M gnuplotStep 3: Install "Build-Depends"
cd gnuplot
mk-build-deps$ ls *.deb
gnuplot-build-deps_6.0.2+dfsg1-1_all.deb Install gnuplot-build-deps*.deb
sudo dpkg -i gnuplot-build-deps_6.0.2+dfsg1-1_all.deb You may notice a problem:
$ sudo dpkg -i gnuplot-build-deps_6.0.2+dfsg1-1_all.deb
...
dpkg: error processing package gnuplot-build-deps (--install):
dependency problems - leaving unconfigured Fix it with a magic command:
sudo apt -f installIt may remove "emacs-gtk" and install "emacs-nox" instead. You can reinstall it later, or remove them both.
Emacs - Installation options on Linux and Lucid Emacs vs. XEmacs
_https://youtu.be/ugFtz7XOOWU?t=25s
$ mv -v gnuplot-build-deps_6.0.2+dfsg1-1_all.deb ../ Step 4: Prepare the source
Execute secret commands:
export QUILT_PATCHES=debian/patches
quilt push -a The output on terminal should look like this:
$ quilt push -a
Applying patch 04_fix_libexecdir.diff
patching file src/Makefile.am
...
Applying patch 50_no-webp_figures-in-documentation.patch
patching file docs/Makefile.am
Now at patch 50_no-webp_figures-in-documentation.patch Step 5: Build GnuPlot
dpkg-buildpackage -b $ ls -1 ../*.deb
../gnuplot_6.0.2+dfsg1-1_all.deb
../gnuplot-build-deps_6.0.2+dfsg1-1_all.deb
../gnuplot-data_6.0.2+dfsg1-1_all.deb
../gnuplot-doc_6.0.2+dfsg1-1_all.deb
../gnuplot-nox_6.0.2+dfsg1-1_amd64.deb
../gnuplot-nox-dbgsym_6.0.2+dfsg1-1_amd64.deb
../gnuplot-qt_6.0.2+dfsg1-1_amd64.deb
../gnuplot-qt-dbgsym_6.0.2+dfsg1-1_amd64.deb
../gnuplot-x11_6.0.2+dfsg1-1_amd64.deb
../gnuplot-x11-dbgsym_6.0.2+dfsg1-1_amd64.deb Step 6: Install GnuPlot
cd ../
sudo dpkg -i gnuplot_6.0.2+dfsg1-1_all.deb gnuplot-data_6.0.2+dfsg1-1_all.deb gnuplot-qt_6.0.2+dfsg1-1_amd64.deb Step 7: Test
You can test GnuPlot with Maxima
$ maxima
(%i1) plot2d([tanh(20*sin(x))], [x,-10*%pi,10*%pi], [y,-1.1,1.1], [plot_format, gnuplot])$
(%i3) quit(); You can export plots from GnuPlot window to SVG format. It works with gnuplot-qt
Click on "Export" icon (the top left corner of GnuPlot window), and select "Export to SVG" in drop down menu.
Doing Graphics with Maxima - Maxima Tutorial
http://www.bildungsgueter.de/MaximaEN/Pages/GraphicsSurvey01.htm
$ inxi -b | grep Host -A1 Host: devuan Kernel: 6.1.0-34-amd64 arch: x86_64 bits: 64 Desktop: MATE v: 1.26.0 Distro: Devuan GNU/Linux 5 (daedalus)
NOTE: It is "portable standalone" in the sense that it does not require installation.
Just click on it and use. You can also start it from terminal, or create a deskto launcher wxMaxima.desktop
$ ./_CPack_Packages/Linux/DEB/wxMaxima-25.04.0-Linux/usr/bin/wxmaxima --version
wxMaxima 25.04.0 (Git version: 735a94e3a)_https://github.com/wxMaxima-developers/wxmaxima/releases/tag/Version-25.04.0
wxMaxima 25.04.0 Latest
A bugfix releasehttps://github.com/wxMaxima-developers/wxmaxima.git
Build dependencies
To build wxMaxima-25.04.0.deb, we need CMake 4.0.1
There is a portable standalone version of CMake 4.0.1 in GitHub.
The manual for it is here:https://dev1galaxy.org/viewtopic.php?id=7161You can simply download and unpack it into your home folder, for example:
$ ls -1 $HOME/.CTools/ cmake-4.0.1 meson-1.7.2Download portable CMake v4.0.1:
https://github.com/Kitware/CMake/releases/download/v4.0.1/cmake-4.0.1-linux-x86_64.tar.gzInstall "build-essential", build dependencies, etc.:
sudo apt install build-essential debhelper sudo apt install libwxgtk3.2-dev xvfb netcat-openbsd xauth desktop-file-utils appstream-util libwxgtk-webview3.2-dev libwebkit2gtk-4.0-dev sudo apt install fakeroot dpkg-repack git sed tree maxima appstream pandoc po4a imagemagick doxygen texlive-xetex
Clone the source from git:
mkdir wxmaxima2504_build
cd wxmaxima2504_build
git clone https://github.com/wxmaxima-developers/wxmaxima.git $ ls
wxmaximaProject: wxMaxima-25.04.0 (GitHub)
Create DEB_config.cmake
nano ./wxmaxima/DEB_config.cmake $ cat ./wxmaxima/DEB_config.cmake
# these are cache variables, so they could be overwritten with -D,
set(CPACK_PACKAGE_NAME ${PROJECT_NAME}
CACHE STRING "The resulting package name"
)
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_DESCRIPTION}
CACHE STRING "Package description for the package metadata"
)
set(CPACK_VERBATIM_VARIABLES TRUE)
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")
set(CPACK_PACKAGE_VERSION "${WXMAXIMA_VERSION}")
set(CPACK_DEBIAN_PACKAGE_RELEASE "1")
set(CPACK_DEBIAN_PACKAGE_MAINTAINER Devuan
CACHE STRING "Package MAINTAINER"
)
# AUTO-Deps: autogenerate dependency information
set (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
list(APPEND CPACK_DEBIAN_PACKAGE_DEPENDS maxima)
set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "maxima-doc, fonts-inter, fonts-inter-variable, fonts-texgyre, fonts-texgyre-math, fonts-dejavu")
set(CPACK_DEBIAN_PACKAGE_SUGGESTS "fonts-jsmath, texlive-latex-extra, ibus-gtk3")
set(CPACK_DEBIAN_PACKAGE_SECTION math)
set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
# set(CPACK_SOURCE_GENERATOR "TBZ2;TGZ;TXZ;TZ")
list(APPEND CPACK_SOURCE_IGNORE_FILES "/\.git*")
include(CPack)Find the "CMakeLists" of the main project:
$ ls ./wxmaxima | grep CMakeLists
CMakeLists.txt To enable the DEB_config.cmake in the main project, append these lines:
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
include(DEB_config.cmake) to the end of the file ./wxmaxima/CMakeLists.txt. This can be done with a text editor, or echo command:
$ echo -e '\n\nset(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})\ninclude(DEB_config)' >> ./wxmaxima/CMakeLists.txt
$ tail -3 ./wxmaxima/CMakeLists.txt
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
include(DEB_config) Enable portable CMake 4.0.1
$ cmake --version
cmake version 3.25.1export PATH="$HOME/.CTools/cmake-4.0.1/bin:$PATH"$ cmake --version
cmake version 4.0.11. Generate the Project Buildsystem
cmake -S wxmaxima -B build -DCMAKE_BUILD_TYPE="Release" -DCPACK_DEBIAN_PACKAGE_MAINTAINER=Daedalus -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_CXX_STANDARD=14 -DCMAKE_CXX_COMPILER=g++ -DwxWidgets_CONFIG_EXECUTABLE=/usr/bin/wx-config -Wno-dev $ ls -1
build
wxmaxima2. Build the Project
cmake --build build 3. Make the Debian package with CPack
$ ls ./build | grep Config.cmake
CPackConfig.cmake
CPackSourceConfig.cmake $ cpack --config build/CPackConfig.cmake -G DEB
CPack: Create package using DEB
CPack: Install projects
CPack: - Run preinstall target for: wxMaxima
CPack: - Install project: wxMaxima []
CPack: Create package
CPackDeb: - Generating dependency list
CPack: - package: /home/.../wxmaxima2504_build/wxmaxima_25.04.0-1_amd64.deb generated. Generate the source package with CPack
$ cpack -G TGZ -DCPACK_PACKAGING_INSTALL_PREFIX="/" --config build/CPackSourceConfig.cmake
CPack: Create package using TGZ
CPack: Install projects
CPack: - Install directory: /home/igor/Desktop/Builds/Builds_wxMaxima/Build_wxmaxima_25.01.0_GIT/wxmaxima2504_build/wxmaxima
CPack: Create package
CPack: - package: /home/.../wxmaxima2504_build/wxMaxima-25.04.0-Source.tar.gz generated.$ ls -1
build
_CPack_Packages
wxmaxima
wxmaxima_25.04.0-1_amd64.deb
wxMaxima-25.04.0-Source.tar.gz$ dpkg-deb -f *.deb
Architecture: amd64
Depends: maxima, libc6 (>= 2.34), libgcc-s1 (>= 3.0), libstdc++6 (>= 11), libwxbase3.2-1 (>= 3.2.2+dfsg), libwxgtk-webview3.2-1 (>= 3.2.2+dfsg), libwxgtk3.2-1 (>= 3.2.1+dfsg-2)
Description: wxMaxima is a document based interface for the computer algebra system Maxima.
Homepage: https://wxmaxima-developers.github.io/wxmaxima/
Maintainer: Daedalus
Package: wxmaxima
Priority: optional
Recommends: maxima-doc, fonts-inter, fonts-inter-variable, fonts-texgyre, fonts-texgyre-math, fonts-dejavu
Section: math
Suggests: fonts-jsmath, texlive-latex-extra, ibus-gtk3
Version: 25.04.0-1
Installed-Size: 15154Install wxMaxima
sudo dpkg -i wxmaxima_25.04.0-1_amd64.deb $ wxmaxima --version
wxMaxima 25.04.0 (Git version: 735a94e3a)$ apt show wxmaxima
Package: wxmaxima
Version: 25.04.0-1
Status: install ok installed
Priority: optional
Section: math
Maintainer: Daedalus
Installed-Size: 15.5 MB
Depends: maxima, libc6 (>= 2.34), libgcc-s1 (>= 3.0), libstdc++6 (>= 11), libwxbase3.2-1 (>= 3.2.2+dfsg), libwxgtk-webview3.2-1 (>= 3.2.2+dfsg), libwxgtk3.2-1 (>= 3.2.1+dfsg-2)
Recommends: maxima-doc, fonts-inter, fonts-inter-variable, fonts-texgyre, fonts-texgyre-math, fonts-dejavu
Suggests: fonts-jsmath, texlive-latex-extra, ibus-gtk3
Homepage: https://wxmaxima-developers.github.io/wxmaxima/
Download-Size: unknown
APT-Manual-Installed: yes
APT-Sources: /var/lib/dpkg/status
Description: wxMaxima is a document based interface for the computer algebra system Maxima.The project directory wxmaxima2504_build:
$ ls -1
build
_CPack_Packages
wxmaxima
wxmaxima_25.04.0-1_amd64.deb
wxMaxima-25.04.0-Source.tar.gz./_CPack_Packages/Linux/DEB/wxMaxima-25.04.0-Linux/usr/bin/wxmaximaJust click on it and use.
$ ./_CPack_Packages/Linux/DEB/wxMaxima-25.04.0-Linux/usr/bin/wxmaxima --version
wxMaxima 25.04.0 (Git version: 735a94e3a)It should work on any Linux with "NEEDED" shared libraries installed:
$ readelf --dynamic ./_CPack_Packages/Linux/DEB/wxMaxima-25.04.0-Linux/usr/bin/wxmaxima | grep NEEDED
0x0000000000000001 (NEEDED) Shared library: [libwx_gtk3u_richtext-3.2.so.0]
0x0000000000000001 (NEEDED) Shared library: [libwx_gtk3u_aui-3.2.so.0]
0x0000000000000001 (NEEDED) Shared library: [libwx_gtk3u_webview-3.2.so.0]
0x0000000000000001 (NEEDED) Shared library: [libwx_baseu_net-3.2.so.0]
0x0000000000000001 (NEEDED) Shared library: [libwx_baseu_xml-3.2.so.0]
0x0000000000000001 (NEEDED) Shared library: [libwx_gtk3u_core-3.2.so.0]
0x0000000000000001 (NEEDED) Shared library: [libwx_baseu-3.2.so.0]
0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]$ readelf --dynamic ./_CPack_Packages/Linux/DEB/wxMaxima-25.04.0-Linux/usr/bin/wxmaxima | grep NEEDED | sort | uniq -u | sed -e 's/ /\n/g' | sed -n '/\[l/p' | sed -e 's/\]/ /g' | sed -e 's/\[//g' | tee wxMaxima-git_DEPs_libs.txt
libc.so.6
libgcc_s.so.1
libm.so.6
libstdc++.so.6
libwx_baseu-3.2.so.0
libwx_baseu_net-3.2.so.0
libwx_baseu_xml-3.2.so.0
libwx_gtk3u_aui-3.2.so.0
libwx_gtk3u_core-3.2.so.0
libwx_gtk3u_richtext-3.2.so.0
libwx_gtk3u_webview-3.2.so.0 You can verify all dependencies, for example:
$ apt-file search libwx_gtk3u_richtext-3.2.so.0
libwxgtk3.2-1: /usr/lib/x86_64-linux-gnu/libwx_gtk3u_richtext-3.2.so.0
libwxgtk3.2-1: /usr/lib/x86_64-linux-gnu/libwx_gtk3u_richtext-3.2.so.0.2.0 $ apt info wxmaxima | grep Depends
Depends: maxima, libc6 (>= 2.34), libgcc-s1 (>= 3.0), libstdc++6 (>= 11), libwxbase3.2-1 (>= 3.2.2+dfsg), libwxgtk-webview3.2-1 (>= 3.2.2+dfsg), libwxgtk3.2-1 (>= 3.2.1+dfsg-2)Notice that wxMaxima is a GUI for Maxima. It does depends on Maxima, in this sense.
$ copyq --version
CopyQ Clipboard Manager 10.0.0
Qt: 5.15.8
KNotifications: 5.103.0
Compiler: GCC
Arch: x86_64-little_endian-lp64
OS: Devuan GNU/Linux 5 (daedalus) $ copyq
Warning: [default] QtWarning: QSystemTrayIcon::setVisible: No Icon set
^C
$ copyq --start-server $ dpkg -L copyq | grep desktop
/usr/share/applications/com.github.hluk.copyq.desktop
$ cat /usr/share/applications/com.github.hluk.copyq.desktop | grep Exec
Exec=copyq --start-server show Workaround (start copyq in the tray):
Exec=bash -c 'killall copyq -wq; copyq --start-server &'
@Khylsdrak
CopyQ might be useful, although its manual (man copyq) seems misleading
_https://github.com/hluk/CopyQ/issues/225#issuecomment-1925401588
$ cat ~/.config/autostart/copyq-autostart.desktop
[Desktop Entry]
Type=Application
Exec=/usr/bin/copyq --start-server
Hidden=false
Name[en_US]=CopyQ autostart
Name=CopyQ
Comment[en_US]=Advanced clipboard manager
Comment=Advanced clipboard manager
# Workaround / fix for issue #1526 that prevents a proper autostart of the tray icon in GNOME
X-MATE-Autostart-Delay=3cat /usr/share/applications/com.github.hluk.copyq.desktop | grep Desktop -A15EDIT:
Create a new Desktop launcher for CopyQ with a text editor (nano or mousepad):
nano ~/.local/share/applications/copyq.desktopmousepad ~/.local/share/applications/copyq.desktop$ cat ~/.local/share/applications/copyq.desktop
[Desktop Entry]
Name=CopyQ
# Start CopyQ in the tray / Workaround for MATE Desktop
Exec=bash -c 'copyq && copyq exit && copyq --start-server' 2>/dev/null
# Exec=copyq --start-server show
Icon=copyq
GenericName=Clipboard Manager
# Workaround / fix for issue #1526 that prevents a proper autostart of the tray icon in GNOME
X-GNOME-Autostart-Delay=3
# The rest is taken from Klipper application.
Type=Application
Terminal=false
X-KDE-autostart-after=panel
X-KDE-StartupNotify=false
X-KDE-UniqueApplet=true
Categories=Qt;KDE;Utility;
Comment=A cut & paste history utility
Name[en_US]=CopyQ-fixed mkdir wxmaxima_build
cd wxmaxima_build
git clone https://github.com/wxmaxima-developers/wxmaxima.git $ ls
wxmaximaProject: wxMaxima 25.01.0-DevelopmentSnapshot (git)
Create a sort of config for "CPack DEB Generator" with a text editor you like
nano ./wxmaxima/Packing.cmake $ cat ./wxmaxima/Packing.cmake
# these are cache variables, so they could be overwritten with -D,
set(CPACK_PACKAGE_NAME ${PROJECT_NAME}
CACHE STRING "The resulting package name"
)
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY ${PROJECT_DESCRIPTION}
CACHE STRING "Package description for the package metadata"
)
set(CPACK_DEBIAN_PACKAGE_MAINTAINER Devuan
CACHE STRING "Package MAINTAINER"
)
set(CPACK_PACKAGING_INSTALL_PREFIX "/usr")
set(CPACK_PACKAGE_VERSION "${WXMAXIMA_VERSION}-Devuan5")
set(CPACK_DEBIAN_PACKAGE_RELEASE "1")
# AUTO-Deps: autogenerate dependency information
set (CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
list(APPEND CPACK_DEBIAN_PACKAGE_DEPENDS maxima)
set(CPACK_DEBIAN_PACKAGE_RECOMMENDS "maxima-doc, fonts-inter, fonts-inter-variable, fonts-texgyre, fonts-texgyre-math, fonts-dejavu")
set(CPACK_DEBIAN_PACKAGE_SUGGESTS "fonts-jsmath, texlive-latex-extra, ibus-gtk3")
set(CPACK_DEBIAN_PACKAGE_SECTION math)
set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
# set(CPACK_SOURCE_GENERATOR "TBZ2;TGZ;TXZ;TZ")
set(CPACK_SOURCE_GENERATOR "TGZ")
set(CPACK_SOURCE_IGNORE_FILES
\\.git/
build/
".*~$"
)
set(CPACK_VERBATIM_VARIABLES YES)
include(CPack)Find the config of the main project:
$ find . -maxdepth 2 -name 'CMakeLists*'
./wxmaxima/CMakeLists.txt
$ ls ./wxmaxima | grep CMakeLists
CMakeLists.txt To enable the GPac config (Packing.cmake) in the config of the main project, append a "magic code"
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
include(Packing) to the end of the file ./wxmaxima/CMakeLists.txt. This can be done with a text editor, or echo command:
$ echo -e '\n\nset(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})\ninclude(Packing)' >> ./wxmaxima/CMakeLists.txt
$ tail -3 ./wxmaxima/CMakeLists.txt
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR})
include(Packing) Enable CMake 4.0.1
$ cmake --version
cmake version 3.25.1export PATH="$HOME/.CTools/cmake-4.0.1/bin:$PATH"$ cmake --version
cmake version 4.0.11. Generate the Project Buildsystem
cmake \
-S wxmaxima \
-B build \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_CXX_STANDARD=14 \
-DCMAKE_CXX_COMPILER=g++ \
-DwxWidgets_CONFIG_EXECUTABLE=/usr/bin/wx-config \
-Wno-dev $ ls -1
build
wxmaxima2. Build the Project
cmake --build build 3. Make the Debian package of wxMaxima with CPack
$ ls ./build | grep Config.cmake
CPackConfig.cmake
CPackSourceConfig.cmake $ cpack --config build/CPackConfig.cmake -G DEB
CPack: Create package using DEB
CPack: Install projects
CPack: - Run preinstall target for: wxMaxima
CPack: - Install project: wxMaxima []
CPack: Create package
CPackDeb: - Generating dependency list
CPack: - package: /home/.../wxmaxima_build/wxmaxima_25.01.0-DevelopmentSnapshot-Devuan5-1_amd64.deb generated.Generate the source package of wxMaxima with CPack
$ cpack --config build/CPackSourceConfig.cmake
CPack: Create package using TGZ
CPack: Install projects
CPack: - Install directory: /home/.../wxmaxima_build/wxmaxima
CPack: Create package
CPack: - package: /home/.../wxmaxima_build/wxMaxima-25.01.0-DevelopmentSnapshot-Devuan5-Source.tar.gz generated.$ ls -1
build
_CPack_Packages
wxmaxima
wxmaxima_25.01.0-DevelopmentSnapshot-Devuan5-1_amd64.deb
wxMaxima-25.01.0-DevelopmentSnapshot-Devuan5-Source.tar.gz$ dpkg-deb -f *.deb
Architecture: amd64
Depends: maxima, libc6 (>= 2.34), libgcc-s1 (>= 3.0), libstdc++6 (>= 11), libwxbase3.2-1 (>= 3.2.2+dfsg), libwxgtk-webview3.2-1 (>= 3.2.2+dfsg), libwxgtk3.2-1 (>= 3.2.1+dfsg-2)
Description: wxMaxima is a document based interface for the computer algebra system Maxima.
Homepage: https://wxmaxima-developers.github.io/wxmaxima/
Maintainer: Devuan
Package: wxmaxima
Priority: optional
Recommends: maxima-doc, fonts-inter, fonts-inter-variable, fonts-texgyre, fonts-texgyre-math, fonts-dejavu
Section: math
Suggests: fonts-jsmath, texlive-latex-extra, ibus-gtk3
Version: 25.01.0-DevelopmentSnapshot-Devuan5-1
Installed-Size: 15532Install wxMaxima
sudo dpkg -i wxmaxima_25.01.0-DevelopmentSnapshot-Devuan5-1_amd64.deb $ apt show wxmaxima
Package: wxmaxima
Version: 25.01.0-DevelopmentSnapshot-Devuan5-1
Status: install ok installed
Priority: optional
Section: math
Maintainer: Devuan
Installed-Size: 15.9 MB
Depends: maxima, libc6 (>= 2.34), libgcc-s1 (>= 3.0), libstdc++6 (>= 11), libwxbase3.2-1 (>= 3.2.2+dfsg), libwxgtk-webview3.2-1 (>= 3.2.2+dfsg), libwxgtk3.2-1 (>= 3.2.1+dfsg-2)
Recommends: maxima-doc, fonts-inter, fonts-inter-variable, fonts-texgyre, fonts-texgyre-math, fonts-dejavu
Suggests: fonts-jsmath, texlive-latex-extra, ibus-gtk3
Homepage: https://wxmaxima-developers.github.io/wxmaxima/
Download-Size: unknown
APT-Manual-Installed: yes
APT-Sources: /var/lib/dpkg/status
Description: wxMaxima is a document based interface for the computer algebra system Maxima.
N: There is 1 additional record. Please use the '-a' switch to see itSome bugs become visible, if you try a dark theme for wxMaxima worksheets.
A workaround is to disable "Intelligently hide cell brackets"wxMaxima → Edit → Configure → Worksheet: Disable (uncheck) "Intelligently hide cell brackets"You may also try:
wxMaxima → View → "Invert worksheet brightness"
wxMaxima is a GUI for maxima. If maxima fails to work (as it usually happens on Fedora), wxMaxima does not react on maxima commands (e.g., 1 + 1). The Fedora users, of course, cannot understand what is going on. This is, largely because, perhaps, there are pipewire/pulseaudio users.
You may want to test maxima before testing wxMaxima. To open Maxima Shell, type the command maxima in the command-line terminal.
$ maxima Maxima 5.46.0 https://maxima.sourceforge.io using Lisp GNU Common Lisp (GCL) GCL 2.6.14 git tag Version_2_6_15pre3 Distributed under the GNU Public License. See the file COPYING. Dedicated to the memory of William Schelter. The function bug_report() provides bug reporting information. (%i1) A: (x-2)*(x-3); (%o1) (x - 3) (x - 2) (%i2) B: expand(A); 2 (%o2) x - 5 x + 6 (%i3) solve(B,x); (%o3) [x = 3, x = 2] (%i4) factor(B); (%o4) (x - 3) (x - 2) (%i5) subst(x=3,B); (%o5) 0 (%i6) subst(x=2,B); (%o6) 0 (%i7) quit();
Perhaps, mathematical knowledge may help to understand the problems of digital sound processing (e.g., resampling), but it may not liberate from ignorance. The cult of pulseaudio is a sort of Cargo cult, and therefore, it is doomed to persist despite any failures to materialize utopian dreams. If the particular "advanced projects" failed, the ends are still valid, and the dream as a vehicle of truth stays unimpaired. The "myth-dream" of the cult is, in essence, a self-generating "objective truth". The "myth-dream" of "advanced Linux sound system" will inevitably produce new sorts of pulseaudio/pipewire and other "advanced crap". The problem is that such myths generate the true knowledge which emerges as an imperative to action. The Cargo cult persists because it fails to fulfill its ends. The cult of systemd is the same thing.
In the context of Cargo the myth-dream is truth, and, moreover, the several truths contained in the myth-dream emerge as imperatives. Ideally, the task of the charismatic figure can be seen as an attempt to realize these imperatives in action. (Kenelm Burridge, Mambu (1960). pp. 249-250).
Mirage is very light and good
$ apt show mirage
Package: mirage
Version: 0.11.1-1+b6The version number is telling.
$ mirage
(mirage:13910): Gtk-CRITICAL **: 17:26:25.051: gtk_buildable_add_child: assertion 'iface->add_child != NULL' failed
(mirage:13910): Gtk-CRITICAL **: 17:26:25.085: gtk_buildable_add_child: assertion 'iface->add_child != NULL' failedOne may want to install the "DevelopmentSnapshot" of wxMaxima, because the "stable versions" of wxMaxima (available in Devuan/Debian repositories) are so buggy that they are impossible to use.
The "DevelopmentSnapshot" of wxMaxima seems to work on Devuan 5 Daedalus. It looks usable, although, of course, there still a lot of bugs.
The package of wxMaxima (DevelopmentSnapshot) is available in Arch Linux AUR repository:
_https://aur.archlinux.org/packages/wxmaxima
_https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=wxmaxima
Therefore, it is not difficult to build a Debian package of the "DevelopmentSnapshot".
$ inxi -b | grep Host -A1
Host: devuan Kernel: 6.1.0-33-amd64 arch: x86_64 bits: 64 Desktop: MATE
v: 1.26.0 Distro: Devuan GNU/Linux 5 (daedalus) Install "build-essential", build dependencies, etc.:
sudo apt install build-essential debhelpersudo apt install libwxgtk3.2-dev xvfb netcat-openbsd xauth desktop-file-utils appstream-util libwxgtk-webview3.2-dev libwebkit2gtk-4.0-dev sudo apt install fakeroot dpkg-repack git sed tree maxima appstream pandoc po4a imagemagick doxygen texlive-xetexman CMake
_https://cmake.org/cmake/help/latest/manual/cmake.1.html
Creating debian packages — CMake
_https://karthikkalyanaraman.medium.com/creating-debian-packages-cmake-e519a0186e87
Download portable CMake v4.0.1:
https://github.com/Kitware/CMake/releases/download/v4.0.1/cmake-4.0.1-linux-x86_64.tar.gzThe manual for portable CMake is here:
https://dev1galaxy.org/viewtopic.php?id=7161
Clone the source from git:
mkdir Build_wxmaxima_25.01.0_GIT
cd Build_wxmaxima_25.01.0_GIT
git clone https://github.com/wxmaxima-developers/wxmaxima.git $ ls
wxmaxima
$ cmake --version
cmake version 3.25.1export PATH="$HOME/.CTools/cmake-4.0.1/bin:$PATH"$ cmake --version
cmake version 4.0.11. Generate the Project Buildsystem
cmake \
-S wxmaxima \
-B build \
-DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_CXX_STANDARD=14 \
-DCMAKE_CXX_COMPILER=g++ \
-DwxWidgets_CONFIG_EXECUTABLE=/usr/bin/wx-config \
-Wno-dev $ ls -1
build
wxmaxima2. Build the Project
cmake --build build
3. Install wxMaxima to a sub-folder "WXMDIR"
DESTDIR="WXMDIR" cmake --install build
$ ls -1
build
wxmaxima
WXMDIR
$ du -sh WXMDIR
16M WXMDIR
$ du -s WXMDIR
15752 WXMDIR
$ tree -a -L 3 WXMDIR
WXMDIR
└── usr
├── bin
│ └── wxmaxima
└── share
├── applications
├── bash-completion
├── doc
├── icons
├── locale
├── man
├── metainfo
├── mime
├── pixmaps
└── wxMaxima Open fakeroot console:
$ fakeroot
# mkdir -pv ./WXMDIR/DEBIAN
mkdir: created directory './WXMDIR/DEBIAN'Create "DEBIAN/control":
# nano ./WXMDIR/DEBIAN/control
# cat ./WXMDIR/DEBIAN/control
Package: wxmaxima
Version: 25.01.0-1
Architecture: amd64
Maintainer: $USER
Installed-Size: 16M (≈15752)
Depends: libc6 (>= 2.34), libgcc-s1 (>= 3.0), libstdc++6 (>= 11), libwxbase3.2-1 (>= 3.2.2+dfsg), libwxgtk-webview3.2-1 (>= 3.2.2+dfsg), libwxgtk3.2-1 (>= 3.2.1+dfsg-2), maxima
Recommends: maxima-doc, fonts-inter, fonts-inter-variable
Suggests: fonts-jsmath, texlive-latex-extra, ibus-gtk3
Section: math
Priority: optional
Homepage: http://wxmaxima-developers.github.io/wxmaxima/
Description: GUI for the computer algebra system Maxima
wxMaxima is a graphical user interface for the computer algebra system
Maxima. It eases the use of Maxima by making most of its commands available
through a menu system and by providing input dialogs for commands that
require more than one argument. It also implements its own display engine
that outputs mathematical symbols directly instead of depicting them with
ASCII characters.
.
wxMaxima also features 2D and 3D inline plots, simple animations, mixing of
text and mathematical calculations to create documents, exporting of input
and output to TeX, and a browser for Maxima's manual including command index
and full text searching.
Source: https://github.com/wxMaxima-developers/wxmaxima Generate DEBIAN/md5sums
# cd WXMDIR
# find . -type f -not -path "./DEBIAN/*" -exec md5sum {} + | sort -k 2 | sed 's/\.\/\(.*\)/\1/' > DEBIAN/md5sums
# ls -1 DEBIAN
control
md5sums
# cd ../ Build the Debian package:
# dpkg-deb -b WXMDIR wxmaxima_25.01.0-1-devuan5_amd64-git.deb
dpkg-deb: building package 'wxmaxima' in 'wxmaxima_25.01.0-1-devuan5_amd64-git.deb'.
# ls *.deb
wxmaxima_25.01.0-1-devuan5_amd64-git.deb Exit fakeroot console
# exit
exitCheck the "info":
$ dpkg --info *git.deb
new Debian package, version 2.0.
size 4236464 bytes: control archive=928 bytes.
1249 bytes, 24 lines control
Package: wxmaxima
Version: 25.01.0-1
Architecture: amd64
... sudo dpkg -i wxmaxima_25.01.0-1-devuan5_amd64-git.deb$ wxmaxima --version
wxMaxima 25.01.0-DevelopmentSnapshot (Git version: 8de10d448)
$ apt info wxmaxima
Package: wxmaxima
Version: 25.01.0-1
Status: install ok installed
... dpkg-repack
DESCRIPTION dpkg-repack creates a .deb file out of a Debian package that has already been installed on your system. If any changes have been made to the package while it was unpacked (e.g. conffiles files in /etc modified), the new package will inherit the changes. (There are exceptions to this, including changes to configuration files that are not conffiles, including those managed by ucf(1).) This utility can make it easy to copy packages from one computer to another, or to recreate packages that are installed on your system, but no longer available elsewhere. Note: dpkg-repack will place the created package in the current directory.
It can create a Debian package from the installed one (e.g. wxMaxima)
$ dpkg -l | grep wxmaxima
ii wxmaxima 25.01.0-1 amd64 GUI for the computer algebra system Maxima
$ fakeroot -u dpkg-repack wxmaxima
dpkg-deb: building package 'wxmaxima' in './wxmaxima_25.01.0-1_amd64.deb'.
$ ls
wxmaxima_25.01.0-1_amd64.debExtract "control-information" from the package:
$ dpkg-deb -e wxmaxima_25.01.0-1_amd64.deb
$ ls -1
DEBIAN
wxmaxima_25.01.0-1_amd64.deb
$ tree -a DEBIAN
DEBIAN
├── control
└── md5sumsSee also:
Recreate Debian Binary Packages That Are Already Installed On A System
_https://ostechnix.com/recreate-debian-binary-packages-that-are-already-installed-on-a-system/
Creating debian packages — CMake
_https://karthikkalyanaraman.medium.com/creating-debian-packages-cmake-e519a0186e87
There is a belief that knowledge liberates from ignorance. Perhaps, wxMaxima may help semi-deaf Linux users to understand something about resampling and the Gibbs phenomenon. Although, of course, mathematics might be a problem, because pulseaudio is likely to damage the brain in a severe and irreversible manner. Hearing loss and dementia are doomed to follow.
Hearing Loss and Dementia | The Audiology Center
_https://www.myaudiologycenter.com/untreated-hearing-loss-risks-and-dementia/
_https://en.wikipedia.org/wiki/Maxima_(software)
Maxima is a powerful software package for performing computer algebra calculations in mathematics and the physical sciences._https://en.wikipedia.org/wiki/Maxima_(software)#Interfaces
wxMaxima is high-quality graphical front-end using the wxWidgets framework. wxMaxima provides a cell structure similar to the Mathematica notebook.[Wikibooks] Maxima
_https://en.wikibooks.org/wiki/MaximaMaxima by Example
_https://home.csulb.edu/~woollett/mbe.html
_https://home.csulb.edu/~woollett/index.html
$ inxi -b | grep Host -A1
Host: devuan Kernel: 6.1.0-33-amd64 arch: x86_64 bits: 64 Desktop: MATE
v: 1.26.0 Distro: Devuan GNU/Linux 5 (daedalus) Source Package: wxmaxima (24.02.1-1)
_https://packages.debian.org/source/testing/wxmaxima
Download wxMaxima:
wxmaxima_24.02.1-1.dsc
wxmaxima_24.02.1.orig.tar.gz
wxmaxima_24.02.1.orig.tar.gz.asc
wxmaxima_24.02.1-1.debian.tar.xzSource: wxmaxima
Build-Depends: debhelper-compat (= 13), cmake (>= 3.4) | cmake3, libwxgtk3.2-dev, xvfb, netcat-openbsd, xauth, desktop-file-utils, appstream-util, libwxgtk-webview3.2-dev To build wxmaxima (24.02.1-1), we need cmake (>= 3.4).
$ cmake --version
cmake version 3.25.1CMake v4.0.1
https://github.com/Kitware/CMake/releases/tag/v4.0.1Download portable CMake v4.0.1:
https://github.com/Kitware/CMake/releases/download/v4.0.1/cmake-4.0.1-linux-x86_64.tar.gz$ ls
cmake-4.0.1-linux-x86_64.tar.gzmkdir -v $HOME/.CTools
tar -zxvf cmake*.tar.gz -C $HOME/.CTools$ ls $HOME/.CTools
cmake-4.0.1-linux-x86_64mv $HOME/.CTools/cmake-4.0.1-linux-x86_64 $HOME/.CTools/cmake-4.0.1$ ls $HOME/.CTools/
cmake-4.0.1
$ ls -1 $HOME/.CTools/cmake-4.0.1
bin
doc
man
shareYou can open a file manager in the cmake folder and investigate the content
caja $HOME/.CTools/cmake-4.0.1 How to use portable CMake v4.0.1
export PATH="$HOME/.CTools/cmake-4.0.1/bin:$PATH"$ cmake --version cmake version 4.0.1
Install compilers, build dependencies, etc.:
sudo apt install build-essential debhelper libwxgtk3.2-dev xvfb netcat-openbsd xauth desktop-file-utils appstream-util libwxgtk-webview3.2-dev You may want to install devscripts and a sort of AI assistant:
sudo apt install devscripts command-not-found
sudo update-command-not-foundEXAMPLES:
$ mmk-build-deps
Command 'mmk-build-deps' not found, did you mean:
command 'mk-build-deps' from deb devscripts
Try: sudo apt install <deb name>
$ gbp
Command 'gbp' not found, but can be installed with:
sudo apt install git-buildpackage Now we can build wxMaxima.
$ ls -1
wxmaxima_24.02.1-1.debian.tar.xz
wxmaxima_24.02.1-1.dsc
wxmaxima_24.02.1.orig.tar.gz
wxmaxima_24.02.1.orig.tar.gz.ascUnpack the source:
dpkg-source -x *.dsc$ ls -1
wxmaxima-24.02.1
wxmaxima_24.02.1-1.debian.tar.xz
wxmaxima_24.02.1-1.dsc
wxmaxima_24.02.1.orig.tar.gz
wxmaxima_24.02.1.orig.tar.gz.ascChange to the source directory:
cd wxmaxima-24.02.1$ cmake --version
cmake version 3.25.1export PATH="$HOME/.CTools/cmake-4.0.1/bin:$PATH"$ cmake --version
cmake version 4.0.1We have all the dependencies needed to build wxMaxima.
But, formally, the "Build-Depends" are not satisfied.
Therefore, we have to use -d flag to override the default checking procedure.
Verify whether the terminal prompt is in the source directory:
$ pwd
/home/.../Builds/Build_wxmaxima_24.02.1-1/wxmaxima-24.02.1Build wxMaxima (use -d flag to override):
$ dpkg-buildpackage -us -uc -b -d
...
dpkg-deb: building package 'wxmaxima-dbgsym' in '../wxmaxima-dbgsym_24.02.1-1_amd64.deb'.
dpkg-deb: building package 'wxmaxima' in '../wxmaxima_24.02.1-1_amd64.deb'.
dpkg-genbuildinfo --build=binary -O../wxmaxima_24.02.1-1_amd64.buildinfo
dpkg-genchanges --build=binary -O../wxmaxima_24.02.1-1_amd64.changes
dpkg-genchanges: info: binary-only upload (no source code included)
dpkg-source --after-build .
dpkg-buildpackage: info: binary-only upload (no source included) $ cd ../
[$ ls -1 *.deb
wxmaxima_24.02.1-1_amd64.deb
wxmaxima-dbgsym_24.02.1-1_amd64.deb$ dpkg-deb --info wxmaxima_24.02.1-1_amd64.deb | grep Package: -A11
Package: wxmaxima
Version: 24.02.1-1
Architecture: amd64
Maintainer: Gunter Königsmann <wxmaxima@physikbuch.de>
Installed-Size: 14144
Depends: libc6 (>= 2.34), libgcc-s1 (>= 3.0), libstdc++6 (>= 11), libwxbase3.2-1 (>= 3.2.2+dfsg), libwxgtk-webview3.2-1 (>= 3.2.2+dfsg), libwxgtk3.2-1 (>= 3.2.1+dfsg-2), maxima
Recommends: maxima-doc
Suggests: fonts-jsmath, texlive-latex-extra, ibus-gtk3
Section: math
Priority: optional
Homepage: http://wxmaxima-developers.github.io/wxmaxima/
Description: GUI for the computer algebra system Maxima Install wxMaxima
sudo dpkg -i wxmaxima_24.02.1-1_amd64.deb $ apt show wxmaxima | grep Package: -A2
Package: wxmaxima
Version: 24.02.1-1
Status: install ok installed
$ whereis wxmaxima
wxmaxima: /usr/bin/wxmaxima /usr/share/man/man1/wxmaxima.1.gz
$ wxmaxima --version
wxMaxima 24.02.1You may want to install gnuplot
sudo apt install gnuplot[Linux Magazine]
LibreOffice vs OpenOffice
The Clear Choice
By Bruce ByfieldWhile LibreOffice and OpenOffice have a shared past, LibreOffice outstrips OpenOffice in contributors, code commits, and features.
A search for comparisons of LibreOffice and Apache OpenOffice returns over 8.3 million results. That number comes as no surprise, given that LibreOffice and OpenOffice are the best-known open source office suites and share a common past. However, what is surprising is how shallow many of those comparisons are. Many offer only a superficial glimpse at either office suite from the viewpoint of an unsophisticated and undemanding user. Often, the comparisons are obsolete. Even more importantly, many comparisons strive for a false sense of objectivity by declaring that any differences are minor. However, by every possible standard, LibreOffice outshines OpenOffice and shows OpenOffice to be outdated. To pretend otherwise is a distortion of the truth.
_https://www.linux-magazine.com/Online/Features/LibreOffice-vs-OpenOffice
There is a standard method with which to modify Debian packages.
We can use it to remove strange dependencies of strawberry_1.2.9-bookworm_amd64.deb (github)
_https://github.com/strawberrymusicplayer/strawberry/releases/tag/1.2.9
_https://github.com/strawberrymusicplayer/strawberry
Strawberry is a music player and music collection organizer. It is a fork of Clementine released in 2018 aimed at music collectors and audiophiles.
It is aimed at audiophiles in the sense, perhaps, that it depends on gstreamer1.0-pulseaudio. There is a common belief that Linux users, in general, and Linux audiophiles, in particular, tend to be semi-deaf and semi-blind, and, therefore, they want to use pulseaudio and all sorts of equalizers, amplifiers, and DACs to enhance high frequencies.
Why are high frequency sounds typically the first to go in hearing loss?
https://www.newyorkhearingdoctors.com/why-are-high-frequency-sounds-typically-the-first-to-go-in-hearing-loss/
Download: strawberry_1.2.9-bookworm_amd64.deb (github)
https://github.com/strawberrymusicplayer/strawberry/releases/download/1.2.9/strawberry_1.2.9-bookworm_amd64.deb$ ls
strawberry_1.2.9-bookworm_amd64.deb$ dpkg --info *.deb | grep Depends -B5
Package: strawberry
Version: 1.2.9-bookworm
Architecture: amd64
Maintainer: Jonas Kvinge <jonas@jkvinge.net>
Installed-Size: 13869
Depends: libasound2 (>= 1.0.16), libc6 (>= 2.34), libcdio19 (>= 2.1.0), libchromaprint1 (>= 1.3.2), libebur128-1 (>= 1.1.0), libfftw3-double3 (>= 3.3.10), libgcc-s1 (>= 3.0), libgdk-pixbuf-2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.51.0), libgpod4 (>= 0.7.0), libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.6.0), libicu72 (>= 72.1~rc-1~), libmtp9 (>= 1.1.0), libpulse0 (>= 0.99.1), libqt6concurrent6 (>= 6.1.2), libqt6core6 (>= 6.4.0), libqt6dbus6 (>= 6.4.0), libqt6gui6 (>= 6.3.0), libqt6network6 (>= 6.4.0), libqt6sql6 (>= 6.1.2), libqt6widgets6 (>= 6.3.0), libsqlite3-0 (>= 3.6.11), libstdc++6 (>= 11), libtag1v5 (>= 1.11), libx11-6, libqt6sql6-sqlite, qt6-qpa-plugins, gstreamer1.0-plugins-base, gstreamer1.0-plugins-good, gstreamer1.0-alsa, gstreamer1.0-pulseaudio gstreamer1.0-alsa, gstreamer1.0-pulseaudio are, of course, pseudo-dependencies. They are not real dependencies in the sense that they can be safely removed.
Strawberry player is simply a GUI for GStreamer, and nothing more. Regardless of what you think GStreamer is, it does not depend on its plugins. It should be obvious that GStreamer plugins depend on GStreamer and not other way round.
There is a reason, of course, why the GStreamer package is split into "libgstreamer" and "plugins". If you have not been initiated into the secret knowledge of GStreamer, you may try to read its documentation
_https://gstreamer.freedesktop.org/documentation/installing/on-linux.html
ALSA users may want to install gstreamer1.0-alsa.
OSS4 users may want to remove gstreamer1.0-alsa, in order to use GStreamer based media players (e.g. Totem, Parole, and the like) with OSS4.
NOTE: ALSA users are recommended to install "gstreamer1.0-alsa". Otherwise, GStreamer may use "openalsink" with ALSA.
_https://gstreamer.freedesktop.org/documentation/openal/openalsink.html
It is not difficult to correct dependencies of a Debian package.
Install fakeroot
sudo apt install fakeroot$ ls
strawberry_1.2.9-bookworm_amd64.debOpen fakeroot console and execute mkdir debdir:
$ fakeroot
# mkdir debdir
# ls -1
debdir
strawberry_1.2.9-bookworm_amd64.debUnpack the deb package to debdir
# dpkg-deb -R *.deb debdir
# ls -1 ./debdir
DEBIAN
usr
# ls -1 ./debdir/DEBIAN
control
md5sums
# file ./debdir/DEBIAN/control
./debdir/DEBIAN/control: ASCII text, with very long lines (784)Remove unwanted dependencies with a text editor:
# nano ./debdir/DEBIAN/control
Unable to create directory /root/.local/share/nano/: Permission denied
It is required for saving/loading search history or cursor positions. You may have noticed that nano is complaining about missing root privileges.
This is because "fakeroot" is not a real "root", as the name suggests.
Such complaints can be safely ignored.
# cat ./debdir/DEBIAN/control | grep Depends -B5 -A1
Package: strawberry
Version: 1.2.9-bookworm
Architecture: amd64
Maintainer: Jonas Kvinge <jonas@jkvinge.net>
Installed-Size: 13869
Depends: libasound2 (>= 1.0.16), libc6 (>= 2.34), libcdio19 (>= 2.1.0), libchromaprint1 (>= 1.3.2), libebur128-1 (>= 1.1.0), libfftw3-double3 (>= 3.3.10), libgcc-s1 (>= 3.0), libgdk-pixbuf-2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.51.0), libgpod4 (>= 0.7.0), libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.6.0), libicu72 (>= 72.1~rc-1~), libmtp9 (>= 1.1.0), libpulse0 (>= 0.99.1), libqt6concurrent6 (>= 6.1.2), libqt6core6 (>= 6.4.0), libqt6dbus6 (>= 6.4.0), libqt6gui6 (>= 6.3.0), libqt6network6 (>= 6.4.0), libqt6sql6 (>= 6.1.2), libqt6widgets6 (>= 6.3.0), libsqlite3-0 (>= 3.6.11), libstdc++6 (>= 11), libtag1v5 (>= 1.11), libx11-6, libqt6sql6-sqlite, qt6-qpa-plugins, gstreamer1.0-plugins-base, gstreamer1.0-plugins-good
Suggests: gstreamer1.0-alsa, gstreamer1.0-pulseaudio Build the package:
# dpkg-deb -b debdir strawberry_1.2.9-devuan_amd64-fixed.deb
dpkg-deb: building package 'strawberry' in 'strawberry_1.2.9-devuan_amd64-fixed.deb'.
# ls -1 *.deb
strawberry_1.2.9-bookworm_amd64.deb
strawberry_1.2.9-devuan_amd64-fixed.debExit fakeroot console
# exit
exitCheck dependencies
$ dpkg --info *fixed.deb | grep Depends -B5 -A1
Package: strawberry
Version: 1.2.9-bookworm
Architecture: amd64
Maintainer: Jonas Kvinge <jonas@jkvinge.net>
Installed-Size: 13869
Depends: libasound2 (>= 1.0.16), libc6 (>= 2.34), libcdio19 (>= 2.1.0), libchromaprint1 (>= 1.3.2), libebur128-1 (>= 1.1.0), libfftw3-double3 (>= 3.3.10), libgcc-s1 (>= 3.0), libgdk-pixbuf-2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.51.0), libgpod4 (>= 0.7.0), libgstreamer-plugins-base1.0-0 (>= 1.0.0), libgstreamer1.0-0 (>= 1.6.0), libicu72 (>= 72.1~rc-1~), libmtp9 (>= 1.1.0), libpulse0 (>= 0.99.1), libqt6concurrent6 (>= 6.1.2), libqt6core6 (>= 6.4.0), libqt6dbus6 (>= 6.4.0), libqt6gui6 (>= 6.3.0), libqt6network6 (>= 6.4.0), libqt6sql6 (>= 6.1.2), libqt6widgets6 (>= 6.3.0), libsqlite3-0 (>= 3.6.11), libstdc++6 (>= 11), libtag1v5 (>= 1.11), libx11-6, libqt6sql6-sqlite, qt6-qpa-plugins, gstreamer1.0-plugins-base, gstreamer1.0-plugins-good
Suggests: gstreamer1.0-alsa, gstreamer1.0-pulseaudioInstall Strawberry
sudo dpkg -i strawberry_1.2.9-devuan_amd64-fixed.deb$ strawberry --version
Strawberry 1.2.9
$ apt info strawberry | grep Package: -A2
Package: strawberry
Version: 1.2.9-bookworm
Status: install ok installedYou can also rename a Debian package, change version, add scripts to debdir/usr/bin, and so on.
Notice that it is immoral (and illegal) to insert malware into Debian packages.
To debug Strawberry, you can simply start it from terminal.
EXAMPLES:
Strawberry is using "openalsink" with ALSA:
$ strawberry
...
22:24:48.921 DEBUG Player:776 Playing song "" QUrl("file:///.../audio/audio_test_48kHz_16bit.flac") position 0
22:24:48.921 DEBUG GstEnginePipeline:459 Using "playbin" for pipeline
22:24:48.974 DEBUG GstEnginePipeline:797 Setting buffer duration: 4000000000 low watermark: 0.33 high watermark: 0.99
22:24:48.976 DEBUG GstEnginePipeline:480 "openalsink" does not have volume, using own volume.
...
[fftrate ALSA plugin output]
Input: 44100 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 1764
Output: 48000 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1920
Rates: 44100 --> 48000 (J: 0.00%, T: FFT, W: Vorbis)
Ok.
Input: 48000 Hz, 2 ch, 's32_le' (0xa): dummy = 0, period = 1920
Output: 48000 Hz, 2 ch, 's16_le' (0x2): dummy = 0, period = 1920
Rates: 48000 --> 48000 (J: 0.00%, T: None, W: Planar)
Ok.Strawberry is using "oss4sink" with OSS4:
$ strawberry
...
22:16:51.126 DEBUG Player:776 Playing song "" QUrl("file:///.../audio/audio_test_48kHz_16bit.flac") position 0
22:16:51.126 DEBUG GstEnginePipeline:459 Using "playbin" for pipeline
22:16:51.250 DEBUG GstEnginePipeline:626 "oss4sink" has volume, enabling volume synchronization.