bitbake recipe compiles but cannot be included into image - yocto

I have a recipe that compiles C code and I have a python recipe that depends on that C library. Both can be bitbaked and when I scrutinize the environment of the python recipe the C library shows up as expected. I also have an image recipe that adds the python recipe as IMAGE_INSTALL. When I check the dependency graph all dependencies seem to be resolved just fine. Nevertheless, compilation fails:
DNF version: 4.1.0
cachedir: /home/marius/mender-orangepi-warrior/build/tmp/work/orange_pi_zero-poky-linux-gnueabi/quakesaver-image/1.0-r0/rootfs/var/cache/dnf
Added oe-repo repo from /home/marius/mender-orangepi-warrior/build/tmp/work/orange_pi_zero-poky-linux-gnueabi/quakesaver-image/1.0-r0/oe-rootfs-repo
repo: using cache for: oe-repo
not found other for:
not found modules for:
not found deltainfo for:
not found updateinfo for:
oe-repo: using metadata from Fri 27 Mar 2020 11:40:54 AM UTC.
Last metadata expiration check: 0:00:01 ago on Fri 27 Mar 2020 11:40:54 AM UTC.
No module defaults found
No match for argument: wiringop
Error: Unable to find a match
ERROR: quakesaver-image-1.0-r0 do_rootfs:
ERROR: quakesaver-image-1.0-r0 do_rootfs: Function failed: do_rootfs
ERROR: Logfile of failure stored in: /home/marius/mender-orangepi-warrior/build/tmp/work/orange_pi_zero-poky-linux-gnueabi/quakesaver-image/1.0-r0/temp/log.do_rootfs.20584
ERROR: Task (/home/marius/mender-orangepi-warrior/build/../sources/meta-quakesaver/recipes-core/images/quakesaver-image.bb:do_rootfs) failed with exit code '1'
Any hints, how to further investigate this issue? As I said, both dependencies are properly resolved in the graph. Strange...

I mistakenly had the C dependency added to the python runtime dependencies (RDEPENDS_${PN}) which, of course, is nonsense.

Related

R package installation with GitHub

I am trying to install the package "PITE" as it is mentioned in the codes used in the article "Subgroup Identification Clinical Trials via the Predicted Individual Treatment Effect". The codes are taken from "https://github.com/nicoballarini/PLOS-2018-PITE#subgroup-identification-clinical-trials-via-the-predicted-individual-treatment-effect". But I'm unable to load this package, it would be very helpful if anyone can tell me where am I going wrong? The error message that I get:
install_github("nicoballarini/PLOS-2018-PITE")
Downloading GitHub repo nicoballarini/PLOS-2018-PITE#master
✓ checking for file ‘/private/var/folders/ml/wj8v_nld19n52l2g3tvzmltr0000gn/T/RtmpD4r8z6/remotes186f6614c26d/nicoballarini-PLOS-2018-PITE-832e47b/DESCRIPTION’ ...
─ preparing ‘PITE’:
✓ checking DESCRIPTION meta-information ...
─ checking for LF line-endings in source and make files and shell scripts
─ checking for empty or unneeded directories
─ building ‘PITE_0.1.0.tar.gz’
* installing *source* package ‘PITE’ ...
** using staged installation
** R
** byte-compile and prepare package for lazy loading
Error: package or namespace load failed for ‘broom’ in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/libs/Rcpp.so':
dlopen(/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/libs/Rcpp.so, 6): Library not loaded: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libR.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/libs/Rcpp.so
Reason: image not found
Error: package ‘broom’ could not be loaded
Execution halted
ERROR: lazy loading failed for package ‘PITE’
* removing ‘/Library/Frameworks/R.framework/Versions/3.6/Resources/library/PITE’
Error: Failed to install 'PITE' from GitHub:
(converted from warning) installation of package ‘/var/folders/ml/wj8v_nld19n52l2g3tvzmltr0000gn/T//RtmpD4r8z6/file186f5ce8b676/PITE_0.1.0.tar.gz’ had non-zero exit status
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object '/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/libs/Rcpp.so':
dlopen(/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/libs/Rcpp.so, 6): Library not loaded: /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libR.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/libs/Rcpp.so
Reason: image not found

Raspberry Pi 4 yocto, rpi-basic-image.bb: Unable to determine endianness for architecture 'INVALID'

I'm trying to build core-image-minimal for raspberrypi4-64 on the zeus branch
and I had to create the file sanity.conf and I'm getting this errors:
fstrati$ bitbake -c cleanall core-image-minimal
Loading cache: 100% Time: 0:00:00
Loaded 28 entries from dependency cache.
ERROR: rpi-basic-image.bb: Unable to determine endianness for architecture 'INVALID'
ERROR: rpi-basic-image.bb: Please add your architecture to siteinfo.bbclass
ERROR: rpi-hwup-image.bb: Unable to determine endianness for architecture 'INVALID'
ERROR: rpi-hwup-image.bb: Please add your architecture to siteinfo.bbclass
ERROR: Failed to parse recipe: rpi-hwup-image.bb
ERROR: vte_0.56.3.bb: Unable to determine endianness for architecture 'INVALID'
ERROR: vte_0.56.3.bb: Please add your architecture to siteinfo.bbclass
I don't understand why core-image-minimal is using such deprecated recipes.
do I need to switch to the master branch?
Forgive me if this is a dumb question...
It seems my MACHINE configuration was wrong. I tried with MACHINE ?= "raspberrypi4-64" instead and everything went fine.
Removing conf resolved issue for me as well.

Yocto build failed while upgrading to pulseaudio 12.0

I have never worked with Yocto before, have a chance of upgrading the pulseaudio from 9.0 to 12.0 for webos.
However when I am using the 12.0's pulseaudio.inc file, made changes as per my requirement, i am facing the following error during packaging.
ERROR: pulseaudio-12.0-12-r20pulseaudio_v12_14Nov do_package_qa: QA Issue: non -dev/-dbg/nativesdk- package contains symlink .so: pulseaudio-misc path '/work/sa8155-webos-linux/pulseaudio/12.0-12-r20pulseaudio_v12_14Nov/packages-split/pulseaudio-misc/usr/lib/libpulse.so'
non -dev/-dbg/nativesdk- package contains symlink .so: pulseaudio-misc path '/work/sa8155-webos-linux/pulseaudio/12.0-12-r20pulseaudio_v12_14Nov/packages-split/pulseaudio-misc/usr/lib/libpulse-mainloop-glib.so'
non -dev/-dbg/nativesdk- package contains symlink .so: pulseaudio-misc path '/work/sa8155-webos-linux/pulseaudio/12.0-12-r20pulseaudio_v12_14Nov/packages-split/pulseaudio-misc/usr/lib/libpulse-simple.so' [dev-so]
ERROR: pulseaudio-12.0-12-r20pulseaudio_v12_14Nov do_package_qa: QA run found fatal errors. Please consider fixing them.
ERROR: pulseaudio-12.0-12-r20pulseaudio_v12_14Nov do_package_qa: Function failed: do_package_qa
Inorder to resolve the error
I made the following changes to the inc file. But no luck:
INSANE_SKIP_${PN} = "dev-so"
Can some one please let me know how to resolve this issue.
Adding the following line solved the problem.
FILES_${PN} += "${libdir}/*"

installing harfbuzz 1.0.1 on CentOS 5

I'm trying to install harfbuzz-1.0.1 on a CentOS 5 machine where I do NOT have sudo access, and hence need to install into non-standard locations. I have downloaded and unpacked the source code, and added what I believe to be the relevant dependences to my $PKG_CONFIG_PATH. These packages include:
freetype2
icu-uc
Checking that '$PKG_CONFIG_PATH` is correct:
$pkg-config --modversion freetype2
9.22.3
$pkg-config --modversion icu-uc
55.1
Within the unpacked source directory, I ran:
$ ./configure --prefix=/some/custom/path
# produces lots of output, but summary here
Build configuration:
Unicode callbacks (you want at least one):
Glib: true
ICU: true
UCDN: false
Font callbacks (the more the better):
FreeType: false
Tools used for command-line utilities:
Cairo: true
Fontconfig: true
Additional shapers (the more the better):
Graphite2: false
Platform shapers (not normally needed):
CoreText: false
Uniscribe: false
Other features:
Documentation: no
GObject bindings: false
Introspection: false
However, make fails with the following error:
In file included from hb-glib.cc:31:0:
hb-glib.h:50:22: error: 'GBytes' was not declared in this scope
hb_glib_blob_create (GBytes *gbytes);
^
hb-glib.h:50:30: error: 'gbytes' was not declared in this scope
hb_glib_blob_create (GBytes *gbytes);
^
hb-glib.cc:389:22: error: redefinition of 'hb_blob_t* hb_glib_blob_create'
hb_glib_blob_create (GBytes *gbytes)
^
In file included from hb-glib.cc:31:0:
hb-glib.h:50:1: error: 'hb_blob_t* hb_glib_blob_create' previously defined here
hb_glib_blob_create (GBytes *gbytes);
^
hb-glib.cc:389:22: error: 'GBytes' was not declared in this scope
hb_glib_blob_create (GBytes *gbytes)
^
hb-glib.cc:389:30: error: 'gbytes' was not declared in this scope
hb_glib_blob_create (GBytes *gbytes)
^
make[4]: *** [libharfbuzz_la-hb-glib.lo] Error 1
I can't determine anything from the config.log file, but then again I'm not exactly sure what to look for. I'm guessing that perhaps there's an unmet dependency somewhere, but I'm kind of at a loss at this point. Any help would be greatly appreciated and I'm happy to provide more info if needed. Thanks a lot.
If it's helpful, here is the full config.log.
The glib GBytes type was added in glib 2.32.
The version of glib is CentOS 5 is 2.12 which is much older.
The harfbuzz configure setup should be checking for a compatible version of glib and not getting as far as compiling before failing. That's a "bug" on their part.
You get to either use an older version of harfbuzz that can use the version of glib that CentOS 5 ships with or you get to build and "install" your own copy of glib too.

Unknown Eclipse Errors using gfortran, Cygwin

Using Windows 7 64 bit. I've followed these instructions for installing Eclipse for Parallel Application Developers and Cygwin, the latter because I want gfortran to compile Fortran code. At 18:20 in the linked tutorial he compiles in Eclipse with no errors, but I get the following 2 errors (Project is called "example"):
Description Resource Path Location Type
make: *** [example] Error 1 example C/C++ Problem
recipe for target 'example' failed makefile /example/Debug line 29 C/C++ Problem
My code (main.f90, under project "example") is simply
program main
print*, "hello world"
end program main
I've also tried compiling through the terminal, but get the following:
>>gfortran main.f90
gfortran: fatal error: -fuse-linker-plugin, but cyglto_plugin.dll not found
compilation terminated
Any help is appreciated!
The tutorial, you linked, is 2 years old...
As far as I see from the content of the packages available from http://www.cygwin.com/packages/, you have to install gcc-fortran instead of gcc4-fortran, because the latter one is labeled as obsolete.
The library cyglto_plugin.dll, which is used for Link-Time-Optimization, can be found in the package gcc-core and should be installed as a dependency. You could try to disable this library by using -fno-use-linker-plugin, but this will disable some optimization.