%global debug_package %{nil} %global _build_id_links none %global __os_install_post %{nil} %global _uke_out %{_topdir}/native-kernel-out %global uke_boot_userspace %{_topdir}/boot-userspace Name: uke-kernel-migration-check Version: 7.3.1 %if "%{version}" == "7.3.1" %global senemos_build_release 12212 %else %global senemos_build_release 1 %endif %global krel %{version}-%{senemos_build_release}-unstable %global uke_audio_driver %(printf 'uke%%s' '%{version}-%{senemos_build_release}u' | tr '.' '_') Release: 23%{?dist} Summary: Mainline Linux 7.3.1 Uke kernel with O82 display and Cliffs video License: GPL-2.0-only AND MIT AND BSD-3-Clause SourceLicense: GPL-2.0-only AND MIT AND BSD-3-Clause AND GPL-3.0-or-later AND Apache-2.0 URL: https://github.com/MCC45TR/senemos-uke-kernel-mainline Source0: linux-%{version}.tar.xz Source1: senemos-uke-adaptation-%{version}.tar.xz Source2: linux-%{version}.tar.sign Source3: linux-stable.asc Source4: senemos-native-profile-%{version}.tar.xz Source5: senemos-uke-boot-recipe.tar.xz Source6: boot-payload.json Source7: SINGLEBOOT.md Source8: singleboot-LICENSE ExclusiveArch: aarch64 BuildRequires: dt-schema = 2026.09-1.fc46 BuildRequires: bash bc bison flex clang llvm lld make gcc gcc-c++ perl BuildRequires: compiler-rt BuildRequires: libasan libubsan BuildRequires: elfutils-libelf-devel openssl-devel openssl ncurses-devel BuildRequires: pkgconfig(libsystemd) BuildRequires: alsa-topology-utils BuildRequires: alsa-lib-devel alsa-utils dt-schema BuildRequires: rsync tar xz zstd kmod git-core jq gnupg2 dtc BuildRequires: libfdt-devel BuildRequires: python3 BuildRequires: dracut systemd systemd-udev util-linux coreutils grep sed findutils binutils ripgrep gzip cpio f2fs-tools BuildRequires: clang = 23.1.5-1.fc46 BuildRequires: llvm = 23.1.5-1.fc46 BuildRequires: lld = 23.1.5-1.fc46 %description Complete cumulative source preparation and actual native objects for the next unstable Uke kernel. Text evidence only; no Image, final module or target operation. %prep uke_prep_start=$SECONDS expected=$(tar -xOJf %{SOURCE1} senemos-adaptation/source-lock.json | jq -er .source_sha256) test "$(sha256sum %{SOURCE0} | cut -d ' ' -f1)" = "$expected" signer=$(tar -xOJf %{SOURCE1} senemos-adaptation/source-lock.json | jq -er .signer) # GnuPG agent sockets cannot use arbitrarily long RPM build paths. keyring=$(mktemp -d) trap 'gpgconf --homedir "$keyring" --kill gpg-agent; rm -rf "$keyring"' EXIT gpg --homedir "$keyring" --batch --import %{SOURCE3} xz -cd %{SOURCE0} | gpg --homedir "$keyring" --batch --status-fd=1 \ --verify %{SOURCE2} - > %{_topdir}/source-verification.txt grep -F "[GNUPG:] VALIDSIG $signer " %{_topdir}/source-verification.txt %setup -q -n linux-%{version} tar -xJf %{SOURCE1} jq -r '.patches[].path | split("/") | last' senemos-adaptation/source-lock.json > senemos-expected-patches.txt cmp senemos-expected-patches.txt senemos-adaptation/patches/series while IFS="$(printf '\t')" read -r path expected; do case "$path" in patches/*) staged="senemos-adaptation/patches/${path##*/}" ;; configs/*) staged="senemos-adaptation/configs/${path##*/}" ;; *) exit 1 ;; esac test "$(sha256sum "$staged" | cut -d ' ' -f1)" = "$expected" || exit 1 done < senemos-applied-patches.txt while IFS= read -r patch_name; do test -n "$patch_name" || continue git apply --check "senemos-adaptation/patches/$patch_name" || exit 1 git apply "senemos-adaptation/patches/$patch_name" || exit 1 printf '%s\n' "$patch_name" >> senemos-applied-patches.txt done < senemos-adaptation/patches/series cmp senemos-expected-patches.txt senemos-applied-patches.txt tar -xJf %{SOURCE4} bash native-profile/prepare.sh "$PWD" mkdir -p native-generated/camera-sensors-before731 cp drivers/media/i2c/ov08d10.c drivers/media/i2c/ov13b10.c native-generated/camera-sensors-before731/ for sensor_patch in native-profile/src/camera/sensors/000[123]-*.patch; do git apply --check "$sensor_patch"; git apply "$sensor_patch"; done test "$(find native-profile/src/camera/sensors -name '000[123]-*.patch' | wc -l)" = 3 mkdir -p native-generated/camcc-baseline/drivers/clk/qcom cp drivers/clk/qcom/gdsc.c drivers/clk/qcom/gdsc.h native-generated/camcc-baseline/drivers/clk/qcom/ for patch in native-profile/src/camera/provider/000[123]-clk-qcom-gdsc-*.patch; do git apply --check "$patch"; git apply "$patch"; done test "$(find native-profile/src/camera/provider -name '000[123]-clk-qcom-gdsc-*.patch' | wc -l)" = 3 git apply --check native-profile/src/camera/provider/0004-clk-qcom-gdsc-permanent-storage.patch git apply native-profile/src/camera/provider/0004-clk-qcom-gdsc-permanent-storage.patch git apply --check native-profile/src/camera/sensors/0004-ov08d10-exposure-read-errors.patch git apply native-profile/src/camera/sensors/0004-ov08d10-exposure-read-errors.patch if grep -l GDSC_CONTROLLER_PM drivers/clk/qcom/*-*.c; then exit 1; fi cmp native-profile/src/input/nt36532-uke-spi.c drivers/input/touchscreen/nt36532-uke/nt36532-uke-spi.c tar -xJf %{SOURCE5} cmp boot-recipe/lock.json %{SOURCE6} (cd boot-recipe; jq -r '.source_assets[] | .sha256 + " " + .path' lock.json | sha256sum -c -) printf 'UKE_BUILD_STAGE source_prepare elapsed_s=%d\n' "$((SECONDS-uke_prep_start))" camss_dir=drivers/media/platform/qcom/camss mkdir -p native-generated/camss-before731/$camss_dir cp $camss_dir/camss-csiphy.c $camss_dir/camss-csiphy-3ph-1-0.c native-generated/camss-before731/$camss_dir/ patch -p1 --fuzz=0 -i native-profile/src/camera/camss/0001-media-camss-return-phy-setup-errors.patch patch -p1 --fuzz=0 -i native-profile/src/camera/camss/0002-media-camss-sm7675-resources.patch for header in csiphy-sm7675.h camss-sm7675-phy-ops.h camss-sm7675-data.h; do cp native-profile/src/camera/camss/$header $camss_dir/$header; done bash native-profile/src/camera/prepare-controller731.sh "$PWD" mkdir -p native-generated/cci-before731/drivers/i2c/busses cp drivers/i2c/busses/i2c-qcom-cci.c native-generated/cci-before731/drivers/i2c/busses/ printf '45b2dc46ea637f411a39f9352156e91d85a191b4fd3d2bfb44d5b7fc81d57693 drivers/i2c/busses/i2c-qcom-cci.c\n' | sha256sum -c --strict patch -p1 --fuzz=0 -i native-profile/src/camera/cci/0001-i2c-qcom-cci-initialize-all-completions.patch mkdir -p native-generated/at24-before731/drivers/nvmem cp drivers/nvmem/at24.c native-generated/at24-before731/drivers/nvmem/ printf 'f37ed370a86b2b850625ecd7e5e4d810b5feeb65c10f719a9e505aa8db2795a0 drivers/nvmem/at24.c\n' | sha256sum -c --strict printf '98452b4e32c41de9f74608356d2126e0743f7f229391577f0bb451bc180f2e3e Documentation/devicetree/bindings/eeprom/at24.yaml\n' | sha256sum -c --strict patch -p1 --fuzz=0 -i native-profile/src/camera/eeprom/0001-at24-readonly-vcc.patch patch -p1 --fuzz=0 -i native-profile/src/camera/eeprom/0002-at24-readonly-vcc-binding.patch install -m644 native-profile/src/camera/eeprom/at24-vcc-readonly.h drivers/nvmem/at24-vcc-readonly.h rpm -q dt-schema dt-doc-validate Documentation/devicetree/bindings/eeprom/at24.yaml cp drivers/regulator/qcom-rpmh-regulator-uke.c native-generated/rpmh-before-front731.c patch -p1 --fuzz=0 -i native-profile/src/camera/eeprom/0003-rpmh-front-vio.patch CC=clang bash native-profile/tests/o82-avr-contract.sh "$PWD" CXX=clang++ bash native-profile/tests/dpu-video-timing-contract.sh "$PWD" CC=clang bash native-profile/tests/msm-retirement-proof-contract.sh "$PWD" CC=clang bash native-profile/tests/dpu-reservation-contract.sh "$PWD" "$PWD/native-generated/dpu-reservation-before56" CC=clang bash native-profile/tests/dpu-color-topology-contract.sh "$PWD/drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c" bash native-profile/tests/o82-profile-loader-contract.sh native-profile bash native-profile/tests/o82-lutbus-contract.sh bash native-profile/tests/o82-regdma-transport-contract.sh native-profile "$PWD" bash native-profile/tests/o82-atomic-contract.sh native-profile "$PWD" bash native-profile/tests/cdsp-actlr-qualify.sh "$PWD" bash native-profile/src/camera/provider/apply-gcc-config731.sh "$PWD" bash native-profile/packaging/native/prepare-queued-kernel731.sh "$PWD" native-profile %build bash native-profile/packaging/native/check-cumulative-camera731.sh "$PWD" %{_uke_out} prepared bash native-profile/packaging/native/check-camera-next731.sh "$PWD" %{_uke_out} prepared cmp native-profile/src/sensors/uke-ssc-iio.c drivers/iio/common/uke-ssc/uke-ssc-iio.c bash native-profile/tests/ssc-native-contract.sh "$PWD" # UKE_GOVERNOR_REFERENCE_EXTENSION_731 for role in cdsp waydroid cdsp-before; do ref="$PWD/native-generated/nfc-$role-reference" mkdir -p "$ref" if [[ $role == cdsp-before ]]; then cp native-profile/configs/governor-before-nfc-cdsp.config "$ref/.config" else cp "native-profile/configs/nfc-$role-reference.config" "$ref/.config" fi bash scripts/config --file "$ref/.config" --set-str INITRAMFS_SOURCE "%{_uke_out}/boot-initramfs.cpio.gz" make -s O="$ref" ARCH=arm64 LLVM=1 LLVM_IAS=1 olddefconfig done bash native-profile/tests/cdsp-pogo-toolchain-contract.sh native-generated/nfc-cdsp-before-reference/.config bash native-profile/tests/cdsp-pogo-config-contract.sh native-generated/nfc-cdsp-before-reference/.config bash native-profile/tests/governor-config-contract.sh native-generated/nfc-cdsp-before-reference/.config native-generated/nfc-cdsp-reference/.config CC=clang bash native-profile/tests/fm19511-wakeup-owner-regression.sh "$PWD" CC=clang FM19511_WAKEUP_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/fm19511-wakeup-owner-regression.sh "$PWD" ulimit -c 0 touch_before_log=$(mktemp) set +e UKE_TOUCH_SOURCE="$PWD/native-profile/tests/fixtures/touch-before-recovery.c" CC=clang bash native-profile/tests/touch-transport-contract.sh > "$touch_before_log" 2>&1 touch_before_status=$? set -e if test "$touch_before_status" != 134; then cat "$touch_before_log"; exit 1; fi grep -Fq '!touch.fault && touch.recovery_attempts == 1' "$touch_before_log" rm -f -- "$touch_before_log" echo 'Original touch driver cannot recover a transient read fault (expected status134)' UKE_TOUCH_SANITIZE=1 CC=clang bash native-profile/tests/touch-transport-contract.sh uke_build_start=$SECONDS CC=clang bash native-profile/tests/front-eeprom-fdt731-contract.sh CC=clang FRONT_EEPROM_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/front-eeprom-fdt731-contract.sh CXX=clang++ bash native-profile/tests/front-eeprom-rpmh731-contract.sh native-generated/rpmh-before-front731.c drivers/regulator/qcom-rpmh-regulator-uke.c CXX=clang++ FRONT_EEPROM_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/front-eeprom-rpmh731-contract.sh native-generated/rpmh-before-front731.c drivers/regulator/qcom-rpmh-regulator-uke.c CC=clang bash native-profile/tests/at24-vcc731-contract.sh "$PWD/native-generated/at24-before731" "$PWD" CC=clang AT24_VCC_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/at24-vcc731-contract.sh "$PWD/native-generated/at24-before731" "$PWD" CC=clang bash native-profile/tests/camera-nvmem-privacy731-contract.sh "$PWD" CC=clang CAMERA_NVMEM_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/camera-nvmem-privacy731-contract.sh "$PWD" CC=clang bash native-profile/tests/camera-cci731-contract.sh "$PWD/native-generated/cci-before731" "$PWD" CC=clang CAMERA_CCI_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/camera-cci731-contract.sh "$PWD/native-generated/cci-before731" "$PWD" CC=clang bash native-profile/tests/camcc-controller-fdt731-contract.sh CC=clang CAMCC_FDT_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/camcc-controller-fdt731-contract.sh CC=clang bash native-profile/tests/camss-phy-stream731-contract.sh "$PWD/native-generated/camss-before731" "$PWD" CC=clang CAMSS_STREAM_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/camss-phy-stream731-contract.sh "$PWD/native-generated/camss-before731" "$PWD" CC=clang bash native-profile/tests/camss-sm7675-phy731-contract.sh "$PWD/native-generated/camss-before731" CC=clang CAMSS_PHY_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/camss-sm7675-phy731-contract.sh "$PWD/native-generated/camss-before731" CC=clang bash native-profile/tests/camcc-crm-guard731-contract.sh CC=clang CAMCC_CRM_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/camcc-crm-guard731-contract.sh CC=clang bash native-profile/tests/camcc-native731-contract.sh "$PWD" CC=clang CAMCC_NATIVE_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/camcc-native731-contract.sh "$PWD" CC=clang bash native-profile/tests/camera-exposure731-contract.sh "$PWD" native-generated/camera-sensors-before731 CC=clang CAMERA_EXPOSURE_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/camera-exposure731-contract.sh "$PWD" native-generated/camera-sensors-before731 CC=clang bash native-profile/tests/gdsc-storage731-contract.sh native-generated/camcc-baseline "$PWD" CC=clang GDSC_STORAGE_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/gdsc-storage731-contract.sh native-generated/camcc-baseline "$PWD" CC=clang bash native-profile/tests/camera-sensor731-contract.sh "$PWD" native-generated/camera-sensors-before731 CC=clang CAMERA_SENSOR_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/camera-sensor731-contract.sh "$PWD" native-generated/camera-sensors-before731 CC=clang CAMCC_STORAGE_TEST=1 bash native-profile/tests/camcc-power-contract.sh native-generated/camcc-baseline "$PWD" CC=clang CAMCC_STORAGE_TEST=1 CAMCC_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/camcc-power-contract.sh native-generated/camcc-baseline "$PWD" CC=clang CAMCC_CLOCKS_TEST=1 bash native-profile/tests/camcc-provider-contract.sh "$PWD" CC=clang CAMCC_CLOCKS_TEST=1 CAMCC_TEST_FLAGS='-fsanitize=address,undefined -fno-sanitize-recover=all -fno-omit-frame-pointer' bash native-profile/tests/camcc-provider-contract.sh "$PWD" bash native-profile/tests/touch-gesture-ack-regression.sh bash native-profile/tests/ath11k-regulatory-status-regression.sh "$PWD" cmp native-profile/src/sensors/uke-ssc-iio.c drivers/iio/common/uke-ssc/uke-ssc-iio.c cmp native-profile/src/sensors/uke-ssc-protocol.c drivers/iio/common/uke-ssc/uke-ssc-protocol.c bash native-profile/tests/wcd939x-telemetry-regression.sh "$PWD" cmp native-profile/src/power/uke-memlat.c drivers/soc/qcom/uke-memlat.c ulimit -c 0 old_memlat_log=$(mktemp) set +e CC=clang SANITIZE=0 UKE_MEMLAT_SOURCE="$PWD/native-profile/tests/fixtures/memlat-before-capacity.c" bash native-profile/tests/memlat-lifecycle-contract.sh > "$old_memlat_log" 2>&1 old_memlat_status=$? set -e if test "$old_memlat_status" != 134; then cat "$old_memlat_log"; exit 1; fi grep -Fq 'Adaptive L3 must retain its highest admitted map vote' "$old_memlat_log" unlink "$old_memlat_log" echo 'Original adaptive L3 cannot admit a bounded map request (expected status134)' CC=clang SANITIZE=0 bash native-profile/tests/memlat-lifecycle-contract.sh CC=clang SANITIZE=1 bash native-profile/tests/memlat-lifecycle-contract.sh CC=clang CFLAGS="" bash native-profile/tests/fm19511-contract.sh CC=clang CFLAGS="" bash native-profile/tests/fm19511-pm-contract.sh CC=clang CFLAGS="" bash native-profile/tests/ir-spi-contract.sh drivers/media/rc/ir-spi.c cmp native-profile/src/nfc/fm19511-uapi.h include/uapi/linux/fm19511.h bash native-profile/packaging/native/check-migration-cohort731.sh "$PWD" %{_uke_out} prepared bash native-profile/packaging/native/prepare-migration-manager731.sh "$PWD" %{_uke_out} export ARCH=arm64 LLVM=1 LLVM_IAS=1 test -z "${UKE_PREBUILT_SWITCH_ROOT:-}" export KBUILD_BUILD_USER=senemos KBUILD_BUILD_HOST=copr-builder KBUILD_BUILD_VERSION=1 export SOURCE_DATE_EPOCH=1793362198 export KBUILD_BUILD_TIMESTAMP="$(date -u -d "@$SOURCE_DATE_EPOCH" '+%%Y-%%m-%%d %%H:%%M:%%S UTC')" mkdir -p %{_uke_out} if test ! -e %{uke_boot_userspace}; then bash boot-recipe/src/boot/make-initramfs-base.sh %{uke_boot_userspace} '%{krel}' fi test "$(cat %{uke_boot_userspace}/kernel-release)" = '%{krel}' (cd %{uke_boot_userspace}; sha256sum -c base-files.sha256) jobs=%{?_smp_build_ncpus}%{!?_smp_build_ncpus:4} test "$jobs" -le 8 || jobs=8 bash native-profile/tests/camcc-native-object.sh "$PWD" %{_uke_out} boot-recipe/packaging/native/native.config '%{krel}' bash native-profile/tests/camss-sm7675-phy-object.sh "$PWD" %{_uke_out} '%{krel}' bash native-profile/tests/camss-sm7675-module731-object.sh "$PWD" %{_uke_out} '%{krel}' make O=%{_uke_out} LOCALVERSION=-%{senemos_build_release}-unstable -j"$jobs" sound/soc/qcom/uke-audio-card.o bash native-profile/tests/mainline-boot-status-contract.sh CXX=clang++ bash native-profile/tests/kernel-audio-policy-contract.sh make O=%{_uke_out} ARCH=arm64 LLVM=1 LLVM_IAS=1 LOCALVERSION=-%{senemos_build_release}-unstable KCFLAGS=-Werror -j4 \ drivers/soc/qcom/apr.o sound/soc/qcom/qdsp6/audioreach.o sound/soc/qcom/qdsp6/q6apm.o drivers/clk/qcom/camcc-sm7675.o sound/soc/qcom/qdsp6/uke-fs19xx-oob-check.o sound/soc/qcom/qdsp6/uke-fs19xx-oob-backend.o sound/soc/qcom/qdsp6/snd-q6apm.o drivers/soc/qcom/uke-audio-config-memory.o drivers/misc/fastrpc.o drivers/iio/common/uke-ssc/uke-ssc.o drivers/input/misc/qcom-smp2p-switch.o \ sound/soc/codecs/fs19xx.o sound/soc/qcom/qdsp6/uke-fs19xx-runtime.o arch/arm64/kernel/uke-abl.o bash native-profile/packaging/native/check-oob-objects731.sh "$PWD" %{_uke_out} bash native-profile/packaging/native/check-migration-cohort731.sh "$PWD" %{_uke_out} objects bash native-profile/tests/migration-boot-config-boundary731.sh "$PWD" %{_uke_out} %install install -d %{buildroot}%{_docdir}/%{name} install -m644 native-profile/source-commit native-profile/source-composition.json \ native-profile/configs/kernel-manager/resources.config %{buildroot}%{_docdir}/%{name}/ printf 'Complete12211 and qualified SSC/matrix/Hall/manager/protected223 prep, closed config comparisons and actual AArch64 objects pass; no Image, module or physical acceptance.\n' \ > %{buildroot}%{_docdir}/%{name}/checks.txt %check test ! -e %{_uke_out}/arch/arm64/boot/Image test -z "$(find %{_uke_out} -type f -name '*.ko' -print -quit)" %files %license COPYING %{_docdir}/%{name} %changelog * Thu Nov 05 2026 Uke contributors - 7.3.1-23 - Check complete cumulative preparation, exact retained config histories and native objects.