Skip to content

Bump bluez to 0.4.0 (raw radio access) - #232

Merged
bbangert merged 2 commits into
mainfrom
chore/bluez-0.4
Oct 27, 2026
Merged

bbangert merged 2 commits into
mainfrom
chore/bluez-0.4

Conversation

@bbangert

Copy link
Copy Markdown
Owner

Summary

Bumps bluez from 0.3.0 to 0.4.0. This is groundwork for BLE mesh lighting control (Tuya "Beacon"-style lights). Only the bluez lock entry moves; its dependencies are unchanged.

0.4.0 adds an opt-in raw radio layer:

  • Bluez.Mgmt: raw LE advertising through the kernel MGMT socket, for AD layouts that BlueZ's D-Bus LEAdvertisement1 API refuses. Requires Linux 5.17+.
  • Bluez.Radio: one advertising owner per controller, via leases.
  • Bluez.AdvertReceiver: advertising reports exactly as received, off HCI_CHANNEL_RAW.
  • Bluez.Hci and Bluez.AdData codecs.

Nothing is wired up in this PR. These children start only when mgmt: or advert_receiver: is passed, and UniversalProxy.Bluetooth.bluez_spec/0 passes neither, so the supervision tree is unchanged.

The one change that applies regardless: Bluez.Client now clears and then records DevicePath.resolved_adapter_key() on each start, which backs the new resolved_adapter_path/0. Our code only sets desired_adapter_key(), so nothing conflicts.

This PR also carries #231's lock change (plug_crypto 2.2.1 for EEF-CVE-2026-105963, plus elixir_make 0.10.1) so its Hex audit job passes. That part is a no-op once #231 merges.

Test plan

  • mise run test: 1688 passed, 0 failures
  • format, compile --warnings-as-errors, credo --strict, dialyzer
  • hex.audit: only the allow-listed cowlib advisory

🤖 Generated with Claude Code

bbangert and others added 2 commits October 27, 2026 23:34
Picks up the opt-in raw radio layer (Bluez.Mgmt, Bluez.Radio,
Bluez.AdvertReceiver, Bluez.Hci, Bluez.AdData) needed for BLE mesh
lighting. Nothing is wired yet; our bluez_spec passes neither `mgmt:`
nor `advert_receiver:`, so the supervision tree is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
plug_crypto 2.2.0 can expose the secret key base in stack-trace
arguments; 2.2.1 fixes it. Also locks elixir_make 0.10.1, which every
`mix deps.get` (CI included) already resolves.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟢 Approval recommended

No active review issues are recorded for the Bluez dependency update.

No open issues 🎉

What changed in this PR

Updates Bluez as groundwork for BLE mesh lighting control, without wiring up its optional raw-radio features.

Changes:

  • Raises the Bluez requirement to ~> 0.4 and locks version 0.4.0.
  • Carries #231’s plug_crypto 2.2.1 security update and elixir_make 0.10.1 lock update.
File Description
mix.lock Updates Bluez, plug_crypto, and elixir_make versions and checksums.
mix.exs Raises the Bluez dependency requirement to ~> 0.4.

Review effort: Balanced

@bbangert
bbangert merged commit 6238c17 into main Oct 27, 2026
8 checks passed
@bbangert
bbangert deleted the chore/bluez-0.4 branch October 27, 2026 23:44
@bbangert bbangert mentioned this pull request Oct 30, 2026
3 of 4 tasks
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.

2 participants