[oe] trying to compile recent gpsd (one with scons) with OE

Martin Jansa martin.jansa at gmail.com
Tue Apr 24 17:49:51 UTC 2012


On Fri, Nov 11, 2011 at 04:14:04PM +0300, Sergey Lapin wrote:
> Hi, all!
> 
> I try to fight scons with OE (actually OE-core, but I think this stuff
> is unrelated).

check 3.4, 3.5 and git recipes here:
http://git.openembedded.org/meta-openembedded-contrib/log/?h=jansa/gpsd

they have fixed style issues, host contamination, wrong prefix, wrong
and redundant RPATHs and python paths.

Cheers,

> Recipe:
> DESCRIPTION = "A TCP/IP Daemon simplifying the communication with GPS devices"
> SECTION = "console/network"
> PRIORITY = "optional"
> LICENSE = "GPL"
> DEPENDS = "dbus-glib ncurses python"
> PROVIDES = "virtual/gpsd"
> INC_PR = "r18"
> 
> CCACHE=""
> DEPENDS += "libusb1"
> SRCREV = "2867071cd2aba0cdd4722eb5a86647eebad8c517"
> 
> SRC_URI = "\
> 
> git://git.sv.gnu.org/gpsd.git;protocol=git;branch=master \
>                         file://0001-Fix-geostar-shows-zero-cootdinates.patch \
>                         file://gpsd-default \
>                         file://gpsd \
>                         file://60-gpsd.rules"
> 
> S = "${WORKDIR}/git"
> 
> INITSCRIPT_NAME = "gpsd"
> INITSCRIPT_PARAMS = "defaults 35"
> 
> EXTRA_OESCONS = "\
>         dbus_export=true \
>         arch=${TARGET_ARCH} \
>         dbus=yes \
>         python=yes \
>         strip=no \
>         "
> 
> inherit scons2 python-dir
> 
> PR = "${INC_PR}.8"
> 
> PARALLEL_MAKE = ""
> 
> INITSCRIPT_NAME = "gpsd"
> INITSCRIPT_PARAMS = "defaults 35"
> 
> LDFLAGS += "-L${STAGING_LIBDIR} -lm"
> export STAGING_INCDIR
> export STAGING_LIBDIR
> export PATH
> 
> TARGET_CC_ARCH += "${LDFLAGS}"
> 
> do_compile_prepend() {
>     export CC=${CC}
>     export BUILD_SYS="${BUILD_SYS}"
>     export HOST_SYS="${HOST_SYS}"
>         find ${S} -name "*.so" -exec rm -f {} \;
> }
> 
> do_install_prepend() {
>     export BUILD_SYS="${BUILD_SYS}"
>     export HOST_SYS="${HOST_SYS}"
> }
> 
> do_install_append() {
>     install -d ${D}/${sysconfdir}/init.d
>     install -m 0755 ${WORKDIR}/gpsd ${D}/${sysconfdir}/init.d/
>     install -d ${D}/${sysconfdir}/default
>     install -m 0644 ${WORKDIR}/gpsd-default
> ${D}/${sysconfdir}/default/gpsd.default
> 
>     #support for udev
>     install -d ${D}/${sysconfdir}/udev/rules.d
>     install -m 0644 ${WORKDIR}/60-gpsd.rules ${D}/${sysconfdir}/udev/rules.d
>     install -d ${D}${base_libdir}/udev/
>     install -m 0755 ${S}/gpsd.hotplug ${D}${base_libdir}/udev/
>         sed -i -e 's@^prefix=.*@prefix=/usr at g'
> ${D}${libdir}/pkgconfdir/libgps.pc
>         sed -i -e 's@^prefix=.*@prefix=/usr at g'
> ${D}${libdir}/pkgconfdir/libgpsd.pc
>     install -d ${D}${PYTHON_SITEPACKAGES_DIR}/gps
>     install -m 755 ${S}/gps/*.py ${D}${PYTHON_SITEPACKAGES_DIR}/gps
> }
> 
> pkg_postinst_${PN}-conf() {
>         update-alternatives --install ${sysconfdir}/default/gpsd
> gpsd-defaults ${sysconfdir}/default/gpsd.default 10
> }
> 
> pkg_postrm_${PN}-conf() {
>         update-alternatives --remove gpsd-defaults
> ${sysconfdir}/default/gpsd.default
> }
> 
> PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev
> gpsd-conf gpsd-gpsctl gps-utils"
> 
> FILES_gpsd-dev += "${libdir}/pkgconfdir/libgpsd.pc
> ${libdir}/pkgconfdir/libgps.pc"
> 
> FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug"
> 
> RDEPENDS_${PN} = "gpsd-gpsctl"
> RRECOMMENDS_${PN} = "gpsd-conf gpsd-udev"
> 
> DESCRIPTION_gpsd-udev = "udev relevant files to use gpsd hotplugging"
> FILES_gpsd-udev = "${base_libdir}/* ${sysconfdir}/udev/*"
> RDEPENDS_gpsd-udev += "udev gpsd-conf"
> 
> DESCRIPTION_libgpsd = "C service library used for communicating with gpsd"
> FILES_libgpsd = "${libdir}/libgpsd.so.*"
> 
> DESCRIPTION_libgps = "C service library used for communicating with gpsd"
> FILES_libgps = "${libdir}/libgps.so.*"
> 
> DESCRIPTION_gpsd-conf = "gpsd configuration files and init scripts"
> FILES_gpsd-conf = "${sysconfdir}"
> 
> DESCRIPTION_gpsd-gpsctl = "Tool for tweaking GPS modes"
> FILES_gpsd-gpsctl = "${bindir}/gpsctl"
> 
> DESCRIPTION_gps-utils = "Utils used for simulating, monitoring,... a GPS"
> FILES_gps-utils = "${bindir}/*"
> RDEPENDS_gps-utils = "python-pygps"
> 
> DESCRIPTION_python-pygps = "Python bindings to gpsd"
> FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}"
> RDEPENDS_python-pygps = "python-core python-curses gpsd python-json"
> 
> scons2.bbclass:
> DEPENDS += "python-scons-native"
> 
> EXTRA_OESCONS ?= ""
> 
> export TARGET_LINK_HASH_STYLE
> 
> scons2_do_compile() {
>     if [ "${SCONS_FIX_ENV}" = "1" ] ; then
>         if grep "toolchain-from-env" ${S}/SConstruct ; then
>             echo "Toolchain overrides already applied"
>         else
>            cat ${STAGING_DATADIR_NATIVE}/scons/toolchain-from-env.SConscript
> >> ${S}/SConstruct
>         fi
>     fi
> 
>     ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} CXX="${CXX}"
> PREFIX=${prefix} prefix=${prefix} ${EXTRA_OESCONS} || \
>     oefatal "scons build execution failed."
> }
> 
> scons2_do_install() {
>         install -d ${D}${prefix}
>         ${STAGING_BINDIR_NATIVE}/scons PREFIX=${D}${prefix}
> prefix=${D}${prefix} install ${EXTRA_OESCONS} || \
>         oefatal "scons install execution failed."
> }
> 
> EXPORT_FUNCTIONS do_compile do_install
> 
> Outcome:
> 
> ERROR: Function 'do_compile' failed (see
> /home/build1/slave/angstrom_build/build/build/tmp-angstrom_2010_x-eglibc/work/armv5te-angstrom-linux-gnueabi/gpsd-git-r18.8/temp/log.do_compile.20570
> for further information)
> ERROR: Logfile of failure stored in:
> /home/build1/slave/angstrom_build/build/build/tmp-angstrom_2010_x-eglibc/work/armv5te-angstrom-linux-gnueabi/gpsd-git-r18.8/temp/log.do_compile.20570
> Log data follows:
> | ERROR: Function 'do_compile' failed (see
> /home/build1/slave/angstrom_build/build/build/tmp-angstrom_2010_x-eglibc/work/armv5te-angstrom-linux-gnueabi/gpsd-git-r18.8/temp/log.do_compile.20570
> for further information)
> | + cd /home/build1/slave/angstrom_build/build/build/tmp-angstrom_2010_x-eglibc/work/armv5te-angstrom-linux-gnueabi/gpsd-git-r18.8/git
> | + do_compile
> | + export BUILD_SYS=i686-linux
> | + BUILD_SYS=i686-linux
> | + export HOST_SYS=arm-angstrom-linux-gnueabi
> | + HOST_SYS=arm-angstrom-linux-gnueabi
> | + export 'CC=arm-angstrom-linux-gnueabi-gcc  -march=armv5te
> -mno-thumb -mthumb-interwork  -mtune=arm926ej-s -Wl,-O1
> -Wl,--hash-style=gnu -Wl,--as-needed
> -L/home/build1/slave/angstrom_build/build/build/tmp-angstrom_2010_x-eglibc/sysroots/crux/usr/lib
> -lm -mthumb-interwork -mno-thumb
> --sysroot=/home/build1/slave/angstrom_build/build/build/tmp-angstrom_2010_x-eglibc/sysroots/crux'
> | + CC='arm-angstrom-linux-gnueabi-gcc  -march=armv5te  -mno-thumb
> -mthumb-interwork  -mtune=arm926ej-s -Wl,-O1 -Wl,--hash-style=gnu
> -Wl,--as-needed
> -L/home/build1/slave/angstrom_build/build/build/tmp-angstrom_2010_x-eglibc/sysroots/crux/usr/lib
> -lm -mthumb-interwork -mno-thumb
> --sysroot=/home/build1/slave/angstrom_build/build/build/tmp-angstrom_2010_x-eglibc/sysroots/crux'
> | + find /home/build1/slave/angstrom_build/build/build/tmp-angstrom_2010_x-eglibc/work/armv5te-angstrom-linux-gnueabi/gpsd-git-r18.8/git
> -name '*.so' -exec rm -f '{}' ';'
> | + scons2_do_compile
> | + '[' '' = 1 ']'
> | + /home/build1/slave/angstrom_build/build/build/tmp-angstrom_2010_x-eglibc/sysroots/i686-linux/usr/bin/scons
> 'CXX=arm-angstrom-linux-gnueabi-g++  -march=armv5te  -mno-thumb
> -mthumb-interwork  -mtune=arm926ej-s -Wl,-O1 -Wl,--hash-style=gnu
> -Wl,--as-needed
> -L/home/build1/slave/angstrom_build/build/build/tmp-angstrom_2010_x-eglibc/sysroots/crux/usr/lib
> -lm -mthumb-interwork -mno-thumb
> --sysroot=/home/build1/slave/angstrom_build/build/build/tmp-angstrom_2010_x-eglibc/sysroots/crux'
> PREFIX=/usr prefix=/usr dbus_export=true arch=arm dbus=yes python=yes
> strip=no
> | scons: Reading SConscript files ...
> | Checking for chrpath... (cached) yes
> | Checking whether the C++ compiler works(cached) yes
> | Checking for ncurses... (cached) yes
> | Checking for libusb-1.0... (cached) yes
> | Checking for C library librt... (cached) yes
> | Checking for dbus-1... (cached) yes
> | Checking for bluez... (cached) yes
> | Checking for C header file sys/timepps.h... (cached) no
> | You do not have kernel PPS available.
> | Checking for C function daemon()... (cached) yes
> | Checking for C function strlcpy()... (cached) no
> | Checking for C function strlcat()... (cached) no
> | Checking for C function clock_gettime()... (cached) yes
> | Checking for C library libbluetooth... (cached) yes
> | Checking for C library libdbus-1... (cached) yes
> | Checking that xsltproc can make man pages... (cached) yes
> | Checking for QtNetwork... (cached) no
> | Altered configuration variables:
> | dbus_export = True (default False): enable DBUS export support
> | strip = False (default True): build with stripping of binaries enabled
> | prefix = /usr (default /usr/local): installation directory prefix
> | scons: done reading SConscript files.
> | scons: Building targets ...
> | arm-angstrom-linux-gnueabi-gcc -march=armv5te -mno-thumb
> -mthumb-interwork -mtune=arm926ej-s -Wl,-O1 -Wl,--hash-style=gnu
> -Wl,--as-needed
> -L/home/build1/slave/angstrom_build/build/build/tmp-angstrom_2010_x-eglibc/sysroots/crux/usr/lib
> -lm -mthumb-interwork -mno-thumb
> --sysroot=/home/build1/slave/angstrom_build/build/build/tmp-angstrom_2010_x-eglibc/sysroots/crux
> -o driver_garmin.os -c -O2 -pipe -g -feliminate-unused-debug-types -O2
> -fPIC -I/usr/include/libusb-1.0 driver_garmin.c
> | driver_garmin.c:95:20: fatal error: libusb.h: No such file or directory
> | compilation terminated.
> | scons: *** [driver_garmin.os] Error 1
> | scons: building terminated because of errors.
> | + oefatal 'scons build execution failed.'
> | /home/build1/slave/angstrom_build/build/build/tmp-angstrom_2010_x-eglibc/work/armv5te-angstrom-linux-gnueabi/gpsd-git-r18.8/temp/run.do_compile.20570:
> line 104: oefatal: command not found
> NOTE: package gpsd-git-r18.8: task do_compile: Failed
> ERROR: Task 337
> (/home/build1/slave/angstrom_build/build/sources/crux/recipes/gpsd/gpsd_git.bb,
> do_compile) failed with exit code '1'
> Waiting for 1 active tasks to finish:
> 0: iproute2-3.0.0-r0 do_compile (pid 20703)
> Waiting for 2 active tasks to finish:
> 0: u-boot-crux-1_2011.10+r10+gitrea97184696c7539d51f5fc072124219acc4f937b-r10
> do_configure (pid 20706)
> 1: iproute2-3.0.0-r0 do_compile (pid 20703)
> NOTE: package u-boot-crux-1_2011.10+r10+gitrea97184696c7539d51f5fc072124219acc4f937b-r10:
> task do_configure: Started
> WARNING: u-boot-crux: Recipe file does not have license file
> information (LIC_FILES_CHKSUM)
> Waiting for 1 active tasks to finish:
> 0: iproute2-3.0.0-r0 do_compile (pid 20703)
> NOTE: package u-boot-crux-1_2011.10+r10+gitrea97184696c7539d51f5fc072124219acc4f937b-r10:
> task do_configure: Succeeded
> NOTE: package iproute2-3.0.0-r0: task do_compile: Succeeded
> ERROR: '/home/build1/slave/angstrom_build/build/sources/crux/recipes/gpsd/gpsd_git.bb'
> failed
> program finished with exit code 2
> elapsedTime=174.306691
> 
> 
> libusb.h is where it should be, --sysroot is there.
> Other packages build wiithout problems.
> Any ideas?
> 
> S.
> 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.openembedded.org/pipermail/openembedded-devel/attachments/20120424/51d75763/attachment-0002.sig>


More information about the Openembedded-devel mailing list