%global debug_package %{nil} Name: apple-extras Version: 0.7.2 Release: 1%{?dist} Summary: Userspace for Apple features on Asahi Linux License: MIT Source0: apple-extras-%{version}.tar.gz BuildRequires: cargo-rpm-macros >= 26 BuildRequires: gcc BuildRequires: pkgconfig(dbus-1) BuildRequires: systemd-rpm-macros %description Rust tools for Apple features on Asahi Linux. Each tool ships as its own subpackage; this package itself installs nothing. %package -n instant-hotspot Summary: Apple Instant Hotspot client: start and join a same-account iPhone's hotspot Requires: bluez Requires: NetworkManager Requires: polkit %description -n instant-hotspot Asks a nearby iPhone on the same Apple account to turn on Personal Hotspot over Rapport (BLE L2CAP), using the Rapport identity of an Apple device on that account, then joins the network with NetworkManager. The phone needs no interaction. The user unit watches NetworkManager and joins whenever the machine is offline, idling on D-Bus signals rather than polling. Credentials go in ~/.config/instant-hotspot/ (rapport_selfidentity.bin, rapport_selfidentity_gena.bin). %prep %autosetup -n apple-extras-%{version} %cargo_prep -N # build online: the crates are not packaged for Fedora sed -i 's/^offline = true$//' .cargo/config.toml %build %cargo_build %install install -Dpsm0755 target/rpm/instant-hotspot %{buildroot}%{_bindir}/instant-hotspot install -Dm644 crates/instant-hotspot/instant-hotspot.service %{buildroot}%{_userunitdir}/instant-hotspot.service install -Dm644 crates/instant-hotspot/49-instant-hotspot.rules %{buildroot}%{_datadir}/polkit-1/rules.d/49-instant-hotspot.rules %check %cargo_test %post -n instant-hotspot %systemd_user_post instant-hotspot.service %preun -n instant-hotspot %systemd_user_preun instant-hotspot.service %postun -n instant-hotspot %systemd_user_postun_with_restart instant-hotspot.service %files -n instant-hotspot %license LICENSE %doc crates/instant-hotspot/README.md %{_bindir}/instant-hotspot %{_userunitdir}/instant-hotspot.service %{_datadir}/polkit-1/rules.d/49-instant-hotspot.rules %changelog * Fri Oct 30 2026 Lachlan Marie - 0.7.2-1 - instant-hotspot: keep the hotspot profile metered and below real Wi-Fi, so NetworkManager never prefers cellular data on its own * Fri Oct 30 2026 Lachlan Marie - 0.7.1-1 - instant-hotspot: wait for the profile, not the ActiveConnection object NetworkManager discards, which read as a failed join - instant-hotspot: retry the association; the phone drops the first attempt - instant-hotspot: only act after 8s offline, so a reconnect does not trigger it * Thu Oct 29 2026 Lachlan Marie - 0.7.0-1 - Monorepo for the Apple userspace tools, one subpackage each - instant-hotspot: Rust rewrite, ~4 MB resident and no CPU while idle - Version starts above every package it replaces so upgrades are clean