Skip to content
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

Adding BlueZ to [PulseAudio] #3033

Merged
merged 27 commits into from
Sep 7, 2021
Merged

Conversation

bramtayl
Copy link
Contributor

No description provided.

@bramtayl
Copy link
Contributor Author

I'll try rerunning later to give BlueZ a chance to get situated

@bramtayl
Copy link
Contributor Author

@giordano looks like BlueZ installed successfully but the bluetooth.h header file is missing. I can't find it in the wizard destdir either. They mention it in the build log for BlueZ, though:

ln -s -f /workspace/srcdir/bluez-5.54/lib/bluetooth.h lib/bluetooth/bluetooth.h

So, do you happen to know where it went?

@bramtayl
Copy link
Contributor Author

ERROR: LoadError: Unsatisfiable requirements detected for package BlueZ_jll [471b5b61]:
 BlueZ_jll [471b5b61] log:
 ├─possible versions are: 5.54.0 or uninstalled
 ├─restricted to versions * by an explicit requirement, leaving only versions 5.54.0
 └─restricted by compatibility requirements with Glib_jll [7746bdde] to versions: uninstalled — no versions left
   └─Glib_jll [7746bdde] log:
     ├─possible versions are: 2.59.0-2.68.1 or uninstalled
     └─restricted to versions 2.59.0 by an explicit requirement, leaving only versions 2.59.0

@giordano help? Why did you add the glib compat requirement to BlueZ to be 2.68.1? Looks like something else is requiring it to be 2.59?

@giordano
Copy link
Member

Gettext isn't a runtime dependency

# TOOD: verify Gettext is actually needed at runtime
Dependency(PackageSpec(name="Gettext_jll", uuid="78b55507-aeef-58d4-861c-77aaff3498b1"), v"0.20.1"; compat="=0.20.1")
Dependency(PackageSpec(name="Glib_jll", uuid="7746bdde-850d-59dc-9ae8-88ece973131d"), v"2.59.0"; compat="2.59.0")
Dependency(PackageSpec(name="Glib_jll", uuid="7746bdde-850d-59dc-9ae8-88ece973131d"))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Glib_jll must have a compat bound: #3024

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oops, removed that accidentally in the merge

@giordano
Copy link
Member

Is ORC_jll really a runtime dependency? This package should be seriously cleaned up

@giordano
Copy link
Member

Is SBC_jll a runtime dependency?

@giordano
Copy link
Member

Is SpeexDSP_jll a runtime dependency?

@giordano
Copy link
Member

Is Check_jll a runtime dependency?

@bramtayl
Copy link
Contributor Author

Run-time dependency check found: YES 0.15.2
Run-time dependency sbc found: YES 1.4
Run-time dependency speexdsp found: YES 1.2.0
Run-time dependency orc-0.4 found: YES 0.4.31

@giordano
Copy link
Member

giordano commented May 30, 2021

I really don't understand how pulseaudio works, none of the libraries nor executables link to any of these libraries 🤷

@bramtayl
Copy link
Contributor Author

I mean, I can remove them if you think I should. I was working from the configure output.

none of the libraries nor executables link to any of these libraries

Where do I find this kind of info?

Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>
@giordano
Copy link
Member

