How can I add ldapsearch utility to a yocto-base Linux distribution? - linux

I have successfully added the recipe openldap to my yocto-base Linux distribution, by the instruction:
IMAGE_INSTALL += "openldap"
After that I've created a my-layer/recipes-support/openldap/openldap_%.bbappend file and I've inserted in it the instruction:
INSANE_SKIP_${PN} += "already-stripped"
The previous setting specifies the QA checks to skip and in this case we ask to skip checks that produced binaries have not already been stripped prior to the build system extracting debug symbols (see Yocto manual about insane.bbclass).
Whithout the previous instruction the compilation of openldap fails with this error:
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapcompare' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapdelete' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapexop' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapmodify' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapmodrdn' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldappasswd' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapsearch' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapurl' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/bin/ldapwhoami' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: QA Issue: File '/usr/sbin/slapd' from openldap was already stripped, this will prevent future debugging! [already-stripped]
ERROR: openldap-2.4.50-r0 do_package: Fatal QA errors found, failing task.
Conversely by adding the previous assignment to the variable INSANE_SKIP_${PN}, the QA checks stop failing.
The compilation process produces the binary for the utility ldapsearch but this binary isn't installed into the image.
Instead I'm sure that openldap results correctly installed.
I don't find any method to add ldapsearch and the other utilities to the image.
Could someone help me?

I have successfully added the recipe openldap to my Yocto image, by
the instruction:
IMAGE_INSTALL += "openldap"
You've added the package openldap to your image. The recipe however defines multiple packages:
# The executables go in a separate package. This allows the
# installation of the libraries with no daemon support.
# Each module also has its own package - see above.
PACKAGES += "${PN}-slapd ${PN}-slurpd ${PN}-bin"
# Package contents - shift most standard contents to -bin
FILES:${PN} = "${libdir}/lib*.so.* ${sysconfdir}/openldap/ldap.* ${localstatedir}/${BPN}/data"
FILES:${PN}-slapd = "${sysconfdir}/init.d ${libexecdir}/slapd ${sbindir} ${localstatedir}/run ${localstatedir}/volatile/run \
${sysconfdir}/openldap/slapd.* ${sysconfdir}/openldap/schema \
${sysconfdir}/openldap/DB_CONFIG.example ${systemd_unitdir}/system/*"
FILES:${PN}-slurpd = "${libexecdir}/slurpd ${localstatedir}/openldap-slurp"
FILES:${PN}-bin = "${bindir}"
...
You likely want to add openldap-bin to your image.

Related

Yocto error: Building libreoffice package fails in do_package task

I would like to integrate libreoffice on my tx6s-8035 KARO Board using yocto. I use Ka-ro NXP/Freescale Yocto Project Community BSP recipe layers for yocto distro krogoth. I add too the meta-office layer from open-embedded. I have been facing many issues about packages and libraries dependency to build the libreoffice package. The do_compile task work well but the do_package task fails with the following error:
ERROR: libreoffice-5.0.6.3-r0 do_package: QA Issue: File
'/usr/lib/libreoffice/share/extensions/mysql-connector-
ooo/libmysqlclient_r.so' from libreoffice was already stripped, this will
prevent future debugging! [already-stripped]
WARNING: libreoffice-5.0.6.3-r0 do_package: libreoffice language file
pattern not found: /usr/lib/libreoffice/share/template/%{1}
ERROR: libreoffice-5.0.6.3-r0 do_package: Fatal QA errors found, failing
task.
ERROR: libreoffice-5.0.6.3-r0 do_package: Function failed: do_package
ERROR: Logfile of failure stored in: /home/sconte/fsl-community-
bsp/build_8135_cim/tmp/work/cortexa9hf-neon-poky-linux-
gnueabi/libreoffice/5.0.6.3-r0/temp/log.do_package.8211
ERROR: Task 11 (/home/sconte/fsl-community-bsp/sources/meta-office/recipes-
libreoffice/libreoffice/libreoffice.bb, do_package) failed with exit code
'1'
Here is the log.do_package file output: log.do_package
I view in this file that there is runstrip function which is executed on the same library it cound not find. What does runstrip means? How can i work around this issue?
You can add INSANE_SKIP_${PN}_append = "already-stripped" to libreoffice_%.bbappend recipe to fix this QA error. You can also send a patch upstream by following README.

Error building libgfortran_6.2.bb recipe in morty: backtrace-supported.h: No such file or directory

I am trying to build the libgfortran_6.2.bb recipe in Morty.
I have included in my local.conf:
FORTRAN_forcevariable = ",fortran"
RUNTIMETARGET_append_pn-gcc-runtime = " libquadmath libgfortran"
IMAGE_INSTALL_append = " gfortran gfortran-symlinks libgfortran libgfortran-dev"
But I get the error:
../../../../../../../../work-shared/gcc-linaro-6.3-r2017.02/git/libgfortran/runtime/backtrace.c:37:33: fatal error: backtrace-supported.h: No such file or directory compilation terminated.
Makefile:2419: recipe for target 'backtrace.lo' failed make[1]: *** [backtrace.lo] Error 1
How can this be solved?
Unfortunately the fortran support in OE was broken for quite some time. This patch series brought in the needed fixes, but did not arrive before the rocko release development cycle. The series looks simple enough to be backported for your specific needs if desired, otherwise check if you can just forward your project to rocko.

Unbound module llvm

I have been working through the LLVM Kaleidoscope Tutorial for OCaml. On the third part of the tutorial, I have navigated to the example code in the folder
OCaml-Kaleidoscope\Chapter3
I am encountering an issue when compiling with
ocamlbuild toy.byte
on cygwin. This is the code given in the tutorial to compile.
The error I am getting is
''ocamlc.opt -c -o codegen.cmo codegen.ml
File "codegen.ml", line 5, characters 5-9:
Error: Unbound module Llvm
Exit code 2 while executing this command:
''ocamlc.opt -c -o codegen.cmo codegen.ml
I looked up some solutions to this issue. One solution I found was to use
ocamlbuild -use-ocamlfind toy.byte -package llvm
instead of
ocamlbuild toy.byte
However, when I tried that I received this error:
Failure: ocamlfind not found on path, but -no-ocamlfind not used.
To fix this I tried:
opam install ocamlfind
But ocamlfind is already installed.
Another solution I found was to use:
opam install llvm
This resulted in:
The following actions will be performed:
- install llvm 3.7
=-=- Gathering sources =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=-=- Processing actions -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[llvm: ./install.sh 3.7] Command started
[ERROR] The installation of llvm failed at "./install.sh 3.7 make
C:\\cygwin64\\home\\setup\\.opam\\system
C:\\cygwin64\\home\\setup\\.opam\\system\\lib".
[llvm: ocamlfind remove] Command started
#=== ERROR while installing llvm.3.7 ==========================================#
# opam-version 1.3.0~dev2 (d4f7e01216dbb44af4e7cc6539a1b0afa9be9d2c)
# os win32
# command bash -c ./install.sh 3.7 make C:/cygwin64/home/setup/.opa m/system C:/cygwin64/home/setup/.opam/system/lib
# path C:\cygwin64\home\setup\.opam\system\build\llvm.3.7
# exit-code 2
# env-file C:\cygwin64\home\setup\.opam\system\build\llvm.3.7\llvm-1 0768-58c514.env
# stdout-file C:\cygwin64\home\setup\.opam\system\build\llvm.3.7\llvm-1 0768-58c514.out
# stderr-file C:\cygwin64\home\setup\.opam\system\build\llvm.3.7\llvm-1 0768-58c514.err
### stdout ###
# [...]
# config.status: executing bindings/ocaml/Makefile.ocaml commands
# make: Entering directory '/home/setup/.opam/system/build/llvm.3.7/build/bindin gs'
# llvm[0]: Constructing LLVMBuild project information.
# make[1]: Entering directory '/home/setup/.opam/system/build/llvm.3.7/build/bin dings/ocaml'
# make[2]: Entering directory '/home/setup/.opam/system/build/llvm.3.7/build/bin dings/ocaml/llvm'
# llvm[2]: Compiling llvm_ocaml.c for Release+Asserts build
# /home/setup/.opam/system/build/llvm.3.7/Makefile.rules:1536: recipe for target '/home/setup/.opam/system/build/llvm.3.7/build/bindings/ocaml/llvm/Release+Asse rts/llvm_ocaml.o' failed
# make[2]: Leaving directory '/home/setup/.opam/system/build/llvm.3.7/build/bind ings/ocaml/llvm'
# /home/setup/.opam/system/build/llvm.3.7/Makefile.rules:880: recipe for target 'all' failed
# make[1]: Leaving directory '/home/setup/.opam/system/build/llvm.3.7/build/bind ings/ocaml'
# /home/setup/.opam/system/build/llvm.3.7/Makefile.rules:939: recipe for target 'ocaml/.makeall' failed
# make: Leaving directory '/home/setup/.opam/system/build/llvm.3.7/build/binding s'
### stderr ###
# [...]
# configure: WARNING: dlopen() not found - disabling plugin support
# configure: WARNING: mmap() of a fixed address required but not supported
# configure: WARNING: mmap() of files required but not found
# configure: WARNING: --enable-bindings=ocaml specified, but OUnit 2 is not inst alled. Tests will not run
# + make -C bindings all SYSTEM_LLVM_CONFIG=llvm-config
# gcc.exe: error: /home/setup/.opam/system/build/llvm.3.7/bindings/ocaml/llvm/ll vm_ocaml.c: No such file or directory
# gcc.exe: fatal error: no input files
# compilation terminated.
# /usr/bin/rm: cannot remove '/home/setup/.opam/system/build/llvm.3.7/build/bind ings/ocaml/llvm/Release+Asserts/llvm_ocaml.d.tmp': No such file or directory
# make[2]: *** [/home/setup/.opam/system/build/llvm.3.7/build/bindings/ocaml/llv m/Release+Asserts/llvm_ocaml.o] Error 1
# make[1]: *** [all] Error 1
# make: *** [ocaml/.makeall] Error 2
=-=- Error report -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
The following actions failed
- install llvm 3.7
No changes have been performed
=-=- llvm.3.7 troubleshooting -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=> This package relies on external (system) dependencies that may be missing.
`opam depext llvm.3.7' may help you find the correct installation for your
system.
I am using version 3.8.0 of llvm and version 4.02.3 of OCaml from this link.
Am I on the right track? What do I need to do to fix this?
As I have answered in your question LLVM tutorial OCaml Compilation Assembler Error, your best way is not to use Windows.
OPAM is now usable in Cygwin OCaml or even in MinGW OCaml (using Cygwin opam binary) but packages in the OPAM repository are not tested in these environments. Just avoid them unless you are experienced with OCaml program development in Windows.
If you stick to Windows, then check the build at C:\cygwin64\home\setup\.opam\system\build\llvm.3.7. There should be stdout and stderr log files which can help to understand what happend.

Stack setup fails with package installation errors

I'm trying to get stack running for the first time, but running stack setup in an example project (from stack new helloworld new-template) fails with the following output (I skipped the beginning, which I think was normal):
Installing library in
/home/ajl/.stack/programs/x86_64-linux/ghc-7.10.2/lib/ghc7.10.2/ghc_JzwEp1oQ8kA7NFNTGk1ho5 "/home/ajl/.stack/programs/x86_64-linux/ghc-7.10.2/lib/ghc-7.10.2/bin/ghc-pkg" --force --global-package-db "/home/ajl/.stack/programs/x86_64-linux/ghc-7.10.2/lib/ghc-7.10.2/package.conf.d" update rts/dist/package.conf.install
Reading package info from "rts/dist/package.conf.install" ... done.
: Warning: Unrecognized field 420 on line 420
(Skipped unrecognized field for every line 419 down to 1)
: Warning: Unrecognized field 1 on line 1
: missing id field
: invalid package identifier:
: invalid package key:
make[1]: *** [install_packages] Error 1
make: *** [install] Error 2
Installing GHC ...%
I'm on Ubuntu 14.04, running stack 1.0.2. Not sure if it's relevant but I have ghc 7.10.1 with Cabal 1.23.0.0 installed on the system already, which work fine.
I have tried changing the resolver to older LTS versions with older ghc versions. I also tried deleting ~/.stack. Not sure what else to try given the unhelpfulness of the errors.
I figured it out. The GHC build uses grep to make packages.conf.install. I have GREP_OPTIONS=--color=auto -n set in my zsh config. The -n was putting line numbers in front of everything, which was causing the errors.
The reason I couldn't find packages.conf.install anywhere before is because it is made on the fly during GHC make. And stack does that in /tmp.

installation of ridgerun sdk - Leopard board DM

I want to install ridgerun sdk to build and run applications on Leopardboard DM365. I am new to this and I have followed steps as per ridgerun sdk getting started guide - https://www.ridgerun.com/developer/wiki/index.php/DM365_Leopard_SDK_2011Q2_Getting_Started_Guide
I have installed the sdk as per the guide. Then as per the guide I configure the sdk to build it - "make configure". In the configuration I selected support for opencv-2.1.0. Then when I "make" the sdk, I get the following error:
Checking dependencies for OpenCV-2.1.0
Compiling and installing OpenCV-2.1.0...
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named numpy.distutils
CMake Warning: The variable, 'BUILD_DOXYGEN_DOCS', specified manually, was not used during the generation.
CMake Warning: The variable, 'BUILD_PYTHON_SUPPORT', specified manually, was not used during the generation.
CMake Warning: The variable, 'CMAKE_TOOLCHAIN_FILE', specified manually, was not used during the generation.
make[3]: *** [cmake_built] Error 2
Error building OpenCV-2.1.0
make[2]: *** [dependency_build] Error 1
make[1]: *** [apps_build] Error 1
make: *** [fs_build] Error 2
I am stuck up at this point. I searched a lot but cannot find anything. Please guide me as to what has to be done.
Thanks,
Maz
You must disable OpenCV and compile again.
Goto the root directory of your RRSDK and run:
make config
goto "File System Configuration --->Select target's file system software"
Deselect "OpenCV".
Exit and run:
make
make install
OpenCV is known to have a bug in configuration in this version of RRSDK.

Resources