I'm trying to install snappy player (https://wiki.gnome.org/Apps/Snappy) on my Beaglebone black using Yocto. So far, I figured out that Sanppy needs gstreamer and clutter.
I have return my recipe as below:
k@k snappy-player]$ cat snappy-player_1.0.bb
SUMMARY = "Snappy player for BBB"
DESCRIPTION = "Recipe to build Snappy player."
SECTION = "Multimedia"
PRIORITY = "optional"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://{COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = "file://snappy-1.0.tar.xz"
S = "${WORKDIR}"
DEPENDS = "clutter-1.0 gstreamer1.0"
inherit autotools
When I do bitbake core-image-sato, I'm getting the error below.
ERROR: snappy-player-1.0-r0 do_compile: oe_runmake failed
ERROR: snappy-player-1.0-r0 do_compile: Function failed: do_compile (log file is located at /home/k/YOCTO_KK/poky/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/snappy-player/1.0-r0/temp/log.do_compile.21220)
ERROR: Logfile of failure stored in: /home/k/YOCTO_KK/poky/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/snappy-player/1.0-r0/temp/log.do_compile.21220
***Log data follows:
| DEBUG: SITE files ['endian-little', 'bit-32', 'arm-common', 'arm-32', 'common-linux', 'common-glibc', 'arm-linux', 'arm-linux-gnueabi', 'common']
| DEBUG: Executing shell function do_compile
| NOTE: make -j 4
| make: *** No targets specified and no makefile found. Stop.
| ERROR: oe_runmake failed
| WARNING: /home/k/YOCTO_KK/poky/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/snappy-player/1.0-r0/temp/run.do_compile.21220:1 exit 1 from 'exit 1'
| ERROR: Function failed: do_compile (log file is located at /home/k/YOCTO_KK/poky/build/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/snappy-player/1.0-r0/temp/log.do_compile.21220)***
ERROR: Task (/home/k/YOCTO_KK/poky/build/meta-customkernel-layer/recipes-apps/snappy-player/snappy-player_1.0.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 4813 tasks of which 4812 didn't need to be rerun and 1 failed.
Summary: 1 task failed:
/home/k/YOCTO_KK/poky/build/meta-customkernel-layer/recipes-apps/snappy-player/snappy-player_1.0.bb:do_compile
Summary: There was 1 WARNING message shown.
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
I'm not sure what dependencies I'm missing in my recipe, because autotools should take care of compiling and installing as the snappy tar file do have .ac configuration file.
Can anyone let me know how to proceed with this?
FYI: Have attached bitbake-cookerdaemon.log over here: https://pastebin.com/q1JGHNPv
Hi, I have recreated recipe (snappy_1.0.bb)using recipe tool,(As it will include appropriate dependency files)
recipetool create -d -o snappy_1.0.bb https://ftp.gnome.org/pub/gnome/sources/snappy/1.0/snappy-1.0.tar.xz
Here are my recipe file contents:
[k@k snappy-player]$ cat snappy_1.0.bb
# Recipe created by recipetool
# This is the basis of a recipe and may need further editing in order to be fully functional.
# (Feel free to remove these comments when editing.)
# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is
# your responsibility to verify that the values are complete and correct.
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=686e6cb566fd6382c9fcc7a557bf4544"
SRC_URI = "https://ftp.gnome.org/pub/gnome/sources/snappy/${PV}/snappy-${PV}.tar.xz"
SRC_URI[md5sum] = "17598504ba57d4d21382faa1038476d9"
SRC_URI[sha256sum] = "0d33a05c1ad3cc075b8b9bf38d45634ea5204159454597b0882dd6a8d9763f58"
# NOTE: unable to map the following pkg-config dependencies: clutter-gtk-1.0 clutter-win32-1.0 clutter-osx-1.0 clutter-gst-2.0
# (this is based on recipes that have previously been built and packaged)
DEPENDS = "clutter-1.0 gtk+3 glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base libxtst"
# NOTE: if this software is not capable of being built in a separate build directory
# from the source, you should replace autotools with autotools-brokensep in the
# inherit line
inherit pkgconfig autotools
# Specify any options you want to pass to the configure script using EXTRA_OECONF:
EXTRA_OECONF = ""
This time apart from earlier error(SITE files...) I encountered dependency issue as well.
checking for clutter-gst-2.0 >= 2.0.0... no
| configure: error: Package requirements (clutter-gst-2.0 >= 2.0.0) were not met:
|
| No package 'clutter-gst-2.0' found
by default in the metarecipes we have clutter-gst-3.0, but snappy configure file needs 2.0. so how i can fix this issue ? by the by i tried creating a new recpie of clutter-gst-2.0, inspite of this I'm getting the same error response :-(.
please have a look at the error log over here https://pastebin.com/8wGxqh8x
can any one guide me on this ?
There are two issues here:
1 Attempting the build in the wrong directory
Setting S
to ${WORKDIR}
means the build (configure and make tasks) will be attempted in the directory where the tarball is unpacked. However the tarball creates a top level snappy-1.0
directory, and it is in that directory where the build should be performed.
Try changing S
to:
S = "${WORKDIR}/snappy-${PV}"
Your second recipe file had a changed name, snappy_1.0.bb
, and didn't set S
, so it will be using the default value:
By default, this directory is
${WORKDIR}/${BPN}-${PV}
, where${BPN}
is the base recipe name and${PV}
is the recipe version.
which is exactly what we want in this case.
This allows the configure task to run, and results in the second problem...
2 Unresolved dependency
snappy-1.0 requires clutter-gst-2.0. It doesn't matter that you have clutter-gst-3.0, they have different names and so as far as configure is concerned these are completely different things. So you have a number of options:
clutter-gst-2.0
to DEPENDS
otherwise bitbake won't know that it has to build it first.As it happens, there have been some changes in the snappy git repository which add support for clutter-gst-3.0, so you could try building the latest version from git rather then the 1.0 release. To do this replace the SRC_URI
lines in your recipe with:
SRCREV = "e73fabce4c397b40d490c74f6a6a0de000804f42"
SRC_URI = "git://git.gnome.org/snappy"
S = "${WORKDIR}/git"
You need to set S
as well because the directory where the sources are stored when retrieved from a git repository will now be called git
, and so doesn't match the default.
Give that a try, and see what the next problem is, writing Yocto recipes is a very iterative process!