for file in bin/* lib/*.so; do
    echo "${file}"
    readelf -d "${file}" | grep "NEEDED"
done

@bramtayl
Copy link
Contributor Author

Hmm, well, at the end of the wizard, there's a section:

Please select which of these you want to consider `products`.

And I didn't select everything. A full list would have been

lib/pulse-14.2/modules/module-native-protocol-tcp.so:
> module_native_protocol_tcp

lib/pulse-14.2/modules/module-combine.so:
> module_combine

lib/pulse-14.2/modules/module-native-protocol-fd.so:
> module_native_protocol_fd

lib/pulse-14.2/modules/module-oss.so:
> module_oss

lib/pulse-14.2/modules/module-card-restore.so:
> module_card_restore

lib/pulse-14.2/modules/module-cli-protocol-unix.so:
> module_cli_protocol_unix

lib/libpulse-mainloop-glib.so.0.0.6:
> libpulse_mainloop_glib

lib/pulse-14.2/modules/module-rescue-streams.so:
> module_rescue_streams

lib/pulse-14.2/modules/module-filter-heuristics.so:
> module_filter_heuristics

lib/pulse-14.2/modules/module-simple-protocol-tcp.so:
> module_simple_protocol_tcp

lib/pulse-14.2/modules/module-raop-sink.so:
> module_raop_sink

lib/pulseaudio/libpulsecommon-14.2.so:
> libpulsecommon

bin/pasuspender (default 'pasuspender'):
> 

lib/pulse-14.2/modules/libprotocol-cli.so:
> libprotocol_cli

lib/pulse-14.2/modules/module-mmkbd-evdev.so:
> module_mmkbd_evdev

lib/pulse-14.2/modules/module-position-event-sounds.so:
> module_position_event_sounds

lib/pulse-14.2/modules/module-virtual-sink.so:
> module_virtual_sink

lib/pulseaudio/libpulsecore-14.2.so:
> libpulsecore

lib/pulse-14.2/modules/module-pipe-source.so:
> module_pipe_source

lib/pulse-14.2/modules/module-null-sink.so:
> module_null_sink

lib/pulse-14.2/modules/module-loopback.so:
> module_loopback

lib/pulse-14.2/modules/liboss-util.so:
> liboss_util

lib/pulse-14.2/modules/module-bluez5-device.so:
> module_bluez5_device

lib/pulse-14.2/modules/module-sine-source.so:
> module_sine_source

lib/pulse-14.2/modules/module-always-sink.so:
> module_always_sink

lib/pulseaudio/libpulsedsp.so:
> libpulsedsp

lib/pulse-14.2/modules/module-device-restore.so:
> module_device_restore 

lib/pulse-14.2/modules/module-equalizer-sink.so:
> module_equalizer_sink

lib/pulse-14.2/modules/libcli.so:
> libcli

lib/pulse-14.2/modules/module-console-kit.so:
> module_console_kit

lib/pulse-14.2/modules/module-role-cork.so:
> module_role_cork

lib/pulse-14.2/modules/module-role-ducking.so:
> module_role_ducking

lib/pulse-14.2/modules/module-tunnel-sink.so:
> module_tunnel_sink 

lib/pulse-14.2/modules/module-udev-detect.so:
> module_udev_detect

lib/pulse-14.2/modules/module-detect.so:
> module_detect

lib/pulse-14.2/modules/module-tunnel-source.so:
> module_tunnel_source

lib/pulse-14.2/modules/module-stream-restore.so:
> module_stream_restore

lib/libpulse-simple.so.0.1.1:
> libpulse_simple

lib/pulse-14.2/modules/module-augment-properties.so:
> module_augment_properties

lib/pulse-14.2/modules/module-rtp-send.so:
> module_rtp_send

lib/pulse-14.2/modules/module-remap-source.so:
> module_remap_source

lib/pulse-14.2/modules/module-sine.so:
> module_sine

lib/pulse-14.2/modules/module-combine-sink.so:
> module_combine_sink

lib/pulse-14.2/modules/module-intended-roles.so:
> module_intended_roles

lib/pulse-14.2/modules/module-null-source.so:
> module_null_source

libexec/pulse/gsettings-helper:
> gsettings_helper

bin/pacmd (default 'pacmd'):
> 

lib/pulse-14.2/modules/libbluez5-util.so:
> libbluez5_util

lib/pulse-14.2/modules/librtp.so:
> librtp

lib/pulse-14.2/modules/module-bluetooth-discover.so:
> module_bluetooth_discover

lib/pulse-14.2/modules/module-bluetooth-policy.so:
> module_bluetooth_policy

lib/pulse-14.2/modules/module-echo-cancel.so:
> module_echo_cancel

lib/pulse-14.2/modules/module-virtual-source.so:
> module_virtual_source

lib/pulse-14.2/modules/module-switch-on-connect.so:
> module_switch_on_connect 

lib/pulse-14.2/modules/libprotocol-simple.so:
> libprotocol_simple

lib/pulse-14.2/modules/module-alsa-card.so:
> module_alsa_card

lib/pulse-14.2/modules/module-tunnel-sink-new.so:
> module_tunnel_sink_new

lib/pulse-14.2/modules/module-allow-passthrough.so:
> module_allow_passthrough

lib/pulse-14.2/modules/module-http-protocol-unix.so:
> module_http_protocol_unix

lib/pulse-14.2/modules/module-filter-apply.so:
> module_filter_apply

lib/pulse-14.2/modules/libalsa-util.so:
> libalsa_util

lib/pulse-14.2/modules/module-cli-protocol-tcp.so:
> module_cli_protocol_tcp

lib/pulse-14.2/modules/module-simple-protocol-unix.so:
> module_simple_protocol_unix

lib/pulse-14.2/modules/module-pipe-sink.so:
> module_pipe_sink

lib/pulse-14.2/modules/module-bluez5-discover.so:
> module_bluez5_discover

lib/pulse-14.2/modules/module-gsettings.so:
> module_gsettings

lib/pulse-14.2/modules/module-native-protocol-unix.so:
> module_native_protocol_unix

lib/pulse-14.2/modules/module-rtp-recv.so:
> module_rtp_recv

lib/pulse-14.2/modules/module-alsa-sink.so:
> module_alsa_sink

lib/pulse-14.2/modules/module-default-device-restore.so:
> module_default_device_restore

lib/pulse-14.2/modules/module-virtual-surround-sink.so:
> module_virtual_surround_sink

lib/pulse-14.2/modules/module-suspend-on-idle.so:
> module_suspend_on_idle

lib/pulse-14.2/modules/module-rygel-media-server.so:
> module_rygel_media_server

lib/pulse-14.2/modules/module-always-source.so:
> module_always_source

lib/libpulse.so.0.23.0:
> libpulse

lib/pulse-14.2/modules/libraop.so:
> libraop

lib/pulse-14.2/modules/module-dbus-protocol.so:
> module_dbus_protocol

bin/pacat (default 'pacat'):
>  

lib/pulse-14.2/modules/module-match.so:
> module_match

lib/pulse-14.2/modules/module-alsa-source.so:
> module_alsa_source

lib/pulse-14.2/modules/module-hal-detect.so:
> module_hal_detect

lib/pulse-14.2/modules/module-tunnel-source-new.so:
> module_tunnel_source_new

lib/pulse-14.2/modules/module-volume-restore.so:
> module_volume_restore

lib/pulse-14.2/modules/libprotocol-http.so:
> libprotocol_http

bin/pactl (default 'pactl'):
> 

lib/pulse-14.2/modules/module-switch-on-port-available.so:
> module_switch_on_port_available

lib/pulse-14.2/modules/module-ladspa-sink.so:
> module_ladspa_sink

lib/pulse-14.2/modules/module-cli.so:
> module_cli

lib/pulse-14.2/modules/module-device-manager.so:
> module_device_manager

lib/pulse-14.2/modules/module-http-protocol-tcp.so:
> module_http_protocol_tcp

lib/pulse-14.2/modules/libprotocol-native.so:
> libprotocol_native

lib/pulse-14.2/modules/module-remap-sink.so:
> module_remap_sink

Could that have something to do with it?

@giordano
Copy link
Member

Could that have something to do with it?

"That" what? The files are still there, regardless of whether they're listed as products or not

@bramtayl
Copy link
Contributor Author

Oh, I was thinking that maybe the reason it didn't look like some dependencies were used was that they were only used by unexported products. Anyway, I guess the answer is no and this made the tests fail and I'm confused again.

@bramtayl
Copy link
Contributor Author

bramtayl commented Jun 1, 2021

Also,

for file in bin/* lib/*.so; do
echo "${file}"
readelf -d "${file}" | grep "NEEDED"
done

maybe this could be included as a check at the end of the wizard it it's reliable.

@giordano
Copy link
Member

giordano commented Jun 1, 2021

Those lines don't check much. And libraries listed as products are already dlopened.

@bramtayl
Copy link
Contributor Author

bramtayl commented Jul 8, 2021

Eh, I decided I'd just get rid of them

@bramtayl
Copy link
Contributor Author

bramtayl commented Jul 8, 2021

Hmm, dunno what's going on with 32 bit linux but otherwise good?

@bramtayl
Copy link
Contributor Author

bramtayl commented Jul 8, 2021

@giordano should I just disable 32-bit linux?

@giordano
Copy link
Member

giordano commented Jul 8, 2021

I think it'd be better to understand what is the problem

@bramtayl
Copy link
Contributor Author

bramtayl commented Jul 9, 2021

Yes that makes sense. I just tried putting all the dependencies back and 32 bit linux still failed, which means something external must have changed between the last time tests all passed a month ago and now. The error

[01:57:10] meson.build:1:0: ERROR: Compiler /opt/bin/i686-linux-gnu-libgfortran3-cxx03/i686-linux-gnu-g++ can not compile programs.

makes me think that there might be something wrong with the new version of /opt/bin/i686-linux-gnu-libgfortran3-cxx03/i686-linux-gnu-g++?

@giordano giordano closed this Jul 12, 2021
@giordano giordano reopened this Jul 12, 2021
@bramtayl
Copy link
Contributor Author

Yay! Good?

@giordano
Copy link
Member

Yay! Good?

I'm not really comfortable with adding extra dependency without changing the version number

@bramtayl
Copy link
Contributor Author

Should I bump the version to 14.99.2 then? The version number makes me think it might be a beta? Or maybe just wait for 15?

@bramtayl
Copy link
Contributor Author

bramtayl commented Sep 7, 2021

@staticfloat I guess Mose is on vacation? Anyway, it's a new version now

@staticfloat
Copy link
Member

Yep, looks good to me!

@staticfloat staticfloat merged commit 3234e4c into JuliaPackaging:master Sep 7, 2021
simeonschaub pushed a commit to simeonschaub/Yggdrasil that referenced this pull request Feb 23, 2022
* Try adding BlueZ

* Rerun CI

* Rerun CI

* try again

* Remove gettext

* Add back in Glib compat bounds

* Update P/PulseAudio/build_tarballs.jl

Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>

* Add all products

* Add version numbers to products

* interpolate version

* Remove apparently unused dependencies

* Tests fail without SBC?

* Tests fail without check

* Does it still work with all dependencies?

* Retrim dependencies

* 15.0

* Create rpath.patch

* Create fastmath.patch

* Create capabilities.patch

* apply patches

* -R

* reverse patches

* reorder

* bundled

* source

* remove products

Co-authored-by: Mosè Giordano <giordano@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants