-
Notifications
You must be signed in to change notification settings - Fork 5
feat: wrynose integration #674
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
f715f90
da9f125
1dc6852
d6a32e4
9d4ec35
6796a5f
5becf72
eebe640
f4aa6b2
069c462
a9d96fe
f024ebb
393e147
290dab7
f80ad63
5726e59
a2af10c
39bd374
64391b7
e8c0925
44fa10e
9eaf49b
e206396
f731cff
b8a1861
3e40d6e
33b6b0c
2c8bd70
25e66fe
1940e43
e543c6d
4cb6cbe
3293835
3a57b6c
199edaa
2393d57
6708c1c
f0bedd2
59a69f2
6481c87
d844590
539717b
d1e13c8
35dbea7
b768cbc
8ffd3a8
fa1de1f
ba2e792
c5729a4
46f84e8
4f359b7
a61dcdc
c4fa449
0795147
fdb3908
b33740e
6c78b11
cf9ecfd
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,4 +1,4 @@ | ||
| inherit useradd | ||
| inherit useradd pkgconfig | ||
|
|
||
| USERADD_PACKAGES = "${PN}" | ||
| GROUPADD_PARAM:${PN} = " \ | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,4 @@ | ||
| # We want to have a nonvolatile log dir, if DISTRO_FEATURE "persistent-var-log" | ||
| # is set, but we cannot access 'DISTRO_FEATURES' directly at conf file load | ||
| # time. | ||
| # We delay by using this special bbclass and the _append operator. | ||
| VOLATILE_LOG_DIR = "no" | ||
| # We want a nonvolatile /var/log when DISTRO_FEATURE "persistent-var-log" is | ||
| # set, but DISTRO_FEATURES can't be read at conf-parse time; so this class is | ||
| # inherited conditionally via USER_CLASSES instead. | ||
| FILESYSTEM_PERMS_TABLES:remove = "files/fs-perms-volatile-log.txt" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,8 +3,8 @@ DEPENDS += "u-boot-mkenvimage-native" | |
|
|
||
| omnect_uboot_configure_env() { | ||
| # configure omnect u-boot env | ||
| cp -f ${WORKDIR}/omnect_env.h ${S}/include/configs/ | ||
| cp -f ${WORKDIR}/omnect_env.env ${S}/include/env/ | ||
| cp -f ${UNPACKDIR}/omnect_env.h ${S}/include/configs/ | ||
| cp -f ${UNPACKDIR}/omnect_env.env ${S}/include/env/ | ||
|
|
||
| # set release image | ||
| if [ "${OMNECT_RELEASE_IMAGE}" = "1" ]; then | ||
|
|
@@ -28,11 +28,14 @@ do_compile:append() { | |
| mkenvimage="mkenvimage -r" | ||
| fi | ||
| if [ -n "${UBOOT_CONFIG}" ]; then | ||
| # this is based on the handling in openembedded-core/meta/recipes-bsp/u-boot/u-boot.inc | ||
| # openembedded-core's u-boot.inc now builds into O=${B}/${config}-${type}, | ||
| # so the initial env lives in that -${type}-suffixed dir, not ${config}/. | ||
| # UBOOT_MACHINE/UBOOT_CONFIG only ever hold a single config here. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Since only the first word of each variable is wanted, the nested loops with set -- ${UBOOT_MACHINE}; config=$1
set -- ${UBOOT_CONFIG}; type=$1 |
||
| for config in ${UBOOT_MACHINE}; do | ||
| initial_env="${B}/${config}/u-boot-initial-env" | ||
| # so far i don't see that `UBOOT_MACHINE` is ever set to multiple configs | ||
| break; | ||
| for type in ${UBOOT_CONFIG}; do | ||
| initial_env="${B}/${config}-${type}/u-boot-initial-env" | ||
| break 2 | ||
| done | ||
| done | ||
| else | ||
| initial_env="${B}/u-boot-initial-env" | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -6,7 +6,10 @@ SDK_NAME_PREFIX = "${DISTRO_NAME}" | |
| SDK_VERSION = "${MACHINE}-${DISTRO_VERSION}" | ||
|
|
||
| DISTRO_FEATURES = "apparmor ipv4 ipv6 polkit seccomp xattr zeroconf" | ||
| DISTRO_FEATURES_BACKFILL_CONSIDERED += "pulseaudio gobject-introspection-data ldconfig" | ||
| DISTRO_FEATURES_OPTED_OUT += "\ | ||
| 3g acl alsa bluetooth debuginfod ext2 gobject-introspection-data ldconfig \ | ||
| multiarch nfc nfs opengl pci ptest pulseaudio vfat vulkan wayland wifi x11 \ | ||
| " | ||
|
|
||
| # meta-security is only included for the AppArmor userspace; the 'security' | ||
| # DISTRO_FEATURE would pull in kernel config fragments for linux-yocto, but we | ||
|
|
@@ -43,7 +46,7 @@ ROOT_HOME = "/home/root" | |
| RDEPENDS:packagegroup-base-3g:pn-packagegroup-base = "" | ||
|
|
||
| # We don't use qemu-usermode, resp. it is currently not usable straightforward. | ||
| MACHINE_FEATURES_BACKFILL_CONSIDERED += "qemu-usermode" | ||
| MACHINE_FEATURES_OPTED_OUT += "qemu-usermode" | ||
| # Remove machine features we don't see any value in. | ||
| # -> packagegroup-base doesn't install unwanted packages | ||
| MACHINE_FEATURES:remove = "alsa ext2 pci pcmcia serial usbhost usbgadget vfat" | ||
|
|
@@ -66,7 +69,7 @@ PACKAGE_CLASSES ?= "package_ipk" | |
| CONNECTIVITY_CHECK_URIS ?= "https://github.com/omnect" | ||
|
|
||
| # Image configuration | ||
| IMAGE_FSTYPES = "ext4.gz wic.xz wic.bmap" | ||
| IMAGE_FSTYPES = "ext4.gz wic.xz wic.bmap wicenv" | ||
| IMAGE_TYPES:remove = "cramfs" | ||
| # rm kernel from boot partition, we use a bundled initramfs kernel in rootfs | ||
| IMAGE_BOOT_FILES:remove = "uImage Image" | ||
|
|
@@ -167,10 +170,6 @@ DEPENDS:remove:pn-apparmor = "perl" | |
| # DEPENDS that config is unstaged. Force native mode so aclocal uses perl-native. | ||
| PERLCONFIGTARGET:pn-apparmor = "no" | ||
|
|
||
| # use smaller and faster duktape vs mozjs in polkit | ||
| PACKAGECONFIG:remove:pn-polkit = "mozjs" | ||
| PACKAGECONFIG:append:pn-polkit = " duktape" | ||
|
|
||
| # remove logind + pam | ||
| PACKAGECONFIG:remove:pn-systemd = "logind pam" | ||
|
|
||
|
|
@@ -179,6 +178,9 @@ PACKAGECONFIG:remove:pn-systemd = "logind pam" | |
| # gobject-introspection dependency in avahi + polkit | ||
| CODEGEN_PYTHON_RDEPENDS:pn-glib-2.0 = "" | ||
| RDEPENDS:${PN}:pn-gobject-introspection = "" | ||
| # Emptying RDEPENDS also drops the auto libglib shlib dep; wrynose made file-rdeps | ||
| # fatal. glib is always in the image (avahi/polkit depend on it directly), so skip it. | ||
| INSANE_SKIP:${PN}:pn-gobject-introspection = "file-rdeps" | ||
| PACKAGECONFIG:remove:pn-apparmor = "python" | ||
|
|
||
| # disable glib-2.0 dependency to shared-mime-info | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This |
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -8,3 +8,22 @@ DEPENDS:append:pn-libx11 = " autoconf-archive-native" | |
| # lshw: fix lshw e.g. on tauri-l | ||
| FILESEXTRAPATHS:prepend:pn-lshw := "${LAYERDIR_omnect}/files/patches:" | ||
| SRC_URI:append:pn-lshw = " file://lshw_github_PR87.patch" | ||
|
|
||
| # wrynose promoted the patch-status QA check to a fatal error. Our local recipe | ||
| # patches carry no Upstream-Status; silence the check (remove from both ERROR_QA and | ||
| # WARN_QA) rather than annotate every patch. | ||
| ERROR_QA:remove = "patch-status" | ||
| WARN_QA:remove = "patch-status" | ||
|
Comment on lines
+15
to
+16
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This silences patch-status for all layers. The per-patch
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. won't change. |
||
|
|
||
| # wrynose's oe-core also makes the buildpaths check fatal. Some Rust recipes (e.g. the | ||
| # aziot cc-crate openssl engine) leak a ${WORKDIR} path into -dbg debug info that | ||
| # escapes the debug-prefix-map remap; downgrade to a warning rather than chase the | ||
| # per-crate remap. The runtime (non-dbg) binaries are clean. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "The runtime (non-dbg) binaries are clean." is reassurance, not mechanism — can be cut. Alternative to the global downgrade: scope it with |
||
| ERROR_QA:remove = "buildpaths" | ||
| WARN_QA:append = " buildpaths" | ||
|
|
||
| # wrynose's coreutils-dev RRECOMMENDS gawk-dev, but gawk is GPL-3.0-or-later & | ||
| # AGPL-3.0-or-later and excluded by INCOMPATIBLE_LICENSE. The skipped provider | ||
| # breaks the rootfs build-dependency graph, so drop the recommend in metadata | ||
| # (BAD_RECOMMENDATIONS only filters at install time, too late for taskdata). | ||
| RRECOMMENDS:coreutils-dev:remove = "gawk-dev" | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1 +1 @@ | ||
| REQUIRED_VERSION_openssl ?= "3.5.6" | ||
| REQUIRED_VERSION_openssl ?= "3.5.7" | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The exact pin fails the build if a future 6.0.x point release micro-bumps openssl. If the intent is "stay on the 3.5 LTS series", |
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,9 +1,3 @@ | ||
| # we need this to get bindgen-native to work at runtime | ||
| EXTRA_OECMAKE:append:pn-rust-llvm-native = " -DLLVM_ENABLE_PROJECTS=clang" | ||
|
|
||
| # set default rust panic strategy to abort, otherwise we have to patch iotedge | ||
| # warning: this is global setting | ||
| RUST_PANIC_STRATEGY = "abort" | ||
|
|
||
| # we use rust from meta-omnect | ||
| RUSTVERSION = "1.93%" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,7 +1,6 @@ | ||
| # additional kernel config | ||
| OMNECT_KERNEL_SRC_URI:append = " \ | ||
| file://acpi-watchdog.cfg \ | ||
| file://crc32c-intel_module.cfg \ | ||
| file://bluetooth_hcibtusb.cfg \ | ||
| file://i2c-chardev.cfg \ | ||
| file://intel-igc.cfg \ | ||
|
|
@@ -38,7 +37,7 @@ OMNECT_INITRAMFS_FSTYPE = "cpio.gz" | |
| WKS_FILE = "omnect-os.grub.wks.in" | ||
| # no differentiation for now between release an devel images concerning rootfs | ||
| # size | ||
| OMNECT_PART_SIZE_ROOTFS ?= "${@bb.utils.contains('OMNECT_RELEASE_IMAGE', '1', '900000', '900000', d)}" | ||
| OMNECT_PART_SIZE_ROOTFS ?= "${@bb.utils.contains('OMNECT_RELEASE_IMAGE', '1', '900000', '1048576', d)}" | ||
| OMNECT_PART_OFFSET_BOOT ?= "2048" | ||
|
|
||
| # adu compatibility id | ||
|
|
@@ -71,6 +70,14 @@ MACHINE_EXTRA_RRECOMMENDS:remove = "linux-firmware" | |
|
|
||
| DISTRO_FEATURES:append = " efi-secure-boot modsign" | ||
|
|
||
| # We verify the grub config with SELoader (PKCS7 .p7b), matching OMNECT_GRUB_EFI_SB_FILES | ||
| # and the LockDown/SELoader artifacts below. wrynose's meta-secure-core (commit 6d83fbf) | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Commit hash and scarthgap-vs-wrynose history in a code comment. Keep only the mechanism, e.g.: "meta-secure-core defaults to grub's built-in GPG .sig check; we verify the grub config with SELoader (PKCS7 .p7b) instead, so pin both switches." |
||
| # flipped the defaults to UEFI_SELOADER=0 + GRUB_SIGN_VERIFY=1 (grub's built-in GPG .sig | ||
| # check); scarthgap had UEFI_SELOADER=1 + GRUB_SIGN_VERIFY=0. The two are mutually | ||
| # exclusive, so pin both to restore the SELoader path. | ||
| UEFI_SELOADER = "1" | ||
| GRUB_SIGN_VERIFY = "0" | ||
|
|
||
| # for patched wic plugin bootimg-efi.py: | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Comment drift: the patched plugin now lives in the standalone wic recipe ( |
||
| WICVARS:append = " OMNECT_GRUB_EFI_SB_FILES" | ||
| OMNECT_GRUB_EFI_SB_FILES = " \ | ||
|
|
@@ -94,7 +101,7 @@ OMNECT_GRUB_EFI_SB_FILES = " \ | |
| SYSTEMD_RuntimeWatchdogSec = "60" | ||
| SYSTEMD_RebootWatchdogSec = "60" | ||
|
|
||
| OMNECT_BOOTLOADER_RECIPE_PATH = "${LAYERDIR_core}/recipes-bsp/grub/grub-efi_2.12.bb" | ||
| OMNECT_BOOTLOADER_RECIPE_PATH = "${LAYERDIR_core}/recipes-bsp/grub/grub-efi_2.14.bb" | ||
| # force bootloader version checksum to be old, when sure it's 100% binary compatible | ||
| # OMNECT_BOOTLOADER_CHECKSUM_COMPATIBLE:pn-bootloader-versioned = "<newchecksum> <oldchecksum>" | ||
| # e.g.: | ||
|
|
@@ -103,5 +110,5 @@ OMNECT_BOOTLOADER_RECIPE_PATH = "${LAYERDIR_core}/recipes-bsp/grub/grub-efi_2.12 | |
| # OMNECT_BOOTLOADER_CHECKSUM_EXPTECTED:pn-bootloader-versioned - build will fail, if the | ||
| # computed checksum is different to this; set to <oldchecksum> when | ||
| # OMNECT_BOOTLOADER_CHECKSUM_COMPATIBLE:pn-bootloader-versioned is set | ||
| OMNECT_BOOTLOADER_CHECKSUM_EXPECTED:pn-bootloader-versioned = "69a43de1bc02f87f36adb29b4215300bda0b4b144ef1505dd71d17f5ae27ff09" | ||
| OMNECT_BOOTLOADER_CHECKSUM_EXPECTED:pn-bootloader-versioned = "5aa682e34bdaeae271cbd96dc1d4f6d26fd9be104372cf56dcca35953c7fc066" | ||
| #OMNECT_BOOTLOADER_CHECKSUM_COMPATIBLE:pn-bootloader-versioned = "" | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Misattribution: the custom rust-llvm was our own recipe (deleted in this PR), not something the wrynose release dropped. Suggest: "the custom rust-llvm (which carried clang) was dropped with the wrynose upgrade; bindgen now gets libclang from oe-core's clang-native."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rm comment