New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pulsecore libraries missing when trying to build archlinux template #4109

Closed
virtualdxs opened this Issue Jul 19, 2018 · 17 comments

Comments

Projects
None yet
3 participants
@virtualdxs

Qubes OS version:

R4.0

Trying to build gui-agent-linux-vm on Qubes fails looking for pulsecore libraries.

Cause: qubes-builder/chroot-archlinux/home/user/qubes-src/gui-agent-linux/pulse/pulsecore is symlinked to pulsecore-12.2, which does not exist.

Make output:

[user@build qubes-builder]$ make gui-agent-linux-vm 
Currently installed dependencies:
git-2.13.6-3.fc26.x86_64
rpmdevtools-8.10-2.fc26.noarch
rpm-build-4.13.1-1.fc26.x86_64
createrepo-0.10.3-11.fc26.noarch
debootstrap-1.0.97-1.fc26.noarch
dpkg-dev-1.18.24-1.fc26.noarch
python2-sh-1.12.14-1.fc26.noarch
dialog-1.3-7.20170131.fc26.x86_64
--> Archlinux dist-prepare-chroot (makefile):
  --> Checking mounting of dev/proc/sys on build chroot...
  --> Synchronize resolv.conf, in case it changed since last run...
-> Building gui-agent-linux (archlinux) for archlinux vm (logfile: build-logs/gui-agent-linux-vm-archlinux.log)
--> build failed!
config.status: executing libtool commands
make[1]: Entering directory '/home/user/qubes-src/gui-agent-linux/xf86-video-dummy'
make  all-recursive
make[2]: Entering directory '/home/user/qubes-src/gui-agent-linux/xf86-video-dummy'
Making all in src
make[3]: Entering directory '/home/user/qubes-src/gui-agent-linux/xf86-video-dummy/src'
  CC       dummy_cursor.lo
  CC       dummy_driver.lo
  CC       dummy_dga.lo
  CCLD     dummyqbs_drv.la
make[3]: Leaving directory '/home/user/qubes-src/gui-agent-linux/xf86-video-dummy/src'
make[3]: Entering directory '/home/user/qubes-src/gui-agent-linux/xf86-video-dummy'
make[3]: Leaving directory '/home/user/qubes-src/gui-agent-linux/xf86-video-dummy'
make[2]: Leaving directory '/home/user/qubes-src/gui-agent-linux/xf86-video-dummy'
make[1]: Leaving directory '/home/user/qubes-src/gui-agent-linux/xf86-video-dummy'
rm -f pulse/pulsecore
ln -s pulsecore-12.2 pulse/pulsecore
make -C pulse module-vchan-sink.so
make[1]: Entering directory '/home/user/qubes-src/gui-agent-linux/pulse'
gcc -Wall -Wextra -Werror -O2 -g -c `pkg-config --cflags vchan-xen` -fPIC module-vchan-sink.c  -DHAVE_CONFIG_H -I.
module-vchan-sink.c:64:10: fatal error: pulsecore/core-error.h: No such file or directory
 #include <pulsecore/core-error.h>
          ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Makefile:12: module-vchan-sink.o] Error 1
make[1]: Leaving directory '/home/user/qubes-src/gui-agent-linux/pulse'
make: *** [Makefile:61: pulse/module-vchan-sink.so] Error 2
==> ERROR: A failure occurred in build().
    Aborting...
make[2]: *** [/home/user/qubes-builder/qubes-src/builder-archlinux/Makefile.archlinux:122: dist-package] Error 4
make[1]: *** [Makefile.generic:177: packages] Error 1
make: *** [Makefile:216: gui-agent-linux-vm] Error 1
[user@build qubes-builder]$

ls -1 qubes-builder/chroot-archlinux/home/user/qubes-src/gui-agent-linux/pulse/:

Makefile
config.h
module-vchan-sink-symdef.h
module-vchan-sink.c
pulsecore
pulsecore-0.9.21
pulsecore-0.9.22
pulsecore-0.9.23
pulsecore-1.1
pulsecore-10.0
pulsecore-11.0
pulsecore-11.1
pulsecore-12.0
pulsecore-2.0
pulsecore-2.1
pulsecore-3.0
pulsecore-4.0
pulsecore-5.0
pulsecore-6.0
pulsecore-7.1
pulsecore-8.0
pulsecore-9.0
qubes-default.pa
qubes-vchan-sink.h
start-pulseaudio-with-vchan

Affected component(s):

qubes-builder


Steps to reproduce the behavior:

Follow the steps at https://www.qubes-os.org/doc/building-archlinux-template/, except:

  1. Change example-configs/template.conf: 117 to RELEASE ?= 4.0
  2. Chance DISTS_VM in example-configs/qubes-os-r4.0.conf instead of ...r3.2.conf, and explicitly specify archlinux instead of leaving it blank

Expected behavior:

Builds the archlinux template

Actual behavior:

Make fails

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jul 19, 2018

