Re: [OE-core] is there any reason to use .ipk packaging if devs are using ubuntu?

2024-03-23 Thread Robert P. J. Day
On Sat, 23 Mar 2024, Alexander Kanavin wrote:

> On Sat, 23 Mar 2024 at 18:34, Robert P. J. Day  wrote:
> >   all of this being accurate, the one advantage i can see is that, if
> > developers are familiar with deb package management on their ubuntu
> > dev systems, then they would be familiar with having package
> > management on their target systems (provided, as you say, they
> > understand that they should work only with YP-generated packages).
>
> Nah, I don't see that familiarity helping anything. Reading output of
> opkg and finding out that you need to issue 'opkg install' takes 10
> seconds. That's such a minor hurdle compared to learning yocto in
> general (especially when to do when bitbake ends with an error) that
> I'd say any time saved there is statistical noise.

  ok, that's reasonable. thanks.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#197463): 
https://lists.openembedded.org/g/openembedded-core/message/197463
Mute This Topic: https://lists.openembedded.org/mt/105106419/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] is there any reason to use .ipk packaging if devs are using ubuntu?

2024-03-23 Thread Robert P. J. Day
On Sat, 23 Mar 2024, Alexander Kanavin wrote:

> Packaging format of the host distribution and packaging format used
> by yocto have no relation even if there is package management on
> real targets. Why is there an assumption that matching them is going
> to help something?
>
> If anything, making them match might prompt misguided attempts to
> install Ubuntu packages in yocto systems and frustration at not
> being able to make it work.

  all of this being accurate, the one advantage i can see is that, if
developers are familiar with deb package management on their ubuntu
dev systems, then they would be familiar with having package
management on their target systems (provided, as you say, they
understand that they should work only with YP-generated packages).

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#197461): 
https://lists.openembedded.org/g/openembedded-core/message/197461
Mute This Topic: https://lists.openembedded.org/mt/105106419/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] is there any reason to use .ipk packaging if devs are using ubuntu?

2024-03-23 Thread Robert P. J. Day

  yet another sophomoric question but i have inherited (and am
babysitting) a fairly extensive OE/YP build system that, for the most
part, works but i noticed early on that it selects ipk for the package
format.

  now, given that there is no package management installed in the
images, i guess it really makes no difference what the package format
is, but it just seems unnatural to use ipk given that the
corp-approved linux development system is ubuntu.

  is there any compelling argument for this? i suspect i could change
the packaging format and the developers would not even notice.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#197458): 
https://lists.openembedded.org/g/openembedded-core/message/197458
Mute This Topic: https://lists.openembedded.org/mt/105106419/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCH] ptest: test for PTEST_ENABLED instead of DISTRO_FEATURES

2024-03-10 Thread Robert P. J. Day
On Sun, 10 Mar 2024, Alexander Kanavin wrote:

> On Sat, 9 Mar 2024 at 11:29, Robert P. J. Day  wrote:
> > As ptest.bbclass defines the more intuitive ptest-related variable:
> >
> >   PTEST_ENABLED =
> > "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '1', '0', d)}"
> >
> > modify a number of obvious recipe ptest checks to use that simpler
> > form.
>
> I disagree. When someone reads a recipe, and sees a variable, the
> questions that typically come up are:
>
> - where is it set
> - how is it set
> - what needs to be done to change it.
>
> DISTRO_FEATURES wins all three, as it's commonly known and understood 
> facility.

  then what is the point of defining PTEST_ENABLED in the first place?
and using a mixture of both throughout the code base?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#196885): 
https://lists.openembedded.org/g/openembedded-core/message/196885
Mute This Topic: https://lists.openembedded.org/mt/104825491/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] more pedantry: observation on PACKAGES ordering and bash-completion.bbclass

2024-03-10 Thread Robert P. J. Day
On Sat, 9 Mar 2024, Quentin Schulz wrote:

> Hi,
>
> On March 9, 2024 10:38:18 AM GMT+01:00, "Robert P. J. Day" 
>  wrote:
> >
> >  currently perusing countless recipes to choose really good
> >pedagogical examples of "ptest" usage, and i began running across a
> >number of recipes that (unrelated to ptest) included snippets toward
> >the end of their recipe files that added content to FILES:${PN}.
> >here's an example from fwupd:
> >
> >https://github.com/openembedded/meta-openembedded/blob/master/meta-oe/recipes-bsp/fwupd/fwupd_1.8.9.bb#L130
> >
> >FILES:${PN} += "${libdir}/fwupd-plugins-* \
> >${libdir}/fwupd-${PV} \
> >${systemd_unitdir} \
> >${datadir}/fish \
> >${datadir}/metainfo \
> >${datadir}/icons \
> >${datadir}/dbus-1 \
> >${datadir}/polkit-1 \
> >${nonarch_libdir}/modules-load.d"
> >
> >  since i knew(?) that the default PACKAGES list is processed left to
> >right, and that the PN package is left until the end to gather what
> >remains, i couldn't understand why so many recipes insisted on adding
>
> "to gather what remains," is not entirely correct. FILES:${PN} is not a 
> grab-all variable, it still only takes files matching the globs inside the 
> variable, which defaults to:
>
> """
> FILES:${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* 
> ${libdir}/lib*${SOLIBS} \ ${sysconfdir} ${sharedstatedir} ${localstatedir} \ 
> ${base_bindir}/* ${base_sbindir}/* \ ${base_libdir}/*${SOLIBS} \ 
> ${base_prefix}/lib/udev ${prefix}/lib/udev \ ${base_libdir}/udev 
> ${libdir}/udev \ ${datadir}/${BPN} ${libdir}/${BPN}/* \ ${datadir}/pixmaps 
> ${datadir}/applications \ ${datadir}/idl ${datadir}/omf ${datadir}/sounds \ 
> ${libdir}/bonobo/servers"
> """
>
> And you can see that the paths added to fwupd aren't matched by those default 
> globs, hence why they are added.
>
> >extra content to FILES:${PN} when the default processing would have
> >collected it anyway, unless ... there was something that had been
> >appended to PACKAGES that required that.
> >
> >  sure enough, bash-completion.bbclass:
> >
> >PACKAGES += "${PN}-bash-completion"
> >FILES:${PN}-bash-completion = "${datadir}/bash-completion 
> > ${sysconfdir}/bash_completion.d"
> >
> >  my understanding is that the "proper" ordering of PACKAGES is to
> >start with the most focused and specific packages, define their
> >content, then move on until, at the end, whatever remains goes into
> >PN. which makes that definition of bash-completion.bbclass a bit
> >puzzling -- why was it not *prepended* to the PACKAGES list given its
> >specificity? and making all that subsequent addition to FILES:${PN}
> >unnecessary?
> >
>
> If a file is matched only by one glob, then it doesn't matter much
> in which order the packages are listed, which is very likely the
> case here.
>
> One reason could simply be that += is more natural than =+ and
> seeing that += worked, the contributor didn't think twice about it.
>
> FWIW, one can also do PACKAGE_BEFORE_PN += "${PN}-bash-completion"
> to have bash-completion done right before PN instead of first if
> using =+.
>
> Moving bash-completion package somewhere else in the PACKAGES list
> likely wouldn't change anything of the globs in FILES:${PN} though.

  you're right, i just thought the structure looked awkward.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#196877): 
https://lists.openembedded.org/g/openembedded-core/message/196877
Mute This Topic: https://lists.openembedded.org/mt/104825042/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] ptest: test for PTEST_ENABLED instead of DISTRO_FEATURES

2024-03-09 Thread Robert P. J. Day

As ptest.bbclass defines the more intuitive ptest-related variable:

  PTEST_ENABLED =
"${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '1', '0', d)}"

modify a number of obvious recipe ptest checks to use that simpler
form.

Signed-off-by: Robert P. J. Day 

---

  i did a simple textual substitution so as long as that's all that's
needed, this should work.

