The officially official Devuan Forum!

You are not logged in.

#51 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

#52 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

#53 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

#54 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

#55 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.

#56 Re: Desktop and Multimedia » mupdf annoying warnings » 2025-04-10 19:46:20

[AI-Assisted Answer] This warning indicates that ICC (International Color Consortium) support is disabled, which can lead to incorrect color rendering in applications that rely on color management.

   
The patch does not solve the problem, but it removes warnings:   
0002-Only-warn-once-about-the-missing-ICC-support.patch
_https://sources.debian.org/patches/mupdf/1.25.1%2Bds1-5/0002-Only-warn-once-about-the-missing-ICC-support.patch/

Since pulseaudio users are usually semi-deaf and semi-blind, they may try to ignore such warnings, even though they are "repeated 18 times".

Patching an Existing Debian Package [using quilt]
_https://www.guyrutenberg.com/2017/10/06/patching-an-existing-debian-package/

See also:
How to rebuild audacious-plugins
_https://dev1galaxy.org/viewtopic.php?id=6686

#57 Re: Desktop and Multimedia » mupdf annoying warnings » 2025-04-10 14:09:51

amaro wrote:
warning: ICC support is not available

Why not google it?

https://www.google.com/search?q=warning:+ICC+support+is+not+available

There is a patch (a sort of workaround):

https://sources.debian.org/patches/mupdf/1.25.1%2Bds1-5/0002-Only-warn-once-about-the-missing-ICC-support.patch/
UsingQuilt

_https://wiki.debian.org/UsingQuilt

Using quilt in Debian source packages.

    This page is aimed at people who want to make some changes to a Debian source package which is already using quilt.
    The intention is not to explain quilt, but to offer some Debian specific tips

#58 Freedom Hacks » Patching on the fly with "stream editor" (fftrate ALSA plugin) » 2025-04-03 02:32:05

igorzwx
Replies: 0

What is really cool about Arch Linux packaging is patching on the fly with sed.
_https://en.wikipedia.org/wiki/Sed
Ordinary patching techniques are also used, of course, in Arch PKGBUILDs, but
the advanced users tend to patch sources on the fly with sed (if possible).

[ArchWiki] Creating patches
Note: If you only need to change one or two lines, you might want to use sed instead.
_https://wiki.archlinux.org/title/Patching_packages

NOTE: This patching technique (sed) is also used in Debian packages (but rather seldom).
      Usually, it is done with quilt _https://wiki.debian.org/UsingQuilt

Petrov's fftrate ALSA plugin has already been patched for new GCC versions.

The package is available in Arch Linux AUR repository:

Package Details: libasound2-plugin-fftrate 1.6.3-1
_https://aur.archlinux.org/packages/libasound2-plugin-fftrate

The  PKGBUILD is a masterpiece. The source code is patched on the fly with sed.
What is more, the problem was fixed with a one-line Linux command:

 prepare() {
	cd "$srcdir/$pkgbase-$pkgver"
	find . -type f \( -name "*.cpp" -o -name "*.c" -o -name "*.h" \) -exec sed -i -e 's/min(/MIN(/g' -e 's/max(/MAX(/g' {} +
} 

_https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=libasound2-plugin-fftrate

NOTE: If you do not understand the magic command, try to ask explainshell.com:

_https://explainshell.com/explain?cmd=find+.+-type+f+%5C%28+-name+%22*.cpp%22+-o+-name+%22*.c%22+-o+-name+%22*.h%22+%5C%29+-exec+sed+-i+-e+%27s%2Fmin%28%2FMIN%28%2Fg%27+-e+%27s%2Fmax%28%2FMAX%28%2Fg%27+%7B%7D+%2B+

...

