%global debug_package %{nil} Name: uke-sensors Version: 1.0.2 Release: 1%{?dist} Summary: Uke sensors package selection and source family License: MIT URL: https://github.com/MCC45TR/uke-linux-hardware-support Source0: uke-sensors-1.0.2.tar.xz ExclusiveArch: aarch64 SourceLicense: MIT AND (GPL-3.0-or-later) AND (MIT) Requires: uke-libssc Requires: uke-iio-sensor-proxy Suggests: uke-ssc-fileservice Suggests: uke-front-color BuildRequires: bash gcc gcc-c++ meson ninja-build pkgconf-pkg-config BuildRequires: gcc gcc-c++ meson ninja-build pkgconf-pkg-config systemd-rpm-macros BuildRequires: gcc gcc-c++ systemd-rpm-macros BuildRequires: gcc-c++ make systemd-rpm-macros BuildRequires: meson = 1.12.1-2.fc46 BuildRequires: pkgconfig(glib-2.0) pkgconfig(gio-2.0) pkgconfig(qmi-glib) BuildRequires: pkgconfig(gudev-1.0) pkgconfig(polkit-gobject-1) BuildRequires: pkgconfig(libprotobuf-c) protobuf-c-compiler protobuf-compiler BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(udev) pkgconfig(systemd) pkgconfig(gio-2.0) BuildRequires: python3 = 3.15.0-1.fc46 %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-iio-sensor-proxy Version: 3.9 Release: 10.fc46 License: GPL-3.0-or-later Summary: Standard desktop sensor proxy with Qualcomm SSC support Requires: dbus Requires: libssc >= 0.4.4-3 Provides: uke-iio-sensor-proxy(ssc) = 1 Provides: uke-iio-sensor-proxy(uke-dual-light) = 1 Requires(post): /usr/bin/semodule /usr/bin/selinuxenabled Requires(postun): /usr/bin/semodule /usr/bin/selinuxenabled Requires(post): systemd Requires(preun): systemd Requires(postun): systemd Provides: iio-sensor-proxy(ssc) = 1 Provides: iio-sensor-proxy(uke-dual-light) = 1 Provides: iio-sensor-proxy = 3.9-10.fc46 Provides: iio-sensor-proxy%{?_isa} = 3.9-10.fc46 Obsoletes: iio-sensor-proxy < 3.9-10.fc46 Conflicts: iio-sensor-proxy Requires(pre): rpm systemd coreutils sed Requires(posttrans): systemd coreutils sed Requires(posttrans): /usr/bin/semodule /usr/bin/selinuxenabled selinux-policy-targeted %description -n uke-iio-sensor-proxy The upstream SensorProxy interface for desktop applications, built with SSC. Initialize sensors before accepting D-Bus claims. A narrow SELinux policy allows only the proxy's own QRTR socket. No firmware or calibration data is included. %package -n uke-libssc Version: 0.4.4 Release: 8.fc46 License: GPL-3.0-or-later Summary: Native Qualcomm Sensor Core client library Provides: libssc = 0.4.4-8.fc46 Provides: libssc%{?_isa} = 0.4.4-8.fc46 Obsoletes: libssc < 0.4.4-8.fc46 Conflicts: libssc %description -n uke-libssc Upstream SSC library and diagnostic client. Python mock servers are excluded from the runtime. Sensor availability and calibration depend on device firmware. %package -n uke-libssc-devel Version: 0.4.4 Release: 8.fc46 License: GPL-3.0-or-later Summary: Development files for uke-libssc Requires: uke-libssc(aarch-64) = 0.4.4-8.fc46 Provides: libssc-devel = 0.4.4-8.fc46 Provides: libssc-devel%{?_isa} = 0.4.4-8.fc46 Obsoletes: libssc-devel < 0.4.4-8.fc46 Conflicts: libssc-devel %description -n uke-libssc-devel Headers and pkg-config metadata for native SSC clients. %package -n uke-front-color Version: 1.0.2 Release: 3.fc46 License: MIT Summary: Native raw front-color snapshot publisher for Uke Requires: uke-ssc-fileservice >= 2026.09.21-8 Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description -n uke-front-color An explicitly activated native SSC client publishes bounded raw front-color snapshots for local readers. Units, calibration and DSP clock mapping remain unverified. Original SensorProxy continues to provide ambient light. No Python, factory data, firmware or per-device identifiers are included. %package -n uke-ssc-fileservice Version: 2026.09.21 Release: 11.fc46 License: GPL-3.0-or-later Summary: Native Uke SSC file service with a disposable registry Requires: iio-sensor-proxy(ssc) >= 1 Requires: iio-sensor-proxy(uke-dual-light) >= 1 Requires: /usr/share/uke-sensors/odm/json.lst Requires: /usr/share/uke-sensors/sns_reg.conf Requires: /usr/lib/firmware/qcom/uke/sensors/sns_tppe.so Requires: /usr/bin/findmnt Requires: /usr/bin/grep Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description -n uke-ssc-fileservice Serve the pinned upstream FastRPC implementation from a private RAM tree. Copy calibration from a read-only persist mount; firmware writes remain in RAM. Device-local firmware/configuration is required separately and is not redistributed here. Startup, restart and suspend remain device test gates. %prep %setup -q export PKG_CONFIG_PATH="%{_builddir}/uke-sensors-1.0.2/work/libssc/libssc/build/meson-uninstalled${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" export LD_LIBRARY_PATH="%{_builddir}/uke-sensors-1.0.2/work/libssc/libssc/build/src${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" ( mkdir -p "%{_builddir}/uke-sensors-1.0.2/work/libssc" echo '716d6bd6b34d2d753060c6b54c9a87e34fae75b724c763bf9ef487efa3621587 %{_builddir}/uke-sensors-1.0.2/inputs/libssc/libssc-v0.4.4.tar.gz' | sha256sum -c - cd '%{_builddir}/uke-sensors-1.0.2/work/libssc' rm -rf 'libssc' /usr/lib/rpm/rpmuncompress -x '%{_builddir}/uke-sensors-1.0.2/inputs/libssc/libssc-v0.4.4.tar.gz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'libssc' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . /usr/lib/rpm/rpmuncompress %{_builddir}/uke-sensors-1.0.2/inputs/libssc/0001-optional-python-mocks.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress %{_builddir}/uke-sensors-1.0.2/inputs/libssc/0002-report-qrtr-error.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress %{_builddir}/uke-sensors-1.0.2/inputs/libssc/0003-gyroscope-cli-units.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress %{_builddir}/uke-sensors-1.0.2/inputs/libssc/0004-light-data-type-and-validity.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress %{_builddir}/uke-sensors-1.0.2/inputs/libssc/0005-preserve-nonzero-mount-matrix.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress %{_builddir}/uke-sensors-1.0.2/inputs/libssc/0006-bounded-proximity-unpack-context.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f ) ( mkdir -p "%{_builddir}/uke-sensors-1.0.2/work/iio-sensor-proxy" echo '19a4ae99b1b8af603fc789841025f9747bf445418d69ec7389e75adb6c8186bf %{_builddir}/uke-sensors-1.0.2/inputs/iio-sensor-proxy/iio-sensor-proxy-3.9.tar.bz2' | sha256sum -c - cd '%{_builddir}/uke-sensors-1.0.2/work/iio-sensor-proxy' rm -rf 'iio-sensor-proxy-3.9' /usr/lib/rpm/rpmuncompress -x '%{_builddir}/uke-sensors-1.0.2/inputs/iio-sensor-proxy/iio-sensor-proxy-3.9.tar.bz2' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'iio-sensor-proxy-3.9' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . /usr/lib/rpm/rpmuncompress %{_builddir}/uke-sensors-1.0.2/inputs/iio-sensor-proxy/0001-initialize-before-dbus-name.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress %{_builddir}/uke-sensors-1.0.2/inputs/iio-sensor-proxy/0002-uke-dual-light.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f cp %{_builddir}/uke-sensors-1.0.2/inputs/iio-sensor-proxy/dual-light.h src/dual-light.h mkdir -p native-contract cp %{_builddir}/uke-sensors-1.0.2/inputs/iio-sensor-proxy/dual-light.cpp native-contract/dual-light.cpp ) ( mkdir -p "%{_builddir}/uke-sensors-1.0.2/work/uke-front-color" cd '%{_builddir}/uke-sensors-1.0.2/work/uke-front-color' rm -rf 'uke-front-color-0.1.0' /usr/lib/rpm/rpmuncompress -x '%{_builddir}/uke-sensors-1.0.2/inputs/uke-front-color/uke-front-color-0.1.0.tar.gz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'uke-front-color-0.1.0' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . ) ( mkdir -p "%{_builddir}/uke-sensors-1.0.2/work/uke-ssc-fileservice" echo 'ed7b0e704a5e8c20b77b013b4b34f3cddbe41d4cf546edc73f029501f7ebdec5 %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/hexagonrpc-510c87e5.tar.gz' | sha256sum -c - cd '%{_builddir}/uke-sensors-1.0.2/work/uke-ssc-fileservice' rm -rf 'uke-ssc-fileservice-2026.09.21' /usr/bin/mkdir -p 'uke-ssc-fileservice-2026.09.21' cd 'uke-ssc-fileservice-2026.09.21' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . tar -xf %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/hexagonrpc-510c87e5.tar.gz --strip-components=1 /usr/lib/rpm/rpmuncompress %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/0001-select-sequence-type.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/0002-verbose-native-u64.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/0003-map-oem-odm-sensor-config.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/0004-reject-mapped-symlinks.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/0005-reject-incomplete-shell-images.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f /usr/lib/rpm/rpmuncompress %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/0006-notify-listener-readiness.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f ) %build export PKG_CONFIG_PATH="%{_builddir}/uke-sensors-1.0.2/work/libssc/libssc/build/meson-uninstalled${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" export LD_LIBRARY_PATH="%{_builddir}/uke-sensors-1.0.2/work/libssc/libssc/build/src${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" ( cd "%{_builddir}/uke-sensors-1.0.2/work/libssc/libssc" 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 meson setup build --prefix=/usr --libdir=lib64 --buildtype=release -Dtests=false meson compile -C build ) ( cd "%{_builddir}/uke-sensors-1.0.2/work/iio-sensor-proxy/iio-sensor-proxy-3.9" 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 meson setup build --prefix=/usr --libdir=lib64 --libexecdir=/usr/libexec \ --buildtype=release -Dssc-support=enabled -Dtests=false -Dgtk-tests=false -Dgtk_doc=false meson compile -C build ) ( cd "%{_builddir}/uke-sensors-1.0.2/work/uke-front-color/uke-front-color-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 /usr/bin/make -O -j${RPM_BUILD_NCPUS} V=1 VERBOSE=1 build/uke-front-color ) ( cd "%{_builddir}/uke-sensors-1.0.2/work/uke-ssc-fileservice/uke-ssc-fileservice-2026.09.21" 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 gcc $CFLAGS $LDFLAGS -std=gnu11 -Wall -Wextra -Werror -Wno-unused-parameter \ -I include libhexagonrpc/*.c libhexagonrpc/interface/*.c hexagonrpcd/*.c \ hexagonrpcd/interface/*.c -lsystemd -o uke-hexagonrpcd g++ $CXXFLAGS $LDFLAGS -std=c++20 -Wall -Wextra -Werror %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/ssc-cache.cpp -o uke-ssc-cache ) %install export PKG_CONFIG_PATH="%{_builddir}/uke-sensors-1.0.2/work/libssc/libssc/build/meson-uninstalled${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" export LD_LIBRARY_PATH="%{_builddir}/uke-sensors-1.0.2/work/libssc/libssc/build/src${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" ( cd "%{_builddir}/uke-sensors-1.0.2/work/libssc/libssc" DESTDIR=%{buildroot} meson install -C build --no-rebuild ) ( cd "%{_builddir}/uke-sensors-1.0.2/work/iio-sensor-proxy/iio-sensor-proxy-3.9" DESTDIR=%{buildroot} meson install -C build --no-rebuild install -Dm644 %{_builddir}/uke-sensors-1.0.2/inputs/iio-sensor-proxy/uke-ssc.cil %{buildroot}/usr/share/selinux/packages/uke-ssc.cil if find %{buildroot} -type f \( -name '*.py' -o -iname '*python*' \) | grep -q .; then exit 1; fi ) ( cd "%{_builddir}/uke-sensors-1.0.2/work/uke-front-color/uke-front-color-0.1.0" install -Dm755 build/uke-front-color %{buildroot}/usr/libexec/uke-front-color install -Dm644 packaging/systemd/uke-front-color.service %{buildroot}/usr/lib/systemd/system/uke-front-color.service install -Dm644 packaging/systemd/90-uke-front-color.preset %{buildroot}/usr/lib/systemd/system-preset/90-uke-front-color.preset ) ( cd "%{_builddir}/uke-sensors-1.0.2/work/uke-ssc-fileservice/uke-ssc-fileservice-2026.09.21" install -Dm755 uke-hexagonrpcd %{buildroot}/usr/libexec/uke-hexagonrpcd install -Dm755 uke-ssc-cache %{buildroot}/usr/libexec/uke-ssc-cache install -Dm644 %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/uke-ssc-root.service %{buildroot}/usr/lib/systemd/system/uke-ssc-root.service install -Dm644 %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/uke-ssc-sensors.service %{buildroot}/usr/lib/systemd/system/uke-ssc-sensors.service install -Dm644 %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/uke-ssc-cache.service %{buildroot}/usr/lib/systemd/system/uke-ssc-cache.service install -Dm644 %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/iio-ssc-order.conf %{buildroot}/usr/lib/systemd/system/iio-sensor-proxy.service.d/uke-ssc.conf install -Dm644 %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/70-uke-ssc.rules %{buildroot}/usr/lib/udev/rules.d/70-uke-ssc.rules ) %check export PKG_CONFIG_PATH="%{_builddir}/uke-sensors-1.0.2/work/libssc/libssc/build/meson-uninstalled${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" export LD_LIBRARY_PATH="%{_builddir}/uke-sensors-1.0.2/work/libssc/libssc/build/src${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" ( cd "%{_builddir}/uke-sensors-1.0.2/work/libssc/libssc" bash %{_builddir}/uke-sensors-1.0.2/inputs/libssc/libssc-mount-matrix.sh src/libssc-sensor.c test -s build/src/libssc.so.2 g++ -std=c++20 -UNDEBUG -Wall -Wextra -Werror -I src %{_builddir}/uke-sensors-1.0.2/inputs/libssc/libssc-light-constructor.cpp \ $(pkg-config --cflags --libs gio-2.0) -L build/src -lssc -o light-constructor-test LD_LIBRARY_PATH="$PWD/build/src" ./light-constructor-test g++ -std=c++20 -UNDEBUG -Wall -Wextra -Werror -pthread -I src %{_builddir}/uke-sensors-1.0.2/inputs/libssc/libssc-proximity-context.cpp \ $(pkg-config --cflags --libs glib-2.0) -o proximity-context-test ./proximity-context-test if find %{buildroot} -type f \( -name '*.py' -o -iname '*python*' \) | grep -q .; then exit 1; fi ) ( cd "%{_builddir}/uke-sensors-1.0.2/work/iio-sensor-proxy/iio-sensor-proxy-3.9" g++ -std=c++20 -UNDEBUG -Wall -Wextra -Werror native-contract/dual-light.cpp -o dual-light-test ./dual-light-test meson test -C build --print-errorlogs grep -q '^#define HAS_LIBSSC "1"' build/src/config.h ) ( cd "%{_builddir}/uke-sensors-1.0.2/work/uke-front-color/uke-front-color-0.1.0" /usr/bin/make -O -j${RPM_BUILD_NCPUS} V=1 VERBOSE=1 test-front-color ) ( cd "%{_builddir}/uke-sensors-1.0.2/work/uke-ssc-fileservice/uke-ssc-fileservice-2026.09.21" mkdir contract for name in hexagonfs hexagonfs_mapped hexagonfs_virt_dir rpcd_builder; do gcc -std=gnu11 -O2 -Wall -Wextra -Werror -Wno-unused-parameter -I include \ -c hexagonrpcd/$name.c -o contract/$name.o || exit done g++ -std=c++20 -O2 -Wall -Wextra -Werror -I hexagonrpcd %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/hexagon-registry.cpp contract/*.o -o contract/registry ./contract/registry sed -n '/^static int create_shell_pd(/,/^}/p' hexagonrpcd/rpcd.c > contract/shell-function.h gcc -std=gnu11 -O2 -Wall -Wextra -Werror -I contract %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/hexagon-shell.c -o contract/shell ./contract/shell sed -n '/^static void \*start_reverse_tunnel(/,/^}/p' hexagonrpcd/rpcd.c > contract/listener-function.h gcc -std=gnu11 -O2 -Wall -Wextra -Werror -I contract %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/hexagon-readiness.c -o contract/readiness ./contract/readiness mkdir -p src tests cp %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/ssc-cache.cpp src/ssc-cache.cpp cp %{_builddir}/uke-sensors-1.0.2/inputs/uke-ssc-fileservice/ssc-cache-test.cpp tests/ssc-cache.cpp g++ -std=c++20 -O2 -Wall -Wextra -Werror tests/ssc-cache.cpp -o contract/cache mkdir contract/cache-fixture ./contract/cache "$PWD/contract/cache-fixture" ) %files %license LICENSE %doc README %files -n uke-libssc %license work/libssc/libssc/LICENSE /usr/lib64/libssc.so.2 /usr/bin/ssccli %files -n uke-libssc-devel /usr/include/libssc/ /usr/lib64/libssc.so /usr/lib64/pkgconfig/libssc.pc %post -n uke-iio-sensor-proxy if /usr/bin/selinuxenabled; then /usr/bin/semodule -i /usr/share/selinux/packages/uke-ssc.cil || exit 1 fi if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Initial installation /usr/lib/systemd/systemd-update-helper install-system-units iio-sensor-proxy.service || : fi %preun -n uke-iio-sensor-proxy 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 iio-sensor-proxy.service || : fi %postun -n uke-iio-sensor-proxy if test "$1" -eq 0 && /usr/bin/selinuxenabled; then /usr/bin/semodule -r uke-ssc || exit 1 fi 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 iio-sensor-proxy.service || : fi %files -n uke-iio-sensor-proxy %license work/iio-sensor-proxy/iio-sensor-proxy-3.9/COPYING %doc work/iio-sensor-proxy/iio-sensor-proxy-3.9/README.md /usr/bin/monitor-sensor /usr/libexec/iio-sensor-proxy /usr/lib/systemd/system/iio-sensor-proxy.service /usr/lib/udev/rules.d/*-iio-sensor-proxy.rules /usr/share/dbus-1/system.d/net.hadess.SensorProxy.conf /usr/share/polkit-1/actions/net.hadess.SensorProxy.policy /usr/share/selinux/packages/uke-ssc.cil %post -n uke-front-color if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Initial installation /usr/lib/systemd/systemd-update-helper install-system-units uke-front-color.service || : fi %preun -n uke-front-color 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-front-color.service || : fi %postun -n uke-front-color %files -n uke-front-color %license work/uke-front-color/uke-front-color-0.1.0/LICENSE %doc work/uke-front-color/uke-front-color-0.1.0/docs/FRONT-COLOR.md /usr/libexec/uke-front-color /usr/lib/systemd/system/uke-front-color.service /usr/lib/systemd/system-preset/90-uke-front-color.preset %post -n uke-ssc-fileservice if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then # Initial installation /usr/lib/systemd/systemd-update-helper install-system-units uke-ssc-cache.service uke-ssc-root.service uke-ssc-sensors.service || : fi %preun -n uke-ssc-fileservice 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-ssc-cache.service uke-ssc-root.service uke-ssc-sensors.service || : fi %postun -n uke-ssc-fileservice %files -n uke-ssc-fileservice %license work/uke-ssc-fileservice/uke-ssc-fileservice-2026.09.21/COPYING /usr/libexec/uke-hexagonrpcd /usr/libexec/uke-ssc-cache /usr/lib/systemd/system/uke-ssc-cache.service /usr/lib/systemd/system/uke-ssc-root.service /usr/lib/systemd/system/uke-ssc-sensors.service /usr/lib/systemd/system/iio-sensor-proxy.service.d/uke-ssc.conf /usr/lib/udev/rules.d/70-uke-ssc.rules %pre -n uke-iio-sensor-proxy old=iio-sensor-proxy; new=uke-iio-sensor-proxy; unit=iio-sensor-proxy.service; phase=save # POSIX shell fragment embedded only in RPM migration scriptlets. # Restore the admitted state; never enable a previously disabled hardware path. case "$phase" in save) [ -d /run/systemd/system ] || exit 0 test "$(rpm -q --qf '%%{NAME}' "$old" 2>/dev/null)" = "$old" || exit 0 state=/run/uke-rpm-migration [ ! -L "$state" ] && [ ! -L "$state/$new" ] || exit 1 install -d -m700 "$state" enabled=$(systemctl is-enabled "$unit" 2>/dev/null) || : active=$(systemctl is-active "$unit" 2>/dev/null) || : case "$enabled" in enabled|enabled-runtime|disabled|static|indirect|masked|masked-runtime) ;; *) exit 1;; esac case "$active" in active|inactive|failed|activating|deactivating) ;; *) exit 1;; esac (umask 077; printf '%%s\n%%s\n' "$enabled" "$active" >"$state/$new") ;; restore) if [ "$new" = uke-iio-sensor-proxy ]; then if /usr/bin/selinuxenabled; then /usr/bin/semodule -i /usr/share/selinux/packages/uke-ssc.cil || exit 1 else /usr/bin/semodule -n -s targeted -i /usr/share/selinux/packages/uke-ssc.cil || exit 1 fi fi state=/run/uke-rpm-migration [ -f "$state/$new" ] && [ ! -L "$state" ] && [ ! -L "$state/$new" ] || exit 0 enabled=$(sed -n '1p' "$state/$new") active=$(sed -n '2p' "$state/$new") current=$(systemctl is-enabled "$unit" 2>/dev/null) || : case "$current" in masked|masked-runtime) unlink "$state/$new"; exit 0;; esac systemctl daemon-reload || exit 1 case "$enabled" in enabled) systemctl enable "$unit" || exit 1;; enabled-runtime) systemctl enable --runtime "$unit" || exit 1;; masked|masked-runtime) unlink "$state/$new"; exit 0;; esac if [ "$active" = active ]; then systemctl start "$unit" || exit 1; fi unlink "$state/$new" ;; *) exit 1;; esac %posttrans -n uke-iio-sensor-proxy old=iio-sensor-proxy; new=uke-iio-sensor-proxy; unit=iio-sensor-proxy.service; phase=restore # POSIX shell fragment embedded only in RPM migration scriptlets. # Restore the admitted state; never enable a previously disabled hardware path. case "$phase" in save) [ -d /run/systemd/system ] || exit 0 test "$(rpm -q --qf '%%{NAME}' "$old" 2>/dev/null)" = "$old" || exit 0 state=/run/uke-rpm-migration [ ! -L "$state" ] && [ ! -L "$state/$new" ] || exit 1 install -d -m700 "$state" enabled=$(systemctl is-enabled "$unit" 2>/dev/null) || : active=$(systemctl is-active "$unit" 2>/dev/null) || : case "$enabled" in enabled|enabled-runtime|disabled|static|indirect|masked|masked-runtime) ;; *) exit 1;; esac case "$active" in active|inactive|failed|activating|deactivating) ;; *) exit 1;; esac (umask 077; printf '%%s\n%%s\n' "$enabled" "$active" >"$state/$new") ;; restore) if [ "$new" = uke-iio-sensor-proxy ]; then if /usr/bin/selinuxenabled; then /usr/bin/semodule -i /usr/share/selinux/packages/uke-ssc.cil || exit 1 else /usr/bin/semodule -n -s targeted -i /usr/share/selinux/packages/uke-ssc.cil || exit 1 fi fi state=/run/uke-rpm-migration [ -f "$state/$new" ] && [ ! -L "$state" ] && [ ! -L "$state/$new" ] || exit 0 enabled=$(sed -n '1p' "$state/$new") active=$(sed -n '2p' "$state/$new") current=$(systemctl is-enabled "$unit" 2>/dev/null) || : case "$current" in masked|masked-runtime) unlink "$state/$new"; exit 0;; esac systemctl daemon-reload || exit 1 case "$enabled" in enabled) systemctl enable "$unit" || exit 1;; enabled-runtime) systemctl enable --runtime "$unit" || exit 1;; masked|masked-runtime) unlink "$state/$new"; exit 0;; esac if [ "$active" = active ]; then systemctl start "$unit" || exit 1; fi unlink "$state/$new" ;; *) exit 1;; esac %changelog * Tue Oct 20 2026 Senemos Maintainers <75160848+MCC45TR@users.noreply.github.com> - 1.0.2-1 - Build reviewed child recipes under one source family without binary repackaging.