diff --git a/meta/classes-global/insane.bbclass 
b/meta/classes-global/insane.bbclass
index e963001d09..bb01fa7466 100644
--- a/meta/classes-global/insane.bbclass
+++ b/meta/classes-global/insane.bbclass
@@ -1371,7 +1371,7 @@ python do_qa_patch() {
 return False

 srcdir = d.getVar('S')
-if not bb.utils.contains('DISTRO_FEATURES', 'ptest', True, False, d):
+if not bb.utils.contains('PTEST_ENABLED', '1', True, False, d):
 pass
 elif bb.data.inherits_class('ptest', d):
 bb.note("Package %s QA: skipping unimplemented-ptest: ptest 
implementation detected" % d.getVar('PN'))
diff --git a/meta/recipes-devtools/lua/lua_5.4.6.bb 
b/meta/recipes-devtools/lua/lua_5.4.6.bb
index eabfc89575..6420b2231b 100644
--- a/meta/recipes-devtools/lua/lua_5.4.6.bb
+++ b/meta/recipes-devtools/lua/lua_5.4.6.bb
@@ -6,7 +6,7 @@ HOMEPAGE = "http://www.lua.org/;

 SRC_URI = "http://www.lua.org/ftp/lua-${PV}.tar.gz;name=tarballsrc \
file://lua.pc.in \
-   ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 
'http://www.lua.org/tests/lua-${PV_testsuites}-tests.tar.gz;name=tarballtest 
file://run-ptest ', '', d)} \
+   ${@bb.utils.contains('PTEST_ENABLED', '1', 
'http://www.lua.org/tests/lua-${PV_testsuites}-tests.tar.gz;name=tarballtest 
file://run-ptest ', '', d)} \
"

 # if no test suite matches PV release of Lua exactly, download the suite for 
the closest Lua release.
diff --git a/meta/recipes-devtools/perl/perl-ptest.inc 
b/meta/recipes-devtools/perl/perl-ptest.inc
index e07355d3f5..98d7b1c2a2 100644
--- a/meta/recipes-devtools/perl/perl-ptest.inc
+++ b/meta/recipes-devtools/perl/perl-ptest.inc
@@ -51,7 +51,7 @@ python populate_packages:prepend() {
 # Put all *.t files from the lib dir in the ptest package
 # do_split_packages requires a pair of () in the regex, but we have nothing
 # to match, so use an empty pair.
-if bb.utils.contains('DISTRO_FEATURES', 'ptest', True, False, d):
+if bb.utils.contains('PTEST_ENABLED', '1', True, False, d):
 do_split_packages(d, d.expand('${libdir}/perl/${PV}'), r'.*\.t()',
 '${PN}-ptest%s', '%s', recursive=True, match_path=True)
 }
diff --git a/meta/recipes-devtools/python/python3-bcrypt_4.1.2.bb 
b/meta/recipes-devtools/python/python3-bcrypt_4.1.2.bb
index 93fa645f33..4e6ca5e074 100644
--- a/meta/recipes-devtools/python/python3-bcrypt_4.1.2.bb
+++ b/meta/recipes-devtools/python/python3-bcrypt_4.1.2.bb
@@ -4,7 +4,7 @@ LIC_FILES_CHKSUM = 
"file://LICENSE;md5=8f7bb094c7232b058c7e9f2e431f389c"
 HOMEPAGE = "https://pypi.org/project/bcrypt/;

 DEPENDS += "python3-cffi-native"
-LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', ' 
-fuse-ld=bfd', '', d)}"
+LDFLAGS:append = "${@bb.utils.contains('PTEST_ENABLED', '1', ' -fuse-ld=bfd', 
'', d)}"

 SRC_URI[sha256sum] = 
"33313a1200a3ae90b75587ceac502b048b840fc69e7f7a0905b5f87fac7a1258"

diff --git a/meta/recipes-devtools/valgrind/valgrind_3.22.0.bb 
b/meta/recipes-devtools/valgrind/valgrind_3.22.0.bb
index 74ac7ec9d5..c0f3784261 100644
--- a/meta/recipes-devtools/valgrind/valgrind_3.22.0.bb
+++ b/meta/recipes-devtools/valgrind/valgrind_3.22.0.bb
@@ -9,7 +9,7 @@ LIC_FILES_CHKSUM = 
"file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
 file://COPYING.DOCS;md5=24ea4c7092233849b4394699333b5c56"

 DEPENDS = " \
-   ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'boost', '', d)} \
+   ${@bb.utils.contains('PTEST_ENABLED', '1', 'boost', '', d)} \
 "

 SRC_URI = "https://sourceware.org/pub/valgrind/valgrind-${PV}.tar.bz2 \
diff --git a/meta/recipes-kernel/linux/linux-yocto-dev.bb 
b/meta/recipes-kernel/linux/linux-yocto-dev.bb
index bd3e5a9406..dce9339643 100644
--- a/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -60,7 +60,7 @@ KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc 
features/drm-bochs/drm-bochs.scc
 KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
 KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " 
cfg/x32.scc", "", d)}"
-KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " 
features/scsi/scsi-debug.scc", "", d)}"
-KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES

[OE-core] more pedantry: observation on PACKAGES ordering and bash-completion.bbclass

2024-03-09 Thread Robert P. J. Day

  currently perusing countless recipes to choose really good
pedagogical examples of "ptest" usage, and i began running across a
number of recipes that (unrelated to ptest) included snippets toward
the end of their recipe files that added content to FILES:${PN}.
here's an example from fwupd:

https://github.com/openembedded/meta-openembedded/blob/master/meta-oe/recipes-bsp/fwupd/fwupd_1.8.9.bb#L130

FILES:${PN} += "${libdir}/fwupd-plugins-* \
${libdir}/fwupd-${PV} \
${systemd_unitdir} \
${datadir}/fish \
${datadir}/metainfo \
${datadir}/icons \
${datadir}/dbus-1 \
${datadir}/polkit-1 \
${nonarch_libdir}/modules-load.d"

  since i knew(?) that the default PACKAGES list is processed left to
right, and that the PN package is left until the end to gather what
remains, i couldn't understand why so many recipes insisted on adding
extra content to FILES:${PN} when the default processing would have
collected it anyway, unless ... there was something that had been
appended to PACKAGES that required that.

  sure enough, bash-completion.bbclass:

PACKAGES += "${PN}-bash-completion"
FILES:${PN}-bash-completion = "${datadir}/bash-completion 
${sysconfdir}/bash_completion.d"

  my understanding is that the "proper" ordering of PACKAGES is to
start with the most focused and specific packages, define their
content, then move on until, at the end, whatever remains goes into
PN. which makes that definition of bash-completion.bbclass a bit
puzzling -- why was it not *prepended* to the PACKAGES list given its
specificity? and making all that subsequent addition to FILES:${PN}
unnecessary?

  or am i misunderstanding something?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#196867): 
https://lists.openembedded.org/g/openembedded-core/message/196867
Mute This Topic: https://lists.openembedded.org/mt/104825042/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] if "bitbake-layers" HOSTTOOLS fails check, does layer fail to add?

2024-03-06 Thread Robert P. J. Day

  was just handed a sizable YP/WRL project and i *think* i can see
what the problem is, so i'll keep it short (he said, optimistlcally).

  the symptom is that, of the dozens of layers that should end up in
bblayers.conf (all this running on a VM in a docker container), one
layer is missing, and that's the one that defines all the distro
config files, so the eventual error is:

  DISTRO 'slartibartfast' not found ...

well, yeah, and that's pretty clearly because the corresponding layer
is, for whatever reason, not being added to bblayers.conf. so why not?

  look further into output and notice that, just above that, there is
an error that shows an essential tool cannot be found:

ERROR: THe following required tools (as specified by HOSTTOOLS)
cannot be found ...
snafu

and, sure enough, the missing layer does insist in its layer.conf
that:

  HOSTTOOLS += "snafu"

so i am assuming that, because that layer was being added via
"bitbake-layers" and that layer had a HOSTTOOLS requirement that was
not satisfied, that's why the failure of the layer addition, yes?

  just to bypass this issue, is there a bitbake-layers option that
bypasses that sanity checking? i can see "-F" but that claims to
bypass recipe parse verification, which is not what this is.

  this all depends on the assumption that that failed HOSTTOOLS test
is what caused the failure of the layer addition, which cascaded down
to other errors.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#196680): 
https://lists.openembedded.org/g/openembedded-core/message/196680
Mute This Topic: https://lists.openembedded.org/mt/104766066/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] python3-cryptography_42.0.5.bb: delete redundant ptest packaging

2024-03-04 Thread Robert P. J. Day

Since FILES:${PN}-ptest is already defined to include the contents of
${PTEST_PATH}, adding such an entry to the package is superfluous.

Signed-off-by: Robert P. J. Day 

---

diff --git a/meta/recipes-devtools/python/python3-cryptography_42.0.5.bb 
b/meta/recipes-devtools/python/python3-cryptography_42.0.5.bb
index 2bcb5717e4..732f925d92 100644
--- a/meta/recipes-devtools/python/python3-cryptography_42.0.5.bb
+++ b/meta/recipes-devtools/python/python3-cryptography_42.0.5.bb
@@ -60,9 +60,6 @@ do_install_ptest() {
 cp -r ${S}/pyproject.toml ${D}${PTEST_PATH}/
 }

-FILES:${PN}-ptest += " \
-${PTEST_PATH}/check-memfree.py \
-"
 FILES:${PN}-dbg += " \
 ${PYTHON_SITEPACKAGES_DIR}/${SRCNAME}/hazmat/bindings/.debug \
 "

-- 

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#196594): 
https://lists.openembedded.org/g/openembedded-core/message/196594
Mute This Topic: https://lists.openembedded.org/mt/104719742/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] does one need to "add" packages to ptest already under ${PTEST_PATH}?

2024-03-03 Thread Robert P. J. Day

  apologies if i already asked this, i'm trying to juggle a dozen
things at once.

  here:

https://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/python/python3-cryptography_42.0.5.bb#n63

what is the point of adding to FILES:${PN}-ptest something that is
already under ${PTEST_PATH}? especially since the do_install_ptest()
function above it installs even more but doesn't add that stuff?

  obviously(?), it doesn't hurt, it's just puzzling. i can submit a
patch to delete the extraneous stuff for clarity.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#196575): 
https://lists.openembedded.org/g/openembedded-core/message/196575
Mute This Topic: https://lists.openembedded.org/mt/104708837/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] trying to create simple example of "externalsrc" recipe

2024-01-27 Thread Robert P. J. Day
On Fri, 26 Jan 2024, Khem Raj wrote:

> On Fri, Jan 26, 2024 at 4:46 AM Robert P. J. Day  
> wrote:
> >
> >
> >   i've been trying to put together a really basic example of a recipe
> > using "externalsrc" that refers to some local source, and cannot get
> > it to work. so here's what i'm trying.
> >
> >   as a demo, i selected a random simple OE recipe -- in this case,
> > "dmidecode", whose recipe you can see here (and which seems
> > conveniently simple for demonstration purposes):
> >
> > https://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/dmidecode/dmidecode_3.5.bb?h=master
> >
> > so to start, since the SRC_URI is a tarball, i downloaded the tarball
> > so that i have the equivalent local source here:
> >
> >   $ ls /home/rpjday/oe/srcs/dmidecode-3.5
> >   AUTHORS   dmioem.h Makefile util.c
> >   biosdecode.c  dmiopt.c man  util.h
> >   config.h  dmiopt.h NEWS version.h
> >   dmidecode.c   dmioutput.c  ownership.c  vpddecode.c
> >   dmidecode.h   dmioutput.h  README   vpdopt.c
> >   dmioem.c  LICENSE  types.h  vpdopt.h
> >   $
> >
> >   as my first test, i set the build to the source directory in my
> > dmid_1.0.bb recipe file:
> >
> >   inherit externalsrc
> >   EXTERNALSRC = "/home/rpjday/oe/srcs/dmidecode-3.5"
> >   EXTERNALSRC_BUILD = "${EXTERNALSRC}"
> >
> >   do_install() {
> > oe_runmake \
> > DESTDIR="${D}" \
> > prefix="${prefix}" \
> > sbindir="${sbindir}" \
> > docdir="${docdir}/${BPN}" \
> > mandir="${mandir}" \
> > install
> >
> > then ran:
> >
> >   $ bitbake dmid
> >
> > sure enough, that build in the source directory, generating:
> >
> >   AUTHORS   dmidecode.o  dmioutput.h  ownership*   version.h
> >   biosdecode*   dmioem.c dmioutput.o  ownership.c  vpddecode*
> >   biosdecode.c  dmioem.h LICENSE  ownership.o  vpddecode.c
> >   biosdecode.o  dmioem.o Makefile README   vpddecode.o
> >   config.h  dmiopt.c man/ types.h  vpdopt.c
> >   dmidecode*dmiopt.h NEWS util.c   vpdopt.h
> >   dmidecode.c   dmiopt.o oe-logs@ util.h   vpdopt.o
> >   dmidecode.h   dmioutput.c  oe-workdir@  util.o
> >
> >   great, but i really want to build out-of-tree to preserve the
> > pristine state of the source, so i followed the instructions and
> > allowed EXTERNALSRC_BUILD to default to ${WORKDIR}/${BPN}-${PV}:
> >
> >   inherit externalsrc
> >   EXTERNALSRC = "/home/rpjday/oe/srcs/dmidecode-3.5"
> >   # EXTERNALSRC_BUILD = "${EXTERNALSRC}"
> >
> > so I did a "make clean" in the source directory to start with the
> > pristine source (also deleted the "oe-" symlinks), then:
> >
> > $ bitbake dmid
> > ... snip ...
> > | NOTE: make -j 8
> > DESTDIR=/home/rpjday/oe/builds/qemux86/tmp/work/core2-64-poky-linux/dmid/1.0/image
> > prefix=/usr sbindir=/usr/sbin docdir=/usr/share/doc/dmid
> > mandir=/usr/share/man install
> > | make: *** No rule to make target 'install'.  Stop.
> > | ERROR: oe_runmake failed
> >
> >   from "bitbake -e dmid", i can see:
> >
> > S="/home/rpjday/oe/srcs/dmidecode-3.5"
> > WORKDIR="/home/rpjday/oe/builds/qemux86/tmp/work/core2-64-poky-linux/dmid/1.0"
> > B="/home/rpjday/oe/builds/qemux86/tmp/work/core2-64-poky-linux/dmid/1.0/dmid-1.0"
> >
> > but there is nothing unloaded into the B directory; hence, the
> > failure. in fact, the log file for the compile step is:
> >
> > DEBUG: Executing python function externalsrc_compile_prefunc
> > NOTE: dmid: compiling from external source tree
> > /home/rpjday/oe/srcs/dmidecode-3.5
> > DEBUG: Python function externalsrc_compile_prefunc finished
> > DEBUG: Executing python function fetcher_hashes_dummyfunc
> > DEBUG: Python function fetcher_hashes_dummyfunc finished
> > DEBUG: Executing shell function do_compile
> > NOTE: nothing to compile
> > DEBUG: Shell function do_compile finished
> >
> >   so ... what have i overlooked? did i grab an inappropriate sample
> > recipe that does not support building out-of-tree? the build directory
> > is empty, so i'm perusing the externalsrc.bbclass to see what i have
> > misunderstood.
>
> externalsrc is as good as the components build system si

Re: [OE-core] trying to create simple example of "externalsrc" recipe

2024-01-26 Thread Robert P. J. Day
On Fri, 26 Jan 2024, Alexander Kanavin wrote:

> Note that there is a selftest for this in
> meta/lib/oeqa/selftest/cases/externalsrc.py, so you could check why
> that seems to work.
>
> Alex

  ah, i had forgotten about the directory of selftests. my bad.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#194358): 
https://lists.openembedded.org/g/openembedded-core/message/194358
Mute This Topic: https://lists.openembedded.org/mt/103974993/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] trying to create simple example of "externalsrc" recipe

2024-01-26 Thread Robert P. J. Day

  i've been trying to put together a really basic example of a recipe
using "externalsrc" that refers to some local source, and cannot get
it to work. so here's what i'm trying.

  as a demo, i selected a random simple OE recipe -- in this case,
"dmidecode", whose recipe you can see here (and which seems
conveniently simple for demonstration purposes):

https://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/dmidecode/dmidecode_3.5.bb?h=master

so to start, since the SRC_URI is a tarball, i downloaded the tarball
so that i have the equivalent local source here:

  $ ls /home/rpjday/oe/srcs/dmidecode-3.5
  AUTHORS   dmioem.h Makefile util.c
  biosdecode.c  dmiopt.c man  util.h
  config.h  dmiopt.h NEWS version.h
  dmidecode.c   dmioutput.c  ownership.c  vpddecode.c
  dmidecode.h   dmioutput.h  README   vpdopt.c
  dmioem.c  LICENSE  types.h  vpdopt.h
  $

  as my first test, i set the build to the source directory in my
dmid_1.0.bb recipe file:

  inherit externalsrc
  EXTERNALSRC = "/home/rpjday/oe/srcs/dmidecode-3.5"
  EXTERNALSRC_BUILD = "${EXTERNALSRC}"

  do_install() {
oe_runmake \
DESTDIR="${D}" \
prefix="${prefix}" \
sbindir="${sbindir}" \
docdir="${docdir}/${BPN}" \
mandir="${mandir}" \
install

then ran:

  $ bitbake dmid

sure enough, that build in the source directory, generating:

  AUTHORS   dmidecode.o  dmioutput.h  ownership*   version.h
  biosdecode*   dmioem.c dmioutput.o  ownership.c  vpddecode*
  biosdecode.c  dmioem.h LICENSE  ownership.o  vpddecode.c
  biosdecode.o  dmioem.o Makefile README   vpddecode.o
  config.h  dmiopt.c man/ types.h  vpdopt.c
  dmidecode*dmiopt.h NEWS util.c   vpdopt.h
  dmidecode.c   dmiopt.o oe-logs@ util.h   vpdopt.o
  dmidecode.h   dmioutput.c  oe-workdir@  util.o

  great, but i really want to build out-of-tree to preserve the
pristine state of the source, so i followed the instructions and
allowed EXTERNALSRC_BUILD to default to ${WORKDIR}/${BPN}-${PV}:

  inherit externalsrc
  EXTERNALSRC = "/home/rpjday/oe/srcs/dmidecode-3.5"
  # EXTERNALSRC_BUILD = "${EXTERNALSRC}"

so I did a "make clean" in the source directory to start with the
pristine source (also deleted the "oe-" symlinks), then:

$ bitbake dmid
... snip ...
| NOTE: make -j 8
DESTDIR=/home/rpjday/oe/builds/qemux86/tmp/work/core2-64-poky-linux/dmid/1.0/image
prefix=/usr sbindir=/usr/sbin docdir=/usr/share/doc/dmid
mandir=/usr/share/man install
| make: *** No rule to make target 'install'.  Stop.
| ERROR: oe_runmake failed

  from "bitbake -e dmid", i can see:

S="/home/rpjday/oe/srcs/dmidecode-3.5"
WORKDIR="/home/rpjday/oe/builds/qemux86/tmp/work/core2-64-poky-linux/dmid/1.0"
B="/home/rpjday/oe/builds/qemux86/tmp/work/core2-64-poky-linux/dmid/1.0/dmid-1.0"

but there is nothing unloaded into the B directory; hence, the
failure. in fact, the log file for the compile step is:

DEBUG: Executing python function externalsrc_compile_prefunc
NOTE: dmid: compiling from external source tree
/home/rpjday/oe/srcs/dmidecode-3.5
DEBUG: Python function externalsrc_compile_prefunc finished
DEBUG: Executing python function fetcher_hashes_dummyfunc
DEBUG: Python function fetcher_hashes_dummyfunc finished
DEBUG: Executing shell function do_compile
NOTE: nothing to compile
DEBUG: Shell function do_compile finished

  so ... what have i overlooked? did i grab an inappropriate sample
recipe that does not support building out-of-tree? the build directory
is empty, so i'm perusing the externalsrc.bbclass to see what i have
misunderstood.

rday



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#194356): 
https://lists.openembedded.org/g/openembedded-core/message/194356
Mute This Topic: https://lists.openembedded.org/mt/103974993/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] tutorial-level questions to clean up recipes for demo purposes

2024-01-25 Thread Robert P. J. Day

  (NOTE: i'm currently tutoring some colleagues in the basics of OE
and using standard OE recipes as examples of good programming
practice, so occasionally i run across something that looks strange
and i just want to clarify so i don't have to say, "i don't know, i
guess there's a reason for that, i just don't know what it is." so,
first question that has arisen ...)

  in current dropbear recipe, very last line:

https://git.openembedded.org/openembedded-core/tree/meta/recipes-core/dropbear/dropbear_2022.83.bb#n134

the line:

  FILES:${PN} += "${bindir}"

but as i read bitbake.conf, ${bindir} is *already* part of FILES:${PN}
and i see nothing in the rest of the dropbear recipe that redefines
the PACKAGES or reorders them. is there some point to that last line
that i am simply missing? it seems unnecessary.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#194316): 
https://lists.openembedded.org/g/openembedded-core/message/194316
Mute This Topic: https://lists.openembedded.org/mt/103951915/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] want to confirm i'm using "externalsrc" and "bin_package" efficiently

2024-01-18 Thread Robert P. J. Day
On Thu, 18 Jan 2024, Alexander Kanavin wrote:

> On Thu, 18 Jan 2024 at 15:10, Robert P. J. Day  wrote:
> >   ah, got it. that's still fine since as the content is almost
> > exclusively binary (pre-built) content, redoing from scratch will take
> > no time at all. thanks for clarifying that.
>
> Pre-built content is ok on its own, but if those items are in the
> dependency tree of something that does take time to build, they will
> subvert sstate and lengthen build times.

  i'm already going over the entire build to identify unnoticed
dependencies that could cause problems.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193989): 
https://lists.openembedded.org/g/openembedded-core/message/193989
Mute This Topic: https://lists.openembedded.org/mt/103807270/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] want to confirm i'm using "externalsrc" and "bin_package" efficiently

2024-01-18 Thread Robert P. J. Day
On Thu, 18 Jan 2024, Alexander Kanavin wrote:

> On Thu, 18 Jan 2024 at 15:04, Robert P. J. Day  wrote:
> >   i just tested, and the recipe does *not* rebuild unless i change
> > something in the ("externalsrc") source directory, at which point,
> > yes, it rebuilds. which is exactly what i'm after.
>
> It only doesn't rebuild because you already have a build/tmp directory.
>
> But as no sstate objects are created, if you wipe tmp/ or make a new
> build directory, it will rebuild again even without any changes at
> all. Try that!

  ah, got it. that's still fine since as the content is almost
exclusively binary (pre-built) content, redoing from scratch will take
no time at all. thanks for clarifying that.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193987): 
https://lists.openembedded.org/g/openembedded-core/message/193987
Mute This Topic: https://lists.openembedded.org/mt/103807270/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] want to confirm i'm using "externalsrc" and "bin_package" efficiently

2024-01-18 Thread Robert P. J. Day
On Thu, 18 Jan 2024, Alexander Kanavin wrote:

> Mono-repo seemed like a good idea at the time, I'm sure.
>
> I need to point out that externalsrc disables sstate and always
> rebuilds from scratch. Is that okay?

  just tested a bitbake on recipe after changing nothing:

Sstate summary: Wanted 96 Local 96 Mirrors 0 Missed 0 Current 100
(100% match, 100% complete)  | ETA:  0:00:00
Initialising tasks: 100%
|#|
Time: 0:00:01
NOTE: Executing Tasks
NOTE: Tasks Summary: Attempted 637 tasks of which 637 didn't need to
be rerun and all succeeded.

  then i made a trivial change to a single file in the source
directory and bitbake'd again:

Sstate summary: Wanted 103 Local 96 Mirrors 0 Missed 7 Current 93 (93%
match, 96% complete)| ETA:  0:00:00
Removing 6 stale sstate objects for arch allarch: 100%
|###| Time: 0:00:00
Removing 1 stale sstate objects for arch qemux86_64: 100%
|| Time: 0:00:00
NOTE: Executing Tasks
NOTE: Tasks Summary: Attempted 637 tasks of which 627 didn't need to
be rerun and all succeeded.
NOTE: Build completion summary:
NOTE:   do_populate_sysroot: 0.0% sstate reuse(0 setscene, 1 scratch)
NOTE:   do_create_spdx: 0.0% sstate reuse(0 setscene, 1 scratch)
NOTE:   do_create_runtime_spdx: 0.0% sstate reuse(0 setscene, 1
scratch)
NOTE:   do_package_qa: 0.0% sstate reuse(0 setscene, 1 scratch)
NOTE:   do_package: 0.0% sstate reuse(0 setscene, 1 scratch)
NOTE:   do_packagedata: 0.0% sstate reuse(0 setscene, 1 scratch)
NOTE:   do_package_write_rpm: 0.0% sstate reuse(0 setscene, 1 scratch)

  seems to be honouring sstate-cache.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193985): 
https://lists.openembedded.org/g/openembedded-core/message/193985
Mute This Topic: https://lists.openembedded.org/mt/103807270/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] want to confirm i'm using "externalsrc" and "bin_package" efficiently

2024-01-18 Thread Robert P. J. Day
On Thu, 18 Jan 2024, Alexander Kanavin wrote:

> Mono-repo seemed like a good idea at the time, I'm sure.
>
> I need to point out that externalsrc disables sstate and always
> rebuilds from scratch. Is that okay?

  i just tested, and the recipe does *not* rebuild unless i change
something in the ("externalsrc") source directory, at which point,
yes, it rebuilds. which is exactly what i'm after.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193983): 
https://lists.openembedded.org/g/openembedded-core/message/193983
Mute This Topic: https://lists.openembedded.org/mt/103807270/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] want to confirm i'm using "externalsrc" and "bin_package" efficiently

2024-01-18 Thread Robert P. J. Day

  i'm pretty sure i know how to do this, just want to know if there's
an even easier/more elegant way.

  in current project, there is a *pile* of local content that is
identified by various recipes. so since that content is local, the
obvious starting point is for such recipes to "inherit externalsrc" to
properly identify the local source directory.

  in addition, many of those recipes represent packaging binary data
(imagine firmware files), so that there is really no meaningful
configure or compile tasks, so that further suggests inheriting
"bin_package" as well.

  finally, in some cases, there is a teeny bit of tweaking that might
be needed for the final installed content, which suggests adding:

  do_install:append()

to the mix to handle whatever little adjustments are needed.

  so given that scenario, can i reasonably summarize the right
approach as:

  inherit externalsrc
  inherit bin_package
  do_install:append()   [as needed]

finally, it doesn't seem like many of those recipes are required as
build-time dependencies, so i can just make them either RDEPENDS as
appropriate, or just IMAGE_INSTALL them for the final image.

  sound reasonable? am i overthinking this? seems fairly
straightforward.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193977): 
https://lists.openembedded.org/g/openembedded-core/message/193977
Mute This Topic: https://lists.openembedded.org/mt/103807270/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] how badly do symlinks from within ${S} to outside ${S} mess up sstate?

2024-01-17 Thread Robert P. J. Day
On Tue, 16 Jan 2024, Richard Purdie wrote:

> On Tue, 2024-01-16 at 09:23 -0500, Robert P. J. Day wrote:
> >   a very weird question, to be sure, but i literally just ran across a
> > recipe that does the following (i will paraphrase some stuff to
> > protect the innocent).
> >
> >   the recipe processes a bunch of XML source files, and generates from
> > them JSON files, so any change in any of the XML source files should
> > (obviously) trigger a rebuild of the recipe. and here's the problem.
> >
> >   the XML files are not copied into the recipe source directory, and
> > are not even referenced by SRC_URI. rather, the files live in a
> > well-known location on the build host (placed there by a monstrous
> > "repo sync"), and to save time and space, the recipe just *symlinks*
> > from inside ${S} to the XML source files outside of ${S}, then
> > proceeds to process them to generate the subsequent JSON files.
> >
> >   the complaint is that, when the build pipeline started taking
> > advantage of sstate-cache, even after some of the XML files were
> > changed, the recipe would not rebuild.
> >
> >   once i understood what was happening, my immediate reaction was
> > along the lines, "well, since what is under ${S} is simply symlinks to
> > files *outside* of ${S} and (worse) those symlink names will never
> > change (all that will change is the XML files at the other end), how
> > is bitbake supposed to have any idea that those XML files have
> > changed to kick off a rebuild?"
> >
> >   so my initial response was, "this does not surprise me at all," but
> > does my reasoning hold up? obviously, this should probably use a
> > combination of bin_package and externalsrc, but as it is now, is it
> > moderately accurate to suggest that it is those symlinks that are
> > preventing bitbake from understanding that anything has changed, so
> > that it continues to use the old sstate-cache?
>
> Inputs to a recipe need to come through SRC_URI. That way bitbake can
> know when they change. If you point at some random place via a symlink
> how is bitbake supposed to know if/when they change?
>
> Yes, pointing at a large tree of files will take time to hash and yes,
> that can make parsing slow. Either you care when it changes or you
> don't.
>
> The inputs are used to generate a hash which makes up the hash
> representing the task. When the hash changes, we know that sstate is
> invalid and we need to rebuild.

  thanks, richard, i appreciate the time you took to clarify this. i'm
going to paraphrase and add it to my WIP "OE/YP best practices"
internal doc; this advice would be contained in the chapter, "for the
love of god, stop doing this!"

  thanks again.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193903): 
https://lists.openembedded.org/g/openembedded-core/message/193903
Mute This Topic: https://lists.openembedded.org/mt/103762271/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] how badly do symlinks from within ${S} to outside ${S} mess up sstate?

2024-01-16 Thread Robert P. J. Day

  a very weird question, to be sure, but i literally just ran across a
recipe that does the following (i will paraphrase some stuff to
protect the innocent).

  the recipe processes a bunch of XML source files, and generates from
them JSON files, so any change in any of the XML source files should
(obviously) trigger a rebuild of the recipe. and here's the problem.

  the XML files are not copied into the recipe source directory, and
are not even referenced by SRC_URI. rather, the files live in a
well-known location on the build host (placed there by a monstrous
"repo sync"), and to save time and space, the recipe just *symlinks*
from inside ${S} to the XML source files outside of ${S}, then
proceeds to process them to generate the subsequent JSON files.

  the complaint is that, when the build pipeline started taking
advantage of sstate-cache, even after some of the XML files were
changed, the recipe would not rebuild.

  once i understood what was happening, my immediate reaction was
along the lines, "well, since what is under ${S} is simply symlinks to
files *outside* of ${S} and (worse) those symlink names will never
change (all that will change is the XML files at the other end), how
is bitbake supposed to have any idea that those XML files have
changed to kick off a rebuild?"

  so my initial response was, "this does not surprise me at all," but
does my reasoning hold up? obviously, this should probably use a
combination of bin_package and externalsrc, but as it is now, is it
moderately accurate to suggest that it is those symlinks that are
preventing bitbake from understanding that anything has changed, so
that it continues to use the old sstate-cache?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193864): 
https://lists.openembedded.org/g/openembedded-core/message/193864
Mute This Topic: https://lists.openembedded.org/mt/103762271/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] looking to collect "OE/YP best practices" docs for co-op student

2024-01-11 Thread Robert P. J. Day

g'day, eh?

  in my current employment, i am in charge of a number of YP (well,
Wind River Linux) layers with a lot of legacy cruft^H^H^H^H^H content,
and i'd like to start cleaning it up little by little. i was gifted a
fairly junior co-op student for the term and figured this would be a
good way to put him to use and even turn him into a moderately
competent OE developer by the end of the term.

  so i wanted to put together a *really* comprehensive list of best