-exec command {} +
       This variant of the -exec action runs the specified command on the selected files, but the command
       line is built by appending each selected file name at the end; the total number of invocations  of
       the command will be much less than the number of matched files.  The command line is built in much
       the same way that xargs builds its command lines.  Only one instance of `{}' is allowed within the
       command.  The command is executed in the starting directory.

It is simply replacing min( with MIN( and max( with MAX( in "*.cpp", "*.c", and "*.h" files.

TEST
mkdir petrov-fftrate
cd petrov-fftrate
git clone https://github.com/PetrovSE/fftrate.git
cd fftrate
$ grep -Ri "Max(" . | grep ".cpp"
./src/apps/pcm_info/Main.cpp:			nHelpLayer = max( nHelpLayer, 2 );
./src/apps/pcm_info/Main.cpp:				nHelpLayer = max( nHelpLayer, 2 );
./src/apps/pcm_info/Main.cpp:				nHelpLayer = max( nHelpLayer, 3 );
./src/apps/pcm_stretch/Main.cpp:			nHelpLayer = max( nHelpLayer, 2 );
./src/apps/pcm_stretch/Main.cpp:				nHelpLayer = max( nHelpLayer, 2 );
./src/apps/pcm_stretch/Main.cpp:				nHelpLayer = max( nHelpLayer, 3 );
./src/apps/pcm_mse/Main.cpp:			nHelpLayer = max( nHelpLayer, 2 );
./src/apps/pcm_mse/Main.cpp:				nHelpLayer = max( nHelpLayer, 2 );
./src/apps/pcm_mse/Main.cpp:				nHelpLayer = max( nHelpLayer, 3 );
./src/apps/pcm_mse/Main.cpp:			nBits = max( nBits, (WORD)mmsys_format_info( pFile->pFormat, 'b' ) );
./src/apps/pcm_conv/Main.cpp:			nHelpLayer = max( nHelpLayer, 2 );
./src/apps/pcm_conv/Main.cpp:				nHelpLayer = max( nHelpLayer, 2 );
./src/apps/pcm_conv/Main.cpp:				nHelpLayer = max( nHelpLayer, 3 ); 
$ find . -type f \( -name "*.cpp" \) -exec sed -e 's/max(/MAX(/g' {} + | grep "MAX("
			nHelpLayer = MAX( nHelpLayer, 2 );
				nHelpLayer = MAX( nHelpLayer, 2 );
				nHelpLayer = MAX( nHelpLayer, 3 );
			nHelpLayer = MAX( nHelpLayer, 2 );
				nHelpLayer = MAX( nHelpLayer, 2 );
				nHelpLayer = MAX( nHelpLayer, 3 );
			nHelpLayer = MAX( nHelpLayer, 2 );
				nHelpLayer = MAX( nHelpLayer, 2 );
				nHelpLayer = MAX( nHelpLayer, 3 );
			nBits = MAX( nBits, (WORD)mmsys_format_info( pFile->pFormat, 'b' ) );
			nHelpLayer = MAX( nHelpLayer, 2 );
				nHelpLayer = MAX( nHelpLayer, 2 );
				nHelpLayer = MAX( nHelpLayer, 3 ); 

To apply the magic patch on Devuan, you have to download the source code from git,
then open terminal in the source directory and execute the magic command:

$ cd fftrate

$ find . -type f \( -name "*.cpp" -o -name "*.c" -o -name "*.h" \) -exec sed -i -e 's/min(/MIN(/g' -e 's/max(/MAX(/g' {} + 

Then you can compile the fftrate plugin with gcc-12 (and, perhaps, newer versions of GCC).

It works without problems.

$ gcc --version
gcc (Debian 12.2.0-14) 12.2.0

$ uname -a
Linux devuan 6.1.0-32-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1 (2025-03-06) x86_64 GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Devuan
Description:	Devuan GNU/Linux 5 (daedalus)
Release:	5
Codename:	daedalus 
sudo apt install inxi
man inxi
$ inxi -b | grep Host -A1
  Host: devuan Kernel: 6.1.0-32-amd64 arch: x86_64 bits: 64 Desktop: MATE
    v: 1.26.0 Distro: Devuan GNU/Linux 5 (daedalus)

$ inxi -A
Audio:
  Device-1: Intel 7 Series/C216 Family High Definition Audio
    driver: oss_hdaudio
  Device-2: Griffin iMic type: USB driver: snd-usb-audio
  API: ALSA v: k6.1.0-32-amd64 status: kernel-api
  API: OSS v: N/A status: active
How to compile Petrov's fftrate ALSA plugin on Devuan 5 Daedalus

Install "build-essential", etc.

sudo apt update
sudo apt-get install build-essential git debhelper
sudo apt install libasound2-dev libasound2-plugins swh-plugins

Download the source code:

mkdir petrov-fftrate
cd petrov-fftrate
git clone https://github.com/PetrovSE/fftrate.git

Check the current "recommended compat" for debhelper:

$ man debhelper-compat-upgrade-checklist | grep "recommended mode"
       v13 This is the recommended mode of operation.

       
Change compat to "13":

$ nano ./fftrate/packets/debian/compat

$ cat ./fftrate/packets/debian/compat
13 

Open terminal in the source directory:

$ ls
fftrate

$ cd fftrate 

Apply the magic patch:

find . -type f \( -name "*.cpp" -o -name "*.c" -o -name "*.h" \) -exec sed -i -e 's/min(/MIN(/g' -e 's/max(/MAX(/g' {} + 

Now you can compile the fftrate plugin with gcc-12 (and, perhaps, newer versions of GCC).

$ cd  packets

$ ls -1
debian
etc
Makefile
mk_dpkg 

Build executables:

make -j1 

Make Debian packages:

./mk_dpkg 
$ cd ../

$ ls | grep .deb
alsa-config-utils_1.6.3_amd64.deb
libasound2-plugin-fftrate_1.6.3_amd64.deb
pcm-utils_1.6.3_amd64.deb 

Install the packages:

sudo dpkg -i alsa-config-utils_1.6.3_amd64.deb libasound2-plugin-fftrate_1.6.3_amd64.deb pcm-utils_1.6.3_amd64.deb

Dependencies:

libasound2 
libasound2-plugins 
swh-plugins

Notice that the Arch package depends on fftw library (make)
_https://aur.archlinux.org/packages/libasound2-plugin-fftrate

It should already be installed (automatic, as a dependency):

$ apt search libfftw3-dev
Sorting... Done
Full Text Search... Done
libfftw3-dev/stable,now 3.3.10-1 amd64 [installed,automatic]
  Library for computing Fast Fourier Transforms - development

libfftw3-double3/stable,now 3.3.10-1 amd64 [installed,automatic]
  Library for computing Fast Fourier Transforms - Double precision

libfftw3-long3/stable,now 3.3.10-1 amd64 [installed,automatic]
  Library for computing Fast Fourier Transforms - Long precision

libfftw3-quad3/stable,now 3.3.10-1 amd64 [installed,automatic]
  Library for computing Fast Fourier Transforms - Quad precision

libfftw3-single3/stable,now 3.3.10-1 amd64 [installed,automatic]
  Library for computing Fast Fourier Transforms - Single precision 

The user manual is here:
ALSA without PulseAudio and PipeWire
_https://dev1galaxy.org/viewtopic.php?id=6644

#59 Re: Freedom Hacks » ALSA without PulseAudio and PipeWire » 2025-03-03 21:52:11

@hacksenwerk

Some years ago, when ALSA backend was removed from Firefox, you had to
1. compile apulse,
2. configure ALSA mixer (with arateconf),
3. allow ALSA sound device in Firefox's sandbox config.

Today it is more simple. You have to
1. install apulse from Devuan repo,
2. configure ALSA mixer (with arateconf).
! You do not need to configure sandbox for apulse.

HYPOTHESIS: Perhaps, it might be possible to use microphone with Firefox's ALSA backend without apulse.
What might be needed is to set

security.sandbox.content.read_path_whitelist                /dev/snd/
security.sandbox.content.write_path_whitelist               /dev/snd/

in about:config

See, for example:
How to run FIREFOX without pulseaudio, by using "apulse" (Nov 22, 2017)
_https://forums.linuxmint.com/viewtopic.php?t=257818

#60 Re: Freedom Hacks » ALSA without PulseAudio and PipeWire » 2025-03-01 01:46:58

unixuser wrote:

You won't have sounds on firefox, do you ?

Playback in Firefox works without problems with ALSA (without pulseaudio and pipewire).
Sound quality is good, because fftrate ALSA plugin is installed and enabled (with ALSA config).

NOTE: If you want to use Firefox for video conferences, you have to run it with apulse:

$ apulse firefox

It works without problems, if ALSA software mixer is configured with arateconf.
If you are an ALSA expert, you may try to create ALSA config without the help of arateconf.

#61 Re: Freedom Hacks » ALSA without PulseAudio and PipeWire » 2025-02-15 22:57:34

EDITED

BEFORE running "arateconf", you should close all audio applications.
The "TEST" function of "arateconf" will fail, if your "audio device" is already in use.
When pulseaudio and pipewire are removed, you can easily free your "audio devices" with "fuser".
For example:

$ fuser -av $(find /dev/snd -type c 2>/dev/null)
                     USER        PID ACCESS COMMAND
/dev/snd/controlC0:  igor       2261 F.... mate-settings-d
                     igor       2310 F.... mate-volume-con
/dev/snd/pcmC0D0c:
/dev/snd/pcmC0D0p:   igor       8248 F...m firefox-esr
/dev/snd/seq:
/dev/snd/timer:      igor       8248 f.... firefox-esr 

"mate-settings-daemon" and "mate-volume-control-status-icon" need not to be killed.
But "firefox-esr" should be killed to free the "audio device":

$ fuser -ikv $(find /dev/snd -type c 2>/dev/null)
                     USER        PID ACCESS COMMAND
/dev/snd/controlC0:  igor       2261 F.... mate-settings-d
                     igor       2310 F.... mate-volume-con
Kill process 2261 ? (y/N) n
Kill process 2310 ? (y/N) n
/dev/snd/pcmC0D0p:   igor       8248 F...m firefox-esr
Kill process 8248 ? (y/N) y
/dev/snd/timer:      igor       8248 f.... firefox-esr
Kill process 8248 ? (y/N) y
Could not kill process 8248: No such process

$ fuser -av $(find /dev/snd -type c 2>/dev/null)
                     USER        PID ACCESS COMMAND
/dev/snd/controlC0:  igor       2261 F.... mate-settings-d
                     igor       2310 F.... mate-volume-con
/dev/snd/pcmC0D0c:
/dev/snd/pcmC0D0p:
/dev/snd/seq:
/dev/snd/timer: 

Now, when audio devices are free, you can run "arateconf".

kapqa wrote:

if i press "T", there is "failed".

Input:
 Open device "hw:C1,0" ... Failed!

It failed to open "Input", because you configured your "Cambridge USB DAC" for recording.
"DAC" means "digital-to-analog converter",
see _https://en.wikipedia.org/wiki/Digital-to-analog_converter.
As the name suggests, it is not supposed to be used to record "analog sound".

For "Output", you also got an error message:

Set format 'S32_LE' ... Unsupported!

It means that your Cambridge DAC does not support 'S32_LE' (it is now default for playback),
or ALSA driver (snd_usb_audio) for your USB DAC does not support 32bit.
Try 'S16_LE', or else.
Read the manual again and change 'S32_LE' to 'S16_LE'.
Press "F" to change "format".

======================
|  Sound parameters  |
----------------------
S - Sample rate = 48000 Hz
C - Channels    = 2
F - Format: 'S32_LE'

A - Alignment buffer and period [X]
B - Set buffer multiplier = 1
M - Set period multiplier = 1

P - Play ampl. = 0 dB
R - Rec. ampl. = 0 dB

ESC - Return to main menu
> f

==============================
|  Available sample formats  |
------------------------------
0 - U8
1 - S16_LE
2 - S24_3LE
3 - S24_LE
4 - S32_LE
5 - FLOAT_LE
6 - FLOAT64_LE

ESC - Return to main menu
> 

Your Intel HDA codec (Generic_1) does support 48kHz 32bit.
It should also support 192kHz 32bit.
This may provide much better sound quality than your "Cambridge DAC" (it is likely to be 48kHz 16bit and nothing more with ALSA).
You can test different "sample rates" and "formats" with "arateconf".

You can also check your "proc" (cards, hw_params), for example:

$ cat /proc/asound/cards
 0 [system         ]: USB-Audio - iMic USB audio system
                      Griffin Technology, Inc iMic USB audio system at usb-0000:00:1a.0-1.3.4, full s
$ cat /proc/asound/card*/pcm*p/sub*/hw_params
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 1920
buffer_size: 7680

$ cat /proc/asound/card0/pcm0p/sub0/hw_params
access: MMAP_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 1920
buffer_size: 7680

NOTE: "arateconf" is simply a tool to configure ALSA,
that is, a tool to generate an ALSA config file "~/.asoundrc".
It takes data from ALSA and from Linux (proc, etc.).

Notable Realtek products include ... audio codecs (AC'97 and Intel HD Audio ).
_https://en.wikipedia.org/wiki/Realtek#Notable_products

ALSA detected an Intel HDA codec on your motherboard. It has a "generic driver" for it.
It should work without problems.
You may select Intel HDA codec as default for recording.
If you connect new USB audio devices, you have to create a new ALSA config with "arateconf".

#62 Re: Off-topic » Thoughts on Pipewire » 2025-01-29 15:30:33

kapqa wrote:

since started on linux journey, found it very strange to say the least , that when wanting to @uninstall say a driver like pulseaudio, this couldwould render the laptop completely broke, like uninstalling the whole desktop

xfce4 and mate-desktop-environment are meta-packages, they can be safely removed.
See: _https://wiki.debian.org/metapackage
Meta-packages are not completely empty, they have inside  a list of dependencies.

On the other hand, to fix problems with desktop, you may reinstall your Linux Desktop Environment.
That is, you can simply reinstall a meta-package. For example:

 sudo apt-get --reinstall install mate-desktop-environment

See also: _https://www.cyberciti.biz/faq/debian-ubuntu-linux-reinstall-a-package-using-apt-get-command/

Desktop environment - ArchWiki
_https://wiki.archlinux.org/title/Desktop_environment

If you want to learn something about Linux Desktop environments, you may try to install MATE:

How to Install MATE Desktop and remove XFCE

1. Installing MATE

sudo apt update 
sudo apt install mate-desktop-environment 
sudo apt install mate-desktop-environment-extras

This may re-install pulseaudio, but it is easy to remove.
You may also need to unhold pulseaudio crap.

$ apt-mark showhold
pavucontrol
pipewire
pipewire-alsa
pipewire-audio
pipewire-audio-client-libraries
pipewire-bin
pipewire-doc
pipewire-jack
pipewire-libcamera
pipewire-media-session
pipewire-media-session-alsa
pipewire-media-session-jack
pipewire-media-session-pulseaudio
pipewire-pulse
pipewire-tests
pipewire-v4l2
pulseaudio
pulseaudio-equalizer
pulseaudio-module-bluetooth
pulseaudio-module-gsettings
pulseaudio-module-jack
pulseaudio-module-lirc
pulseaudio-module-raop
pulseaudio-module-zeroconf
pulseaudio-utils
$ apt-mark
apt 2.6.1devuan1 (amd64)
Usage: apt-mark [options] {auto|manual} pkg1 [pkg2 ...]

Most used commands:
  auto - Mark the given packages as automatically installed
  manual - Mark the given packages as manually installed
  minimize-manual - Mark all dependencies of meta packages as automatically installed.
  hold - Mark a package as held back
  unhold - Unset a package set as held back
  showauto - Print the list of automatically installed packages
  showmanual - Print the list of manually installed packages
  showhold - Print the list of packages on hold

To select MATE Desktop as default, run

$ sudo update-alternatives --config x-session-manager
There are 3 choices for the alternative x-session-manager (providing /usr/bin/x-session-manager).

  Selection    Path                    Priority   Status
------------------------------------------------------------
* 0            /usr/bin/startxfce4      50        auto mode
  1            /usr/bin/mate-session    50        manual mode
  2            /usr/bin/startxfce4      50        manual mode
  3            /usr/bin/xfce4-session   40        manual mode

Press <enter> to keep the current choice[*], or type selection number: 1 

It should be like this:

$ sudo update-alternatives --config x-session-manager
There are 3 choices for the alternative x-session-manager (providing /usr/bin/x-session-manager).

  Selection    Path                    Priority   Status
------------------------------------------------------------
  0            /usr/bin/mate-session    50        auto mode
* 1            /usr/bin/mate-session    50        manual mode
  2            /usr/bin/startxfce4      50        manual mode
  3            /usr/bin/xfce4-session   40        manual mode

Press <enter> to keep the current choice[*], or type selection number: 

SLIM - ArchWiki
_https://wiki.archlinux.org/title/SLiM

2. Removing XFCE (optional)

$ sudo dpkg -l | grep .xfce

$ sudo apt purge xfce*

$ sudo apt autoremove 

See also:
_https://tecadmin.net/how-to-install-mate-desktop-on-debian-11/

#63 Re: Off-topic » Thoughts on Pipewire » 2025-01-29 14:09:27

@kapqa

Pulseaudio is not a driver. It is, rather, a sort of malware.

XFCE is buggy and crappy, and it does not support "alsa-only".

The best solution might be Devuan MATE Desktop (without pulseaudio and pipewire).
It works without problems even on very old computers (such as those of 2001).
Although, of course, web browsers are rather slow on very old computers.

To summarize:
The manual is here:
_https://dev1galaxy.org/viewtopic.php?pid=53969#p53969
See also:
_https://dev1galaxy.org/viewtopic.php?pid=54059#p54059

#64 Re: Off-topic » Thoughts on Pipewire » 2025-01-28 20:19:27

kapqa wrote:

no , dont know about that

Perhaps, you do not want to know.
It is a very old problem.

fftrate ALSA plugin was created in 2009.

The story of "system wide equalizer" also began in 2009.
For example:
HOWTO systemwide eq with alsaequal
_https://forums.debian.net/viewtopic.php?t=47899

Today "alsaequal" is easy to install:

_https://askubuntu.com/a/951207

Installation

sudo apt install libasound2-plugin-equal 

Start

alsamixer -D equal
amixer -D equal

To change to the equalizer in the running program, press F6, choose enter device name... and enter “equal”.

Semi-deaf Linux users do need a sort of "equalizer" to "enhance sound", especially high frequencies.

$ apt info libasound2-plugin-equal 
Package: libasound2-plugin-equal
Version: 0.6-8
Priority: optional
Section: libs
Source: alsaequal
Maintainer: Debian Multimedia Maintainers <debian-multimedia@lists.debian.org>
Installed-Size: 72.7 kB
Depends: caps (>= 0.9.11), libasound2 (>= 1.0.16), libc6 (>= 2.14)
Homepage: http://www.thedigitalmachine.net/alsaequal.html
Tag: role::shared-lib
Download-Size: 14.9 kB
APT-Sources: http://deb.devuan.org/merged daedalus/main amd64 Packages
Description: equalizer plugin for ALSA
 Alsaequal is a real-time adjustable equalizer plugin for ALSA. It can
 be adjusted using an ALSA compatible mixer, like alsamixergui or
 alsamixer.
 .
 Alsaequal uses the Eq CAPS LADSPA Plugin for audio processing, actually
 alsaequal is a generic LADSPA plugin interface with real-time access to
 the LADSPA controls (the LADSPA plugin included with alsa doesn't allow
 for real-time controls) but it was developed for and only tested with
 Eq CAPS LADSPA plugin.
kapqa wrote:

getting error but now alsa is back with "proper""volume"

Shutting down ALSA...done.
Setting up ALSA...warning: 'alsactl -E HOME=/run/alsa -E XDG_RUNTIME_DIR=/run/alsa/runtime restore' failed with error message 'alsa-lib main.c:1554:(snd_use_case_mgr_open) error: failed to import hw:29 use case configuration -2'...done.

You may try a workaround from stackoverflow
ALSA: failed to import hw:0 use case configuration -2
_https://stackoverflow.com/questions/76333959/alsa-failed-to-import-hw0-use-case-configuration-2

$ man alsactl | grep ucm
       -D, --ucm-defaults
       -U, --no-ucm 
$ whereis alsactl
alsactl: /usr/sbin/alsactl /usr/share/man/man1/alsactl.1.gz

$ /usr/sbin/alsactl -h

$ sudo /usr/sbin/alsactl -d restore
/usr/sbin/alsactl: init_ucm:48: ucm open '-hw:0': -6
...

See also:
Alsa UCM
_https://wiki.postmarketos.org/wiki/Alsa_UCM

Do you have the ucm.conf file?
It should be here:

/usr/share/alsa/ucm2/ucm.conf

EDIT:

_https://wiki.postmarketos.org/wiki/Alsa_UCM
If an UCM configuration is present for a card then pulseaudio will ignore the built-in profiles and generate a profile based on the UCM files.

...
1. Disable PulseAudio or PipeWire so ALSA UCM is not active at all.

This may mean, perhaps, that you do not need ALSA UCM, if you are not using PulseAudio and PipeWire.

Therefore, the workaround from stackoverflow may fix the problem.

sudo /usr/sbin/alsactl --debug restore

sudo /usr/sbin/alsactl --debug --no-ucm restore 

Or you can simply ignore the "error" message, which is, in fact, just "warning", not "error".

EDIT:

If I understood you correctly, your ALSA was almost silent.
The "force-reload" of ALSA seemed to fix the problem.

Since ALSA UCM is not needed, you may simply ignore the "warning" message, and see how it works.

NOTE: OSS4 is much more louder than ALSA with the same sound card.
The fftrate ALSA plugin makes ALSA louder, but not as loud as OSS4.
Most important, the fftrate improves the sound quality of ALSA, although, of course, I like more the sound of OSS4.
If you are content with the sound quality of ALSA, you may use it as is.
But if you need to configure a software mixer for ALSA (e.g., for video conferencing), it might be a difficult task (without the fftrate plugin).
See, for example:
[Arch Linux forum]: [SOLVED] ALSA and dmix (software mixing)
_https://bbs.archlinux.org/viewtopic.php?id=275656

#65 Re: Off-topic » Thoughts on Pipewire » 2025-01-28 02:34:50

kapqa wrote:

isuee is that sound is very low, even with vlc 200% it is probably 1/4 of original strength, and all relevant faderin amixer is set 100%.

It is not an issue, it is a feature of ALSA.
With normal loudness, you may hear noise produced by the ALSA resampler.
If you do not like this feature, you may compile and install fftrate ALSA plugin (and configure it).

kapqa wrote:

since i removed only "pulseaudio", there is another libpulse0?
is this also needed for removal?
thanks.

Have you read my manual?
It was posted above.
See: _https://dev1galaxy.org/viewtopic.php?pid=53969#p53969

#66 Re: Off-topic » Thoughts on Pipewire » 2025-01-12 21:32:48

@kapqa

"alsa-only" means that you may need some Linux commands.

To reload ALSA on Devuan, you can use alsa-utils.

The Devuan default is "SysV init"

$ /sbin/init --version
SysV init version: 3.06 

If you are using "SysV init", you can reload ALSA with this command:

$ sudo /etc/init.d/alsa-utils force-reload
Shutting down ALSA...done.
Setting up ALSA...done. 

"soft restart":

$ sudo /etc/init.d/alsa-utils restart
Shutting down ALSA...done.
Setting up ALSA...done.

$ sudo /etc/init.d/alsa-utils stop
Shutting down ALSA...done.

$ sudo /etc/init.d/alsa-utils start
Setting up ALSA...done. 

Another useful command is fuser

$ fuser -av $(find /dev/snd -type c 2>/dev/null)
                     USER        PID ACCESS COMMAND
/dev/snd/controlC0:  igor       2328 F.... mate-settings-d
                     igor       2382 F.... mate-volume-con
/dev/snd/pcmC0D0c:
/dev/snd/pcmC0D0p:   igor       2843 F...m firefox-esr
/dev/snd/seq:
/dev/snd/timer:      igor       2843 f.... firefox-esr 
PID 2328 /usr/bin/mate-settings-daemon
PID 2382 mate-volume-control-status-icon
PID 2843 /usr/lib/firefox-esr/firefox-esr 

"mate-volume-control-status-icon" is MATE volume control applet.
It works with ALSA in "alsa-only" mode (as well as "mate-settings-daemon").
However, after removal of pulseaudio, you have to reload ALSA, or reboot the system.

#67 Re: Off-topic » Thoughts on Pipewire » 2025-01-12 18:19:13

@kapqa

The solution to Linux sound problems is rather straightforward:
1. remove pulseaudio;
2. install and configure fftrate ALSA plugin.

It seems that many Debian users have already removed pulseaudio,
but nobody has compiled fftrate, although it is very simple.

There is a conspiracy theory that pulseaudio and pipewire are destroying human brain by "harmful frequencies".

You may ask golinux to compile deb packages of fftrate for you.
He has Chimaera (oldstable) and, therefore, can install gcc-10 and g++-10 from the standard Chimaera repositories (that is, Devuan's oldstable repositories).
This also means that gcc-10 is the default compiler for Chimaera, and he does not need to configure "make" (./fftrate/src/lib/makedef.mk ) for gcc-10.
The fftrate deb-packages, which were compiled on old Debian/Ubuntu distros, also work on new Debian/Ubuntu (and Devuan) versions without problems.

Daedalus 5.0 is the current stable release.
Chimaera 4.0 has moved to oldstable status.

#68 Re: Off-topic » Thoughts on Pipewire » 2025-01-08 03:32:06

@kapqa

I have Intel HDA codec ALC887.
Sound quality is good with both ALSA and OSS4.

If you do not know how to configure ALSA, any card may sound crappy.

Step 1: Remove pulseaudio.
The manual is here:
_https://dev1galaxy.org/viewtopic.php?pid=49837#p49837

Step 2: Compile fftrate ALSA plugin and configure a software mixer for ALSA.
The manual is here:
_https://dev1galaxy.org/viewtopic.php?id=6644

fftrate is an open source (GPL3) magic tool to fix sound quality on Linux Laptops and Desktops.

$ du -sh ./* | sort -h
24K	./alsa-config-utils_1.6.3_amd64.deb
32K	./libasound2-plugin-fftrate_1.6.3_amd64.deb
40K	./pcm-utils_1.6.3_amd64.deb

#69 Re: Off-topic » Thoughts on Pipewire » 2024-12-21 23:11:30

kapqa wrote:

can someone please write a guide on "howto" do devuan with alsa-only?

You may try something like this:

How to remove pulseaudio (and pipewire)
_https://dev1galaxy.org/viewtopic.php?pid=49837#p49837

ArchWiki ALSA
_https://wiki.archlinux.org/title/Advanced_Linux_Sound_Architecture#Unmuting_the_channels

How to configure a software mixer for ALSA
_https://dev1galaxy.org/viewtopic.php?id=6644

If it works, you may test sound quality with ALSA:
_https://dev1galaxy.org/viewtopic.php?id=6716
HiRes Binaural+ with ALSA
_https://dev1galaxy.org/viewtopic.php?id=6663

#70 Re: Freedom Hacks » Automounting USB Drives (NTFS, exFAT) with dmask=022,fmask=133 » 2024-09-10 14:34:24

Hope it works for you.

PedroReina wrote:

After 20 years, at last I know how to fix this annoying behaviour.

I thought that it is a special feature of Devuan.
If it is "annoying behaviour" for you, it does not mean that it is also annoying for others.
Since nobody complains, it might be the normal way of things for pulseaudio users.
Although, of course, it might be a security problem.

The /etc/udisks2/mount_options.conf should be tested and verified.

Umask
_https://en.wikipedia.org/wiki/Umask
_https://wiki.archlinux.org/title/Umask

$ umask
0022 

_https://www.linuxquestions.org/questions/linux-general-1/mounting-ntsf-drive-in-fstab-unsure-of-fmask-and-dmask-values-4175458533/#post4934200

fmask, dmask, and umask taken together pertain only to Windows filetypes ( NTFS and FAT32 ) whereas umask alone pertains to both windows and Linux filetypes but are implemented 2 different ways.

On Linux Filesystems

At the moment of birth every file has permissions of 666 and every directory has permissions of 777. A system wide umask is created to modify these permissions immediately after birth and it's currently set at 002. So when you create a new file it's permissions are:

666
002 <-- minus the umask
==
664

And every new directory has permissions of:

777
002 <-- minus the umask
==
775

On Windows Filesystems

Windows fileystems have no Linux file permission attributes so a virtual filesystem is used to create a "view" to give them the appearance that they do have them. The system wide umask has no affect on these filesystems nor does a chmod or a chown. They can only be set when the "view" is created in fstab.

At the moment of birth NTFS files and folders start out with exactly the same permissions: 777. If you were to set up in fstab a umask of 002 for these partitions then the result would be different from a Linux filesystem:

File: 777 - 002 = 775
Folder: 777 - 002 = 775

The folder setting is fine and that's the way you want them to be but the files have all been made executable - every single one of them. You can change that by separating umask into it's constituent parts: fmask and dmask:

So if you set up fstab this way for an NTFS partition: dmask=002,fmask=113

File: 777 - 113 = 664
Folder: 777 - 002 = 775 

_https://thelinuxcode.com/automount-usb-ubuntu/
_https://www.freedesktop.org/wiki/Software/udisks/
_https://storaged.org/doc/udisks2-api/latest/mount_options.html
_https://www.kernel.org/doc/Documentation/filesystems/vfat.txt

ArchWiki
_https://wiki.archlinux.org/title/Udisks#NTFS_mount_failing
_https://wiki.archlinux.org/title/Udisks#NTFS_file_creation_failing_(filename-dependent)

$ locate udisksd
/usr/libexec/udisks2/udisksd
/usr/share/man/man8/udisksd.8.gz

$ man udisksd
$ man udisksctl 

#71 Freedom Hacks » Automounting USB Drives (NTFS, exFAT) with dmask=022,fmask=133 » 2024-09-09 11:30:53

igorzwx
Replies: 5

System: Devuan, Mate Desktop

$ cat /etc/*-release | grep PRETTY
PRETTY_NAME="Devuan GNU/Linux 5 (daedalus)" 

$ inxi -S
System:
  Host: devuan Kernel: 6.1.0-25-amd64 arch: x86_64 bits: 64 Desktop: MATE
    v: 1.26.0 Distro: Devuan GNU/Linux 5 (daedalus)

When you insert a USB drive, it is automatically mounted to a directory under /media
However, if your USB drive has a Windows file system (e.g. NTFS, or exFAT), all your text files (and all other files: *.jpg, *.wav, etc.) on the USB drive become executable (777 - 022 = 755).
If you copy such files to your home folder, you have to fix permissions, for example:

$ chmod -Rv -x+X -- ./ 

_https://unix.stackexchange.com/questions/296967/how-to-recursively-remove-execute-permissions-from-files-without-touching-folder

It seems that this problem can be easily fixed with /etc/udisks2/mount_options.conf

$ ls -1 /etc/udisks2/
mount_options.conf.example
udisks2.conf 

$ sudo nano /etc/udisks2/mount_options.conf
 
$ cat /etc/udisks2/mount_options.conf
[defaults]
vfat_defaults=uid=$UID,gid=$GID,shortname=mixed,utf8=1,showexec,dmask=022,fmask=133
exfat_defaults=uid=$UID,gid=$GID,iocharset=utf8,errors=remount-ro,dmask=022,fmask=133
ntfs_defaults=uid=$UID,gid=$GID,dmask=022,fmask=133 

NOTE: /etc/udisks2/mount_options.conf is enabled automatically (a reboot is not required).
You can simply insert your USB drive and check file permissions:

$ touch file.txt
$ stat -c %a file.txt
644
$ mkdir folder1
$ stat -c %a folder1
755 

See:
_https://chmodcommand.com/chmod-644/
_https://chmodcommand.com/chmod-755/

Perhaps, this mount_options.conf can be somehow improved, or there is a better solution.

#72 Re: Installation » does the Brave browser work here? » 2024-07-31 13:16:37

Brave works without problems

_https://brave.com/linux/#release-channel-installation
Release Channel Installation
Debian, Ubuntu, Mint

sudo apt install curl
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main"|sudo tee /etc/apt/sources.list.d/brave-browser-release.list
sudo apt update
sudo apt install brave-browser

#73 Re: Off-topic » Secure Boot? Yes, we've heard of it ... » 2024-07-29 14:36:29

quickfur wrote:

a half-assed non-solution to the wrong problem

Are you talking about pulseaudio?

#74 Re: Desktop and Multimedia » [SOLVED] Android -> Linux screen mirroring software » 2024-07-29 12:30:20

Thank you for the link.

Have you already tried to build it?

If you really need it, you may start a new topic: "How to install the newest version of scrcpy?"

And 40 minutes after that, the FBI had Thomas's Samsung Android smartphone unlocked and open for detailed inspection of the shooter's social media, browsing, texting, whatever, history.
What's interesting is that in other, just it was coincidental really, reporting, it appears to be fortuitous for the FBI that Thomas was not using a later model Apple iOS device since some documents leaked from Cellebrite indicate its inability to unlock such devices. 9to5Mac picked up on this last Thursday, reporting under their headline "Cellebrite cannot unlock most iPhones running iOS 17.4 and later." They wrote: "Leaked documents reveal that Cellebrite cannot unlock iPhones running iOS 17.4 and later, at least as of the date of publication," which was April of this year. They said: "The company has confirmed that the documents are genuine. Cellebrite devices, which are widely used by law enforcement agencies, can crack most Android phones, though there are exceptions.
_https://www.grc.com/sn/sn-984.htm
Security Now: CrowdStruck
_https://youtu.be/eLkfKizz6NU

#75 Re: Desktop and Multimedia » [SOLVED] Android -> Linux screen mirroring software » 2024-07-28 22:19:17

How to rebuild scrcpy for Devuan.

Install the tools "which are considered essential for building Debian packages":

sudo apt install build-essential debhelper devscripts 
sudo apt install apt-file command-not-found 

Debian wiki: apt-file
_https://wiki.debian.org/apt-file

NOTE: If apt-file doesn't help, you may try to search with Google, for example:

"/usr/lib/android-sdk/build-tools/debian/dx" site:packages.ubuntu.com 
https://www.google.com/search?&q=%22%2Fusr%2Flib%2Fandroid-sdk%2Fbuild-tools%2Fdebian%2Fdx%22+site%3Apackages.ubuntu.com 

Install android-sdk and default-jdk

sudo apt install android-sdk default-jdk

dalvik-exchange is also missing (it is in the same Ubuntu repository)

dalvik-exchange_10.0.0+r36-4_all.deb	    2022-04-30 
http://us.archive.ubuntu.com/ubuntu/pool/universe/a/android-platform-dalvik/dalvik-exchange_10.0.0+r36-4_all.deb

Notice that "android-platform-dalvik" is the name of the source.
The folder "android-platform-dalvik" contains the source packages and the binaries.
This is how to search for missing packages.

Download and install dalvik-exchange

sudo dpkg -i dalvik-exchange_10.0.0+r36-4_all.deb

Download and install 3 packages of "android-framework-23" from the same repository.

android-sdk-platform-23
_http://us.archive.ubuntu.com/ubuntu/pool/universe/a/android-framework-23/android-sdk-platform-23_6.0.1+r72-6_all.deb
libandroid-23-java
_http://us.archive.ubuntu.com/ubuntu/pool/universe/a/android-framework-23/libandroid-23-java_6.0.1+r72-6_all.deb
libandroid-uiautomator-23-java
_http://us.archive.ubuntu.com/ubuntu/pool/universe/a/android-framework-23/libandroid-uiautomator-23-java_6.0.1+r72-6_all.deb

sudo dpkg -i libandroid-23-java_6.0.1+r72-6_all.deb libandroid-uiautomator-23-java_6.0.1+r72-6_all.deb android-sdk-platform-23_6.0.1+r72-6_all.deb

1. Download the native Debian source packages from the same Ubuntu repository

scrcpy_1.25.orig.tar.gz	        2023-01-21 	
scrcpy_1.25-1.debian.tar.xz	        2023-01-21 
scrcpy_1.25-1.dsc	                2023-01-21 	

_http://us.archive.ubuntu.com/ubuntu/pool/universe/s/scrcpy/scrcpy_1.25.orig.tar.gz
_http://us.archive.ubuntu.com/ubuntu/pool/universe/s/scrcpy/scrcpy_1.25-1.debian.tar.xz
_http://us.archive.ubuntu.com/ubuntu/pool/universe/s/scrcpy/scrcpy_1.25-1.dsc

$ ls -1
scrcpy_1.25-1.debian.tar.xz
scrcpy_1.25-1.dsc
scrcpy_1.25.orig.tar.gz

2. Extract the source code

dpkg-source -x *.dsc 
$ dpkg-source -x *.dsc
gpgv: Signature made Sat 21 Jan 2023 01:31:18 AM CET
gpgv:                using RSA key 7E7729476D87D6F11D91ACCBC293E7B461825ACE
gpgv: Can't check signature: No public key
dpkg-source: warning: cannot verify inline signature for ./scrcpy_1.25-1.dsc: no acceptable signature found
dpkg-source: info: extracting scrcpy in scrcpy-1.25
dpkg-source: info: unpacking scrcpy_1.25.orig.tar.gz
dpkg-source: info: unpacking scrcpy_1.25-1.debian.tar.xz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying 0001-Fit-SDK-23.patch 
$ ls -1
scrcpy-1.25
scrcpy_1.25-1.debian.tar.xz
scrcpy_1.25-1.dsc
scrcpy_1.25.orig.tar.gz

3. cd to the source code directory

cd scrcpy-1.25

4. Read "Build-Depends" in /debian/control

$ cat ./debian/control
Source: scrcpy
Section: net
Priority: optional
Maintainer: Yangfl <mmyangfl@gmail.com>
Build-Depends:
 debhelper-compat (= 13),
Build-Depends-Arch:
 meson,
 libavcodec-dev,
 libavdevice-dev,
 libavformat-dev,
 libavutil-dev,
 libsdl2-dev,
 libusb-1.0-0-dev,
Build-Depends-Indep:
 android-sdk,
 android-sdk-platform-23,
 default-jdk,
 unzip,
 zip,
Rules-Requires-Root: no
Standards-Version: 4.6.2
Homepage: https://github.com/Genymobile/scrcpy
Vcs-Git: https://salsa.debian.org/yangfl-guest/scrcpy.git
Vcs-Browser: https://salsa.debian.org/yangfl-guest/scrcpy

Package: scrcpy
Architecture: any
Depends: ${misc:Depends}, ${shlibs:Depends}, scrcpy-server (= ${source:Version}),
Recommends: adb,
Description: Display and control your Android device
 This application provides display and control of Android devices connected on
 USB (or over TCP/IP). It does not require any root access.
 .
 This package contains the client (desktop) binary.

Package: scrcpy-server
Architecture: all
Multi-Arch: foreign
Depends: ${misc:Depends},
Description: Display and control your Android device - server binary
 This application provides display and control of Android devices connected on
 USB (or over TCP/IP). It does not require any root access.
 .
 This package contains the server (mobile) binary, which will be pushed to the
 Android device. 

5. Install build dependencies

sudo mk-build-deps -i 
sudo apt install -f 

6. Build the packages

$ dpkg-buildpackage -us -uc -b
...
dpkg-deb: building package 'scrcpy' in '../scrcpy_1.25-1_amd64.deb'.
dpkg-deb: building package 'scrcpy-dbgsym' in '../scrcpy-dbgsym_1.25-1_amd64.deb'.
dpkg-deb: building package 'scrcpy-server' in '../scrcpy-server_1.25-1_all.deb'.
 dpkg-genbuildinfo --build=binary -O../scrcpy_1.25-1_amd64.buildinfo
 dpkg-genchanges --build=binary -O../scrcpy_1.25-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 ./scr*.deb
./scrcpy_1.25-1_amd64.deb
./scrcpy-dbgsym_1.25-1_amd64.deb
./scrcpy-server_1.25-1_all.deb 

7. Install the packages

sudo dpkg -i scrcpy_1.25-1_amd64.deb scrcpy-server_1.25-1_all.deb 

You may also try to build the sources from Debian unstable:

_https://packages.debian.org/source/unstable/scrcpy
Download scrcpy
scrcpy_1.25-1.dsc   
scrcpy_1.25.orig.tar.gz   
scrcpy_1.25-1.debian.tar.xz

NOW WE KNOW WHERE TO SEARCH FOR MISSING PACKAGES.

The reference package:

scrcpy_1.25-1_amd64.deb	        2023-01-21 
http://us.archive.ubuntu.com/ubuntu/pool/universe/s/scrcpy/scrcpy_1.25-1_amd64.deb 

It is a native Debian package (without "ubuntu" mark) of 2023.

Ubuntu Maintainers Handbook:
When Ubuntu adds a change or modification on top on what is in Debian, that change is expressed in the version number. One can think of a version number consisting of three segments: [upstream_version]-[debian_revision]ubuntu[ubuntu_revision]. The - splits the upstream version from the Debian packaging segment as you have seen in Debian control field "Version". The ubuntu string then marks that whatever follows it is related to changes added in Ubuntu.
_https://github.com/canonical/ubuntu-maintainers-handbook/blob/main/VersionStrings.md

Of course, you can simply download the native Debian packages and install them. But they may work better, if they are rebuilt for Devuan. You can also rename the package, disable a sort of pulseaudio, remove systemd dependencies, etc.

Some packages should be rebuilt because of libc6 and/or other dependencies.

Board footer

Forum Software