Member

Check if pulseaudio 12.2 headers are the same as 12.0 - if so, create a symlink pulsecode-12.2 -> pulsecode-12.0. If it works, feel free to open pull request here: https://github.com/QubesOS/qubes-gui-agent-linux/

Member

marmarek commented Jul 19, 2018

Check if pulseaudio 12.2 headers are the same as 12.0 - if so, create a symlink pulsecode-12.2 -> pulsecode-12.0. If it works, feel free to open pull request here: https://github.com/QubesOS/qubes-gui-agent-linux/

@virtualdxs

This comment has been minimized.

Show comment
Hide comment
@virtualdxs

virtualdxs Jul 19, 2018

By the same do you mean identical, as in checksums match? If not, I don't know how I would compare them as I'm not a developer.

By the same do you mean identical, as in checksums match? If not, I don't know how I would compare them as I'm not a developer.

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jul 19, 2018

Member

Yes, checksum, or diff them.

Member

marmarek commented Jul 19, 2018

Yes, checksum, or diff them.

@virtualdxs

This comment has been minimized.

Show comment
Hide comment
@virtualdxs

virtualdxs Jul 19, 2018

12.2 adds a resampler folder with other headers.

12.2 adds a resampler folder with other headers.

@virtualdxs

This comment has been minimized.

Show comment
Hide comment
@virtualdxs

virtualdxs Jul 19, 2018

The headers in the root directory also differ.

The headers in the root directory also differ.

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jul 19, 2018

Member

Hmm, I see only few #define added, shouldn't be a problem. Try with a symlink.

Member

marmarek commented Jul 19, 2018

Hmm, I see only few #define added, shouldn't be a problem. Try with a symlink.

@virtualdxs

This comment has been minimized.

Show comment
Hide comment
@virtualdxs

virtualdxs Jul 19, 2018

Should the resampler not be a concern?

Should the resampler not be a concern?

@virtualdxs

This comment has been minimized.

Show comment
Hide comment
@virtualdxs

virtualdxs Jul 19, 2018

There's also shmasyncq.h in 12.2 that doesn't exist in 12.0

virtualdxs commented Jul 19, 2018

There's also shmasyncq.h in 12.2 that doesn't exist in 12.0

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jul 19, 2018

Member

Should the resampler not be a concern?

I don't see headers there, only .c files.

There's also shmasyncq.h in 12.2 that doesn't exit in 12.0

This might be a problem. That's weird, as the file existed in 11.0... Also NEWS file in the pulseaudio sources doesn't mention it. Try compiling with 12.2 symlinked to 12.0 and see if that works.

Member

marmarek commented Jul 19, 2018

Should the resampler not be a concern?

I don't see headers there, only .c files.

There's also shmasyncq.h in 12.2 that doesn't exit in 12.0

This might be a problem. That's weird, as the file existed in 11.0... Also NEWS file in the pulseaudio sources doesn't mention it. Try compiling with 12.2 symlinked to 12.0 and see if that works.

@virtualdxs

This comment has been minimized.

Show comment
Hide comment
@virtualdxs

virtualdxs Jul 19, 2018

Yep, you're right about resampler. I must've been looking at another. Building with symlink.

Yep, you're right about resampler. I must've been looking at another. Building with symlink.

@virtualdxs

This comment has been minimized.

Show comment
Hide comment
@virtualdxs

virtualdxs Jul 19, 2018

The make gui-agent-linux-vm nuked my symlink. What should I do to prevent that?

The make gui-agent-linux-vm nuked my symlink. What should I do to prevent that?

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jul 19, 2018

Member

Do it in qubes-src/gui-agent-linux, not chroot-archlinux

Member

marmarek commented Jul 19, 2018

Do it in qubes-src/gui-agent-linux, not chroot-archlinux

@virtualdxs

This comment has been minimized.

Show comment
Hide comment
@virtualdxs

virtualdxs Jul 19, 2018

To clarify, symlink there, make from qubes-builder/?

To clarify, symlink there, make from qubes-builder/?

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jul 19, 2018

Member

yes

Member

marmarek commented Jul 19, 2018

yes

@virtualdxs

This comment has been minimized.

Show comment
Hide comment
@virtualdxs

virtualdxs Jul 19, 2018

Just got back to my computer. Build completed successfully, but should we be worried about potential runtime errors later on?

Just got back to my computer. Build completed successfully, but should we be worried about potential runtime errors later on?

@marmarek

This comment has been minimized.

Show comment
Hide comment
@marmarek

marmarek Jul 19, 2018

Member

I don't see any incompatible differences in ABI.

Member

marmarek commented Jul 19, 2018

I don't see any incompatible differences in ABI.

@virtualdxs

This comment has been minimized.

Show comment
Hide comment
@virtualdxs

virtualdxs Jul 19, 2018

Alright, cool. I'll go ahead and set up a PR for that.

Alright, cool. I'll go ahead and set up a PR for that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment