Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

spdlog_1.3.1 allow empty for header only libs #197

Closed
wants to merge 1 commit into from

Conversation

IniterWorker
Copy link

By default, BitBake does not produce empty packages.

  • opkg_prepare_url_for_install: Couldn't find anything to satisfy 'spdlog'

By default, BitBake does not produce empty packages.

opkg_prepare_url_for_install: Couldn't find anything to satisfy 'spdlog'
@kraj
Copy link
Contributor

kraj commented Mar 2, 2020

Please rebase it on top of master branch first. Then backport into warrior

@shr-project
Copy link
Contributor

Installing completely empty package doesn't really fix anything on target. Just fix whatever is depending on this empty package.

@IniterWorker
Copy link
Author

@shr-project, so, what's the best approach?
@kraj, okay, I will do it. Thank you.

@shr-project
Copy link
Contributor

Just fix whatever is depending on this empty package.

@IniterWorker
Copy link
Author

@shr-project, I'm a kind of perplex about your answer. "Just fix whatever is depending on this empty package."

You need this package in dev level to package it in an SDK populate. So, in that way, we need to package it, right?

I think we can allow_empty only for the dev-level. So are you okay with it? Or can you give me a hint?

@shr-project
Copy link
Contributor

your commit message doesn't show what failed to install with "opkg_prepare_url_for_install: Couldn't find anything to satisfy 'spdlog'" if it was spdlog-dev package, then just set
RDEPENDS_${PN}-dev = ""
in the recipe, like other recipes with empty PN do. If it's something else you're trying to install depending on spdlog, then you need to resolve it there, installing empty package just because some other recipe thinks it depends on it is wrong.

@IniterWorker
Copy link
Author

I'm in the development stage. I added a new library to update my SDK via my image package list. So, I don't understand why you want I fix other recipes that I didn't depend on it. I want to populate my SDK with a header only in dev-level as well as a standard lib install lib-header into the populated SDK.

As I have said maybe the ALLOW_EMPTY_${PN}-dev = "1" was a good way.

Maybe I missed something for the best way to install a lib header only in the populated SDK.

ERROR: placeholder-dev-image-1.0-r0 do_rootfs: Unable to install packages. Command '/workdir/build/tmp/work/varsomam43-poky-linux-gnueabi/placeholder-dev-image/1.0-r0/recipe-sysroot-native/usr/bin/opkg --volatile-cache -f /workdir/build/tmp/work/varsomam43-poky-linux-gnueabi/placeholder-dev-image/1.0-r0/opkg.conf -t /workdir/build/tmp/work/varsomam43-poky-linux-gnueabi/placeholder-dev-image/1.0-r0/temp/ipktemp/ -o /workdir/build/tmp/work/varsomam43-poky-linux-gnueabi/placeholder-dev-image/1.0-r0/rootfs  --force_postinstall --prefer-arch-to-version   install alsa-utils avahi-autoipd avahi-daemon bash bzip2 canutils crda curl devmem2 dosfstools e2fsprogs-mke2fs ethtool findutils fio gdb gdbserver grep gzip i2c-tools ifupdown init-ifupdown iperf3 iproute2 iptables kernel-modules less libcxxopts libdrm-omap1 libpcap1 libserial1 lsof memtester mmc-utils mosquitto mtd-utils nand-recovery nano net-tools netcat-openbsd nmap ntp ntp-tickadj openssh openssh-keygen openssh-sftp-server openssl openssl-bin opkg packagegroup-core-boot parted pciutils procps rsync run-postinsts serial-reader spdlog sysfsutils tcpdump tree udev-extraconf unzip usbutils util-linux util-linux-blkid watchdog wget xz zip' returned 255:
Collected errors:
 * opkg_prepare_url_for_install: Couldn't find anything to satisfy 'spdlog'.

ERROR: placeholder-dev-image-1.0-r0 do_rootfs: 
ERROR: placeholder-dev-image-1.0-r0 do_rootfs: Function failed: do_rootfs
ERROR: Logfile of failure stored in: /workdir/build/tmp/work/varsomam43-poky-linux-gnueabi/placeholder-dev-image/1.0-r0/temp/log.do_rootfs.17881
ERROR: Task (/workdir/meta-placeholder/images/placeholder-dev-image.bb:do_rootfs) failed with exit code '1'

@shr-project
Copy link
Contributor

ALLOW_EMPTY_${PN}-dev = "1"
won't do anything as ${PN}-dev isn't empty, is it?

Does placeholder-dev-image have spdlog in IMAGE_INSTALL? Then you should fix placeholder-dev-image to IMAGE_INSTALL spdlog-dev not spdlog.

@IniterWorker
Copy link
Author

IniterWorker commented Mar 3, 2020

My bad, you are right about the non-empty package-split of dev-level of the lib fact. We don't be able to populate the SDK with only adding '-dev'.

For the spdlog-dev, I'm wondering if it's really an excellent way to do it.

  • The question seems pretty tricky.
  1. If we decide not to allow the ALLOW_EMPTY, we need to configure a different image between dev (to produce the SDK rootfs) and production.

  2. if we decide to allow the ALLOW_EMPTY, we can deal with only one image for dev and prod, but we add an empty package into the rootfs.

Both ways make sense.

Thank you for your arguments,

B. r

@IniterWorker
Copy link
Author

It's not the solution to my problem. I will dig into it and come back later.

@IniterWorker IniterWorker deleted the patch-1 branch March 5, 2020 22:19
@graugans
Copy link
Contributor

I had issues with adding spdlog to my SDK as-well. Due to the note in the commit message of the initial commit when spdlog was added the hint is to use spdlog-dev instead of spdlog what I did.

TOOLCHAIN_TARGET_TASK += " \
        spdlog-dev \
        libstdc++-staticdev \
"

This solved my issue. Maybe it does help somebody else as-well.

@IniterWorker
Copy link
Author

@graugans, it's a spotless way to do it.

TOOLCHAIN_TARGET_TASK: Lists packages that make up the target part of the SDK (i.e. the part built for the target hardware).

This variable lists packages the OpenEmbedded build system uses when it creates the target part of an SDK (i.e. the part built for the target hardware), which includes libraries and headers.

I'm wondering why packages are not installed into the SDK (ex. spdlog) if they are available only with the suffix "-dev" (ex. spdlog-dev).

But, whatever the fact, it seems a philosophical matter.

  • Some people describe a lib recipe like a regular package manager and install header-only (like Makefile based one)
  • Some people describe a lib recipe like a minimal package, with minimal resource conception.

My guts tell me that the minimal way is the good one. But, the principal issue is the fact of both shares in the same place and can consume some extra cost of time to figure out what's the way used by this one.

Thank you for sharing this hint,

B. r

kraj pushed a commit to YoeDistro/meta-openembedded that referenced this pull request Sep 27, 2022
Changelog:
==========
 Refreshed packaging.
 openembedded#197: Fixed default argument rendering in docs.
 openembedded#209: Refactored write_lines to re-use open semantics. Deprecated the linesep parameter.

Signed-off-by: Wang Mingyu <[email protected]>
Signed-off-by: Khem Raj <[email protected]>
halstead pushed a commit that referenced this pull request Sep 28, 2022
Changelog:
==========
 Refreshed packaging.
 #197: Fixed default argument rendering in docs.
 #209: Refactored write_lines to re-use open semantics. Deprecated the linesep parameter.

Signed-off-by: Wang Mingyu <[email protected]>
Signed-off-by: Khem Raj <[email protected]>
kraj pushed a commit to YoeDistro/meta-openembedded that referenced this pull request Jul 23, 2023
The project has stopped using setuptools in favor of poetry, so inherit
python_poetry_core instead.

Changelog (https://github.com/ludeeus/awesomeversion/releases/tag/23.5.0):

- Add CI for Python 3.11 by @ludeeus in openembedded#191
- Add demo page by @ludeeus in openembedded#195
- Add better styles to demo by @ludeeus in openembedded#197
- Remove setuptools from dev-dependencies by @ludeeus in openembedded#202
- Update demo with compare by @ludeeus in openembedded#219
- Add Python 3.12 to CI by @ludeeus in openembedded#222
- Add in_range helper method by @ludeeus in openembedded#224
- Restructure README contents by @ludeeus in openembedded#225

Signed-off-by: Trevor Gamblin <[email protected]>
Signed-off-by: Khem Raj <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants