Name: pocketds-userspace Version: 20260430 Release: 20260505221720%{?dist} Summary: AYANEO Pocket DS userspace integration (udev hwdb, InputPlumber, ALSA) License: GPL-2.0-or-later URL: https://github.com/ROCKNIX/distribution Source0: 10-ayaneo.hwdb Source1: 01-ayaneo-controller.yaml Source2: 01-ayaneo-controller-japanese.yaml Source3: ayaneo_mcu_xbox.yaml Source4: ayaneo_mcu_japanese.yaml Source5: 99-namehints.conf # Image-builder content moved out of mkosi.postinst.chroot: Source10: pocketds-toggle-gamepad Source11: pocketds-toggle-joymouse Source12: MODE-TOGGLES.md Source13: 61-pocketds-touchscreens.rules Source15: kwinoutputconfig.json Source16: khotkeysrc Source17: 50-pocketds-printk.conf Source18: 10-wheel-nopasswd Source19: SM8550-APS.conf Source20: SM8550-APS-HiFi.conf BuildArch: noarch # `%%{_udevhwdbdir}` lives in systemd-rpm-macros; the COPR minimal aarch64 # buildroot doesn't pull it in implicitly, so we ask for it explicitly. BuildRequires: systemd-rpm-macros # udev runs hwdb-update from the systemd package. InputPlumber configs are only # meaningful if InputPlumber is present, but we don't hard-require it -- the # files are inert otherwise. Requires: systemd-udev Recommends: inputplumber %description Drops in the device-specific userspace integration files for the AYANEO Pocket DS that ROCKNIX layers in via filesystem/ overlays: * /usr/lib/udev/hwdb.d/10-ayaneo.hwdb -- volume rocker keysyms * /usr/share/inputplumber/devices/*.yaml -- gamepad composition * /usr/share/inputplumber/capability_maps/*.yaml -- MCU-keyed remappings * /etc/alsa/conf.d/99-namehints.conf -- enable extended PCM namehints (replaces ROCKNIX's alsa-lib patch) %prep # nothing -- all sources are dropped in directly %build # nothing to build %install install -D -m 0644 %{SOURCE0} %{buildroot}%{_udevhwdbdir}/10-ayaneo.hwdb install -d %{buildroot}%{_datadir}/inputplumber/devices install -d %{buildroot}%{_datadir}/inputplumber/capability_maps install -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/inputplumber/devices/01-ayaneo-controller.yaml install -m 0644 %{SOURCE2} %{buildroot}%{_datadir}/inputplumber/devices/01-ayaneo-controller-japanese.yaml install -m 0644 %{SOURCE3} %{buildroot}%{_datadir}/inputplumber/capability_maps/ayaneo_mcu_xbox.yaml install -m 0644 %{SOURCE4} %{buildroot}%{_datadir}/inputplumber/capability_maps/ayaneo_mcu_japanese.yaml install -D -m 0644 %{SOURCE5} %{buildroot}%{_sysconfdir}/alsa/conf.d/99-namehints.conf # --- gamepad / joymouse mode toggles (driven by Plasma shortcuts) --- install -D -m 0755 %{SOURCE10} %{buildroot}%{_bindir}/pocketds-toggle-gamepad install -D -m 0755 %{SOURCE11} %{buildroot}%{_bindir}/pocketds-toggle-joymouse install -D -m 0644 %{SOURCE12} %{buildroot}%{_docdir}/%{name}/MODE-TOGGLES.md # --- per-DSI touchscreen output mapping --- install -D -m 0644 %{SOURCE13} %{buildroot}%{_sysconfdir}/udev/rules.d/61-pocketds-touchscreens.rules # --- ALSA UCM profile for SM8550-APS (machine name on the Pocket DS) --- # We initially tried symlinking HDK's profile but wireplumber failed # 'Failed to get the verb HiFi' — verified on the device that HDK's # HiFi EnableSequence csets controls that don't exist on SM8550-APS: # RX_CODEC_DMA_RX_0 Audio Mixer MultiMedia1 (absent) # WSA_CODEC_DMA_RX_0 Audio Mixer MultiMedia2 (HDK uses; APS has it # but HDK ALSO uses # MultiMedia1 of the # missing RX codec) # MultiMedia3 Mixer TX_CODEC_DMA_TX_3 (absent) # So ship a minimal APS-specific HiFi.conf that only references # controls present on this card (WSA → MultiMedia1 speaker path). install -D -m 0644 %{SOURCE19} \ %{buildroot}%{_datadir}/alsa/ucm2/Qualcomm/sm8550/APS/SM8550-APS.conf install -D -m 0644 %{SOURCE20} \ %{buildroot}%{_datadir}/alsa/ucm2/Qualcomm/sm8550/APS/HiFi.conf install -d %{buildroot}%{_datadir}/alsa/ucm2/conf.d/sm8550 ln -sf ../../Qualcomm/sm8550/APS/SM8550-APS.conf \ %{buildroot}%{_datadir}/alsa/ucm2/conf.d/sm8550/SM8550-APS.conf # --- /etc/skel: shipped to every new user (incl. the default `pocketds`) --- install -d %{buildroot}%{_sysconfdir}/skel/.config install -m 0644 %{SOURCE15} %{buildroot}%{_sysconfdir}/skel/.config/kwinoutputconfig.json install -m 0644 %{SOURCE16} %{buildroot}%{_sysconfdir}/skel/.config/khotkeysrc # --- misc system bits --- install -D -m 0644 %{SOURCE17} %{buildroot}%{_sysconfdir}/sysctl.d/50-pocketds-printk.conf install -D -m 0440 %{SOURCE18} %{buildroot}%{_sysconfdir}/sudoers.d/10-wheel-nopasswd %files %{_udevhwdbdir}/10-ayaneo.hwdb %{_datadir}/inputplumber/devices/01-ayaneo-controller.yaml %{_datadir}/inputplumber/devices/01-ayaneo-controller-japanese.yaml %{_datadir}/inputplumber/capability_maps/ayaneo_mcu_xbox.yaml %{_datadir}/inputplumber/capability_maps/ayaneo_mcu_japanese.yaml %config(noreplace) %{_sysconfdir}/alsa/conf.d/99-namehints.conf # Mode-toggle helpers + doc %{_bindir}/pocketds-toggle-gamepad %{_bindir}/pocketds-toggle-joymouse %doc %{_docdir}/%{name}/MODE-TOGGLES.md # Touchscreen→panel udev mapping %{_sysconfdir}/udev/rules.d/61-pocketds-touchscreens.rules # ALSA UCM profile (Qualcomm/sm8550/APS/ has the actual files; # conf.d entry is a symlink to it). %{_datadir}/alsa/ucm2/Qualcomm/sm8550/APS/SM8550-APS.conf %{_datadir}/alsa/ucm2/Qualcomm/sm8550/APS/HiFi.conf %{_datadir}/alsa/ucm2/conf.d/sm8550/SM8550-APS.conf # /etc/skel: kwin output layout + custom-shortcut bindings %{_sysconfdir}/skel/.config/kwinoutputconfig.json %{_sysconfdir}/skel/.config/khotkeysrc # Misc system bits %{_sysconfdir}/sysctl.d/50-pocketds-printk.conf %{_sysconfdir}/sudoers.d/10-wheel-nopasswd %post %{?systemd_post} /usr/bin/systemd-hwdb update >/dev/null 2>&1 || : %postun %{?systemd_postun} if [ $1 -eq 0 ]; then /usr/bin/systemd-hwdb update >/dev/null 2>&1 || : fi %changelog * Wed May 06 2026 Pocket DS Maintainers - %{version}-%{release} - Release auto-stamped from build_timestamp; full history in git log