neutrinolabs / pulseaudio-module-xrdp

xrdp sink / source pulseaudio modules
GNU Lesser General Public License v2.1
214 stars 42 forks source link

ERROR: Program 'doxygen' not found or not executable #90

Closed canyakan99 closed 1 year ago

canyakan99 commented 1 year ago

Im accessing a Kali Linux VM over XRDP and I have the problem, that I have no sound/audio. For that I saw the instructions in this repository and started to follow the steps.

Now I have the following problem: If I run the _"install_pulseaudio_sources_aptwrapper.sh" as sudo , I get this message:

- Creating kali-rolling build root. Log file in /var/tmp/pa-build-root-debootstrap.log
- Creating schroot config file /etc/schroot/chroot.d/pa-build-root.conf
- Copying /etc/apt/sources.list to the root
- Creating the build directory /build
- Copying the wrapped script to the build directory
- Building PA sources. Log file in /var/tmp/pa-build-root-schroot.log
** schroot failed. Check log file /var/tmp/pa-build-root-schroot.log

The log-file contains following error:

The Meson build system
Version: 1.0.0
Source dir: /build/pulseaudio-16.1+dfsg1
Build dir: /build/pulseaudio-16.1+dfsg1/build
Build type: native build
Program git-version-gen found: YES (/build/pulseaudio-16.1+dfsg1/git-version-gen)
WARNING: You should add the boolean check kwarg to the run_command call.
         It currently defaults to false,
         but it will default to true in future releases of meson.
         See also: https://github.com/mesonbuild/meson/issues/9300
Project name: pulseaudio
Project version: 16.1_...
...
...
Configuring doxygen.conf using configuration

doxygen/meson.build:9:0: ERROR: Program 'doxygen' not found or not executable

Do you know how to fix this?

matt335672 commented 1 year ago

That's an interesting one.

The script scripts/install_pulseaudio_sources_apt.sh contyains this line which should install all the dependencies needed for the build:-

sudo apt-get build-dep -y pulseaudio

Sometimes things are left out, however.

In your log-file, there should be a line saying Building for : <some text>. Can you look it up for me?

canyakan99 commented 1 year ago

When I use grep for your statement, I get this following line:

Building for : Kali-2022.4 (kali-rolling)

If you need more information, just ask for it.

As I looked in google for this explicit error, I found this site. Maybe it helps you more than me :D

matt335672 commented 1 year ago

Thanks.

I've attached a patch file. Can you:-

The contents of the patch file are as follows for anyone else reading this:-

diff --git a/scripts/install_pulseaudio_sources_apt.sh b/scripts/install_pulseaudio_sources_apt.sh
index 20633eb..5e0aef8 100755
--- a/scripts/install_pulseaudio_sources_apt.sh
+++ b/scripts/install_pulseaudio_sources_apt.sh
@@ -115,6 +115,9 @@ if [ ! -d "$PULSE_DIR" ]; then
         Ubuntu-16.04)
             sudo apt-get install -y libjson-c-dev
             ;;
+        Kali-2022*)
+            sudo apt-get install -y doxygen
+            ;;
     esac

     cd "$(dirname $PULSE_DIR)"

patch1.txt

canyakan99 commented 1 year ago

First of all, thank you @matt335672 This patch definitly works and I could fulfill the instructions to install pulseaudio with xrdp modules.

But my problem with no sound in XRDP with Kali Linux didnt get solved. I still dont get any audio, when I connect over Windows RDP to my Kali Linux VM with XRDP. When I look at my audio devices, it still shows me an "Dummy Output".

I thought this problem this could be solved, if i follow your instructions regarding to pulseaudio with xrdp.

Do you have any ideas, why I still dont get any audio? Or why my Kali Linux VM cant recognize my output channels?

Thanks!

matt335672 commented 1 year ago