practices, starting simple, open a Jira epic, and start adding
increasingly sophisticated tasks for him to do day by day.

  i've started collecting a few docs but none of them really cover the
gamut of all the pedantic things one could do to tidy up OE/YP layers.
i was going to start off with just aesthetic prettification -- break
absurdly long assignments of multiple values into one per line, line
continuations, in alphabetical order, that sort of thing.

  the next step would be, i think, to get familiar with bitbake.conf
and some of the bbclass files, and start removing superfluous content
from various recipes. case in point -- a pile of packagegroup recipe
files unnecessarily set:

  PACKAGES = ${PN}

but that's the default so ... delete that sort of thing (as long as
there's no *real* reason for it to be there).

  this might sound like grunt work but, as the term went on, i'd ask
him to do more research and come up with cleanups of his own as he
understood more of OE. i'd like to make this a truly productive term
for this guy.

  any recommended docs that get to this level? i've already bookmarked
the standard YP docs, and a couple others.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193541): 
https://lists.openembedded.org/g/openembedded-core/message/193541
Mute This Topic: https://lists.openembedded.org/mt/103661346/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] how to sneak a function into the *middle* of "prefuncs"?

2024-01-04 Thread Robert P. J. Day
On Wed, 3 Jan 2024, Richard Purdie wrote:

> On Wed, 2024-01-03 at 11:21 -0500, Robert P. J. Day wrote:
> >   no, no, hear me out ... colleague has a vendor's YP build system and
> > needs to -- in the middle of a bunch of a task's [prefuncs] -- sneak
> > in a signing step. can't be at the beginning (what to be signed not
> > created yet), and can't be at the end cuz by then it's too late as the
> > artifact has been bundled.
> >
> >   first, as i read it, for a given task, all of the prefuncs are
> > invoked in exact L-to-R order, then the task is run, then all of the
> > postfuncs are done in L-to-R order. then (and only the) does the
> > processing move on to the next task.
> >
> >   given limited freedom to change the vendor's recipes, my first
> > thought was to define an "intermediate" task whose only purpose was to
> > babysit the signing step, make the signing function either a prefunc
> > or postfunc of that task (should not matter which), then redefine the
> > preceding and subsequent tasks to split up all those functions
> > properly so that the signing step sits in the middle where it belongs.
> >
> >   am i overthinking this? and even if the code processes a single
> > task's prefuncs and postfuncs in order, that's not the thing i really
> > want to count on.
> >
> >   thoughts?
>
> append or prepend one of the prefunc functions?

  h ... i embarrassingly had not thought of that. that might be
the solution, thanks.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193306): 
https://lists.openembedded.org/g/openembedded-core/message/193306
Mute This Topic: https://lists.openembedded.org/mt/103504749/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] how to sneak a function into the *middle* of "prefuncs"?

2024-01-03 Thread Robert P. J. Day

  no, no, hear me out ... colleague has a vendor's YP build system and
needs to -- in the middle of a bunch of a task's [prefuncs] -- sneak
in a signing step. can't be at the beginning (what to be signed not
created yet), and can't be at the end cuz by then it's too late as the
artifact has been bundled.

  first, as i read it, for a given task, all of the prefuncs are
invoked in exact L-to-R order, then the task is run, then all of the
postfuncs are done in L-to-R order. then (and only the) does the
processing move on to the next task.

  given limited freedom to change the vendor's recipes, my first
thought was to define an "intermediate" task whose only purpose was to
babysit the signing step, make the signing function either a prefunc
or postfunc of that task (should not matter which), then redefine the
preceding and subsequent tasks to split up all those functions
properly so that the signing step sits in the middle where it belongs.

  am i overthinking this? and even if the code processes a single
task's prefuncs and postfuncs in order, that's not the thing i really
want to count on.

  thoughts?

rday



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#193293): 
https://lists.openembedded.org/g/openembedded-core/message/193293
Mute This Topic: https://lists.openembedded.org/mt/103504749/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] why does using ${AUTOREV} with kernel recipe rebuild every time?

2023-12-13 Thread Robert P. J. Day

  i *know* i should know the answer to this, but someone just showed
me a build (WRLinux-based, but still relevant) where the linux kernel
recipe uses:

  SRCREV_machine = ${AUTOREV}

which is what one reads in the WRL version of linux-yocto-custom.bb,
but also makes it clear in that recipe file that that is discouraged.

  in any event, this appears to be forcing an entire rebuild of the
kernel every time, even in the presence of sstate-cache, so the
obvious question is, what is it about using ${AUTOREV} that defeats
the use of sstate-cache? apologies if this should be obvious.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#192303): 
https://lists.openembedded.org/g/openembedded-core/message/192303
Mute This Topic: https://lists.openembedded.org/mt/103151800/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] how to INSANE_SKIP duplicate installed files?

2023-11-15 Thread Robert P. J. Day
On Wed, 15 Nov 2023, Ross Burton wrote:

> On 15 Nov 2023, at 10:13, Robert P. J. Day via lists.openembedded.org 
>  wrote:
> >  i swear, i once did this but now i can't find the solution for
> > allowing two recipes to install duplicate files. of course, the right
> > answer is to fix the recipes but a colleague just wants to get his
> > build to work so what is the quickest way to do the dangerous thing
> > and allow overriding installed files?
>
> Recipes can create the same file, but they can’t be installed at the
> same time.
>
> If two recipes install the same filename and they’re both pulled
> into the sysroot via DEPENDS then that is a fatal error and you
> can’t avoid it.
>
> If two packages install the same filename and they’re both pulled
> into an image then that is a fatal error and you can’t avoid it.

  never mind, just learned this happened on Wind River Linux, not YP,
*but* i swear that, some time back, this was happening to a colleague
and there was some override setting that allowed it. or i'm just
misremembering.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#190587): 
https://lists.openembedded.org/g/openembedded-core/message/190587
Mute This Topic: https://lists.openembedded.org/mt/102602347/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] how to INSANE_SKIP duplicate installed files?

2023-11-15 Thread Robert P. J. Day

  i swear, i once did this but now i can't find the solution for
allowing two recipes to install duplicate files. of course, the right
answer is to fix the recipes but a colleague just wants to get his
build to work so what is the quickest way to do the dangerous thing
and allow overriding installed files?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#190582): 
https://lists.openembedded.org/g/openembedded-core/message/190582
Mute This Topic: https://lists.openembedded.org/mt/102602347/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] is it worth a newbie cleanup task to update "class Whatever(object)"?

2023-10-26 Thread Robert P. J. Day

  just noticed that there is a lot of "class Something(object):" in
oe-core, where AIUI, the argument of "object" is a throwback to
Python2 and shouldn't(?) be necessary.

  is there any value in letting a newbie loose on a task to clean all
that up? or is that more churn than it's worth?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#189736): 
https://lists.openembedded.org/g/openembedded-core/message/189736
Mute This Topic: https://lists.openembedded.org/mt/102203669/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] doesn't seem like "PROFILE_TOOLS_X" has any value

2023-10-17 Thread Robert P. J. Day

if you look here:

https://git.openembedded.org/openembedded-core/tree/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb#n12

it's not clear what PROFILE_TOOLS_X is doing, given that it's set to the
empty string, then conditionally set to the same thing. i don't see it 
being

referenced elsewhere.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#189346): 
https://lists.openembedded.org/g/openembedded-core/message/189346
Mute This Topic: https://lists.openembedded.org/mt/102021731/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] why is it PROVIDES = "udev" and not PROVIDES = "virtual/udev"?

2023-10-17 Thread Robert P. J. Day
given that the PREFERRED_PROVIDER feature is typically used for 
"virtual" entities:


* virtual/kernel
* virtual/xserver
* virtual/libgl

and so on, is there a reason that this pattern is not followed for the 
selection
of a udev provider, which is referred to as just 
"PREFERRED_PROVIDER_udev", and

can be provided by either of systemd or eudev?

rday


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#189316): 
https://lists.openembedded.org/g/openembedded-core/message/189316
Mute This Topic: https://lists.openembedded.org/mt/102012999/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] why does rust recipe file define "rust_do_install()"?

2023-10-13 Thread Robert P. J. Day

  i'm perusing the rust_1.70.0.bb recipe file, and i'm puzzled by the
fact that it defines its own do_install() to simply call
rust_do_install(), which then implements variations of that function:

https://git.openembedded.org/openembedded-core/tree/meta/recipes-devtools/rust/rust_1.70.0.bb#n244

  do_install () {
rust_do_install
  }

  rust_do_install() {
rust_runx install
  }

  rust_do_install:class-nativesdk() {
export PSEUDO_UNLOAD=1
rust_runx install
rust_runx install clippy
... snip ...

i'm familiar with bbclass files defining things like that; eg.,
autotools.bbclass defining:

  autotools_do_install() {
oe_runmake 'DESTDIR=${D}' install it if it exists.
if [ -e "${D}${infodir}/dir" ]; then
rm -f ${D}${infodir}/dir
fi
  }

but examples like that are generally then listed in EXPORT_FUNCTIONS
so subsequent recipes can invoke them as part of *their* do_install(),
like this snippet from the tar recipe:

  do_install () {
autotools_do_install
ln -s tar ${D}${bindir}/gtar
  }

but i'm not sure why the rust recipe file is doing what it's doing.
could it not have just defined variations of do_install() and gotten
the same effect? or is there something more subtle happening here?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#189029): 
https://lists.openembedded.org/g/openembedded-core/message/189029
Mute This Topic: https://lists.openembedded.org/mt/101936139/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] is there a command to produce artifacts of a recipe and all its "shlibdeps" packages?

2023-05-31 Thread Robert P. J. Day

  this is possibly a silly question, but i have a YP build with one
recipe (call it fubar") that has a number of DEPENDS, some of which
generate shared libs that will also be runtime dependencies for fubar
once it's installed. as i recall (and i could be wrong), the shared
lib dependencies for fubar can be seen in the eventual file
fubar/packages-split/fubar.shlibdeps.

  now i want to be able to bundle up the fubar package, walk it over,
and drop it on a compatible device where i know it should run, but
obviously i need to similarly bundle all of those shlibdeps to go with
it.

  rather than manually doing each of those shlibdeps individually, is
there some incantation such that i can create some sort of archive of
a recipe and all of its runtime dependencies so that i can just take
that entire single archive and drop it on the target device?

  i can't think of a simple way to do that, but perhaps others know
some sort of magic.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#182019): 
https://lists.openembedded.org/g/openembedded-core/message/182019
Mute This Topic: https://lists.openembedded.org/mt/99245372/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] looking for a recipe for LXD container to do OE/YP builds

2022-08-11 Thread Robert P. J. Day

  (not so much an OE question as a build question related to the
proper design of LXD container for doing OE builds.)

  colleague asked me how to best create an LXD container based on a
specific release (ubuntu 18.04); specifically, how to use idmapped
mounts to correctly map a directory into the container so that UIDs
don't step on each other, so here's the scenario.

  * (google repo-based) YP checkout that will, in the end, apparently
generate 120BG(!!!) of output.

  * must be ubuntu 18.04 container based on versions of OE/YP layers
being checked out

the need to do this mapping is that, by default, when you shell into
the LXD container, you're running as root, which of course will not
work for running bitbake. and the tricky(?) part is that:

  1) on my ubuntu 22.04 host, my account is rpjday/1000.
  2) the non-root account created in the container is ubuntu/1000

so we already have a bit of conflict in matching UIDs attached to
different usernames.

  i'm just trying to determine the preferred way to set up /etc/subuid
and /etc/subgid and an LXC device so that i can map the entire build
directory into the container, shell into the container, do the build
there and have all the output go into the mapped directory so that it
(obviously) ends up on my host and not in the container (where there
is nowhere near 120G of space, and i don't want to resize the
container to that extent).

  thoughts? i'm about to try a few combinations and might stumble
across something that works, but if anyone else has gone through this
and has a recipe, that would be just ducky.

rday

p.s. my first guess is that it might not be an issue that there are
two different accounts with UID 1000, since ubuntu in the container
will map nicely to my own account on the host. but we'll see shortly.

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#169232): 
https://lists.openembedded.org/g/openembedded-core/message/169232
Mute This Topic: https://lists.openembedded.org/mt/92953887/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] is "poky" distro defined to use "sysvinit" as INIT_MANAGER?

2022-07-06 Thread Robert P. J. Day

  not sure why i never noticed this before, but i started a new
project from the poky layer (not OE), and realized that poky.conf
explicitly sets:

  INIT_MANAGER = "sysvinit"

which can't be overridden in my local.conf. if i want systemd, i guess
i can initialize my project from the OE layer, and i also notice that
i could use poky-altcfg.conf.

  but is there a reason that the default poky-based project fixes
INIT_MANAGER to "sysvinit". perhaps just for simplicity?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#167735): 
https://lists.openembedded.org/g/openembedded-core/message/167735
Mute This Topic: https://lists.openembedded.org/mt/92210454/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] what happens if an included layer contains a "conf/site.conf" file?

2022-05-26 Thread Robert P. J. Day
On Thu, 26 May 2022, richard.pur...@linuxfoundation.org wrote:

> On Thu, 2022-05-26 at 10:51 -0400, Robert P. J. Day wrote:
> >   still trying to isolate some weirdness from this morning, but i'm
> > playing with a vendor's amazingly convoluted BSP which wraps a bunch
> > of thud-generation layers in some shell scripts.
> >
> >   long story short: given some gcc-generated compiler errors, i added
> > a site.conf file under conf/ in the build directory, and included in
> > it a single CFLAGS-related no-error setting.
> >
> >   suddenly, i began getting a slew of recipe parse errors from the
> > fetch step, complaining about failure to parse numerous SRC_URI
> > values, all of which started with a variable that represented the top
> > level URL for the source. suspecting that the variable in question was
> > somehow undefined, i set it explicitly in my new site.conf, which
> > solved *those* parse errors but displayed more based on a *different*
> > leading variable. so i fixed that and etc, etc, etc.
> >
> >   i was baffled as to where these variables should have been set, and
> > how they must have been set all this time until recently, until i
> > tracked down an obscure layer that was being pulled in, which provided
> > a site.conf file that defined those variables.
> >
> >   which inspires me to ask -- is there a priority to including the
> > file "site.conf" such that it will be pulled in from a layer unless
> > there's an overriding version of that file in the build directory?
> > i've never run across this before.
>
> It works just like any other conf file. The first one found in BBPATH
> wins.
>
> Layers should not have site.conf files in them.

  that's what i wanted to hear -- that i should not have had to debug
someone sneaking a site.conf into a single layer mixed in with 40
other layers. thanks.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#166185): 
https://lists.openembedded.org/g/openembedded-core/message/166185
Mute This Topic: https://lists.openembedded.org/mt/91356020/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] what happens if an included layer contains a "conf/site.conf" file?

2022-05-26 Thread Robert P. J. Day

  still trying to isolate some weirdness from this morning, but i'm
playing with a vendor's amazingly convoluted BSP which wraps a bunch
of thud-generation layers in some shell scripts.

  long story short: given some gcc-generated compiler errors, i added
a site.conf file under conf/ in the build directory, and included in
it a single CFLAGS-related no-error setting.

  suddenly, i began getting a slew of recipe parse errors from the
fetch step, complaining about failure to parse numerous SRC_URI
values, all of which started with a variable that represented the top
level URL for the source. suspecting that the variable in question was
somehow undefined, i set it explicitly in my new site.conf, which
solved *those* parse errors but displayed more based on a *different*
leading variable. so i fixed that and etc, etc, etc.

  i was baffled as to where these variables should have been set, and
how they must have been set all this time until recently, until i
tracked down an obscure layer that was being pulled in, which provided
a site.conf file that defined those variables.

  which inspires me to ask -- is there a priority to including the
file "site.conf" such that it will be pulled in from a layer unless
there's an overriding version of that file in the build directory?
i've never run across this before.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#166183): 
https://lists.openembedded.org/g/openembedded-core/message/166183
Mute This Topic: https://lists.openembedded.org/mt/91356020/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] sanity.bbclass: grammar/typo fixes re: Python install

2022-05-12 Thread Robert P. J. Day

Clean up various spelling/grammar oopsies in a small section of
sanity.bbclass.

Signed-off-by: Robert P. J. Day 

---

diff --git a/meta/classes/sanity.bbclass b/meta/classes/sanity.bbclass
index b416918013..491a3bac6f 100644
--- a/meta/classes/sanity.bbclass
+++ b/meta/classes/sanity.bbclass
@@ -631,11 +631,14 @@ def check_sanity_sstate_dir_change(sstate_dir, data):
 def check_sanity_version_change(status, d):
 # Sanity checks to be done when SANITY_VERSION or NATIVELSBSTRING changes
 # In other words, these tests run once in a given build directory and then
-# never again until the sanity version or host distrubution id/version 
changes.
+# never again until the sanity version or host distribution id/version 
changes.
+
+# Verify that the python install is complete. Examples that are often 
removed in
+# minimal installations:
+#
+#   glib-2.0-native requires xml.parsers.expat
+#   icu requires distutils.sysconfig

-# Check the python install is complete. Examples that are often removed in
-# minimal installations: glib-2.0-natives requries # xml.parsers.expat and 
icu
-# requires distutils.sysconfig.
 try:
 import xml.parsers.expat
 import distutils.sysconfig

-- 


Robert P. J. Day Ottawa, Ontario, CANADA
 http://crashcourse.ca

LinkedIn:   http://ca.linkedin.com/in/rpjday


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#165538): 
https://lists.openembedded.org/g/openembedded-core/message/165538
Mute This Topic: https://lists.openembedded.org/mt/91054003/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] local.conf.sample: mention other QEMU targets in OE

2022-05-12 Thread Robert P. J. Day

Mention that there are other QEMU targets available in the OE layer,
and leave it for the reader to check them out.

Signed-off-by: Robert P. J. Day 

---

  i think this is the happy medium between not saying anything about
the additional QEMU machines, and promoting them to full equality with
the other layers -- just let the reader know where they can examine
them.

diff --git a/meta/conf/local.conf.sample b/meta/conf/local.conf.sample
index c05691de58..c28ff62468 100644
--- a/meta/conf/local.conf.sample
+++ b/meta/conf/local.conf.sample
@@ -29,7 +29,11 @@
 # This sets the default machine to be qemux86-64 if no other machine is 
selected:
 MACHINE ??= "qemux86-64"

-#
+# Note that the openembedded-core layer defines a few more QEMU targets that
+# are not listed here as they are not tested as robustly as the above, but they
+# are still available for the adventurous; see the full list at:
+# https://git.openembedded.org/openembedded-core/tree/meta/conf/machine
+
 # Where to place downloads
 #
 # During a first build the system will download many different source code 
tarballs

-- 

========
Robert P. J. Day Ottawa, Ontario, CANADA
 http://crashcourse.ca

LinkedIn:   http://ca.linkedin.com/in/rpjday


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#165537): 
https://lists.openembedded.org/g/openembedded-core/message/165537
Mute This Topic: https://lists.openembedded.org/mt/91053878/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCH] local.conf.sample: add comments for missing machines

2022-05-11 Thread Robert P. J. Day
On Wed, 11 May 2022, Alexander Kanavin wrote:

> I would rather just refer to the directory where 'additional, less
> well tested machines are'.
>
> Alex

  sure, something like that works for me.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#165499): 
https://lists.openembedded.org/g/openembedded-core/message/165499
Mute This Topic: https://lists.openembedded.org/mt/91032627/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCH] local.conf.sample: add comments for missing machines

2022-05-11 Thread Robert P. J. Day
On Wed, 11 May 2022, Alexander Kanavin wrote:

> I have to note that the project does not test these machines, and they
> may not necessarily work. Advertising them in local.conf may result in
> frustrating fails for people who are running bitbake for the very
> first time.
>
> Alex
>
> On Wed, 11 May 2022 at 12:48, Robert P. J. Day  wrote:
> >
> >
> > Fill out the commented list of supported machines for completeness.
> >
> > Signed-off-by: Robert P. J. Day 
> >
> > ---
> >
> > diff --git a/meta/conf/local.conf.sample b/meta/conf/local.conf.sample
> > index c05691de58..f0b8952947 100644
> > --- a/meta/conf/local.conf.sample
> > +++ b/meta/conf/local.conf.sample
> > @@ -20,9 +20,13 @@
> >  #
> >  #MACHINE ?= "qemuarm"
> >  #MACHINE ?= "qemuarm64"
> > +#MACHINE ?= "qemuarmv5"
> >  #MACHINE ?= "qemumips"
> >  #MACHINE ?= "qemumips64"
> >  #MACHINE ?= "qemuppc"
> > +#MACHINE ?= "qemuppc64"
> > +#MACHINE ?= "qemuriscv32"
> > +#MACHINE ?= "qemuriscv64"
> >  #MACHINE ?= "qemux86"
> >  #MACHINE ?= "qemux86-64"
> >  #

  that's the first thing i thought of, but what is a cleaner solution?
if those machine definitions come with OE, then why should they be
treated as second-class citizens? if those machines aren't tested,
then maybe an extra comment pointing that out would be appropriate.

  i just think this should be consistent. thoughts?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#165497): 
https://lists.openembedded.org/g/openembedded-core/message/165497
Mute This Topic: https://lists.openembedded.org/mt/91032627/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] local.conf.sample: add comments for missing machines

2022-05-11 Thread Robert P. J. Day

Fill out the commented list of supported machines for completeness.

Signed-off-by: Robert P. J. Day 

---

diff --git a/meta/conf/local.conf.sample b/meta/conf/local.conf.sample
index c05691de58..f0b8952947 100644
--- a/meta/conf/local.conf.sample
+++ b/meta/conf/local.conf.sample
@@ -20,9 +20,13 @@
 #
 #MACHINE ?= "qemuarm"
 #MACHINE ?= "qemuarm64"
+#MACHINE ?= "qemuarmv5"
 #MACHINE ?= "qemumips"
 #MACHINE ?= "qemumips64"
 #MACHINE ?= "qemuppc"
+#MACHINE ?= "qemuppc64"
+#MACHINE ?= "qemuriscv32"
+#MACHINE ?= "qemuriscv64"
 #MACHINE ?= "qemux86"
 #MACHINE ?= "qemux86-64"
 #

-- 

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#165494): 
https://lists.openembedded.org/g/openembedded-core/message/165494
Mute This Topic: https://lists.openembedded.org/mt/91032627/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] should local.conf.sample include MACHINEs related to RISC-V?

2022-05-11 Thread Robert P. J. Day
On Wed, 11 May 2022, Alistair Francis wrote:

> On Wed, May 11, 2022 at 12:06 PM Robert P. J. Day  
> wrote:
> >
> >
> >   just now noticed that while oe-core includes machine definitions for
> > qemuriscv*, local.conf.sample does not mention them. is this just an
> > oversight?
>
> Yeah, that's just an oversight. If you want you can send a patch :)

  on it.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#165493): 
https://lists.openembedded.org/g/openembedded-core/message/165493
Mute This Topic: https://lists.openembedded.org/mt/91032184/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] should local.conf.sample include MACHINEs related to RISC-V?

2022-05-11 Thread Robert P. J. Day

  just now noticed that while oe-core includes machine definitions for
qemuriscv*, local.conf.sample does not mention them. is this just an
oversight?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#165491): 
https://lists.openembedded.org/g/openembedded-core/message/165491
Mute This Topic: https://lists.openembedded.org/mt/91032184/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] does "do_kernel_metadata()" not generate any output in some cases?

2022-03-06 Thread Robert P. J. Day

  colleague is playing with RISC-V, building QEMU images, and wanted
to know how the kernel is fetched and configured and built and so on,
so i decided to list the kernel tasks and write a short summary of
what each does (since i think this will be useful shortly), and what
artifacts it generates for use by subsequent steps, and i was doing
fine until i got to do_kernel_metadata(), where i can see that it is
invoked twice:

  - first time in "patch" mode
  - second time from do_kernel_configme() in "config" mode

  but when i bitbake'd the kernel_metadata task for my generic x86-64
kernel, i couldn't find any generated artifacts from that step.

  certainly, stuff is going to be created later during the
kernel_configme() task when that task is invoked again, and it appears
that a fair bit of code will be re-run, but is it the case that,
because i'm building a really trivial configuration (all i've added is
a single .cfg file to demonstrate how it's processed), that the first
call to kernel_metadata() figures it has nothing to generate?

  i can see all of the output from the tail end of that routine:

  if [ ${KCONF_AUDIT_LEVEL} -gt 0 ]; then
bbnote "kernel meta data summary for ${KMACHINE} (${LINUX_KERNEL_TYPE}):"
bbnote 
"=="
if [ -n "${KMETA_EXTERNAL_BSPS}" ]; then
  bbnote "Non kernel-cache (external) bsp"
fi
bbnote "BSP entry point / definition: $bsp_definition"
if [ -n "$in_tree_defconfig" ]; then
  bbnote "KBUILD_DEFCONFIG: ${KBUILD_DEFCONFIG}"
fi
bbnote "Fragments from SRC_URI: $sccs_from_src_uri"
bbnote "KERNEL_FEATURES: $KERNEL_FEATURES_FINAL"
bbnote "Final scc/cfg list: $sccs_defconfig $bsp_definition $sccs 
$KERNEL_FEATURES_FINAL"
  fi

but i don't see where in kernel_metadata() any of that is *saved* so
that it doesn't have to be recalculated. again, i'm building a stock
qemux86-64 image, and adding a single .cfg file (no patches), so maybe
this example is so trivial that nothing is generated.

  thoughts?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#162787): 
https://lists.openembedded.org/g/openembedded-core/message/162787
Mute This Topic: https://lists.openembedded.org/mt/89590057/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] various typo/grammar/punctuation fixes

2022-02-27 Thread Robert P. J. Day

Among other things, fix misspellings of:

  - absolute
  - deprecated
  - suitable
  - handle

and a bunch of other things.

Signed-off-by: Robert P. J. Day 

---

  was perusing runqemu script, so most changes are there but checked
around for other stuff at the same time.

diff --git a/meta/lib/oeqa/selftest/cases/runtime_test.py 
b/meta/lib/oeqa/selftest/cases/runtime_test.py
index 5637a02451..642f0eb637 100644
--- a/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -217,7 +217,7 @@ class TestImage(OESelftestTestCase):
 if distro and distro in ['debian-9', 'debian-10', 'centos-7', 
'centos-8', 'ubuntu-16.04', 'ubuntu-18.04', 'almalinux-8.5']:
 self.skipTest('virgl headless cannot be tested with %s' %(distro))

-render_hint = """If /dev/dri/renderD* is absent due to lack of 
suitable GPU, 'modprobe vgem' will create one sutable for mesa llvmpipe sofware 
renderer."""
+render_hint = """If /dev/dri/renderD* is absent due to lack of 
suitable GPU, 'modprobe vgem' will create one suitable for mesa llvmpipe 
software renderer."""
 try:
 content = os.listdir("/dev/dri")
 if len([i for i in content if i.startswith('render')]) == 0:
diff --git a/scripts/crosstap b/scripts/crosstap
index 73c8947442..5aa72f14d4 100755
--- a/scripts/crosstap
+++ b/scripts/crosstap
@@ -353,7 +353,7 @@ bitbake workspace.

 Anything after -- option is passed directly to stap.

-Legacy script invocation style supported but depreciated:
+Legacy script invocation style supported but deprecated:
   %prog   [systemtap options]

 To enable most out of systemtap the following site.conf or local.conf
diff --git a/scripts/oe-setup-builddir b/scripts/oe-setup-builddir
index 5a51fa793f..d4ac074ad9 100755
--- a/scripts/oe-setup-builddir
+++ b/scripts/oe-setup-builddir
@@ -94,9 +94,9 @@ into your configuration please add entries to 
conf/bblayers.conf.

 EOM

-# Put the abosolute path to the layers in bblayers.conf so we can run
-# bitbake without the init script after the first run
-# ##COREBASE## is deprecated as it's meaning was inconsistent, but continue
+# Put the absolute path to the layers in bblayers.conf so we can run
+# bitbake without the init script after the first run.
+# ##COREBASE## is deprecated as its meaning was inconsistent, but continue
 # to replace it for compatibility.
 sed -e "s|##OEROOT##|$OEROOT|g" \
 -e "s|##COREBASE##|$OEROOT|g" \
@@ -115,7 +115,7 @@ The Yocto Project has extensive documentation about OE 
including a reference
 manual which can be found at:
 https://docs.yoctoproject.org

-For more information about OpenEmbedded see their website:
+For more information about OpenEmbedded see the website:
 https://www.openembedded.org/

 EOM
diff --git a/scripts/runqemu b/scripts/runqemu
index 5c108ec23a..9ddd47267c 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -73,11 +73,11 @@ of the following environment variables (in any order):
 gl-es - enable virgl-based GL acceleration, using OpenGL ES (also needs 
gtk or sdl options)
 egl-headless - enable headless EGL output; use vnc (via publicvnc option) 
or spice to see it
 (hint: if /dev/dri/renderD* is absent due to lack of suitable GPU, 
'modprobe vgem' will create
-one sutable for mesa llvmpipe sofware renderer)
+one suitable for mesa llvmpipe software renderer)
 serial - enable a serial console on /dev/ttyS0
 serialstdio - enable a serial console on the console (regardless of 
graphics mode)
-slirp - enable user networking, no root privileges is required
-snapshot - don't write changes to back to images
+slirp - enable user networking, no root privilege is required
+snapshot - don't write changes back to images
 kvm - enable KVM when running x86/x86_64 (VT-capable CPU required)
 kvm-vhost - enable KVM with vhost when running x86/x86_64 (VT-capable CPU 
required)
 publicvnc - enable a VNC server open to all hosts
@@ -352,10 +352,10 @@ class BaseConfig(object):
 def check_arg_path(self, p):
 """
 - Check whether it is .qemuboot.conf or contains 
.qemuboot.conf
-- Check whether is a kernel file
-- Check whether is a image file
-- Check whether it is a nfs dir
-- Check whether it is a OVMF flash file
+- Check whether it is a kernel file
+- Check whether it is an image file
+- Check whether it is an NFS dir
+- Check whether it is an OVMF flash file
 """
 if p.endswith('.qemuboot.conf'):
 self.qemuboot = p
@@ -366,7 +366,7 @@ class BaseConfig(object):
 self.kernel =  p
 elif os.path.exists(p) and (not os.path.isdir(p)) and '-image-' in 
os.path.basename(p):
 self.rootfs = p
-

Re: [OE-core] ROOTFS_POSTPROCESS_COMMAND versus do_install_append() and using ${D}?

2021-12-15 Thread Robert P. J. Day
On Tue, 14 Dec 2021, Ross Burton wrote:

> On Tue, 14 Dec 2021 at 11:39, Robert P. J. Day  wrote:
> >   what i'm looking at now does it in a more curious way. there is
> > a catch-all recipe file (call it "catchall.bb") which lists, as
> > its DEPENDS list, *all* of the recipes that make up the image,
> > which means that building catchall.bb builds and populates an
> > image directory with the combination of all those other recipes,
> > after which it defines both pkg_postinst_${PN} *and*
> > do_install_append(), both of which run around and make changes
> > relative to ${D}, given that the image directory for that recipe
> > effectively contains, well, everything that will go into the
> > rootfs.
>
> Either you're explaining badly, or that isn't doing what you expect.
>
> A normal catchall.bb recipe which DEPENDS on all other relevant
> recipes will result in the recipe-sysroot directory containing the
> sysroots for those recipes, but that is all.  the image directory
> won't contain anything apart from what catchall.bb's do_install
> installs.

  yes, i was explaining badly ... actually, no, i just had no idea
what i was talking about, so let's try again.

  stripped down version: i'm trying to clarify in my own mind the
myriad of ways one can customize a package/rootfs/image, via
do_install:append(), or pkg_postinst...,
or ROOTFS_{PRE,POST}...COMMAND, or IMAGE_..._COMMAND, and so on, but
let's start simple.

 in a recipe i was handed from a working system, there are two
customizations:

  1) pkg_postinst_${PN} runs a bunch of "setcap"s

  2) do_install_append() installs stuff into ${D}, and also runs
 a number of chown/chmod commands, and creates a couple of
 hard links

no one can explain to me why both features are being used, so it's
either because those two things run in different contexts, or perhaps
they were added once upon a time by two different people.

  so the firist question is, is there some requirement that the above
was done precisely that wasy?

  second question: is there somewhere in the docs a comprehensive list
of all the different ways to customize stuff as i mentioned above? a
colleague asked me this very thing, and i had to admit i didn't know
the full list so i would take a look (and maybe even write something
up).

  thoughts?

rday

p.s. i'm going to ask later about specifics of pkg_postinst() since
i'm still unclear on the exact mechanics.

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#159722): 
https://lists.openembedded.org/g/openembedded-core/message/159722
Mute This Topic: https://lists.openembedded.org/mt/87719024/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] ROOTFS_POSTPROCESS_COMMAND versus do_install_append() and using ${D}?

2021-12-14 Thread Robert P. J. Day
On Tue, 14 Dec 2021, Ross Burton wrote:

> On Tue, 14 Dec 2021 at 11:39, Robert P. J. Day  wrote:
> >   what i'm looking at now does it in a more curious way. there is a
> > catch-all recipe file (call it "catchall.bb") which lists, as its
> > DEPENDS list, *all* of the recipes that make up the image, which means
> > that building catchall.bb builds and populates an image directory with
> > the combination of all those other recipes, after which it defines
> > both pkg_postinst_${PN} *and* do_install_append(), both of which run
> > around and make changes relative to ${D}, given that the image
> > directory for that recipe effectively contains, well, everything that
> > will go into the rootfs.
>
> Either you're explaining badly, or that isn't doing what you expect.
>
> A normal catchall.bb recipe which DEPENDS on all other relevant
> recipes will result in the recipe-sysroot directory containing the
> sysroots for those recipes, but that is all.  the image directory
> won't contain anything apart from what catchall.bb's do_install
> installs.

  yeah, i was typing quickly and screwed up my explanation totally.
i'll try again after imminent meeting. le *sigh*.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#159691): 
https://lists.openembedded.org/g/openembedded-core/message/159691
Mute This Topic: https://lists.openembedded.org/mt/87719024/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] ROOTFS_POSTPROCESS_COMMAND versus do_install_append() and using ${D}?

2021-12-14 Thread Robert P. J. Day

  i've run across a moderately curious example of doing rootfs-wide
tweaking in an odd way.

  my understanding is that, after i've created my basic image rootfs,
i can define that image's ROOTFS_POSTPROCESS_COMMAND variable, and do
all sorts of rootfs-wide adjustments relative to ${IMAGE_ROOTFS},
which could include running chown, chmod, setcap, and so on and so on,
tweaking clearly spread over various installed package contents.

  what i'm looking at now does it in a more curious way. there is a
catch-all recipe file (call it "catchall.bb") which lists, as its
DEPENDS list, *all* of the recipes that make up the image, which means
that building catchall.bb builds and populates an image directory with
the combination of all those other recipes, after which it defines
both pkg_postinst_${PN} *and* do_install_append(), both of which run
around and make changes relative to ${D}, given that the image
directory for that recipe effectively contains, well, everything that
will go into the rootfs.

  at the moment, it works, but in a perfect world, i'd refactor all
that stuff and sprinkle it among the respective recipes that that
content relates to. however, just to get this going, my initial
reaction is to take that tweaking, adjust it to refer, not to ${D},
but to ${IMAGE_ROOTFS}, and move it all into
ROOTFS_POSTPROCESS_COMMAND. theoretically, would that be effectively
equivalent?

  i realize there might be some messing around but, in the big
picture, should it have the same effect?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#159685): 
https://lists.openembedded.org/g/openembedded-core/message/159685
Mute This Topic: https://lists.openembedded.org/mt/87719024/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] when a systemd service is not listed in "SYSTEMD_PACKAGES"

2021-12-12 Thread Robert P. J. Day
On Sun, 12 Dec 2021, Robert P. J. Day wrote:

>
>   was writing up a wiki page for colleagues at my current gig about
> the proper definition of systemd services, and noticed the following
> oddity(?).
>
>   in current poky master branch, openssh recipe, SRC_URI includes the
> following two lines:
>
>   file://sshd@.service \
>   file://sshdgenkeys.service \
>
> fair enough, two systemd services. however, further down the recipe
> file, only one of them is included in:
>
>   SYSTEMD_PACKAGES = "${PN}-sshd"
>   SYSTEMD_SERVICE:${PN}-sshd = "sshd.socket"
>
> so what happened to the service sshdgenkeys? ah, if one looks in the
> files being installed by openssh for that string:
>
> $ grep sshdgenkeys *
> sshd@.service:After=sshdgenkeys.service
> sshd.socket:Wants=sshdgenkeys.service
> $
>
>   so i am *assuming* that even though sshdgenkeys is an actual systemd
> service, it will only be invoked via the sshd service or socket units,
> and therefore does not need to be included in SYSTEMD_PACKAGES.
>
>   is that the right interpretation? or am i missing something?

  never mind, i think i see what i misunderstood.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#159583): 
https://lists.openembedded.org/g/openembedded-core/message/159583
Mute This Topic: https://lists.openembedded.org/mt/87675663/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] when a systemd service is not listed in "SYSTEMD_PACKAGES"

2021-12-12 Thread Robert P. J. Day

  was writing up a wiki page for colleagues at my current gig about
the proper definition of systemd services, and noticed the following
oddity(?).

  in current poky master branch, openssh recipe, SRC_URI includes the
following two lines:

  file://sshd@.service \
  file://sshdgenkeys.service \

fair enough, two systemd services. however, further down the recipe
file, only one of them is included in:

  SYSTEMD_PACKAGES = "${PN}-sshd"
  SYSTEMD_SERVICE:${PN}-sshd = "sshd.socket"

so what happened to the service sshdgenkeys? ah, if one looks in the
files being installed by openssh for that string:

$ grep sshdgenkeys *
sshd@.service:After=sshdgenkeys.service
sshd.socket:Wants=sshdgenkeys.service
$

  so i am *assuming* that even though sshdgenkeys is an actual systemd
service, it will only be invoked via the sshd service or socket units,
and therefore does not need to be included in SYSTEMD_PACKAGES.

  is that the right interpretation? or am i missing something?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#159582): 
https://lists.openembedded.org/g/openembedded-core/message/159582
Mute This Topic: https://lists.openembedded.org/mt/87675663/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] anyone played with TAS (TCP acceleration service) in OE?

2021-11-18 Thread Robert P. J. Day


colleague just asked me about the viability of TAS in OE:

https://tcp-acceleration-service.github.io/documents/tas_slides.pdf

i've never even heard of it ... anyone crammed it into an
OE build?

rdayu


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#158479): 
https://lists.openembedded.org/g/openembedded-core/message/158479
Mute This Topic: https://lists.openembedded.org/mt/87151613/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] how to "prune" dead sstate-cache?

2021-11-18 Thread Robert P. J. Day
On Thu, 18 Nov 2021, Alexander Kanavin wrote:

> There is a caveat here. This will touch all sstate that is needed to
> construct an image, but won't touch sstate needed to build
> components that go into the image. So target packages are guaranteed
> to be kept, but native items may be deleted - I've seen this with
> e.g. java compiler that is used for few specific, rarely changing
> items.

  i'm willing to allow the pruning to go a little overboard since it
will just be recreated. i'm fine with that.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#158476): 
https://lists.openembedded.org/g/openembedded-core/message/158476
Mute This Topic: https://lists.openembedded.org/mt/87140377/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] how to "prune" dead sstate-cache?

2021-11-18 Thread Robert P. J. Day
On Thu, 18 Nov 2021, Martin Jansa wrote:

> openembedded-core/scripts/sstate-cache-management.sh

  i just now found that script, and noticed that it is not documented
anywhere in the YP docs. perhaps we need a short section on
sstate-cache management somewhere in the docs.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#158471): 
https://lists.openembedded.org/g/openembedded-core/message/158471
Mute This Topic: https://lists.openembedded.org/mt/87140377/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] how to "prune" dead sstate-cache?

2021-11-18 Thread Robert P. J. Day

  assuming my (correct) understanding of sstate-cache is that, as time
goes by, it just gets larger and larger, it will increasingly contain
content that is of little value anymore, what is the simplest way to
purge or prune entries that are no longer involved in any desired
builds?

  i'm guessing a simple way to do that is to first delete tmp/, then
build any current targets/images, immediately followed by something
like:

  $ find sstate-cache -type f -atime +1 -delete

is there anything fancier than that?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#158468): 
https://lists.openembedded.org/g/openembedded-core/message/158468
Mute This Topic: https://lists.openembedded.org/mt/87140377/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] just want to confirm my understanding of how systemd services get symlinks

2021-10-04 Thread Robert P. J. Day

  just had a discussion with a colleague about the proper design of a
systemd-based service, and my (admittedly sophomore) understanding is
that, in the service file, there is an [Install] section, which
contains a "WantedBy" line like:

  fubar.service:WantedBy=sysinit.target

upon installation in the image, from systemd.bbclass. the routine
systemd_postinst() is invoked which (among other things), does this:

if [ "${SYSTEMD_AUTO_ENABLE}" = "enable" ]; then
for service in ${SYSTEMD_SERVICE_ESCAPED}; do
systemctl ${OPTS} enable "$service"
done
fi

and my understanding is that it is that call to "systemctl" that
creates the appropriate symlink so that that service now exists under
the directory "sysinit.target.wants".

  my need for confirmation is based on muh collegaue's pointing at
some existing systemd-based recipes in some legacy code, which
manually do the following in do_install_append():

  ln -s ${sysconfdir}/systemd/system/fubar.service \
${D}/${sysconfdir}/systemd/system/sysinit.target.wants/

i'm pretty sure that that "ln" command is unnecessary as long as the
service file is defined properly, but now i just want to get that
confirmed.

rday

p.s. hmm ... i wonder if the original recipe designer was unaware
of systemd.bbclass and thought he had to do it all manually.

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#156621): 
https://lists.openembedded.org/g/openembedded-core/message/156621
Mute This Topic: https://lists.openembedded.org/mt/86073990/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] simplest use of SSTATE_MIRRORS?

2021-09-28 Thread Robert P. J. Day
On Tue, 28 Sep 2021, Richard Purdie wrote:

> On Mon, 2021-09-27 at 12:13 -0400, Robert P. J. Day wrote:
> >   colleague asked me how SSTATE_MIRRORS worked, so i had to check,
> > followed the section here:
> >
> > http://docs.yoctoproject.org/overview-manual/concepts.html#shared-state-cache
> >
> > and in one of own builds, i moved the entire sstate-cache directory
> > to ~/SSTATE as is, then added the following to my site.conf:
> >
> > SSTATE_MIRRORS = " \
> > file://.\* file:///home/rpjday/SSTATE/PATH \
> > "
> >
> >   then i removed all of /tmp in my current build, and re-ran my
> > bitbake command, but it seems to be doing all the standard fetching
> > and unpacking and so on. what clearly trivial step have i overlooked?
> >
> > rday
> >
> > p.s. i checked with "bitbake -e" that that variable seems to have the
> > correct value. what silliness have i done?
>
> The other gotcha with this now is hash equivalence. If that is active, you 
> need
> both the sstate data and hash equivalence data that match.

  i did notice that in the sstate section in the manual, and was
digging into it as we speak.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#156414): 
https://lists.openembedded.org/g/openembedded-core/message/156414
Mute This Topic: https://lists.openembedded.org/mt/85904527/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] simplest use of SSTATE_MIRRORS?

2021-09-27 Thread Robert P. J. Day


Quoting Andre McCurdy :

On Mon, Sep 27, 2021 at 9:13 AM Robert P. J. Day  
 wrote:


  colleague asked me how SSTATE_MIRRORS worked, so i had to check,
followed the section here:

http://docs.yoctoproject.org/overview-manual/concepts.html#shared-state-cache

and in one of own builds, i moved the entire sstate-cache directory
to ~/SSTATE as is, then added the following to my site.conf:

SSTATE_MIRRORS = " \
file://.\* file:///home/rpjday/SSTATE/PATH \
"


The example in local.conf.sample uses file://.* rather than file://.\*


  i noticed that a bit later, made the change and all good. so i guess
i'll submit a patch for the manual.

rday


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#156399): 
https://lists.openembedded.org/g/openembedded-core/message/156399
Mute This Topic: https://lists.openembedded.org/mt/85904527/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] simplest use of SSTATE_MIRRORS?

2021-09-27 Thread Robert P. J. Day

  colleague asked me how SSTATE_MIRRORS worked, so i had to check,
followed the section here:

http://docs.yoctoproject.org/overview-manual/concepts.html#shared-state-cache

and in one of own builds, i moved the entire sstate-cache directory
to ~/SSTATE as is, then added the following to my site.conf:

SSTATE_MIRRORS = " \
file://.\* file:///home/rpjday/SSTATE/PATH \
"

  then i removed all of /tmp in my current build, and re-ran my
bitbake command, but it seems to be doing all the standard fetching
and unpacking and so on. what clearly trivial step have i overlooked?

rday

p.s. i checked with "bitbake -e" that that variable seems to have the
correct value. what silliness have i done?

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#156390): 
https://lists.openembedded.org/g/openembedded-core/message/156390
Mute This Topic: https://lists.openembedded.org/mt/85904527/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] what is "INHIBIT_PACKAGE_DEBUG_SPLIT" supposed to do?

2021-09-19 Thread Robert P. J. Day

  i was experimenting with various packaging schemes using different
values for PACKAGE_DEBUG_SPLIT_STYLE, then decided to see the effect
of setting INHIBIT_PACKAGE_DEBUG_SPLIT -- when using the split style
of "debug-with-pkgsrc", i got the expected (separate) debug and src
packages. but when i then set INHIBIT_PACKAGE_DEBUG_SPLIT to '1', the
contents of both the dbg and src packages disappeared entirely, and
nothing extra was placed in the base package. in short, i lost all
debugging and source content entirely.

  is that what i should expect? it seems counter-intuitive.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#156157): 
https://lists.openembedded.org/g/openembedded-core/message/156157
Mute This Topic: https://lists.openembedded.org/mt/85717993/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] how to manually discard some SDK content before bundling up the SDK?

2021-09-13 Thread Robert P. J. Day


  another off-the-wall question but i want to delete some content from
a standard SDK (sysroots/cortex.../usr/src) before creating the final
.sh script but, because of the slightly weird way this SDK is bring created
via "bitbake -c populate_sdk ...", i have little control of most of the
creation process other than right toward the end, where the easiest way
to do this would be to just sneak in a "rm -rf ..." command at the
appropriate time before the step that creates the tarball and appends it
to the .sh script in populate_sdk_base.bbclass.

  the SDK_PRE_INSTALL and SDK_POST_INSTALL variables would not quite
do it as i want to discard that content *before* creating the SDK so
that it is not in the tarball at all. i'm digging through
populate_sdk_base.bbclass right now, working backwards from the final
SDK creation step to see where i can get away with this, but if there's
a simple answer, that would be just ducky.

  in exchange for an answer, I'll proofread more documentation. :-)

rday




-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155994): 
https://lists.openembedded.org/g/openembedded-core/message/155994
Mute This Topic: https://lists.openembedded.org/mt/85585519/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] can one identify how much work sstate cache would save a build?

2021-09-12 Thread Robert P. J. Day


Quoting Richard Purdie :


On Sun, 2021-09-12 at 10:00 -0400, Robert P. J. Day wrote:

  off the wall question from a friend, but is there a way to get a
general idea of how much work (how many tasks?) could be saved for a
build based on some available sstate cache directory?


Run a build with bitbake -n against it and there is a summary  
printed near the

start of the build which says something like:

Sstate summary: Wanted 1525 Local 0 Network 1515 Missed 10 Current 0  
(99% match, 0% complete)


   that's it, that's what i was looking for, thanks.

rday



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155954): 
https://lists.openembedded.org/g/openembedded-core/message/155954
Mute This Topic: https://lists.openembedded.org/mt/85551776/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] can one identify how much work sstate cache would save a build?

2021-09-12 Thread Robert P. J. Day

  off the wall question from a friend, but is there a way to get a
general idea of how much work (how many tasks?) could be saved for a
build based on some available sstate cache directory?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155946): 
https://lists.openembedded.org/g/openembedded-core/message/155946
Mute This Topic: https://lists.openembedded.org/mt/85551776/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] minor curiosity related to libdir vs base_libdir and shared libs

2021-09-07 Thread Robert P. J. Day
On Tue, 7 Sep 2021, Andre McCurdy wrote:

... snip ...

> The original commit from 2013 gives a few more clues in this case:
>
>   
> https://git.yoctoproject.org/cgit/cgit.cgi/meta-selinux/commit/?id=587fdba43a7747992995029a88d3051ef0efe7f6
>
> It's not explicit which QA test was being triggered but presumably
> it was "unsafe-references-in-binaries", which has since been dropped
> from oe-core:
>
>   
> https://git.openembedded.org/openembedded-core/commit/?id=a6af5bbf3dad6f0951c67a0aae13ef86a8906893
>
> So... it looks like these examples of moving libs to base_libdir are
> obsolete and can be dropped.

  just for fun, there is the occasional recipe that relocates stuff in
the *other* direction, like this from e2fsprogs_1.46.4.bb:

  do_install () {
oe_runmake 'DESTDIR=${D}' install
oe_runmake 'DESTDIR=${D}' install-libs
# We use blkid from util-linux now so remove from here
rm -f ${D}${base_libdir}/libblkid*
rm -rf ${D}${includedir}/blkid
rm -f ${D}${base_libdir}/pkgconfig/blkid.pc
rm -f ${D}${base_sbindir}/blkid
rm -f ${D}${base_sbindir}/fsck
rm -f ${D}${base_sbindir}/findfs

# e2initrd_helper and the pkgconfig files belong in libdir
if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
install -d ${D}${libdir}
mv ${D}${base_libdir}/e2initrd_helper ${D}${libdir}
mv ${D}${base_libdir}/pkgconfig ${D}${libdir}
fi
... snip ...

and libusb1_1.0.24.bb:

  do_install:append() {
install -d ${D}${libdir}
if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
mv ${D}${base_libdir}/pkgconfig ${D}${libdir}
fi
  }

anyway, i'll let others decide if that's worth tidying up.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155750): 
https://lists.openembedded.org/g/openembedded-core/message/155750
Mute This Topic: https://lists.openembedded.org/mt/85398874/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] minor curiosity related to libdir vs base_libdir and shared libs

2021-09-07 Thread Robert P. J. Day
On Tue, 7 Sep 2021, Andre McCurdy wrote:

> On Sun, Sep 5, 2021 at 1:02 PM Robert P. J. Day  wrote:
> >   a minor oddity i stumbled over digging into the proper installation
> > of shared libraries ... building core-image-minimal for qemuarm64 and,
> > for the most part, recipes from oe-core that install shared libs put
> > all three artifacts (real name, so name and linker name) under
> > /usr/lib, as in:
> >
> >   ./libtirpc/1.3.2-r0/image/usr/lib/libtirpc.so
> >   ./libtirpc/1.3.2-r0/image/usr/lib/libtirpc.so.3
> >   ./libtirpc/1.3.2-r0/image/usr/lib/libtirpc.so.3.0.0
> >
> > however, the *occasional* recipe chooses to -- for whatever reason --
> > distinguish between libdir and base_libdir. for example, here's the
> > result of installing tcp-wrappers' shared libs in its ${D} directory:
> >
> >   ./tcp-wrappers/7.6-r10/image/lib/libwrap.so.0.7.6
> >   ./tcp-wrappers/7.6-r10/image/lib/libwrap.so.0
> >   ./tcp-wrappers/7.6-r10/image/usr/lib/libwrap.so
> >
> > this is due to the following manual override in tcp-wrappers_7.6.bb:
> >
> >   do_install () {
> > oe_libinstall -a libwrap ${D}${libdir}
> > oe_libinstall -C shared -so libwrap ${D}${base_libdir}
> >
> > if [ "${libdir}" != "${base_libdir}" ] ; then
> > rel_lib_prefix=`echo ${libdir} | sed 
> > 's,\(^/\|\)[^/][^/]*,..,g'`
> > libname=`readlink ${D}${base_libdir}/libwrap.so | xargs 
> > basename`
> > ln -s ${rel_lib_prefix}${base_libdir}/${libname} 
> > ${D}${libdir}/libwrap.so
> > rm -f ${D}${base_libdir}/libwrap.so
> > fi
> > ...
> >
> > so this recipe -- after doing the *default* shared lib installation
> > via oe_libinstall() -- conditionally chooses to override that.
>
> git blame is often the best starting point for understanding why
> things are done in a certain way. In this case the comment from the
> original comment (from 11 years ago..) references portmap, which is no
> longer supported by oe-core:
>
>   
> https://git.openembedded.org/openembedded-core/commit/?id=6ffc4f2e04f2d405b14f198220a3613d386489e7
>
> >   another recipe that is even odder is libcap-ng:
> >
> >   ./libcap-ng/0.8.2-r0/image/lib/libcap-ng.so.0.0.0
> >   ./libcap-ng/0.8.2-r0/image/lib/libcap-ng.so.0
> >   ./libcap-ng/0.8.2-r0/image/usr/lib/libcap-ng.so
> >   ./libcap-ng/0.8.2-r0/image/usr/lib/libdrop_ambient.so.0
> >   ./libcap-ng/0.8.2-r0/image/usr/lib/libdrop_ambient.so
> >   ./libcap-ng/0.8.2-r0/image/usr/lib/libdrop_ambient.so.0.0.0
> >
> > which seems odd since it does that override for *one* of the shared
> > libs that it generates, but not the other:
> >
> >   do_install:append() {
> > # Moving libcap-ng to base_libdir
> > if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
> > mkdir -p ${D}/${base_libdir}/
> > mv -f ${D}${libdir}/libcap-ng.so.* ${D}${base_libdir}/
> > relpath=${@os.path.relpath("${base_libdir}", "${libdir}")}
> > ln -sf ${relpath}/libcap-ng.so.0.0.0 
> > ${D}${libdir}/libcap-ng.so
> > fi
> >   }
>
> The original commit from 2013 gives a few more clues in this case:
>
>   
> https://git.yoctoproject.org/cgit/cgit.cgi/meta-selinux/commit/?id=587fdba43a7747992995029a88d3051ef0efe7f6
>
> It's not explicit which QA test was being triggered but presumably it
> was "unsafe-references-in-binaries", which has since been dropped from
> oe-core:
>
>   
> https://git.openembedded.org/openembedded-core/commit/?id=a6af5bbf3dad6f0951c67a0aae13ef86a8906893
>
> So... it looks like these examples of moving libs to base_libdir are
> obsolete and can be dropped.
>
> Some comments in insane.bbclass left behind when the
> unsafe-references-in-binaries and unsafe-references-in-scripts QA
> tests were removed can be dropped too.
>
> > given that almost all other recipes seem happy to just stuff all that
> > under /usr/lib, what is the rationale for the above occasional
> > difference? it pretty clearly doesn't affect functionality; it just
> > looks strange.

  thanks, i appreciate the research ... i was moderately curious about
what was happening, but i just didn't have the energy to go digging.
so it seems that it would be harmless to -- in the case of
tcp-wrappers -- just drop the following from its do_install() routine:

  do_install () {
... snip ...
if [ "${libdir}" != "${base_libdir}" ] ; then
rel_lib_prefix=`

[OE-core] minor curiosity related to libdir vs base_libdir and shared libs

2021-09-05 Thread Robert P. J. Day

  a minor oddity i stumbled over digging into the proper installation
of shared libraries ... building core-image-minimal for qemuarm64 and,
for the most part, recipes from oe-core that install shared libs put
all three artifacts (real name, so name and linker name) under
/usr/lib, as in:

  ./libtirpc/1.3.2-r0/image/usr/lib/libtirpc.so
  ./libtirpc/1.3.2-r0/image/usr/lib/libtirpc.so.3
  ./libtirpc/1.3.2-r0/image/usr/lib/libtirpc.so.3.0.0

however, the *occasional* recipe chooses to -- for whatever reason --
distinguish between libdir and base_libdir. for example, here's the
result of installing tcp-wrappers' shared libs in its ${D} directory:

  ./tcp-wrappers/7.6-r10/image/lib/libwrap.so.0.7.6
  ./tcp-wrappers/7.6-r10/image/lib/libwrap.so.0
  ./tcp-wrappers/7.6-r10/image/usr/lib/libwrap.so

this is due to the following manual override in tcp-wrappers_7.6.bb:

  do_install () {
oe_libinstall -a libwrap ${D}${libdir}
oe_libinstall -C shared -so libwrap ${D}${base_libdir}

if [ "${libdir}" != "${base_libdir}" ] ; then
rel_lib_prefix=`echo ${libdir} | sed 's,\(^/\|\)[^/][^/]*,..,g'`
libname=`readlink ${D}${base_libdir}/libwrap.so | xargs 
basename`
ln -s ${rel_lib_prefix}${base_libdir}/${libname} 
${D}${libdir}/libwrap.so
rm -f ${D}${base_libdir}/libwrap.so
fi
...

so this recipe -- after doing the *default* shared lib installation
via oe_libinstall() -- conditionally chooses to override that.

  another recipe that is even odder is libcap-ng:

  ./libcap-ng/0.8.2-r0/image/lib/libcap-ng.so.0.0.0
  ./libcap-ng/0.8.2-r0/image/lib/libcap-ng.so.0
  ./libcap-ng/0.8.2-r0/image/usr/lib/libcap-ng.so
  ./libcap-ng/0.8.2-r0/image/usr/lib/libdrop_ambient.so.0
  ./libcap-ng/0.8.2-r0/image/usr/lib/libdrop_ambient.so
  ./libcap-ng/0.8.2-r0/image/usr/lib/libdrop_ambient.so.0.0.0

which seems odd since it does that override for *one* of the shared
libs that it generates, but not the other:

  do_install:append() {
# Moving libcap-ng to base_libdir
if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
mkdir -p ${D}/${base_libdir}/
mv -f ${D}${libdir}/libcap-ng.so.* ${D}${base_libdir}/
relpath=${@os.path.relpath("${base_libdir}", "${libdir}")}
ln -sf ${relpath}/libcap-ng.so.0.0.0 ${D}${libdir}/libcap-ng.so
fi
  }

given that almost all other recipes seem happy to just stuff all that
under /usr/lib, what is the rationale for the above occasional
difference? it pretty clearly doesn't affect functionality; it just
looks strange.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155698): 
https://lists.openembedded.org/g/openembedded-core/message/155698
Mute This Topic: https://lists.openembedded.org/mt/85398874/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] is oe_soinstall() from utils.bbclass actually used?

2021-09-05 Thread Robert P. J. Day

  just going over the mechanics of how shared libs are installed
properly, and noticed that while utils.bbclass defines the helper
routine oe_soinstall(), no one in my current collection of layers
seems to use it; rather, the popular choice is oe_libinstall(), which
seems to subsume the earlier routine given its "-so" option.

  is oe_soinstall() still used?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155696): 
https://lists.openembedded.org/g/openembedded-core/message/155696
Mute This Topic: https://lists.openembedded.org/mt/85393760/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] wanting to clarify some shared lib install and packaging issues

2021-09-03 Thread Robert P. J. Day

  some really basic observations and questions about shared libs from
BB recipes as i'm trying to resolve some issues related to a weird
hybrid build system that overrides the standard do_install() task by
manually populating the "image" directory for each recipe, then hands
control over to bitbake to take it from there.

  first, quick review as i am going to have to explain all this to
some folks, so let's make sure i don't sound like an idiot. from the
explanation here:

  https://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html

when a BB recipe creates a shared lib, i typically expect to see the
following under image/usr/lib/ (example from "nettle" directory
building for aarch64):

  libhogweed.so -> libhogweed.so.6.4  [linker name]
  libhogweed.so.6 -> libhogweed.so.6.4[soname]
  libhogweed.so.6.4   [real name, actual lib]

based on default packaging defined in bitbake.conf, i then expect to
see the "base" package "nettle" install the following on the target:

  libhogweed.so.6 -> libhogweed.so.6.4
  libhogweed.so.6.4

while the development package nettle-dev will contain support the
linker name linking to, well, one of the above:

  libhogweed.so -> libhogweed.so.6.4

so far, nothing interesting, but this packaging means that, on the
target, if something needs to link against the libhogweed library, it
would normally link using the soname, "libhogweed.so.6", so a file by
that name *must* exist on the target and, normally, it does (even if
it's a symlink).

  here's what i just ran into -- this hybrid system that bypasses the
normal BB install step and manually populates the image directory
makes a bit of a mess with setting the symlinks and names properly,
but this was "fixed" by totally redefining the standard recipe
packaging, so that *all* shared lib files (all three forms) were
stuffed into the base package. and as long as that weird repackaging
was in place, everything "worked".

  along comes me, who really hates this re-definition of what goes
into each package as it packages far more for the target than is
necessary, and i revert the packaging back to the standard ... and
things break, and here's why.

  the end result of the weird hybrid installation and my reverting the
packaging is that what ended up on the target in terms of the shared
libs was simply:

  libfubar.so

that is, the actual shared lib (not a symlink), but with the linker
name, not the soname, which would appear to be the cause of all sorts
of things suddenly not running anymore, as a quick inspection showed
systemd services trying to start and complaining:

  ... error while loading shared libraries: libfubar.so.1 ...

so i just want to confirm that all of that is due to the shared lib
having been packaged and installed on the target via its linker name,
not its proper soname, correct?

  it *seems* like that's all i have to fix, but am i overlooking
anything? as long as the shared lib is findable via its soname, should
that be the general solution?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155648): 
https://lists.openembedded.org/g/openembedded-core/message/155648
Mute This Topic: https://lists.openembedded.org/mt/85348808/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] "SRC_URI = file:///..." versus "externalsrc"?

2021-09-01 Thread Robert P. J. Day

  colleague asked me yesterday about the fundamental difference
between using SRC_URI to point at a local source tree to build, versus
inheriting externalsrc, and when to use each.

  from what i read, there's no serious difference as, by default, both
techniques copy the source tree under WORKDIR -- the major difference
is that externalsrc can be configured to build in the source directory
via EXTERNALSRC_BUILD, which is something i would discourage anyway.

  apart from that, is there an argument for one over the other
depending on the circumstances?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155549): 
https://lists.openembedded.org/g/openembedded-core/message/155549
Mute This Topic: https://lists.openembedded.org/mt/85297601/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] why "PREFERRED_PROVIDER_udev" and not "PREFERRED_PROVIDER_virtual/udev"?

2021-08-31 Thread Robert P. J. Day
On Mon, 30 Aug 2021, Khem Raj wrote:

> On Mon, Aug 30, 2021 at 12:52 AM Robert P. J. Day  
> wrote:
> >
> >
> >   i was going to extend section 3.3.17, "Using Virtual Providers",
> > with an intro example using "udev" until i realized that that example
> > doesn't use the "virtual/" notation. so ... why not? is there some
> > distinction between other components that use the "virtual/" prefix,
> > but a reason that one does not specify:
> >
> >   PROVIDES = "virtual/udev"
> >
> > rather than just:
> >
> >   PROVIDES = "udev"
> >
> > and then use the corresponding PREFERRED_PROVIDER_virtual/udev
> > notation?
>
> we also have VIRTUAL-RUNTIME_dev_manager which spans across systemd to mdev
> so I guess we could but perhaps we already have this functionality

  a followup, perhaps silly question -- is there anything special
about the "virtual/" prefix in the sense of being a provider? i mean,
other than being more aesthetically obvious?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155516): 
https://lists.openembedded.org/g/openembedded-core/message/155516
Mute This Topic: https://lists.openembedded.org/mt/85245879/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] why "PREFERRED_PROVIDER_udev" and not "PREFERRED_PROVIDER_virtual/udev"?

2021-08-30 Thread Robert P. J. Day
On Mon, 30 Aug 2021, Robert P. J. Day wrote:

>   i was going to extend section 3.3.17, "Using Virtual Providers",
> with an intro example using "udev" until i realized that that
> example doesn't use the "virtual/" notation. so ... why not? is
> there some distinction between other components that use the
> "virtual/" prefix, but a reason that one does not specify:
>
>   PROVIDES = "virtual/udev"
>
> rather than just:
>
>   PROVIDES = "udev"
>
> and then use the corresponding PREFERRED_PROVIDER_virtual/udev
> notation?

  just to make sure folks understand what i'm getting at, the section:

https://docs.yoctoproject.org/dev-manual/common-tasks.html#using-virtual-providers

opens with, "Prior to a build, if you know that several different
recipes provide the same functionality, you can use a virtual provider
(i.e. virtual/*) as a placeholder for the actual provider."

  except there are cases where several different recipes provide the
same functionality that *don't* incorporate the "virtual/" notation,
so which ones merit that and which ones don't? (i mentioned "udev"
being provided by both "eudev" and "systemd", for which i wrote an
utterly brilliant explanation that i now realize isn't appropriate for
that section.)

  in the simpler cases, you have recipes that have a new name that
can now be used in place of the old, such that "stress-ng" provides
"stress", so you don't have to mess with all your old images and
packagegroups. and in situations like that, the "virtual/" notation
would seem out of place.

  OTOH, well, virtual "kernel" and "bootloader" makes perfect sense as
they represent a more abstract idea. so ... thoughts? even though
"udev" does not use the "virtual/" notation, would it still fall under
the category of "virtual provider"? if not, how would one describe it?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155479): 
https://lists.openembedded.org/g/openembedded-core/message/155479
Mute This Topic: https://lists.openembedded.org/mt/85245879/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] why "PREFERRED_PROVIDER_udev" and not "PREFERRED_PROVIDER_virtual/udev"?

2021-08-30 Thread Robert P. J. Day

  i was going to extend section 3.3.17, "Using Virtual Providers",
with an intro example using "udev" until i realized that that example
doesn't use the "virtual/" notation. so ... why not? is there some
distinction between other components that use the "virtual/" prefix,
but a reason that one does not specify:

  PROVIDES = "virtual/udev"

rather than just:

  PROVIDES = "udev"

and then use the corresponding PREFERRED_PROVIDER_virtual/udev
notation?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155477): 
https://lists.openembedded.org/g/openembedded-core/message/155477
Mute This Topic: https://lists.openembedded.org/mt/85245879/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] systemd: '${systemd_unitdir}/system' => '${systemd_system_unitdir}'

2021-08-26 Thread Robert P. J. Day
Repo-wide replacement to use newer variable to represent systemd
system unitdir directory.

Signed-off-by: Robert P. J. Day 

---

  lightly tested by building a core-image-minimal for aarch64 and
seeing no complaints.


diff --git a/meta/classes/rootfs-postcommands.bbclass 
b/meta/classes/rootfs-postcommands.bbclass
index c5746eba13..7fe9e3d8c8 100644
--- a/meta/classes/rootfs-postcommands.bbclass
+++ b/meta/classes/rootfs-postcommands.bbclass
@@ -218,8 +218,8 @@ postinst_enable_logging () {
 # Modify systemd default target
 #
 set_systemd_default_target () {
-   if [ -d ${IMAGE_ROOTFS}${sysconfdir}/systemd/system -a -e 
${IMAGE_ROOTFS}${systemd_unitdir}/system/${SYSTEMD_DEFAULT_TARGET} ]; then
-   ln -sf ${systemd_unitdir}/system/${SYSTEMD_DEFAULT_TARGET} 
${IMAGE_ROOTFS}${sysconfdir}/systemd/system/default.target
+   if [ -d ${IMAGE_ROOTFS}${sysconfdir}/systemd/system -a -e 
${IMAGE_ROOTFS}${systemd_system_unitdir}/${SYSTEMD_DEFAULT_TARGET} ]; then
+   ln -sf ${systemd_system_unitdir}/${SYSTEMD_DEFAULT_TARGET} 
${IMAGE_ROOTFS}${sysconfdir}/systemd/system/default.target
fi
 }

diff --git a/meta/lib/oe/rootfs.py b/meta/lib/oe/rootfs.py
index 4ea5adb9f4..b0dd625539 100644
--- a/meta/lib/oe/rootfs.py
+++ b/meta/lib/oe/rootfs.py
@@ -253,7 +253,7 @@ class Rootfs(object, metaclass=ABCMeta):
 # Remove the run-postinsts package if no delayed postinsts are found
 delayed_postinsts = self._get_delayed_postinsts()
 if delayed_postinsts is None:
-if 
os.path.exists(self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/init.d/run-postinsts"))
 or 
os.path.exists(self.d.expand("${IMAGE_ROOTFS}${systemd_unitdir}/system/run-postinsts.service")):
+if 
os.path.exists(self.d.expand("${IMAGE_ROOTFS}${sysconfdir}/init.d/run-postinsts"))
 or 
os.path.exists(self.d.expand("${IMAGE_ROOTFS}${systemd_system_unitdir}/run-postinsts.service")):
 self.pm.remove(["run-postinsts"])

 image_rorfs = bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs",
diff --git a/meta/recipes-bsp/acpid/acpid.inc b/meta/recipes-bsp/acpid/acpid.inc
index f48e519088..d39828e1cd 100644
--- a/meta/recipes-bsp/acpid/acpid.inc
+++ b/meta/recipes-bsp/acpid/acpid.inc
@@ -32,7 +32,7 @@ do_install:append () {
install -d ${D}${sysconfdir}/acpi
install -d ${D}${sysconfdir}/acpi/events

-   install -d ${D}${systemd_unitdir}/system
-   install -m 0644 ${WORKDIR}/acpid.service ${D}${systemd_unitdir}/system
-   sed -i -e 's,@SBINDIR@,${sbindir},g' 
${D}${systemd_unitdir}/system/acpid.service
+   install -d ${D}${systemd_system_unitdir}
+   install -m 0644 ${WORKDIR}/acpid.service ${D}${systemd_system_unitdir}
+   sed -i -e 's,@SBINDIR@,${sbindir},g' 
${D}${systemd_system_unitdir}/acpid.service
 }
diff --git a/meta/recipes-bsp/apmd/apmd_3.2.2-15.bb 
b/meta/recipes-bsp/apmd/apmd_3.2.2-15.bb
index 5368abfda6..da17e5a235 100644
--- a/meta/recipes-bsp/apmd/apmd_3.2.2-15.bb
+++ b/meta/recipes-bsp/apmd/apmd_3.2.2-15.bb
@@ -73,10 +73,10 @@ do_install() {
sed -e 's,/usr/sbin,${sbindir},g; s,/etc,${sysconfdir},g;' 
${WORKDIR}/init > ${D}${sysconfdir}/init.d/apmd
chmod 755 ${D}${sysconfdir}/init.d/apmd

-   install -d ${D}${systemd_unitdir}/system
-   install -m 0644 ${WORKDIR}/apmd.service ${D}${systemd_unitdir}/system/
+   install -d ${D}${systemd_system_unitdir}
+   install -m 0644 ${WORKDIR}/apmd.service ${D}${systemd_system_unitdir}/
sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \
-   -e 's,@SBINDIR@,${sbindir},g' 
${D}${systemd_unitdir}/system/apmd.service
+   -e 's,@SBINDIR@,${sbindir},g' 
${D}${systemd_system_unitdir}/apmd.service
 }

 PACKAGES =+ "libapm apm"
diff --git a/meta/recipes-connectivity/avahi/avahi_0.8.bb 
b/meta/recipes-connectivity/avahi/avahi_0.8.bb
index 934044d5da..cd0489e846 100644
--- a/meta/recipes-connectivity/avahi/avahi_0.8.bb
+++ b/meta/recipes-connectivity/avahi/avahi_0.8.bb
@@ -67,7 +67,7 @@ EXTRA_OECONF = "--with-avahi-priv-access-group=adm \

 # The distro choice determines what init scripts are installed
 EXTRA_OECONF_SYSVINIT = 
"${@bb.utils.contains('DISTRO_FEATURES','sysvinit','--with-distro=debian','--with-distro=none',d)}"
-EXTRA_OECONF_SYSTEMD = 
"${@bb.utils.contains('DISTRO_FEATURES','systemd','--with-systemdsystemunitdir=${systemd_unitdir}/system/','--without-systemdsystemunitdir',d)}"
+EXTRA_OECONF_SYSTEMD = 
"${@bb.utils.contains('DISTRO_FEATURES','systemd','--with-systemdsystemunitdir=${systemd_system_unitdir}/','--without-systemdsystemunitdir',d)}"

 do_configure:prepend() {
 # This m4 file will get in the way of our introspection.m4 with special 
cross-compilation fixes
diff --git a/meta/recipes-connectivity/bind/bind_9.16.20.bb 
b/meta/recipes-connectivity/bind/bind_9.16.20.bb
index f7d0416858..ddf32

Re: [OE-core] what means the test 'if [ -z "$D" ]' in a pkg_postinst routine?

2021-08-26 Thread Robert P. J. Day
On Thu, 26 Aug 2021, Alexander Kanavin wrote:

> It used to be that 'exit 1' was the way to defer to boot time, but
> that was changed long time ago to not be ambiguous like that and
> cause a real failure at build time. Deferring to first boot needs to
> be explicitly requested with _ontarget() (you can read the
> definition for it to see what really happens, how $D is used and how
> request to defer is made).
>
> Alex
>
> On Wed, 25 Aug 2021 at 23:51, Robert P. J. Day  wrote:
>
>   Quoting Phil Blundell :
>
>   > That's testing for offline installation. If $D is not set, it's 
>   > running on the target.
>   >
>   > p.
>
>      one last query before i head off for dinner ... so what about
>   pkg_postinst() routines that do double duty, like this one from
>   dbus_1.12.20.bb:
>
>
>   PACKAGE_WRITE_DEPS += "${@bb.utils.contains('DISTRO_FEATURES','systemd 
>   sysvinit','systemd-systemctl-native','',d)}"
>   pkg_postinst:dbus() {
>            # If both systemd and sysvinit are enabled, mask the dbus-1 
>   init script
>            if ${@bb.utils.contains('DISTRO_FEATURES','systemd 
>   sysvinit','true','false',d)}; then
>                    if [ -n "$D" ]; then
>                            OPTS="--root=$D"
>                    fi
>                    systemctl $OPTS mask dbus-1.service
>            fi
>
>            if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; 
> then
>                    /etc/init.d/populate-volatile.sh update
>            fi
>   }

  so, just to confirm the previous tidbits of information (thank you
for your patience), here's my current understanding so i can submit
updated docs:

* pkg_postinst:${PN} is run at image creation time and *only* at image
  creation time; it is no longer deferred to boot time under any
  circumstances(?)

* pkg_postinst_ontarget:${PN} is run at boot time and *only* at boot
  time

* because of the above, there is no value to the numerous legacy
checks of:

  if [ -z "$D" ]
  if [ -n "$D" ]

  or any of its variations (even though, in a lot of cases, they don't
hurt)

* from within pkg_postinst:${PN}, you can still defer some work to
  boot time with "postinst_intercept delay_to_first_boot", although
  isn't this precisely what pkg_postinst_ontarget:${PN} is for, so is
  this postinst_intercept construct still useful?

* PACKAGE_WRITE_DEPS is still necessary to identify non-standard
native tools you might need for any pkg_postinst:${PN} processing

  does all that look about right?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155339): 
https://lists.openembedded.org/g/openembedded-core/message/155339
Mute This Topic: https://lists.openembedded.org/mt/85146007/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] what means the test 'if [ -z "$D" ]' in a pkg_postinst routine?

2021-08-26 Thread Robert P. J. Day
On Thu, 26 Aug 2021, Alexander Kanavin wrote:

> It used to be that 'exit 1' was the way to defer to boot time, but
> that was changed long time ago to not be ambiguous like that and
> cause a real failure at build time. Deferring to first boot needs to
> be explicitly requested with _ontarget() (you can read the
> definition for it to see what really happens, how $D is used and how
> request to defer is made).
>
> Alex

  and that's sort of what i thought, despite what the docs currently
say:

https://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#new-recipe-post-installation-scripts

"If you do not use this variable, the tools might be missing and
execution of the post-installation script is deferred until first
boot."

  i'll put together some enhanced docs that clear this up, and submit
to docs list.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155338): 
https://lists.openembedded.org/g/openembedded-core/message/155338
Mute This Topic: https://lists.openembedded.org/mt/85146007/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] what means the test 'if [ -z "$D" ]' in a pkg_postinst routine?

2021-08-25 Thread Robert P. J. Day


Quoting Phil Blundell :

That's testing for offline installation. If $D is not set, it's  
running on the target.


p.


  one last query before i head off for dinner ... so what about
pkg_postinst() routines that do double duty, like this one from
dbus_1.12.20.bb:


PACKAGE_WRITE_DEPS += "${@bb.utils.contains('DISTRO_FEATURES','systemd  
sysvinit','systemd-systemctl-native','',d)}"

pkg_postinst:dbus() {
# If both systemd and sysvinit are enabled, mask the dbus-1  
init script
if ${@bb.utils.contains('DISTRO_FEATURES','systemd  
sysvinit','true','false',d)}; then

if [ -n "$D" ]; then
OPTS="--root=$D"
fi
systemctl $OPTS mask dbus-1.service
fi

if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then
/etc/init.d/populate-volatile.sh update
fi
}


note how that routine checks its context and, as i recall (but
it's not documented in the docs i'm looking at), i'd swear that
i read somewhere that if a pkg_postinst() routine fails at image
creation time, it was deferred until boot time, which would
explain the above routine checking its runtime context.

  anyway, off for food.

rday


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155329): 
https://lists.openembedded.org/g/openembedded-core/message/155329
Mute This Topic: https://lists.openembedded.org/mt/85146007/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] what means the test 'if [ -z "$D" ]' in a pkg_postinst routine?

2021-08-25 Thread Robert P. J. Day


Quoting Phil Blundell :

That's testing for offline installation. If $D is not set, it's  
running on the target.


p.


  right, that's exactly what i suspected in my original posting,
i just wanted to make sure, which raises a couple issues.

  first, that distinction doesn't seem to be mentioned in the
docs, so i'll ponder writing something.

  second, is that simply an old form that would be superseded
by using "pkg_postinst_ontarget()" instead?

  anyway, more questions later as i work on some lengthier docs
on this.

rday


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155327): 
https://lists.openembedded.org/g/openembedded-core/message/155327
Mute This Topic: https://lists.openembedded.org/mt/85146007/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] what means the test 'if [ -z "$D" ]' in a pkg_postinst routine?

2021-08-25 Thread Robert P. J. Day


Quoting Alexander Kanavin :


If you show the confusing examples, we could try to figure it out.

Alex

On Wed, 25 Aug 2021 at 22:35, Robert P. J. Day 
wrote:



there will be many more questions about pkg_postinst (and related)
routines shortly, but digging into these for the first time, i
thought that that test checked whether the routine was being run
at image creation time, or at first-time boot. now i'm not quite
sure what to think after seeing several examples.

what does the test for null or non-null variable "D" mean in
a pkg_postinst routine? and once i figure all this out, i may
very well contribute some enhanced docs for the next confused
person.


  there's no shortage of examples ... here's just one from
recipes-bsp/alsa-state/alsa-state.bb:


pkg_postinst:${PN}() {
if test -z "$D"   <
then
if test -x ${sbindir}/alsactl
then
${sbindir}/alsactl -g -f  
${localstatedir}/lib/alsa/asound.state restore

fi
fi
}


there's plenty more ... recipes-bsp/keymaps/keymaps_1.0.bb:


pkg_postinst:${PN} () {
if ${@bb.utils.contains('DISTRO_FEATURES','systemd  
sysvinit','true','false',d)}; then

if [ -n "$D" ]; then<
OPTS="--root=$D"
fi
systemctl $OPTS mask keymap.service
fi
}


rday


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155325): 
https://lists.openembedded.org/g/openembedded-core/message/155325
Mute This Topic: https://lists.openembedded.org/mt/85146007/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] what means the test 'if [ -z "$D" ]' in a pkg_postinst routine?

2021-08-25 Thread Robert P. J. Day


there will be many more questions about pkg_postinst (and related)
routines shortly, but digging into these for the first time, i
thought that that test checked whether the routine was being run
at image creation time, or at first-time boot. now i'm not quite
sure what to think after seeing several examples.

what does the test for null or non-null variable "D" mean in
a pkg_postinst routine? and once i figure all this out, i may
very well contribute some enhanced docs for the next confused
person.

rday


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155323): 
https://lists.openembedded.org/g/openembedded-core/message/155323
Mute This Topic: https://lists.openembedded.org/mt/85146007/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] should "${D}${systemd_unitdir}/system" => "${D}${systemd_system_unitdir}"?

2021-08-25 Thread Robert P. J. Day
On Wed, 18 Aug 2021, Ross Burton wrote:

> No, yes.  systemd_system_unitdir is newer so it's used less.
>
> Ross
>
> On Wed, 18 Aug 2021 at 08:48, Robert P. J. Day  wrote:
> >
> >
> >   i've (so far) run across a small number of OE recipes that use the
> > identifier "${D}${systemd_unitdir}/system", which appears(?) to be
> > equivalent to "${D}${systemd_system_unitdir}". is there any potential
> > functional difference, or should this be standardized?

  please help me with basic REs ... i want to run a single perl
command of the form

  $ perl -pi -e 's|...|...|' $(all the relevant files)

to change "${D}${systemd_unitdir}/system" -> "${D}${systemd_system_unitdir}"

and then eyeball it afterwards to make sure it's sane, but i can't get
the proper combination of quotes versus backslashes. i can generate
the list of appropriate files with:

  $ grep -rl '${systemd_unitdir}/system' *

but it's the perl expression that is defeating me. help.

rday


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155293): 
https://lists.openembedded.org/g/openembedded-core/message/155293
Mute This Topic: https://lists.openembedded.org/mt/84967618/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] should "${D}${systemd_unitdir}/system" => "${D}${systemd_system_unitdir}"?

2021-08-18 Thread Robert P. J. Day
On Wed, 18 Aug 2021, Ross Burton wrote:

> No, yes.  systemd_system_unitdir is newer so it's used less.

  i'll put together a patch and see if it's just more churn than it's
worth.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#154916): 
https://lists.openembedded.org/g/openembedded-core/message/154916
Mute This Topic: https://lists.openembedded.org/mt/84967618/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] should "${D}${systemd_unitdir}/system" => "${D}${systemd_system_unitdir}"?

2021-08-18 Thread Robert P. J. Day

  i've (so far) run across a small number of OE recipes that use the
identifier "${D}${systemd_unitdir}/system", which appears(?) to be
equivalent to "${D}${systemd_system_unitdir}". is there any potential
functional difference, or should this be standardized?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#154908): 
https://lists.openembedded.org/g/openembedded-core/message/154908
Mute This Topic: https://lists.openembedded.org/mt/84967618/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] scripts/lib/wic/help/py: "Redhat" -> "Red Hat"

2021-08-15 Thread Robert P. J. Day

Company name is properly spelled as "Red Hat".

Signed-off-by: Robert P. J. Day 

---

diff --git a/scripts/lib/wic/help.py b/scripts/lib/wic/help.py
index 991e5094bb..41451d1cb0 100644
--- a/scripts/lib/wic/help.py
+++ b/scripts/lib/wic/help.py
@@ -637,7 +637,7 @@ DESCRIPTION
 oe-core: directdisk.bbclass and mkefidisk.sh.  The difference
 between wic and those examples is that with wic the functionality
 of those scripts is implemented by a general-purpose partitioning
-'language' based on Redhat kickstart syntax).
+'language' based on Red Hat kickstart syntax).

 The initial motivation and design considerations that lead to the
 current tool are described exhaustively in Yocto Bug #3847

-- 

========
Robert P. J. Day Ottawa, Ontario, CANADA
 http://crashcourse.ca

LinkedIn:   http://ca.linkedin.com/in/rpjday


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#154821): 
https://lists.openembedded.org/g/openembedded-core/message/154821
Mute This Topic: https://lists.openembedded.org/mt/84906603/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] [PATCH] image_types_wic.bbclass: alphabetize list of WICVARS

2021-08-15 Thread Robert P. J. Day

It's way easier to scan a list of variables if they're sorted one per
line.

Signed-off-by: Robert P. J. Day 

---

diff --git a/meta/classes/image_types_wic.bbclass 
b/meta/classes/image_types_wic.bbclass
index 2f1a0b709c..d561fb2636 100644
--- a/meta/classes/image_types_wic.bbclass
+++ b/meta/classes/image_types_wic.bbclass
@@ -1,11 +1,35 @@
 # The WICVARS variable is used to define list of bitbake variables used in wic 
code
 # variables from this list is written to .env file
 WICVARS ?= "\
-   BBLAYERS IMGDEPLOYDIR DEPLOY_DIR_IMAGE FAKEROOTCMD IMAGE_BASENAME 
IMAGE_EFI_BOOT_FILES IMAGE_BOOT_FILES \
-   IMAGE_LINK_NAME IMAGE_ROOTFS INITRAMFS_FSTYPES INITRD INITRD_LIVE 
ISODIR RECIPE_SYSROOT_NATIVE \
-   ROOTFS_SIZE STAGING_DATADIR STAGING_DIR STAGING_LIBDIR TARGET_SYS 
HOSTTOOLS_DIR \
-   KERNEL_IMAGETYPE MACHINE INITRAMFS_IMAGE INITRAMFS_IMAGE_BUNDLE 
INITRAMFS_LINK_NAME APPEND \
-   ASSUME_PROVIDED PSEUDO_IGNORE_PATHS"
+   APPEND \
+   ASSUME_PROVIDED \
+   BBLAYERS \
+   DEPLOY_DIR_IMAGE \
+   FAKEROOTCMD \
+   HOSTTOOLS_DIR \
+   IMAGE_BASENAME \
+   IMAGE_BOOT_FILES \
+   IMAGE_EFI_BOOT_FILES \
+   IMAGE_LINK_NAME \
+   IMAGE_ROOTFS \
+   IMGDEPLOYDIR \
+   INITRAMFS_FSTYPES \
+   INITRAMFS_IMAGE \
+   INITRAMFS_IMAGE_BUNDLE \
+   INITRAMFS_LINK_NAME \
+   INITRD \
+   INITRD_LIVE \
+   ISODIR \
+   KERNEL_IMAGETYPE \
+   MACHINE \
+   PSEUDO_IGNORE_PATHS \
+   RECIPE_SYSROOT_NATIVE \
+   ROOTFS_SIZE \
+   STAGING_DATADIR \
+   STAGING_DIR \
+   STAGING_LIBDIR \
+   TARGET_SYS \
+"

 inherit ${@bb.utils.contains('INITRAMFS_IMAGE_BUNDLE', '1', 
'kernel-artifact-names', '', d)}


-- 

============
Robert P. J. Day Ottawa, Ontario, CANADA
 http://crashcourse.ca

LinkedIn:   http://ca.linkedin.com/in/rpjday


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#154794): 
https://lists.openembedded.org/g/openembedded-core/message/154794
Mute This Topic: https://lists.openembedded.org/mt/84898601/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] issues with wic creating "multi-partition" images?

2021-08-12 Thread Robert P. J. Day
On Thu, 12 Aug 2021, Alexandre Belloni wrote:

> Hello,
>
> On 12/08/2021 05:26:47-0400, Robert P. J. Day wrote:
> >
> >   asking from a position of massive ignorance since i just started
> > digging into wic, but i've been reliably assured that i am going to
> > encounter issues with trying to get wic to create what i choose to
> > call "multi-partition" images, and i just want to know if this is an
> > actual issue.
> >
> >   current wic setup is to create an image which supports what i'll
> > call the "preserve" partition -- distinct partition to hold
> > non-upgradeable content; factory default firmware, non-volatile S/W
> > config settings, that sort of thing, that is meant to be preserved
> > across software upgrades. nothing unusual about this, strikes me as
> > pretty standard.
> >
> >   now, any recipe in the current build is allowed to contribute its
> > own preserve data by adding it to a top-level "/preserve" directory.
> > that directory is added to the content of the base package:
> >
> >   FILES_${PN} += "/preserve"
> >
> > and in the end, the wic image is responsible for taking everything
> > under /preserve in the final rootfs and installing it in the preserve
> > partition, wholly separate from however it installs the remainder of
> > the rootfs.
> >
> >   does wic have a problem with doing this? it seems so straightforward
> > that i'm having trouble believing wic can't do it. thoughts? or
> > perhaps a link to some reference board or vendor that has a .wks file
> > that does exactly that?
>
> In your wks.in, you can simply do something like that:
>
> part / --source rootfs --fstype=ext4 --label root --exclude-path=preserve/
> part /preserve --source rootfs --rootfs-dir=${IMAGE_ROOTFS}/preserve 
> --fstype=ext4 --label preserve

  that's what i thought, so i'm going back to the current setup to try
to figure out what the originators thought the problem was.

rday

p.s. as i read it, the only distinction between a "wks" and a "wks.in"
file is the need to pre-process variable substitution in the latter,
correct?

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#154738): 
https://lists.openembedded.org/g/openembedded-core/message/154738
Mute This Topic: https://lists.openembedded.org/mt/84836183/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] issues with wic creating "multi-partition" images?

2021-08-12 Thread Robert P. J. Day

  asking from a position of massive ignorance since i just started
digging into wic, but i've been reliably assured that i am going to
encounter issues with trying to get wic to create what i choose to
call "multi-partition" images, and i just want to know if this is an
actual issue.

  current wic setup is to create an image which supports what i'll
call the "preserve" partition -- distinct partition to hold
non-upgradeable content; factory default firmware, non-volatile S/W
config settings, that sort of thing, that is meant to be preserved
across software upgrades. nothing unusual about this, strikes me as
pretty standard.

  now, any recipe in the current build is allowed to contribute its
own preserve data by adding it to a top-level "/preserve" directory.
that directory is added to the content of the base package:

  FILES_${PN} += "/preserve"

and in the end, the wic image is responsible for taking everything
under /preserve in the final rootfs and installing it in the preserve
partition, wholly separate from however it installs the remainder of
the rootfs.

  does wic have a problem with doing this? it seems so straightforward
that i'm having trouble believing wic can't do it. thoughts? or
perhaps a link to some reference board or vendor that has a .wks file
that does exactly that?

rday

p.s. there is no separate wic mailing list is there?

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#154736): 
https://lists.openembedded.org/g/openembedded-core/message/154736
Mute This Topic: https://lists.openembedded.org/mt/84836183/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] ntpsec on OE/YP?

2021-08-09 Thread Robert P. J. Day


colleague asks about the state of ntpsec (https://www.ntpsec.org/)
on OE/YP, a quick search does not show official support of any kind,
any pointers?

rday


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#154662): 
https://lists.openembedded.org/g/openembedded-core/message/154662
Mute This Topic: https://lists.openembedded.org/mt/84779837/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] would reducing BB_NUMBER_THREADS solve parallelism overheating?

2021-08-07 Thread Robert P. J. Day

  i've asked about this previously, but i finally got around to
thinking about this in detail, and i'd like some feedback.

  i've described the overheating/lockup issues i've been having on a
dell latitude laptop building a sizable (wind river linux-based) image
represented by 5-6000 tasks.

  if i start the full build from scratch, it would take about 2 hours
if it succeeded but, on a very regular basis, when the load average
well exceeds 120 and i can feel really hot air blowing (even with t
laptop cooler), the laptop will simply lock up hard.

  the CPU is a i7-9850H, so 6 cores/12 threads, and i've refactored
numerous proprietary in-house recipes to really crank up the
parallelism so that, a lot of the time, i can see all 12 threads
churning away on some task. of course, that's exactly when i get the
huge load average/overheating/lockup.

  a couple colleagues suggested using BB_NUMBER_THREADS (BNT for
short) to dial things back a bit but, after i pondered a bit, it seems
that that would potentially make things worse, not better, so a couple
questions about cores and threads.

  first, given the CPU setup, let's say i set BNT to 6. does that mean
3 cores would be taken out of play entirely, leaving the other 3 to do
all the work, or would each core simply use one thread, or who knows
what would happen, and would any one scenario be superior to another?

  my other realization(?) is that reducing BNT might be the *worst*
strategy, and here's why. if i have a huge load average, that suggests
i have lots and lots of tasks waiting to run (lots of stuff on the
wait queue). but if i reduce the number of available threads, wouldn't
that just force all that work to wait for a smaller number of threads,
making the wait queues even longer?

  i'm open to being educated on how all this works.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#154584): 
https://lists.openembedded.org/g/openembedded-core/message/154584
Mute This Topic: https://lists.openembedded.org/mt/84730702/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] should recipes not come with their own systemd/user/group info?

2021-08-05 Thread Robert P. J. Day

  style question here, but i'm perusing an OE/YP (actually wind river,
but effectively the same thing) layer that was handed to me, and i'm
puzzled by how the internally-written systemd-controlled services are
implemented.

  on the one hand, there are reasonable recipes that each represent
some service to be managed by systemd, and they all install their
executables in the right places and so on. however, rather than each
recipe also providing its own service file, there is a totally
separate recipe (call it "systemd-services.bb") which contains under
its files/ directory dozens and dozens of service files for all of
those recipes, and is responsible for installing all of them.

  in short, someone decided that -- for whatever reason -- all of the
systemd service files should be collected all in one place, and
installed en masse. is this ... normal? i would have thought that it's
the responsibility of each recipe to mannage all the content related
to it, and that would of course include the systemd service file to be
installed for it. i don't know the rationale for this, and it strikes
me as a recipe for disaster in trying to keep all these things synced
up. is there some rationale for doing it this way that i'm unaware
of?

  and closely related, the same trick was used when defining all the
new users and groups that would own these services. rather than each
service looking after itself, there is a recipe file (call it
"new_users_and_groups.bb") which is hundreds of lines of USERADD_PARAM
and GROUPADD_PARAM lines that define precisely (numerically) all the
new user and group accounts to be associated with all sorts of
services, whereupon i ask the same question -- isn't it more typical
that each service look after its own user and group info?

  in this second case, it *might* be that all of these values need to
be hard-coded to be consistent with, i don't know, something else i'm
unaware of, but it still looks strange.

  thoughts? the above actually works for the time being, but it does
seem a but unnatural.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#154477): 
https://lists.openembedded.org/g/openembedded-core/message/154477
Mute This Topic: https://lists.openembedded.org/mt/84682032/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] [PATCH] oe-setup-builddir: update YP docs and OE URLs

2021-07-23 Thread Robert P. J. Day
On Fri, 23 Jul 2021, Michael Opdenacker wrote:

> This updates the link to the YP docs
> and proposes to access the OE website through https
>
> Signed-off-by: Michael Opdenacker 
> ---
>  scripts/oe-setup-builddir | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/oe-setup-builddir b/scripts/oe-setup-builddir
> index 30eaa8efbe..75f63f5680 100755
> --- a/scripts/oe-setup-builddir
> +++ b/scripts/oe-setup-builddir
> @@ -113,10 +113,10 @@ if [ ! -z "$SHOWYPDOC" ]; then
>  cat <  The Yocto Project has extensive documentation about OE including a reference
>  manual which can be found at:
> -http://yoctoproject.org/documentation
> +https://docs.yoctoproject.org
>
>  For more information about OpenEmbedded see their website:
> -http://www.openembedded.org/
> +https//www.openembedded.org/

   missing colon.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#154113): 
https://lists.openembedded.org/g/openembedded-core/message/154113
Mute This Topic: https://lists.openembedded.org/mt/84401182/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] how to configure an image with *full* debugging info in the libs and binaries?

2021-07-20 Thread Robert P. J. Day


Quoting Andre McCurdy :


On Mon, Jul 19, 2021 at 5:06 PM Ross Burton  wrote:
On Fri, 16 Jul 2021 at 20:10, Robert P. J. Day  
 wrote:

>   colleague just asked me what it would take to generate an image
> where the executables and libraries contain all the gdb-related
> debugging info in the same files (that is, not broken out in the
> .debug directories).
>
>   i pointed out that this would increase the size of the installable
> target image substantially but, apparently, that is of no concern.

This is where I have to ask "why?".  All known debugging tools can
handle split-out debuginfo, and getting them all installed into an
image is as simple as IMAGE_FEATURES += dbg-pkgs, as Khem says.


Why is an interesting side discussion. Getting back to the original
question though, either OE officially supports creating unstripped
binaries or it doesn't. The documentation should perhaps be updated to
make that clear (and if there's legacy support for creating unstripped
binaries still lurking in the code but we don't want anyone to use it,
then maybe it should be removed...).


It *appears* the combination of:

INHIBIT_PACKAGE_STRIP = '1'
INHIBIT_PACKAGE_DEBUG_SPLIT = '1'

does what I want (at least at first glance). As to "why", I have been
told there is a build/test infrastructure in place that works with just
this format, and they would like to just keep doing that. And, frankly,
that's a perfectly good reason.

rday






-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#154010): 
https://lists.openembedded.org/g/openembedded-core/message/154010
Mute This Topic: https://lists.openembedded.org/mt/84256404/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] how to configure an image with *full* debugging info in the libs and binaries?

2021-07-16 Thread Robert P. J. Day
On Fri, 16 Jul 2021, Khem Raj wrote:

> On Fri, Jul 16, 2021 at 12:10 PM Robert P. J. Day  
> wrote:
> >
> >
> >   colleague just asked me what it would take to generate an image
> > where the executables and libraries contain all the gdb-related
> > debugging info in the same files (that is, not broken out in the
> > .debug directories).
> >
> >   i pointed out that this would increase the size of the installable
> > target image substantially but, apparently, that is of no concern.
> >
> >   said colleague pointed me here as to what they were perusing:
> >
> > https://developer.ridgerun.com/wiki/index.php?title=Preparing_Yocto_Development_Environment_for_Debugging
> >
> > so, once i finish this current task, i'm going to take a shot at
> > testing whether the following would do it:
> >
> >   # Specifies to build packages with debugging information
> >   DEBUG_BUILD = "1"
> >   # Do not remove debug symbols
> >   INHIBIT_PACKAGE_STRIP = "1"
> >   # OPTIONAL: Do not split debug symbols in a separate file
> >   INHIBIT_PACKAGE_DEBUG_SPLIT= "1"
> >
> > am i on the right track? this seems straightforward enough, i'll just
> > have to confirm those variables still exist, and that they do what i
> > want.
> >
> >   thoughts? is this as simple as i think it should be?
>
> I think you should try
>
> EXTRA_IMAGE_FEATURES_append = " tools-debug dbg-pkgs"

  pretty sure you don't need both "EXTRA_" and "_append". :-)

> this should get you all needed debug info and tools on target
>
> then if you want to make optimization levels to favor debug info
> generation set DEBUG_BUILD = "1"

  i'm ... not convinced (i'll be trying this later), but to be clear,
i don't want separate .debug content, i want a single image with all
the debug info right in the binaries and executables.

  i'll try some things later and we'll see what happens.

rday


-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#153946): 
https://lists.openembedded.org/g/openembedded-core/message/153946
Mute This Topic: https://lists.openembedded.org/mt/84256404/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] how to configure an image with *full* debugging info in the libs and binaries?

2021-07-16 Thread Robert P. J. Day

  colleague just asked me what it would take to generate an image
where the executables and libraries contain all the gdb-related
debugging info in the same files (that is, not broken out in the
.debug directories).

  i pointed out that this would increase the size of the installable
target image substantially but, apparently, that is of no concern.

  said colleague pointed me here as to what they were perusing:

https://developer.ridgerun.com/wiki/index.php?title=Preparing_Yocto_Development_Environment_for_Debugging

so, once i finish this current task, i'm going to take a shot at
testing whether the following would do it:

  # Specifies to build packages with debugging information
  DEBUG_BUILD = "1"
  # Do not remove debug symbols
  INHIBIT_PACKAGE_STRIP = "1"
  # OPTIONAL: Do not split debug symbols in a separate file
  INHIBIT_PACKAGE_DEBUG_SPLIT= "1"

am i on the right track? this seems straightforward enough, i'll just
have to confirm those variables still exist, and that they do what i
want.

  thoughts? is this as simple as i think it should be?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#153944): 
https://lists.openembedded.org/g/openembedded-core/message/153944
Mute This Topic: https://lists.openembedded.org/mt/84256404/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] should a layer supply its own "local.conf" file?

2021-06-23 Thread Robert P. J. Day

  long story short -- was having trouble figuring out why basic
settings i was adding to my build directory's conf/local.conf were
being ignored, and traced it back to the internal layer i was using
having its own "local.conf" file (in its conf directory, sitting
quietly next to the layer's "layer.conf" file).

  argh.

  i'm assuming that it was *that* local.conf that was being consulted
by the config process (overriding mine). is there some rationale for
that? that doesn't strike me as proper design, but i'm willing to be
educated.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#153235): 
https://lists.openembedded.org/g/openembedded-core/message/153235
Mute This Topic: https://lists.openembedded.org/mt/83734978/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] should the same recipe have two different WORKDIRs?

2021-06-16 Thread Robert P. J. Day

  perhaps i've just never noticed before, but a colleague asked me to
debug some strangeness with his WRLinux build, and what i noticed was
that the recipe that generated a package with a single (aarch64)
executable created WORKDIRs under both directories:

  * cortexa53...
  * acme-coyote [actual target board]

this surprises me ... i thought that, based on the attributes of any
recipe, it would have only one WORKDIR in the appropriate place. what
does the above mean? i'm not sure what to make of it.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#153027): 
https://lists.openembedded.org/g/openembedded-core/message/153027
Mute This Topic: https://lists.openembedded.org/mt/83584601/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[OE-core] canonical way to "migrate" Makefile stuff to bitbake recipe file?

2021-06-06 Thread Robert P. J. Day

  following on a couple earlier posts, at my current gig, a co-op
student has been given the job of, bit by bit, "migrating" the targets
in a number of sizable Makefiles to BB recipe files, in order to
incorporate all that legacy build process in a current YP
infrastructure.

  he's working on the really low-level targets to begin with, and the
process is kind of hacky -- the source for any component (and its
corresponding Makefile) is simply left where it is (for now), and the
corresponding recipe file (in the simplest possible case) looks like
this for some given "subsystem":

subsystem.bb


  inherit migrate

  SRC_URI += "file://subsystem/"
  MG_BUILD_DIR = "subsystem/"

the internal migrate.bbclass handles setting FILESEXTRAPATHS so that
all the subsystems can be located as above, and the do_compile() task
is redefined to be (simplifying a bit):

  do_compile() {
cd ${MG_BUILD_DIR}
oe_runmake
  }

in other words, the *building* of any subsystem hasn't really changed
all that much, it's still done pretty much in place as it was before,
at which point there is a do_install() routine whose job it is to take
the generated artifacts and manually "install" them into "${D}" in the
proper locations; in short, the "migration" process emulates the first
part of building a recipe all the way up to emulating the installation
step and getting everything into the ${WORKDIR}/image/ directory,
whereupon the normal packaging and subsequent OE steps kick in. so
far, this is working adequately for the really simple makefile
targets.

  next, as long as this process works, then further recipes can
incorporate build-time dependencies of earlier migrated recipes, so
for subsystem "sub1", we might add:

  DEPENDS += "sub2 sub3"

and that should still work, but said co-op student asked about how to
deal with makefiles with multi-line rules for a subsystem target, call
it "sub", and various sub-components in subdirectories c1, c2 and c3:

  sub: [some dependencies]
$(MAKE) -C c1
$(MAKE) -C c2
$(MAKE) -C c3

my initial reaction was, if those sub-makes can be done independently,
then the simplest solution is to define separate recipes files for
each one (with SRC_URI set appropriately):

sub-c1.bb
=

  inherit migrate

  SRC_URI += "file://sub/c1/"
  MG_BUILD_DIR = "sub/c1/"

where each of the component recipe files can define its own build-time
dependencies independently of the other components. and one can then
define a collective recipe to gather all of them as build-time
dependencies representing the entire subsystem:

sub.bb
==

  DEPENDS += "sub-c1 sub-c2 sub-c3"

so, for any new recipes, one can independently depend on any subset of
those components, or just depend on them all together if that's
easier.

  is this a reasonable way to go about it? that is, given a
multi-line Makefile rule that refers to building in several immediate
"component" subdirectories, write a separate recipe file for each
component? am i missing anything obvious that would simplify this?

rday



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#152688): 
https://lists.openembedded.org/g/openembedded-core/message/152688
Mute This Topic: https://lists.openembedded.org/mt/83348129/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] want to clarify proper approach to shared lib (.so) installation

2021-06-04 Thread Robert P. J. Day
On Fri, 4 Jun 2021, Andre McCurdy wrote:

... big ship ...

> Just a warning, but if your Makefiles are not generating versioned
> shared libraries then they are probably not setting a soname
> either... and that really messes up OE's automatic runtime
> dependency tracking for shared libraries.
>
> If OE is your main build environment for these components it's
> usually better in the long run to just update your Makefiles to
> create versioned shared libraries (using simple version .0 and a
> single symlink is fine) and setting a soname than to use the above
> trick to force packaging of an unversioned .so and manually defining
> runtime dependencies everywhere.

  oh, i realize that ... the current build system is very
legacy-driven and i have a lengthy list of cleanups to do, this just
one of them. for now, things just have to work until i can bend things
into shape.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#152660): 
https://lists.openembedded.org/g/openembedded-core/message/152660
Mute This Topic: https://lists.openembedded.org/mt/83283893/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] want to clarify proper approach to shared lib (.so) installation

2021-06-03 Thread Robert P. J. Day
On Thu, 3 Jun 2021, Andrea Adami wrote:

> On Thu, Jun 3, 2021 at 4:01 PM Robert P. J. Day  wrote:
> >
> >
> >   sort of a 2-part soliloquy. in current YP code base i've inherited,
> > most of the internal (local directory SRC_URI-based) recipes inherit a
> > proprietary class that, among doing other internal, proprietary
> > things, totally redefines PACKAGES as:
> >
> >   PACKAGES = "${PN} ... ${PN}-dev ..."
> >
> > i had never really noticed that before, but it's pretty obvious that
> > that's not a great idea, as it allows what i call the recipe "base"
> > package (${PN}) to gather up everything that matches its standard
> > wildcard pattern before moving on, in effect "stealing" content from
> > subsequent packages they would normally get if the base package was at
> > the end, not the beginning.
> >
> >   somehow, this has worked all this time, but it's clear(?) that what
> > would be the "normal" contents of the various packages isn't going to
> > be what one would expect; in particular, the base package is going to
> > be what i call "overpackaged", with lots of stuff it doesn't really
> > need so i'm guessing what's going into the image is more than is
> > really necessary. somehow, though, it's worked all this time until
> > recently, when i noticed this quirk was causing some Q/A issues, so i
> > took a deep breath, commented out that line from the class file to use
> > the default packaging approach and re-tried the build, which is when
> > all hell broke loose.
> >
> >   it turns out that these internal recipes use local Makefile-based
> > source directories, which build, then install their generated
> > artifacts in a temporary (non-YP) staging area per recipe, *then*
> > manually (little by little) install stuff in ${D} via a general
> > do_install() routine, at which point the regular packaging and
> > subsequent steps kick in, but it's what now gets copied into ${D} that
> > is causing grief.
> >
> >   apparently, many of these recipes generate a shared library, and i'm
> > well aware that the *normal* packaging involving a shared library is
> > like this example from libidn2 (snipped for brevity to show only
> > shared lib stuff):
> >
> >  libidn2/
> >   usr/
> >lib/
> > libidn2.so.0 -> libidn2.so.0.3.7
> > libidn2.so.0.3.7[actual library file]
> >
> >  libidn2-dev/
> >   usr/
> >lib/
> > libidn2.so -> libidn2.so.0.3.7
> >
> > so the *normal* packaging for a shared lib is that the lib itself and
> > a symlink to it go into the base package, while another symlink goes
> > into the "-dev" package. i'd never really paid that much attention to
> > that until i reset that PACKAGES variable, as all of these internal
> > recipes end up installing into ${D} nothing but the shared lib file
> > itself under /usr/lib, and why this has worked all this time is a
> > mystery, but having made this change is generating all sorts of Q/A
> > diagnostics as this is what ends up in ${D} using a "fubar" recipe
> > example given the manual installation being done using normal
> > packaging:
> >
> >  fubar/
> >   usr/
> >bin/
> > ... snip ...
> >no lib/ directory
> >
> >  fubar-dev/
> >   usr/
> >lib/
> > libfnvcma.so[actual shared lib]
> >
> > unsurprisingly, there are QA issues with the above:
> >
> > ERROR: fubar-1.0-r0 do_package_qa: QA Issue: -dev package contains 
> > non-symlink .so: fubar-dev
> > path .../packages-split/fubar-dev/usr/lib/libfnvcma.so'[dev-elf]
> > ERROR: fubar-1.0-r0 do_package_qa: QA Issue: fubar rdepends on fubar-dev 
> > [dev-deps]
> >
> >   *sigh*.
> >
> >   in short, because these internal recipes generate only the single
> > shared lib file itself and that's all that's copied into ${D}, the
> > regular Q/A tests will naturally barf, and i could use INSANE_SKIP all
> > over the place to get around this, but it seems to me that the proper
> > approach is to tell the developers that they need to start generating
> > the appropriate symlinks for all of their recipes so packaging is done
> > properly.
> >
> >   i'm just about to check if there is a switch or class i can invoke
> > that will "fix" this issue (as in, set up the shared libs in ${D}
> > properly), but apart from that, am i correct in thinking that the
> > developers need to do this correctly from the b

[OE-core] want to clarify proper approach to shared lib (.so) installation

2021-06-03 Thread Robert P. J. Day

  sort of a 2-part soliloquy. in current YP code base i've inherited,
most of the internal (local directory SRC_URI-based) recipes inherit a
proprietary class that, among doing other internal, proprietary
things, totally redefines PACKAGES as:

  PACKAGES = "${PN} ... ${PN}-dev ..."

i had never really noticed that before, but it's pretty obvious that
that's not a great idea, as it allows what i call the recipe "base"
package (${PN}) to gather up everything that matches its standard
wildcard pattern before moving on, in effect "stealing" content from
subsequent packages they would normally get if the base package was at
the end, not the beginning.

  somehow, this has worked all this time, but it's clear(?) that what
would be the "normal" contents of the various packages isn't going to
be what one would expect; in particular, the base package is going to
be what i call "overpackaged", with lots of stuff it doesn't really
need so i'm guessing what's going into the image is more than is
really necessary. somehow, though, it's worked all this time until
recently, when i noticed this quirk was causing some Q/A issues, so i
took a deep breath, commented out that line from the class file to use
the default packaging approach and re-tried the build, which is when
all hell broke loose.

  it turns out that these internal recipes use local Makefile-based
source directories, which build, then install their generated
artifacts in a temporary (non-YP) staging area per recipe, *then*
manually (little by little) install stuff in ${D} via a general
do_install() routine, at which point the regular packaging and
subsequent steps kick in, but it's what now gets copied into ${D} that
is causing grief.

  apparently, many of these recipes generate a shared library, and i'm
well aware that the *normal* packaging involving a shared library is
like this example from libidn2 (snipped for brevity to show only
shared lib stuff):

 libidn2/
  usr/
   lib/
libidn2.so.0 -> libidn2.so.0.3.7
libidn2.so.0.3.7[actual library file]

 libidn2-dev/
  usr/
   lib/
libidn2.so -> libidn2.so.0.3.7

so the *normal* packaging for a shared lib is that the lib itself and
a symlink to it go into the base package, while another symlink goes
into the "-dev" package. i'd never really paid that much attention to
that until i reset that PACKAGES variable, as all of these internal
recipes end up installing into ${D} nothing but the shared lib file
itself under /usr/lib, and why this has worked all this time is a
mystery, but having made this change is generating all sorts of Q/A
diagnostics as this is what ends up in ${D} using a "fubar" recipe
example given the manual installation being done using normal
packaging:

 fubar/
  usr/
   bin/
... snip ...
   no lib/ directory

 fubar-dev/
  usr/
   lib/
libfnvcma.so[actual shared lib]

unsurprisingly, there are QA issues with the above:

ERROR: fubar-1.0-r0 do_package_qa: QA Issue: -dev package contains non-symlink 
.so: fubar-dev
path .../packages-split/fubar-dev/usr/lib/libfnvcma.so'[dev-elf]
ERROR: fubar-1.0-r0 do_package_qa: QA Issue: fubar rdepends on fubar-dev 
[dev-deps]

  *sigh*.

  in short, because these internal recipes generate only the single
shared lib file itself and that's all that's copied into ${D}, the
regular Q/A tests will naturally barf, and i could use INSANE_SKIP all
over the place to get around this, but it seems to me that the proper
approach is to tell the developers that they need to start generating
the appropriate symlinks for all of their recipes so packaging is done
properly.

  i'm just about to check if there is a switch or class i can invoke
that will "fix" this issue (as in, set up the shared libs in ${D}
properly), but apart from that, am i correct in thinking that the
developers need to do this correctly from the beginning?

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#152600): 
https://lists.openembedded.org/g/openembedded-core/message/152600
Mute This Topic: https://lists.openembedded.org/mt/83283893/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] follow up: keeping the source with an "externalsrc"-based recipe

2021-05-31 Thread Robert P. J. Day
On Mon, 31 May 2021, Quentin Schulz wrote:

> >   LICENSE = "CLOSED"
> >   LIC_FILES_CHKSUM = ""
> >   FILESEXTRAPATHS_prepend := "${THISDIR}:"
> >   SRC_URI := "file://src"
>
> No need for := here, a simple = should suffice?
>
> >   S = "${WORKDIR}/src"
> >
>
> Why not put the sources in:
> meta-mylayer/recipes-test/test/my-test-0.1/src/
> meta-mylayer/recipes-test/test/my-test_0.1.bb
>
> and have SRC_URI = "file://src/" without needing to add
> FILESEXTRAPATHS_prepend := "${THISDIR}:" so that it follows what almost
> every recipe does?
>
> S will be as you wrote above.

  ah, i misread what you were suggesting here, yes, your idea is
cleaner.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#152463): 
https://lists.openembedded.org/g/openembedded-core/message/152463
Mute This Topic: https://lists.openembedded.org/mt/83147632/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [OE-core] follow up: keeping the source with an "externalsrc"-based recipe

2021-05-31 Thread Robert P. J. Day
On Mon, 31 May 2021, Quentin Schulz wrote:

> Hi Robert,
>
> On Fri, May 28, 2021 at 05:02:13PM -0400, Robert P. J. Day wrote:
> > On Fri, 28 May 2021, Quentin Schulz wrote:
> >
> > ... big snip ...
> >
> > > ${B} = ${S} by default, so that might explain why it works without
> > > externalsrc being inherited.
> > >
> > > You can see in the makefile that this is assumed. Only the install tasks
> > > are installing somewhere else (DESTDIR), c.f.
> > > https://git.savannah.nongnu.org/cgit/dmidecode.git/tree/Makefile
> > >
> > > So yes, except if you patch the Makefile to support out-of-tree build,
> > > you would need both EXTERNALSRC and EXTERNALSRC_BUILD set to the same
> > > value.
> > >
> > > Maybe a Cmake example would suit better since B is set to 
> > > "${WORKDIR}/build"
> > > by default?
> > >
> > > Otherwise, write a proper Makefile that allows out-of-tree builds for
> > > the example :)
> >
> >   in the end, i suspect i was overthinking it, thinking somehow there
> > was some magic to "externalsrc", only to finally realize it was
> > totally inappropriate for source that had to be built in-tree. so i
> > just switched over to using SRC_URI and, for various recipes like
> > dmidecode, i created a recipe that started with some variation of:
> >
> >   LICENSE = "CLOSED"
> >   LIC_FILES_CHKSUM = ""
> >   FILESEXTRAPATHS_prepend := "${THISDIR}:"
> >   SRC_URI := "file://src"
>
> No need for := here, a simple = should suffice?

  yup, i already simplified that, even though it doesn't hurt
anything.

> >   S = "${WORKDIR}/src"
> >
>
> Why not put the sources in:
> meta-mylayer/recipes-test/test/my-test-0.1/src/
> meta-mylayer/recipes-test/test/my-test_0.1.bb
>
> and have SRC_URI = "file://src/" without needing to add
> FILESEXTRAPATHS_prepend := "${THISDIR}:" so that it follows what
> almost every recipe does?
>
> S will be as you wrote above.

  i know it looks goofy, but these recipes are just meant to be
templates to show other developers what a normal Makefile-based recipe
will look like, and if they have their source elsewhere, they'll have
to set FILESEXTRAPATHS anyway. i was grappling with how to do this,
but this is not meant to be production-level, it's just for people to
see how to structure their code so it follows the OE model. i might
re-do it.

> I thought you were trying to find an example with externalsrc for
> our docs, but it seems you have a different thing in mind, can you
> tell us so we are able to help you with your actual issue/question
> :) ?

  externalsrc turned out to have the fatal flaw that it doesn't scale
well for source that can't be built out-of-tree.

rday

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#152462): 
https://lists.openembedded.org/g/openembedded-core/message/152462
Mute This Topic: https://lists.openembedded.org/mt/83147632/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



  1   2   3   4   5   6   7   8   9   10   >