The officially official Devuan Forum!

You are not logged in.

#276 Re: Freedom Hacks » How to change dependencies of a Debian package » 2025-06-01 11:57:37

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.

#277 Re: Freedom Hacks » How to change dependencies of a Debian package » 2025-06-01 02:25:10

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
exit

Now, 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},
 pulseaudio

Then, build the package with "dpkg-buildpackage -us -uc -b". It will produce a Debian package which depends on pulseaudio.

#278 Re: Freedom Hacks » WhiteSur Dark GTK Theme for MATE Desktop » 2025-05-31 17:04:26

@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

#279 Re: Freedom Hacks » WhiteSur Dark GTK Theme for MATE Desktop » 2025-05-31 14:59:56

@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.

#280 Freedom Hacks » WhiteSur Dark GTK Theme for MATE Desktop » 2025-05-30 05:20:56

igorzwx
Replies: 5

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:

fakeroot

Download 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-xhdpi

Install Firefox theme to debdir:

cp -r src/other/firefox ../debdir/usr/share/docs/whitesur-gtk-theme 
cd .. 
#ls -1
debdir
WhiteSur-gtk-theme

Download WhiteSur icon theme sourcedir:

git clone https://github.com/vinceliuice/WhiteSur-icon-theme.git --depth=1 
# ls -1
debdir
WhiteSur-gtk-theme
WhiteSur-icon-theme

Install 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
exit

Install WhiteSur-Dark theme

sudo dpkg -i whitesur-gtk-theme_2025.05.29-1_all.deb 

Enable WhiteSur-Dark theme

mate-appearance-properties
Theme ➔ WhiteSur-Dark-solid-green

Configure 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

#281 Re: Off-topic » libadwaita forked by Mint » 2025-05-28 17:22:56

@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.

#282 Re: Off-topic » libadwaita forked by Mint » 2025-05-28 12:20:43

@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

#283 Re: Freedom Hacks » [HowTo] audacious_4.5-devel-1_amd64.deb (meson+samu and muon+samu) » 2025-05-28 09:26:18

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" 

#284 Freedom Hacks » Bug in Devuan (pkgconf) » 2025-05-27 22:13:58

igorzwx
Replies: 0

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 -lGL

Otherwise, you may get errors like this:

dependency GL found: NO
OpenGL Spectrum Analyzer: false

A 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 

#285 Freedom Hacks » [HowTo] audacious_4.5-devel-1_amd64.deb (meson+samu and muon+samu) » 2025-05-26 23:17:19

igorzwx
Replies: 47
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. 

#286 Re: Freedom Hacks » ALSA without PulseAudio and PipeWire » 2025-05-22 07:35:30

UPDATE

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.

#287 Freedom Hacks » [HowTo] samurai_1.9.0-1_amd64.deb (ninja-compatible) patched with SED » 2025-05-22 07:27:07

igorzwx
Replies: 0

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 

#288 Re: Freedom Hacks » How to build a portable wxMaxima-25.04.0 and a Debian package for it. » 2025-05-22 07:21:15

How to build wxMaxima with samu

Enable portable CMake 4.0.2

export PATH="$HOME/.CTools/cmake-4.0.2/bin:$PATH"
$ cmake --version
cmake version 4.0.2

1. 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 build

3. 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)

#289 Re: Freedom Hacks » ALSA without PulseAudio and PipeWire » 2025-05-20 06:20:30

Khylsdrak wrote:

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

#290 Freedom Hacks » Hacking Build-Depends of Debian source packages » 2025-05-09 11:40:35

igorzwx
Replies: 0

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.

#291 Freedom Hacks » The road to freedom » 2025-05-07 01:52:20

igorzwx
Replies: 2

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/gnuplot

Source 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	gnuplot

Step 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 install

It 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

#292 Freedom Hacks » How to build a portable wxMaxima-25.04.0 and a Debian package for it. » 2025-05-02 10:48:50

igorzwx
Replies: 2
$ 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)
How to build portable standalone wxMaxima-25.04.0 and wxMaxima-25.04.0.deb

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 release

https://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=7161

You can simply download and unpack it into your home folder, for example:

$ ls -1 $HOME/.CTools/
cmake-4.0.1
meson-1.7.2 

Download portable CMake v4.0.1:

https://github.com/Kitware/CMake/releases/download/v4.0.1/cmake-4.0.1-linux-x86_64.tar.gz 

Install "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
wxmaxima

Project: 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.1
export PATH="$HOME/.CTools/cmake-4.0.1/bin:$PATH"
$ cmake --version
cmake version 4.0.1

1. 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
wxmaxima

2. 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: 15154

Install 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
■  What was built seems to be a sort of portable standalone wxMaxima.
./_CPack_Packages/Linux/DEB/wxMaxima-25.04.0-Linux/usr/bin/wxmaxima

Just 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.

#293 Re: Off-topic » Lightweight system without (too) bloated software » 2025-04-26 18:08:49

CopyQ: persistent bugs
$ 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 &' 

#294 Re: Off-topic » Lightweight system without (too) bloated software » 2025-04-24 23:40:53

@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=3
cat /usr/share/applications/com.github.hluk.copyq.desktop | grep Desktop -A15

EDIT:

Workaround for MATE Desktop: Start CopyQ in the tray 

Create a new Desktop launcher for CopyQ with a text editor (nano or mousepad):

nano ~/.local/share/applications/copyq.desktop
mousepad ~/.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 

#295 Re: Freedom Hacks » How to build wxMaxima_25.01.0.deb (DevelopmentSnapshot) from git » 2025-04-24 22:36:53

[CMake 4.0.1] Creating a Debian package for wxMaxima with CPack DEB Generator
mkdir wxmaxima_build
cd wxmaxima_build

git clone https://github.com/wxmaxima-developers/wxmaxima.git 
$ ls
wxmaxima

Project: 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.1
export PATH="$HOME/.CTools/cmake-4.0.1/bin:$PATH"
$ cmake --version
cmake version 4.0.1

1. 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
wxmaxima

2. 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: 15532

Install 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 it

Some 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).

#296 Re: Off-topic » Lightweight system without (too) bloated software » 2025-04-22 15:46:20

Khylsdrak wrote:

Mirage is very light and good

 

$ apt show mirage
Package: mirage
Version: 0.11.1-1+b6

The 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' failed

#297 Freedom Hacks » How to build wxMaxima_25.01.0.deb (DevelopmentSnapshot) from git » 2025-04-22 15:16:51

igorzwx
Replies: 1

One 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 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

man 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.gz

The 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.1
export PATH="$HOME/.CTools/cmake-4.0.1/bin:$PATH"
$ cmake --version
cmake version 4.0.1
Project: wxMaxima 25.01.0 (git)

1. 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
wxmaxima

2. 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
exit

Check 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
... 
Install wxMaxima
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.deb

Extract "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
└── md5sums

See 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

#298 Freedom Hacks » How to build wxMaxima_24.02.1 from Debian sources » 2025-04-16 20:58:22

igorzwx
Replies: 0

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/Maxima

Maxima by Example
_https://home.csulb.edu/~woollett/mbe.html
_https://home.csulb.edu/~woollett/index.html

How to build wxmaxima_24.02.1 on Devuan 5
$ 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.xz
Source: 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.1

CMake v4.0.1

https://github.com/Kitware/CMake/releases/tag/v4.0.1

Download 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.gz
mkdir -v $HOME/.CTools

tar -zxvf cmake*.tar.gz -C $HOME/.CTools
$ ls $HOME/.CTools
cmake-4.0.1-linux-x86_64
mv $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
share

You 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-found

EXAMPLES:

$ 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.asc

Unpack 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.asc

Change to the source directory:

cd wxmaxima-24.02.1
$ cmake --version
cmake version 3.25.1
export PATH="$HOME/.CTools/cmake-4.0.1/bin:$PATH"
$ cmake --version
cmake version 4.0.1

We 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.1

Build 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.1

You may want to install gnuplot

sudo apt install gnuplot

#299 Re: Desktop and Multimedia » openoffice writer and impress constantly crash Xorg » 2025-04-14 20:30:35

[Linux Magazine]

LibreOffice vs OpenOffice

The Clear Choice
By Bruce Byfield

While 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

#300 Freedom Hacks » How to change dependencies of a Debian package » 2025-04-14 00:56:03

igorzwx
Replies: 21

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.deb

Open fakeroot console and execute mkdir debdir:

$ fakeroot
# mkdir debdir

# ls -1
debdir
strawberry_1.2.9-bookworm_amd64.deb

Unpack 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.deb

Exit fakeroot console

# exit
exit

Check 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-pulseaudio

Install 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 installed

You 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.

Board footer

Forum Software