-
Notifications
You must be signed in to change notification settings - Fork 5
feat: wrynose integration #675
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
ee97128
b0de757
2ad5c24
7cfe147
fb33835
16e3dd7
206af4e
18196ad
bd7510d
ca732fb
13de314
cd89a0b
481d082
9d191da
87d710f
f187be3
d707a55
3483254
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 |
|---|---|---|
| @@ -0,0 +1,35 @@ | ||
| # INCOMPATIBLE_LICENSE_EXCEPTIONS is matched per *package* name, not per recipe | ||
| # (see oe.license.apply_pkg_license_exception: it tests "<pkg>:<license>"). So an | ||
| # entry like "bash:GPL-3.0-or-later" only whitelists the main "bash" package while | ||
| # every sub-package it produces (bash-dev, bash-doc, bash-src, bash-dbg, | ||
| # bash-staticdev, bash-locale-*, ...) is still dropped by the incompatible-license | ||
| # QA check, which is fatal (it is part of ERROR_QA) and breaks do_package. | ||
| # | ||
| # This class expands each existing exception entry to cover *all* packages produced | ||
| # by the recipe that owns the named package, so a single line in | ||
| # INCOMPATIBLE_LICENSE_EXCEPTIONS keeps covering the whole recipe. | ||
|
|
||
| def omnect_license_exception_subpkgs(d): | ||
| packages = (d.getVar('PACKAGES') or '').split() | ||
| if not packages: | ||
| return '' | ||
|
|
||
| # Read the value unexpanded to avoid recursing into our own :append below. | ||
| # Concrete kas entries are literal; the "${@...}" append token contains '$' | ||
| # and is skipped. | ||
| raw = d.getVar('INCOMPATIBLE_LICENSE_EXCEPTIONS', False) or '' | ||
|
|
||
| extra = [] | ||
| for entry in raw.split(): | ||
| if ':' not in entry or '$' in entry: | ||
| continue | ||
| name, lic = entry.split(':', 1) | ||
| # Only the recipe that actually produces the named package expands it. | ||
| if name in packages: | ||
| extra += ['%s:%s' % (pkg, lic) for pkg in packages] | ||
|
|
||
| return ' '.join(sorted(set(extra))) | ||
|
|
||
| # Evaluated lazily at do_package time, when PACKAGES already includes the | ||
| # dynamically split locale packages. | ||
| INCOMPATIBLE_LICENSE_EXCEPTIONS:append = " ${@omnect_license_exception_subpkgs(d)}" |
| 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,28 @@ 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 |
||
|
|
||
| # 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
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 fix. |
||
| ERROR_QA:remove = "buildpaths" | ||
| WARN_QA:append = " buildpaths" | ||
|
|
||
| # INCOMPATIBLE_LICENSE_EXCEPTIONS is matched per package name, so a single entry | ||
| # (e.g. "bash:GPL-3.0-or-later") only whitelists the main package while every | ||
| # sub-package (-dev, -doc, -src, -dbg, -staticdev, -locale-*, ...) is still dropped | ||
| # by the fatal incompatible-license QA check. Expand each entry to the whole recipe. | ||
| INHERIT += "omnect-license-exceptions" | ||
|
|
||
| # 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,2 @@ | ||
| REQUIRED_VERSION_openssl ?= "3.5.6" | ||
| # we don't want to miss openssl updates so check for exact version | ||
| 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",
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. afair from our meeting discussions we wanted to be flagged if openssl changes, so the exact check is the right one. |
||
| 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%" |
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."