I'm assuming Kali 2022.4 is based on Ubuntu 22.04 which still has pulseaudio support, but I can't find anything useful online about this. If 2022.4 is based on 22.10, we won't be able to get this working right now - see #89.

Referring to the install instructions what happens when you run the load_pa_modules.sh script directly?

canyakan99 commented 1 year ago

Hi, apparently something prevented the scripts from loading. Now everything works. Thank you very much.

issuefiler commented 1 year ago

Hi. I'm using the latest version of Debian Bookworm (the testing-stage distro) with the latest PREEMPT_RT Linux kernel (linux-image-rt-amd64), and I've just encountered the exact same issue. Seeing this issue being at the very top of the list, it feels as if I'm on the cutting-edge.

$ sudo ./scripts/install_pulseaudio_sources_apt_wrapper.sh 
- Need to install packages : debootstrap schroot

  These can be removed when this script completes with:-
  sudo apt-get purge debootstrap schroot && apt-get autoremove

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  arch-test schroot-common
Suggested packages:
  squid-deb-proxy-client ubuntu-archive-keyring aufs-tools | unionfs-fuse btrfs-progs lvm2 qemu-user-static zfsutils-linux
The following NEW packages will be installed:
  arch-test debootstrap schroot schroot-common
0 upgraded, 4 newly installed, 0 to remove and 341 not upgraded.
Need to get 736 kB of archives.
After this operation, 3471 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian bookworm/main amd64 schroot-common all 1.6.13-3 [73.7 kB]
Get:2 http://deb.debian.org/debian bookworm/main amd64 schroot amd64 1.6.13-3+b1 [606 kB]
Get:3 http://deb.debian.org/debian bookworm/main amd64 arch-test all 0.20-1 [12.4 kB]
Get:4 http://deb.debian.org/debian bookworm/main amd64 debootstrap all 1.0.128+nmu2 [43.4 kB]
Fetched 736 kB in 2s (331 kB/s)     
Preconfiguring packages ...
Selecting previously unselected package schroot-common.
(Reading database ... 283035 files and directories currently installed.)
Preparing to unpack .../schroot-common_1.6.13-3_all.deb ...
Unpacking schroot-common (1.6.13-3) ...
Selecting previously unselected package schroot.
Preparing to unpack .../schroot_1.6.13-3+b1_amd64.deb ...
Unpacking schroot (1.6.13-3+b1) ...
Selecting previously unselected package arch-test.
Preparing to unpack .../arch-test_0.20-1_all.deb ...
Unpacking arch-test (0.20-1) ...
Selecting previously unselected package debootstrap.
Preparing to unpack .../debootstrap_1.0.128+nmu2_all.deb ...
Unpacking debootstrap (1.0.128+nmu2) ...
Setting up debootstrap (1.0.128+nmu2) ...
Setting up schroot-common (1.6.13-3) ...
Setting up arch-test (0.20-1) ...
Setting up schroot (1.6.13-3+b1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/schroot.service -> /lib/systemd/system/schroot.service.
Processing triggers for man-db (2.11.2-1) ...
- Creating bookworm build root. Log file in /var/tmp/pa-build-root-debootstrap.log
- Creating schroot config file /etc/schroot/chroot.d/pa-build-root.conf
- Copying /etc/apt/sources.list to the root
- Creating the build directory /build
- Copying the wrapped script to the build directory
- Building PA sources. Log file in /var/tmp/pa-build-root-schroot.log
** schroot failed. Check log file /var/tmp/pa-build-root-schroot.log

/var/tmp/pa-build-root-schroot.log

Building for : Debian-n/a (bookworm)
Hit:1 http://deb.debian.org/debian bookworm InRelease
Get:2 http://deb.debian.org/debian-security bookworm-security InRelease [48.0 kB]
Get:3 http://deb.debian.org/debian bookworm-updates InRelease [49.6 kB]
Get:4 http://deb.debian.org/debian bookworm/contrib Sources [50.4 kB]
Get:5 http://deb.debian.org/debian bookworm/non-free Sources [81.3 kB]
Get:6 http://deb.debian.org/debian bookworm/main Sources [9702 kB]
Get:7 http://deb.debian.org/debian bookworm/main Translation-en [6088 kB]
Get:8 http://deb.debian.org/debian bookworm/contrib amd64 Packages [53.3 kB]
Get:9 http://deb.debian.org/debian bookworm/contrib Translation-en [48.0 kB]
Get:10 http://deb.debian.org/debian bookworm/non-free amd64 Packages [106 kB]
Get:11 http://deb.debian.org/debian bookworm/non-free Translation-en [69.3 kB]
Fetched 16.3 MB in 3s (5079 kB/s)
Reading package lists...
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following NEW packages will be installed:
  adwaita-icon-theme at-spi2-common autoconf automake autopoint autotools-dev
  binutils binutils-common binutils-x86-64-linux-gnu bsdextrautils
  build-essential bzip2 ca-certificates check cpp cpp-12 dbus dbus-bin
  dbus-daemon dbus-session-bus-common dbus-system-bus-common dbus-user-session
  dconf-gsettings-backend dconf-service debhelper desktop-file-utils
  dh-autoreconf dh-exec dh-strip-nondeterminism dpkg-dev dwz file fontconfig
  fontconfig-config fonts-dejavu-core g++ g++-12 gcc gcc-12 gettext
  gettext-base gir1.2-atk-1.0 gir1.2-atspi-2.0 gir1.2-freedesktop
  gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0 gir1.2-gst-plugins-base-1.0
  gir1.2-gstreamer-1.0 gir1.2-gtk-3.0 gir1.2-gudev-1.0 gir1.2-harfbuzz-0.0
  gir1.2-pango-1.0 groff-base gtk-update-icon-cache hicolor-icon-theme
  icu-devtools intltool intltool-debian iso-codes libarchive-zip-perl libasan8
  libasound2 libasound2-data libasound2-dev libasyncns-dev libasyncns0
  libatk-bridge2.0-0 libatk-bridge2.0-dev libatk1.0-0 libatk1.0-dev libatomic1
  libatspi2.0-0 libatspi2.0-dev libavahi-client-dev libavahi-client3
  libavahi-common-data libavahi-common-dev libavahi-common3 libbinutils
  libblkid-dev libbluetooth-dev libbluetooth3 libbrotli-dev libbrotli1
  libc-dev-bin libc6-dev libcairo-gobject2 libcairo-script-interpreter2
  libcairo2 libcairo2-dev libcap-dev libcc1-0 libclone-perl libcolord2
  libcrypt-dev libctf-nobfd0 libctf0 libcups2 libdatrie-dev libdatrie1
  libdbus-1-3 libdbus-1-dev libdconf1 libdebhelper-perl libdeflate-dev
  libdeflate0 libdpkg-perl libdrm-amdgpu1 libdrm-common libdrm-dev
  libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libdrm2 libdw-dev libdw1
  libegl-dev libegl-mesa0 libegl1 libegl1-mesa-dev libelf-dev
  libencode-locale-perl libepoxy-dev libepoxy0 libexpat1 libexpat1-dev
  libffi-dev libfftw3-bin libfftw3-dev libfftw3-double3 libfftw3-long3
  libfftw3-quad3 libfftw3-single3 libfile-listing-perl
  libfile-stripnondeterminism-perl libflac-dev libflac12 libfontconfig-dev
  libfontconfig1 libfreetype-dev libfreetype6 libfribidi-dev libfribidi0
  libgbm-dev libgbm1 libgcc-12-dev libgdbm-compat4 libgdbm6
  libgdk-pixbuf-2.0-0 libgdk-pixbuf-2.0-dev libgdk-pixbuf2.0-bin
  libgdk-pixbuf2.0-common libgirepository-1.0-1 libgl-dev libgl1
  libgl1-mesa-dri libglapi-mesa libgles-dev libgles1 libgles2 libglib2.0-0
  libglib2.0-bin libglib2.0-data libglib2.0-dev libglib2.0-dev-bin
  libglvnd-core-dev libglvnd-dev libglvnd0 libglx-dev libglx-mesa0 libglx0
  libgomp1 libgprofng0 libgraphite2-3 libgraphite2-dev libgstreamer-gl1.0-0
  libgstreamer-plugins-base1.0-0 libgstreamer-plugins-base1.0-dev
  libgstreamer1.0-0 libgstreamer1.0-dev libgtk-3-0 libgtk-3-common
  libgtk-3-dev libgudev-1.0-0 libgudev-1.0-dev libharfbuzz-dev
  libharfbuzz-gobject0 libharfbuzz-icu0 libharfbuzz-subset0 libharfbuzz0b
  libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl
  libhttp-cookies-perl libhttp-date-perl libhttp-message-perl
  libhttp-negotiate-perl libice-dev libice6 libicu-dev libicu72
  libio-html-perl libio-socket-ssl-perl libisl23 libitm1 libjack-dev libjack0
  libjbig-dev libjbig0 libjpeg-dev libjpeg62-turbo libjpeg62-turbo-dev
  liblcms2-2 liblerc-dev liblerc4 liblirc-client0 liblirc-dev liblirc0
  liblircclient-dev libllvm15 liblsan0 libltdl-dev libltdl7
  liblwp-mediatypes-perl liblwp-protocol-https-perl liblzma-dev liblzo2-2
  libmagic-mgc libmagic1 libmount-dev libmp3lame0 libmpc3 libmpdec3 libmpfr6
  libmpg123-0 libmpg123-dev libnet-http-perl libnet-ssleay-perl libnsl-dev
  libnsl2 libogg-dev libogg0 libopengl-dev libopengl0 libopus-dev libopus0
  liborc-0.4-0 liborc-0.4-dev liborc-0.4-dev-bin libout123-0 libpam-systemd
  libpango-1.0-0 libpango1.0-dev libpangocairo-1.0-0 libpangoft2-1.0-0
  libpangoxft-1.0-0 libpciaccess-dev libpciaccess0 libpcre2-16-0 libpcre2-32-0
  libpcre2-dev libpcre2-posix3 libperl5.36 libpipeline1 libpixman-1-0
  libpixman-1-dev libpkgconf3 libpng-dev libpng16-16 libpthread-stubs0-dev
  libpython3-stdlib libpython3.11-minimal libpython3.11-stdlib libquadmath0
  libregexp-ipv6-perl libsbc-dev libsbc1 libselinux1-dev libsensors-config
  libsensors5 libsepol-dev libsm-dev libsm6 libsndfile1 libsndfile1-dev
  libsoxr-dev libsoxr-lsr0 libsoxr0 libspeexdsp-dev libspeexdsp1 libsqlite3-0
  libssl-dev libstdc++-12-dev libsub-override-perl libsubunit-dev libsubunit0
  libsyn123-0 libsystemd-dev libtdb-dev libtdb1 libthai-data libthai-dev
  libthai0 libtiff-dev libtiff6 libtiffxx6 libtimedate-perl libtirpc-dev
  libtool libtry-tiny-perl libtsan2 libubsan1 libuchardet0 libudev-dev
  libunwind-dev libunwind8 liburi-perl libusb-0.1-4 libvorbis-dev libvorbis0a
  libvorbisenc2 libvorbisfile3 libwayland-bin libwayland-client0
  libwayland-cursor0 libwayland-dev libwayland-egl1 libwayland-server0
  libwebp-dev libwebp7 libwebpdemux2 libwebpmux3
  libwebrtc-audio-processing-dev libwebrtc-audio-processing1 libwrap0
  libwrap0-dev libwww-perl libwww-robotrules-perl libx11-6 libx11-data
  libx11-dev libx11-xcb-dev libx11-xcb1 libxau-dev libxau6 libxcb-dri2-0
  libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-randr0 libxcb-render0
  libxcb-render0-dev libxcb-shm0 libxcb-shm0-dev libxcb-sync1 libxcb-xfixes0
  libxcb1 libxcb1-dev libxcomposite-dev libxcomposite1 libxcursor-dev
  libxcursor1 libxdamage-dev libxdamage1 libxdmcp-dev libxdmcp6 libxext-dev
  libxext6 libxfixes-dev libxfixes3 libxft-dev libxft2 libxi-dev libxi6
  libxinerama-dev libxinerama1 libxkbcommon-dev libxkbcommon0
  libxml-parser-perl libxml2 libxml2-utils libxrandr-dev libxrandr2
  libxrender-dev libxrender1 libxshmfence1 libxtst-dev libxtst6 libxxf86vm1
  libz3-4 libzstd-dev linux-libc-dev m4 make man-db media-types meson
  ninja-build openssl pango1.0-tools patch perl perl-modules-5.36
  perl-openssl-defaults pkg-config pkgconf pkgconf-bin po-debconf python3
  python3-distutils python3-lib2to3 python3-minimal python3-pkg-resources
  python3-setuptools python3.11 python3.11-minimal rpcsvc-proto sgml-base
  shared-mime-info uuid-dev wayland-protocols x11-common x11proto-dev xkb-data
  xml-core xorg-sgml-doctools xtrans-dev xz-utils zlib1g-dev
0 upgraded, 429 newly installed, 0 to remove and 0 not upgraded.
Need to get 231 MB of archives.

(……)

Run-time dependency gstreamer-1.0 found: YES 1.22.0
Run-time dependency gstreamer-app-1.0 found: YES 1.22.0
Run-time dependency gstreamer-rtp-1.0 found: YES 1.22.0
Dependency gstreamer-1.0 found: YES 1.22.0 (cached)
Dependency gstreamer-app-1.0 found: YES 1.22.0 (cached)
Run-time dependency check found: YES 0.15.2
Configuring doxygen.conf using configuration

doxygen/meson.build:9:0: ERROR: Program 'doxygen' not found or not executable

A full log can be found at /build/pulseaudio-16.1+dfsg1/build/meson-logs/meson-log.txt
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.

The system

$ lsb_release --id  
No LSB modules are available.
Distributor ID: Debian

$ lsb_release --release
No LSB modules are available.
Release:        n/a

$ uname --kernel-name
Linux

$ uname --kernel-release
6.1.0-3-rt-amd64

$ uname --kernel-version
#1 SMP PREEMPT_RT Debian 6.1.8-1 (2023-01-29)

$ uname --machine          
x86_64
matt335672 commented 1 year ago

Thanks for that @issuefiler

patch1.txt

Patch file attached:-

diff --git a/scripts/install_pulseaudio_sources_apt.sh b/scripts/install_pulseaudio_sources_apt.sh
index 5e0aef8..2572a15 100755
--- a/scripts/install_pulseaudio_sources_apt.sh
+++ b/scripts/install_pulseaudio_sources_apt.sh
@@ -118,6 +118,14 @@ if [ ! -d "$PULSE_DIR" ]; then
         Kali-2022*)
             sudo apt-get install -y doxygen
             ;;
+        Debian-n/a)
+            # Debian testing build
+            case "$codename" in
+                bookworm)
+                    sudo apt-get install -y doxygen
+                    ;;
+            esac
+            ;;
     esac

     cd "$(dirname $PULSE_DIR)"

I haven't tested it (not planning on being logged on for long) but it should work.

issuefiler commented 1 year ago

Patched, built, installed, did sudo systemctl xrdp restart, and reconnected. It works like a charm!

Though the CPU usage sky-rockets to more or less 70% when it's playing videos, now I can remotely play and listen to 1080p videos on YouTube. Thank you!