%global debug_package %{nil} Name: uke-hw Version: 1.0.0 Release: 1%{?dist} Summary: Uke hw package selection and source family License: MIT URL: https://github.com/MCC45TR/uke-linux-hardware-support Source0: uke-hw-1.0.0.tar.xz ExclusiveArch: aarch64 SourceLicense: MIT AND (GPL-3.0-or-later AND Apache-2.0) AND (GPL-3.0-or-later AND MIT) AND (LicenseRef-Proprietary) AND (MIT) %global _build_id_links none %global _binaries_in_noarch_packages_terminate_build 0 Requires: uke-boot-integration >= 1.0.22 Suggests: uke-bluetooth Suggests: uke-touchscreen Suggests: uke-wifi-factory BuildRequires: gcc-c++ bluez-libs-devel systemd-rpm-macros BuildRequires: gcc-c++ make systemd-rpm-macros BuildRequires: gcc-c++ openssl-devel systemd-devel systemd-rpm-macros BuildRequires: jq BuildRequires: openssl-devel BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libsystemd) pkgconfig(wayland-client) pkgconfig(wayland-server) %description Logical installation selection. Child RPMs remain separately installable. This package adds no process and does not enable hardware or prove support. %package -n uke-bluetooth Version: 1.0.6 Release: 1.fc46 License: GPL-3.0-or-later AND MIT Summary: Native factory-address integration for the Uke Bluetooth controller Requires: bluez systemd-udev Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description -n uke-bluetooth Read the six-byte device-local factory address from read-only persist and use the standard BlueZ management interface when the exact Uke controller requests it. Device and management events determine readiness. No calibration, unique address or proprietary firmware is included or modified. %package -n uke-boot-integration Version: 1.0.22 Release: 1.fc46 License: MIT Summary: Uke image configuration and native boot integration Requires: senemos-native-runtime(libstdc++) Requires: kmod bash systemd NetworkManager openssh-server chrony Requires: util-linux-core coreutils grep Provides: uke-usb-gadget-ownership-api = 2 Provides: uke-usb-manual-cdc-api = 2 %description -n uke-boot-integration Reviewed Uke partition-role, command-line and dracut input templates, with a native read-only prerequisite inspection command. Templates require explicit host-composer application; installation does not regenerate initramfs, select a default boot entry, alter EFI variables or write Android partitions. No UEFI firmware or proprietary firmware blob is included. Package success does not establish RAM/UFS/firmware handoff or physical tablet boot. %package -n uke-esp32-cdc Version: 1.0.22 Release: 1.fc46 License: MIT Summary: Native ESP32-S3 CDC journal forwarding for the Uke Core debug profile Requires: uke-boot-integration = 1.0.22-1.fc46 Requires: systemd senemos-native-runtime(libstdc++) %description -n uke-esp32-cdc Native raw-TTY configuration and real-root journal forwarding to an explicitly configured ttyACM USB-host port. Core composition may apply the separate original systemd debug-shell override for HID-driven VT2 commands and journal output. Installation activates no service, gadget, boot entry or partition write. %package -n uke-boot-recovery Version: 1.0.22 Release: 1.fc46 License: MIT Summary: Native Uke reboot commands and a three-minute startup recovery guard Requires: uke-boot-integration = 1.0.22-1.fc46 Requires: systemd systemd-udev %description -n uke-boot-recovery C++ recovery/bootloader commands and a native readiness observer. Installing this optional development package enables the guard on subsequent boots and provides local reboot aliases without replacing Fedora-owned executables. The host composer must include its dracut module to cover initramfs stalls. No Android, boot, EFI or partition data is written by package installation. %package -n uke-cdc-debug Version: 1.0.22 Release: 1.fc46 License: MIT Summary: Explicit local USB serial development console for Uke Requires: uke-boot-integration = 1.0.22-1.fc46 Requires: bash systemd %description -n uke-cdc-debug Original Bash development console over the standard CDC ACM gadget. It requires the explicit senemos.debug=cdc-acm kernel argument and manual service enablement. The console grants local root access over USB. USB networking stays optional. %package -n uke-wifi-factory Version: 1.0.22 Release: 1.fc46 License: MIT Summary: Read-only Uke factory WLAN identity for NetworkManager Requires: systemd NetworkManager senemos-native-runtime(libstdc++) %description -n uke-wifi-factory Reads and validates each installation's factory WLAN address from its physical read-only persist partition. Publishes a private runtime NetworkManager default before network startup. No device address or factory record is redistributed. The image must provide the protected persist mount and enable the service. %package -n uke-kernel-update Version: 1.0.22 Release: 1.fc46 License: MIT Summary: Native checked installation of matched Uke stock-ABL kernel bundles Requires: senemos-native-runtime(libstdc++) openssl-libs systemd rpm %description -n uke-kernel-update Validates an installed matched boot-v4 payload and module inventory before updating only the physical boot_b partition. Retains the running kernel modules and a synced backup, then verifies the complete partition after writing. Automatic updates require explicit local enablement and compatible boot-bundle RPMs. Installation alone does not activate partition writes or reboot. %package -n uke-firmware Version: 3.0.304.0 Release: 1 License: LicenseRef-Proprietary BuildArch: noarch Summary: Consolidated Xiaomi Pad 7 and POCO Pad X1 firmware AutoReqProv: no Provides: xiaomi-uke-firmware = 3.0.304.0-1.local Provides: uke-local-gpu-firmware = 3.0.304.0-1.local Provides: uke-local-sensor-data = 3.0.304.0-2.local Provides: uke-local-bluetooth-firmware = 3.0.304.0-2.local Provides: uke-owner-adsp-firmware = 3.0.304.0-1.owner Provides: uke-owner-wpss-firmware = 3.0.304.0-1.owner Provides: uke-owner-wlan-board = 3.0.304.0-1.owner Provides: uke-owner-wlan-regdb = 3.0.304.0-1.owner Obsoletes: xiaomi-uke-firmware <= 3.0.304.0-1.local Obsoletes: uke-local-gpu-firmware <= 3.0.304.0-1.local Obsoletes: uke-local-sensor-data <= 3.0.304.0-2.local Obsoletes: uke-local-bluetooth-firmware <= 3.0.304.0-2.local Obsoletes: uke-owner-adsp-firmware <= 3.0.304.0-1.owner Obsoletes: uke-owner-wpss-firmware <= 3.0.304.0-1.owner Obsoletes: uke-owner-wlan-board <= 3.0.304.0-1.owner Obsoletes: uke-owner-wlan-regdb <= 3.0.304.0-1.owner %description -n uke-firmware One data package for pinned Uke SSC defaults, DSP helper, Bluetooth candidates, ADSP, WPSS, WLAN board/regulatory data, GPU firmware and OEM touch assets. No application, service, factory address, persist or private calibration is included. Existing touch runtime and its qualified device-local reference remain separate. File-level redistribution review remains incomplete. %package -n uke-touchscreen Version: 1.0.13 Release: 1.fc46 License: GPL-3.0-or-later AND Apache-2.0 Summary: Native Novatek NT36532 touchscreen input for Xiaomi Uke Requires: senemos-uke-linux-kernel-mainline-modules >= 7.2.9-1.53.native53 Requires: senemos-native-runtime(libstdc++) kmod systemd systemd-udev %description -n uke-touchscreen Native C++ THP processing with standard Linux multitouch input. The foreground service resolves the GPIO controller from DT and validates the exact Uke SPI, panel-ID, controller, private firmware and geometry before publishing input. Private per-device inputs are provisioned separately and never redistributed. No panel voltage, GPIO output, factory calibration or Android partition write. %prep %setup -q ( mkdir -p "%{_builddir}/uke-hw-1.0.0/work/uke-bluetooth" cd '%{_builddir}/uke-hw-1.0.0/work/uke-bluetooth' rm -rf 'uke-bluetooth-0.1.0' /usr/lib/rpm/rpmuncompress -x '%{_builddir}/uke-hw-1.0.0/inputs/uke-bluetooth/uke-bluetooth-0.1.0.tar.gz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'uke-bluetooth-0.1.0' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . ) ( mkdir -p "%{_builddir}/uke-hw-1.0.0/work/uke-boot-integration" cd '%{_builddir}/uke-hw-1.0.0/work/uke-boot-integration' rm -rf 'uke-boot-integration-0.1.0' /usr/lib/rpm/rpmuncompress -x '%{_builddir}/uke-hw-1.0.0/inputs/uke-boot-integration/uke-boot-integration-0.1.0.tar.xz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'uke-boot-integration-0.1.0' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . ) ( mkdir -p "%{_builddir}/uke-hw-1.0.0/work/uke-touchscreen" cd '%{_builddir}/uke-hw-1.0.0/work/uke-touchscreen' rm -rf 'uke-touchscreen-0.1.0' /usr/lib/rpm/rpmuncompress -x '%{_builddir}/uke-hw-1.0.0/inputs/uke-touchscreen/uke-touchscreen-0.1.0.tar.xz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'uke-touchscreen-0.1.0' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . ) ( mkdir -p "%{_builddir}/uke-hw-1.0.0/work/uke-firmware" cd '%{_builddir}/uke-hw-1.0.0/work/uke-firmware' rm -rf 'uke-firmware-3.0.304.0' /usr/bin/mkdir -p 'uke-firmware-3.0.304.0' cd 'uke-firmware-3.0.304.0' /usr/lib/rpm/rpmuncompress -x '%{_builddir}/uke-hw-1.0.0/inputs/uke-firmware/uke-firmware-3.0.304.0.tar.xz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . ) %build ( cd "%{_builddir}/uke-hw-1.0.0/work/uke-bluetooth/uke-bluetooth-0.1.0" CFLAGS="${CFLAGS:--O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer }" ; export CFLAGS ; CXXFLAGS="${CXXFLAGS:--O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer }" ; export CXXFLAGS ; FFLAGS="${FFLAGS:--O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules }" ; export FFLAGS ; FCFLAGS="${FCFLAGS:--O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib64/gfortran/modules }" ; export FCFLAGS ; VALAFLAGS="${VALAFLAGS:--g}" ; export VALAFLAGS ; RUSTFLAGS="${RUSTFLAGS:--Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes -Clink-arg=-specs=/usr/lib/rpm/redhat/redhat-package-notes --cap-lints=warn}" ; export RUSTFLAGS ; LDFLAGS="${LDFLAGS:--Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes }" ; export LDFLAGS ; LT_SYS_LIBRARY_PATH="${LT_SYS_LIBRARY_PATH:-/usr/lib64:}" ; export LT_SYS_LIBRARY_PATH ; CC="${CC:-gcc}" ; export CC ; CXX="${CXX:-g++}" ; export CXX g++ $CXXFLAGS $LDFLAGS -std=c++20 -Wall -Wextra -Werror src/bluetooth-address.cpp -o uke-bluetooth-address ) ( cd "%{_builddir}/uke-hw-1.0.0/work/uke-boot-integration/uke-boot-integration-0.1.0" g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -std=c++17 -ffile-prefix-map=$PWD=. src/boot-status.cpp -o uke-boot-status -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -std=c++17 -Wall -Wextra -Werror -ffile-prefix-map=$PWD=. src/usb-port.cpp -o uke-usb-port $(pkg-config --cflags --libs libsystemd libdrm) -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -std=c++17 -ffile-prefix-map=$PWD=. src/esp32-cdc.cpp -o uke-esp32-cdc -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -std=c++17 -Wall -Wextra -Werror -ffile-prefix-map=$PWD=. src/wifi-factory.cpp -o uke-wifi-factory -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -std=c++17 -Wall -Wextra -Werror -ffile-prefix-map=$PWD=. src/boot-guard.cpp -o uke-boot-guard $(pkg-config --cflags --libs libsystemd wayland-client) -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -std=c++17 -Wall -Wextra -Werror -ffile-prefix-map=$PWD=. src/reboot.cpp -o uke-reboot $(pkg-config --cflags --libs libsystemd) -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -std=c++20 -Wall -Wextra -Werror -ffile-prefix-map=$PWD=. src/kernel-update.cpp -o uke-kernel-update $(pkg-config --cflags --libs openssl libsystemd) -Wl,-z,relro -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-hardened-ld-errors -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ) ( cd "%{_builddir}/uke-hw-1.0.0/work/uke-touchscreen/uke-touchscreen-0.1.0" g++ -std=c++20 -O2 -Wall -Wextra -Werror -Wno-unused-function \ src/touch-thp.cpp src/upstream/nt36532-thp/nvt_touch_core.cpp -lcrypto -lsystemd -o uke-touch-thp ) ( cd "%{_builddir}/uke-hw-1.0.0/work/uke-firmware/uke-firmware-3.0.304.0" ) %install ( cd "%{_builddir}/uke-hw-1.0.0/work/uke-bluetooth/uke-bluetooth-0.1.0" install -Dm755 uke-bluetooth-address %{buildroot}/usr/libexec/uke-bluetooth-address install -Dm644 packaging/uke-bluetooth-address.service %{buildroot}/usr/lib/systemd/system/uke-bluetooth-address.service install -Dm644 packaging/70-uke-bluetooth.rules %{buildroot}/usr/lib/udev/rules.d/70-uke-bluetooth.rules ) ( cd "%{_builddir}/uke-hw-1.0.0/work/uke-boot-integration/uke-boot-integration-0.1.0" install -Dm644 src/units/70-uke-chronyd-clock.conf %{buildroot}/usr/lib/systemd/system/chronyd.service.d/70-uke-clock.conf install -Dm755 uke-boot-status %{buildroot}/usr/bin/uke-boot-status install -Dm755 uke-usb-port %{buildroot}/usr/bin/uke-usb-port install -Dm644 src/units/uke-usb-observer.service %{buildroot}/usr/lib/systemd/system/uke-usb-observer.service install -Dm644 src/profiles/org.senemos.Uke.USB1.conf %{buildroot}/usr/share/dbus-1/system.d/org.senemos.Uke.USB1.conf install -Dm755 uke-wifi-factory %{buildroot}/usr/libexec/senemos-uke/uke-wifi-factory install -Dm644 src/units/uke-wifi-factory.service %{buildroot}/usr/lib/systemd/system/uke-wifi-factory.service install -d %{buildroot}/usr/share/senemos/boot/uke install -m644 src/profiles/* %{buildroot}/usr/share/senemos/boot/uke/ install -Dm644 src/units/uke-cdc-acm.service %{buildroot}/usr/lib/systemd/system/uke-cdc-acm.service install -Dm644 src/units/uke-cdc-shell.service %{buildroot}/usr/lib/systemd/system/uke-cdc-shell.service install -Dm755 src/uke-usb-network.sh %{buildroot}/usr/libexec/senemos-uke/uke-usb-network install -Dm644 src/profiles/usb-sharing %{buildroot}/etc/senemos/usb-sharing install -Dm644 src/profiles/80-uke-usb.preset %{buildroot}/usr/lib/systemd/system-preset/80-uke-usb.preset install -Dm644 src/units/uke-usb-network.service %{buildroot}/usr/lib/systemd/system/uke-usb-network.service install -Dm644 src/units/uke-usb-network-shell.service %{buildroot}/usr/lib/systemd/system/uke-usb-network-shell.service install -Dm644 src/profiles/uke-coresight-bringup.conf %{buildroot}/usr/lib/modprobe.d/uke-coresight-bringup.conf install -Dm755 uke-esp32-cdc %{buildroot}/usr/libexec/senemos-uke/uke-esp32-cdc install -Dm644 src/units/uke-esp32-cdc-log.service %{buildroot}/usr/lib/systemd/system/uke-esp32-cdc-log.service install -Dm755 uke-reboot %{buildroot}/usr/bin/uke-reboot install -Dm755 uke-kernel-update %{buildroot}/usr/bin/uke-kernel-update install -Dm644 src/profiles/kernel-update.conf %{buildroot}/etc/senemos/kernel-update.conf install -Dm755 uke-boot-guard %{buildroot}/usr/libexec/senemos-uke/uke-boot-guard install -Dm644 src/units/uke-boot-guard.service %{buildroot}/usr/lib/systemd/system/uke-boot-guard.service install -Dm644 src/profiles/uke-reboot.conf %{buildroot}/usr/lib/modules-load.d/uke-reboot.conf install -Dm755 src/dracut/93uke-boot-guard/module-setup.sh %{buildroot}/usr/lib/dracut/modules.d/93uke-boot-guard/module-setup.sh install -d %{buildroot}/usr/lib/systemd/system/sysinit.target.wants %{buildroot}/usr/local/{bin,sbin} ln -s ../uke-boot-guard.service %{buildroot}/usr/lib/systemd/system/sysinit.target.wants/uke-boot-guard.service ln -s ../../../usr/bin/uke-reboot %{buildroot}/usr/local/bin/reboot ln -s ../../../usr/bin/uke-reboot %{buildroot}/usr/local/sbin/reboot ) ( cd "%{_builddir}/uke-hw-1.0.0/work/uke-touchscreen/uke-touchscreen-0.1.0" install -Dm755 uke-touch-thp %{buildroot}/usr/libexec/senemos-uke/uke-touch-thp install -Dm644 src/units/uke-touchscreen.service %{buildroot}/usr/lib/systemd/system/uke-touchscreen.service install -Dm644 src/units/80-uke-touchscreen.preset %{buildroot}/usr/lib/systemd/system-preset/80-uke-touchscreen.preset install -Dm644 src/modules-load.d/uke-touchscreen.conf %{buildroot}/usr/lib/modules-load.d/uke-touchscreen.conf install -Dm644 src/modprobe.d/uke-touchscreen.conf %{buildroot}/usr/lib/modprobe.d/uke-touchscreen.conf install -Dm644 src/udev/70-uke-touchscreen.rules %{buildroot}/usr/lib/udev/rules.d/70-uke-touchscreen.rules install -Dm644 src/upstream/nt36532-thp/LICENSE %{buildroot}/usr/share/licenses/uke-touchscreen/THP-LICENSE install -Dm644 LICENSE.GPL-3.0 %{buildroot}/usr/share/licenses/uke-touchscreen/GPL-3.0 ) ( cd "%{_builddir}/uke-hw-1.0.0/work/uke-firmware/uke-firmware-3.0.304.0" install -d %{buildroot}/usr cp -a usr/. %{buildroot}/usr/ install -d %{buildroot}/usr/lib/firmware/qcom/uke/touch cp -a touch-inputs/. %{buildroot}/usr/lib/firmware/qcom/uke/touch/ find %{buildroot}/usr/lib/firmware/qcom/uke/touch -type d -exec chmod 755 {} + find %{buildroot}/usr/lib/firmware/qcom/uke/touch -type f -exec chmod 644 {} + ) mv "%{buildroot}/usr/lib/firmware" "%{_builddir}/uke-hw-1.0.0/firmware-unprocessed" %check mv "%{_builddir}/uke-hw-1.0.0/firmware-unprocessed" "%{buildroot}/usr/lib/firmware" ( cd "%{_builddir}/uke-hw-1.0.0/work/uke-bluetooth/uke-bluetooth-0.1.0" g++ -std=c++20 -O2 -Wall -Wextra -Werror -Wno-unused-function tests/bluetooth-address.cpp -o contract ./contract ) ( cd "%{_builddir}/uke-hw-1.0.0/work/uke-boot-integration/uke-boot-integration-0.1.0" g++ -std=c++17 -O2 -Wall -Wextra -Werror tests/usb-port.cpp -o usb-port-contract ./usb-port-contract bash tests/usb-inventory.sh bash tests/usb-auto.sh bash tests/usb-ownership.sh g++ -std=c++17 -Wall -Wextra -Werror -O2 tests/wifi-factory.cpp -o wifi-factory-contract ./wifi-factory-contract bash tests/startup-contract.sh bash tests/startup-native.sh g++ -std=c++20 -O2 -Wall -Wextra -Werror tests/kernel-update.cpp -o kernel-update-contract $(pkg-config --cflags --libs openssl libsystemd) ./kernel-update-contract ) ( cd "%{_builddir}/uke-hw-1.0.0/work/uke-touchscreen/uke-touchscreen-0.1.0" g++ -std=c++20 -O2 -Wall -Wextra -Werror tests/touch-assignment.cpp \ -o touch-assignment-contract timeout 15 bash -c 'ulimit -v 262144; exec ./touch-assignment-contract' g++ -std=c++20 -O2 -Wall -Wextra -Werror tests/touch-input.cpp \ src/upstream/nt36532-thp/nvt_touch_core.cpp -lcrypto -lsystemd -o touch-input-contract ./touch-input-contract g++ -std=c++20 -O2 -Wall -Wextra -Werror tests/touch-normal-probe.cpp \ -lcrypto -o touch-command-contract ./touch-command-contract ) ( cd "%{_builddir}/uke-hw-1.0.0/work/uke-firmware/uke-firmware-3.0.304.0" sha256sum -c --strict MANIFEST.sha256 find usr -type f -print0 | while IFS= read -r -d '' file; do cmp -- "$file" "%{buildroot}/$file" || exit; done diff -r touch-inputs %{buildroot}/usr/lib/firmware/qcom/uke/touch test "$(find %{buildroot}/usr/lib/firmware %{buildroot}/usr/share/uke-sensors -type f | wc -l)" = 217 test ! -e %{buildroot}/var/lib/uke-touch ) %files %license LICENSE %doc README %post -n uke-bluetooth if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Initial installation /usr/lib/systemd/systemd-update-helper install-system-units uke-bluetooth-address.service || : fi %preun -n uke-bluetooth if [ $1 -eq 0 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Package removal, not upgrade /usr/lib/systemd/systemd-update-helper remove-system-units uke-bluetooth-address.service || : fi %postun -n uke-bluetooth %files -n uke-bluetooth %license work/uke-bluetooth/uke-bluetooth-0.1.0/LICENSE work/uke-bluetooth/uke-bluetooth-0.1.0/LICENSE.GPL-3.0 %doc work/uke-bluetooth/uke-bluetooth-0.1.0/docs/BLUETOOTH.md /usr/libexec/uke-bluetooth-address /usr/lib/systemd/system/uke-bluetooth-address.service /usr/lib/udev/rules.d/70-uke-bluetooth.rules %files -n uke-boot-integration %license work/uke-boot-integration/uke-boot-integration-0.1.0/LICENSE %doc work/uke-boot-integration/uke-boot-integration-0.1.0/README.md %doc work/uke-boot-integration/uke-boot-integration-0.1.0/docs/USB-TYPEC.md /usr/bin/uke-boot-status /usr/bin/uke-usb-port /usr/lib/systemd/system/uke-usb-observer.service /usr/share/dbus-1/system.d/org.senemos.Uke.USB1.conf /usr/lib/systemd/system/chronyd.service.d/70-uke-clock.conf /usr/share/senemos/boot/uke /usr/lib/systemd/system/uke-cdc-acm.service /usr/libexec/senemos-uke/uke-usb-network %config(noreplace) /etc/senemos/usb-sharing /usr/lib/systemd/system-preset/80-uke-usb.preset /usr/lib/systemd/system/uke-usb-network.service /usr/lib/systemd/system/uke-usb-network-shell.service /usr/lib/modprobe.d/uke-coresight-bringup.conf %files -n uke-esp32-cdc %license work/uke-boot-integration/uke-boot-integration-0.1.0/LICENSE /usr/libexec/senemos-uke/uke-esp32-cdc /usr/lib/systemd/system/uke-esp32-cdc-log.service %files -n uke-cdc-debug /usr/lib/systemd/system/uke-cdc-shell.service %files -n uke-wifi-factory %license work/uke-boot-integration/uke-boot-integration-0.1.0/LICENSE /usr/libexec/senemos-uke/uke-wifi-factory /usr/lib/systemd/system/uke-wifi-factory.service %files -n uke-kernel-update %license work/uke-boot-integration/uke-boot-integration-0.1.0/LICENSE %doc work/uke-boot-integration/uke-boot-integration-0.1.0/docs/KERNEL-UPDATES.md /usr/bin/uke-kernel-update %dir /etc/senemos %config(noreplace) /etc/senemos/kernel-update.conf %files -n uke-boot-recovery %license work/uke-boot-integration/uke-boot-integration-0.1.0/LICENSE /usr/bin/uke-reboot /usr/local/bin/reboot /usr/local/sbin/reboot /usr/libexec/senemos-uke/uke-boot-guard /usr/lib/systemd/system/uke-boot-guard.service /usr/lib/systemd/system/sysinit.target.wants/uke-boot-guard.service /usr/lib/modules-load.d/uke-reboot.conf /usr/lib/dracut/modules.d/93uke-boot-guard %post -n uke-touchscreen if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Initial installation /usr/lib/systemd/systemd-update-helper install-system-units uke-touchscreen.service || : fi %preun -n uke-touchscreen if [ $1 -eq 0 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Package removal, not upgrade /usr/lib/systemd/systemd-update-helper remove-system-units uke-touchscreen.service || : fi %postun -n uke-touchscreen if [ $1 -ge 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Package upgrade, not uninstall /usr/lib/systemd/systemd-update-helper mark-restart-system-units uke-touchscreen.service || : fi %files -n uke-touchscreen /usr/libexec/senemos-uke/uke-touch-thp /usr/lib/systemd/system/uke-touchscreen.service /usr/lib/systemd/system-preset/80-uke-touchscreen.preset /usr/lib/modules-load.d/uke-touchscreen.conf /usr/lib/modprobe.d/uke-touchscreen.conf /usr/lib/udev/rules.d/70-uke-touchscreen.rules %license /usr/share/licenses/uke-touchscreen/THP-LICENSE %license /usr/share/licenses/uke-touchscreen/GPL-3.0 %files -n uke-firmware %license work/uke-firmware/uke-firmware-3.0.304.0/vendor-NOTICE.xml.gz work/uke-firmware/uke-firmware-3.0.304.0/odm-NOTICE.xml.gz %doc work/uke-firmware/uke-firmware-3.0.304.0/PUBLICATION.txt work/uke-firmware/uke-firmware-3.0.304.0/local-firmware-candidates.json work/uke-firmware/uke-firmware-3.0.304.0/oem-runtime-source.json /usr/share/uke-sensors /usr/lib/firmware/adsp.* /usr/lib/firmware/adsp_dtb.* /usr/lib/firmware/ath11k/WCN6750/hw1.0/board.bin /usr/lib/firmware/ath11k/WCN6750/hw1.0/regdb.bin /usr/lib/firmware/qca6750/wpss.* /usr/lib/firmware/qcom/gen71100_* /usr/lib/firmware/qcom/uke/sensors /usr/lib/firmware/qcom/uke/touch /usr/lib/firmware/qca %changelog * Tue Oct 20 2026 Senemos Maintainers <75160848+MCC45TR@users.noreply.github.com> - 1.0.0-1 - Build reviewed child recipes under one source family without binary repackaging.