%global debug_package %{nil} Name: uke-extras Version: 1.0.2 Release: 2%{?dist} Summary: Uke extras package selection and source family License: MIT URL: https://github.com/MCC45TR/uke-linux-hardware-support Source0: uke-extras-1.0.2.tar.xz ExclusiveArch: aarch64 SourceLicense: MIT AND (GPL-2.0-only AND GPL-3.0-or-later AND Apache-2.0 AND MIT AND BSD-2-Clause) AND (GPL-2.0-or-later AND LGPL-2.0-or-later) AND (MIT) Suggests: uke-plymonth = 1.0.2-2%{?dist} Suggests: uke-orangefox-recovery Suggests: material-decoration BuildRequires: cmake BuildRequires: extra-cmake-modules BuildRequires: gcc-c++ BuildRequires: gettext BuildRequires: jq BuildRequires: kdecoration-devel >= 6.6 BuildRequires: kf6-kcmutils-devel BuildRequires: kf6-kconfig-devel BuildRequires: kf6-kconfigwidgets-devel BuildRequires: kf6-kcoreaddons-devel BuildRequires: kf6-kguiaddons-devel BuildRequires: kf6-ki18n-devel BuildRequires: kf6-kiconthemes-devel BuildRequires: kf6-kservice-devel BuildRequires: kf6-kwindowsystem-devel BuildRequires: kwin-devel >= 6.6 BuildRequires: libdrm-devel BuildRequires: libepoxy-devel BuildRequires: qt6-qtbase-devel BuildRequires: qt6-qtdeclarative-devel BuildRequires: qt6-qttools-devel BuildRequires: vulkan-loader-devel BuildRequires: bash tar gzip coreutils jq BuildRequires: tar xz %description Logical installation selection. Child RPMs remain separately installable. This package adds no process and does not enable hardware or prove support. %package -n material-decoration Version: 20261006.094154 Release: 4.fc46 License: GPL-2.0-or-later AND LGPL-2.0-or-later Summary: Material window decoration and configuration for KWin 6 Requires: kwin(aarch-64) >= 6.6 %description -n material-decoration An optional Qt 6/C++ window decoration for KWin with an integrated application menu and search. Installing the package does not select or activate the decoration, and it does not replace Fedora KDE packages. %package -n uke-orangefox-recovery Version: 12.0~preview3.20261010 Release: 3.fc46 License: GPL-2.0-only AND GPL-3.0-or-later AND Apache-2.0 AND MIT AND BSD-2-Clause Summary: OrangeFox recovery preview images for Xiaomi Pad 7 and POCO Pad X1 Provides: uke-recovery-image %description -n uke-orangefox-recovery DNF-managed, checksum-verified delivery of the existing OrangeFox v003 preview. Installs images and records as data without flashing, unlocking, running an installer or changing boot selection. The IMG requires the installed Android boot stack; it is not a temporary fastboot boot image. ZIP installation is unavailable. Firmware compatibility and physical rollback require separate tests. The source snapshots and exact upstream revisions are listed in SOURCE-OFFER. %package -n uke-plymonth Version: 1.0.2 Release: 2.fc46 License: MIT BuildArch: noarch Summary: Optional Senemos Uke Plymouth theme Requires: plymouth plymouth-plugin-script Provides: plymouth-uke = 1.0.2-1 Obsoletes: plymouth-uke < 1.0.2-1 Conflicts: plymouth-uke %description -n uke-plymonth A renderer-size-aware text theme for Uke development images. It installs optional theme data only; it does not set the default theme, regenerate an initramfs, select a boot entry or infer working Uke graphics. %prep %setup -q ( mkdir -p "%{_builddir}/uke-extras-1.0.2/work/uke-plymonth" cd '%{_builddir}/uke-extras-1.0.2/work/uke-plymonth' rm -rf 'uke-plymonth-1.0.2' /usr/lib/rpm/rpmuncompress -x '%{_builddir}/uke-extras-1.0.2/inputs/uke-plymonth/uke-plymonth-1.0.2.tar.xz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'uke-plymonth-1.0.2' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . ) ( mkdir -p "%{_builddir}/uke-extras-1.0.2/work/uke-orangefox-recovery" cd '%{_builddir}/uke-extras-1.0.2/work/uke-orangefox-recovery' rm -rf 'uke-orangefox-recovery-12.0~preview3.20261010' /usr/lib/rpm/rpmuncompress -x '%{_builddir}/uke-extras-1.0.2/inputs/uke-orangefox-recovery/uke-orangefox-recovery-12.0~preview3.20261010.tar.gz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'uke-orangefox-recovery-12.0~preview3.20261010' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . sha256sum -c PACKAGE-SHA256SUMS jq -e '.device == "uke" and .validation.no_python_payload == true and .validation.payload_privacy == true and .validation.physical_device == false' ARTIFACT-MANIFEST.json ) ( mkdir -p "%{_builddir}/uke-extras-1.0.2/work/material-decoration" test "$(sha256sum %{_builddir}/uke-extras-1.0.2/inputs/material-decoration/material-decoration-0b778253ad6c8eb7fc227bd9d486515c00cdf377.tar.gz | cut -d ' ' -f1)" = "$(jq -er .sha256 %{_builddir}/uke-extras-1.0.2/inputs/material-decoration/material-decoration-source-lock.json)" cd '%{_builddir}/uke-extras-1.0.2/work/material-decoration' rm -rf 'material-decoration-0b778253ad6c8eb7fc227bd9d486515c00cdf377' /usr/lib/rpm/rpmuncompress -x '%{_builddir}/uke-extras-1.0.2/inputs/material-decoration/material-decoration-0b778253ad6c8eb7fc227bd9d486515c00cdf377.tar.gz' STATUS=$? if [ $STATUS -ne 0 ]; then exit $STATUS fi cd 'material-decoration-0b778253ad6c8eb7fc227bd9d486515c00cdf377' /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . /usr/lib/rpm/rpmuncompress %{_builddir}/uke-extras-1.0.2/inputs/material-decoration/0001-declare-Qt-Qml-imports.patch | /usr/bin/patch -p1 -s --fuzz=0 --no-backup-if-mismatch -f # KPlugin derives the decoration ID from materialdecoration.so. Upstream's # embedded, differently named ID floods System Settings with warnings. # Keep this conditional on the metadata shape and safe when upstream fixes it. jq 'del(.KPlugin.Id)' src/material.json > src/material.json.new mv src/material.json.new src/material.json ) %build ( cd "%{_builddir}/uke-extras-1.0.2/work/uke-orangefox-recovery/uke-orangefox-recovery-12.0~preview3.20261010" # Images were built at the exact published source checkpoint; this package # verifies and delivers that release. It does not claim a fresh recovery build. ) ( cd "%{_builddir}/uke-extras-1.0.2/work/material-decoration/material-decoration-0b778253ad6c8eb7fc227bd9d486515c00cdf377" 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/cmake \ -S "." \ -B "redhat-linux-build" \ -G Ninja \ -DCMAKE_C_FLAGS_RELEASE:STRING="-DNDEBUG" \ -DCMAKE_CXX_FLAGS_RELEASE:STRING="-DNDEBUG" \ -DCMAKE_Fortran_FLAGS_RELEASE:STRING="-DNDEBUG" \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DCMAKE_INSTALL_DO_STRIP:BOOL=OFF \ -DCMAKE_INSTALL_PREFIX:PATH=/usr \ -DCMAKE_INSTALL_FULL_SBINDIR:PATH=/usr/bin \ -DCMAKE_INSTALL_SBINDIR:PATH=bin \ -DINCLUDE_INSTALL_DIR:PATH=/usr/include \ -DLIB_INSTALL_DIR:PATH=/usr/lib64 \ -DSYSCONF_INSTALL_DIR:PATH=/etc \ -DSHARE_INSTALL_PREFIX:PATH=/usr/share \ -DLIB_SUFFIX=64 \ -DBUILD_SHARED_LIBS:BOOL=ON -DFORCE_X11=OFF /usr/bin/cmake --build "redhat-linux-build" -j${RPM_BUILD_NCPUS} --verbose ) %install ( cd "%{_builddir}/uke-extras-1.0.2/work/uke-plymonth/uke-plymonth-1.0.2" install -d %{buildroot}/usr/share/plymouth/themes/senemos-uke install -m644 src/plymouth-uke/* %{buildroot}/usr/share/plymouth/themes/senemos-uke/ ) ( cd "%{_builddir}/uke-extras-1.0.2/work/uke-orangefox-recovery/uke-orangefox-recovery-12.0~preview3.20261010" destination=%{buildroot}/usr/share/senemos/recovery/uke/12.0~preview3.20261010 mkdir -p "$destination" install -m644 *.img *.zip ARTIFACT-MANIFEST.json release-lock.json \ PACKAGE-SHA256SUMS ORANGEFOX-SOURCE-PINS.xml STOCK-KERNEL-SOURCE.json "$destination/" # Source/license records describe the complete artifact; no tablet script runs. install -m644 DELIVERY.md SOURCE-OFFER.md INSTALL.md LICENSE "$destination/" cp -r licenses "$destination/" ) ( cd "%{_builddir}/uke-extras-1.0.2/work/material-decoration/material-decoration-0b778253ad6c8eb7fc227bd9d486515c00cdf377" DESTDIR="%{buildroot}" /usr/bin/cmake --install "redhat-linux-build" /usr/lib/rpm/find-lang.sh %{buildroot} materialdecoration ) %check ( cd "%{_builddir}/uke-extras-1.0.2/work/uke-plymonth/uke-plymonth-1.0.2" test -s %{buildroot}/usr/share/plymouth/themes/senemos-uke/plymouth-uke.script ! grep -Eq '(DeviceScale|/dev/|nabu|python)' %{buildroot}/usr/share/plymouth/themes/senemos-uke/* ) ( cd "%{_builddir}/uke-extras-1.0.2/work/uke-orangefox-recovery/uke-orangefox-recovery-12.0~preview3.20261010" for image in *.img; do test "$(head -c8 "$image")" = 'ANDROID!'; done sha256sum -c PACKAGE-SHA256SUMS ) ( cd "%{_builddir}/uke-extras-1.0.2/work/material-decoration/material-decoration-0b778253ad6c8eb7fc227bd9d486515c00cdf377" test "$(jq -r '.KPlugin.Id // empty' src/material.json)" = "" test -f %{buildroot}/usr/lib64/qt6/plugins/org.kde.kdecoration3/materialdecoration.so test -f %{buildroot}/usr/lib64/qt6/plugins/org.kde.kdecoration3.kcm/materialdecoration_kcm.so ) %files %license LICENSE %doc README %files -n uke-plymonth %license work/uke-plymonth/uke-plymonth-1.0.2/LICENSE %doc work/uke-plymonth/uke-plymonth-1.0.2/README.md /usr/share/plymouth/themes/senemos-uke/ %files -n uke-orangefox-recovery %license work/uke-orangefox-recovery/uke-orangefox-recovery-12.0~preview3.20261010/LICENSE %license work/uke-orangefox-recovery/uke-orangefox-recovery-12.0~preview3.20261010/licenses/*.txt %doc work/uke-orangefox-recovery/uke-orangefox-recovery-12.0~preview3.20261010/DELIVERY.md work/uke-orangefox-recovery/uke-orangefox-recovery-12.0~preview3.20261010/SOURCE-OFFER.md /usr/share/senemos/recovery/uke/12.0~preview3.20261010/ %files -n material-decoration -f work/material-decoration/material-decoration-0b778253ad6c8eb7fc227bd9d486515c00cdf377/materialdecoration.lang %license work/material-decoration/material-decoration-0b778253ad6c8eb7fc227bd9d486515c00cdf377/LICENSE %doc work/material-decoration/material-decoration-0b778253ad6c8eb7fc227bd9d486515c00cdf377/README.md /usr/lib64/qt6/plugins/org.kde.kdecoration3/materialdecoration.so /usr/lib64/qt6/plugins/org.kde.kdecoration3.kcm/materialdecoration_kcm.so /usr/share/metainfo/materialdecoration_kcm.json /usr/share/applications/*material*desktop %changelog * Tue Oct 20 2026 Senemos Maintainers <75160848+MCC45TR@users.noreply.github.com> - 1.0.2-2 - Build reviewed child recipes under one source family without binary repackaging.