You are not logged in.
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.
Last edited by igorzwx (2025-05-09 12:45:56)
Offline