%global debug_package %{nil} Name: uke-hw Version: 1.0.0 Release: 2%{?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 Requires: uke-fastfetch-config Requires: uke-installation-profile = 1.0.31-1%{?dist} Suggests: uke-bluetooth Suggests: uke-touchscreen Suggests: uke-wifi-factory BuildRequires: gcc-c++ bash coreutils 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: 2.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: 2.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: 2.fc46 License: MIT Summary: Native ESP32-S3 CDC journal forwarding for the Uke Core debug profile Requires: uke-boot-integration = 1.0.22-2.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: 2.fc46 License: MIT Summary: Native Uke reboot commands and a three-minute startup recovery guard Requires: uke-boot-integration = 1.0.22-2.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: 2.fc46 License: MIT Summary: Explicit local USB serial development console for Uke Requires: uke-boot-integration = 1.0.22-2.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: 2.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: 2.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.fc46 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.fc46 Provides: uke-local-gpu-firmware = 3.0.304.0-1.local.fc46 Provides: uke-local-sensor-data = 3.0.304.0-2.local.fc46 Provides: uke-local-bluetooth-firmware = 3.0.304.0-2.local.fc46 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.fc46 Obsoletes: uke-local-gpu-firmware <= 3.0.304.0-1.local.fc46 Obsoletes: uke-local-sensor-data <= 3.0.304.0-2.local.fc46 Obsoletes: uke-local-bluetooth-firmware <= 3.0.304.0-2.local.fc46 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-installation-profile Version: 1.0.31 Release: 1.fc46 License: MIT Summary: Native classification of the Uke Linux root partition Requires: senemos-native-runtime(libstdc++) systemd Requires(posttrans): systemd coreutils grep %description -n uke-installation-profile Classify the mounted physical root and verify its boot selector using existing read-only system interfaces. Reconcile only the exact legacy unknown record; known records must match the fresh root observation. No block-device writes, slot change, service activation or reboot is performed. %package -n uke-touchscreen Version: 1.0.13 Release: 2.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. %package -n uke-fastfetch-config Version: 1.0.0 Release: 1%{?dist} Summary: Standard Fedora Fastfetch configuration for Uke License: MIT BuildArch: noarch Requires: fastfetch >= 2.68.0 %description -n uke-fastfetch-config A data-only profile for the original Fedora application. CPU vendor and name are read by upstream Fastfetch. Platform and advertised panel text are profile metadata, not measured capabilities. Local configuration is preserved. %prep %setup -q ( mkdir -p "%{_builddir}/uke-hw-1.0.0/work/uke-installation-profile" cd '%{_builddir}/uke-hw-1.0.0/work/uke-installation-profile' rm -rf 'uke-installation-profile-1.0.31' /usr/lib/rpm/rpmuncompress -x '%{_builddir}/uke-hw-1.0.0/inputs/uke-installation-profile/uke-installation-profile-1.0.31.tar.xz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'uke-installation-profile-1.0.31' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . ) ( 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-installation-profile/uke-installation-profile-1.0.31" 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/install-profile.cpp -o uke-install-profile -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-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-installation-profile/uke-installation-profile-1.0.31" install -Dm755 uke-install-profile %{buildroot}/usr/libexec/senemos-uke/uke-install-profile install -Dm644 src/units/uke-install-profile.service %{buildroot}/usr/lib/systemd/system/uke-install-profile.service ) ( 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 {} + ) install -Dm644 "%{_builddir}/uke-hw-1.0.0/fastfetch.jsonc" "%{buildroot}/etc/fastfetch/config.jsonc" 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-installation-profile/uke-installation-profile-1.0.31" CXX=g++ bash tests/installation-policy.sh ) ( 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 %posttrans -n uke-installation-profile if test -r /proc/device-tree/compatible && ! /usr/bin/systemd-detect-virt --quiet --chroot && ! /usr/bin/systemd-detect-virt --quiet --container && tr '\000' '\n' - 1.0.0-2 - Build reviewed child recipes under one source family without binary repackaging.