Hello
I am working with an i.MX6 dev board.
I am using ltib to create the uboot/kernel/fs image.
My project uses the apache webserver with PHP.
I need to use json encoding functions through PHP which became enabled by default on PHP version 5.2.x.
The version that is created by ltib is 5.0.4, so it doesnt reconize the json functions.
The current spec file for PHP includes 4 patches that have something to do with the fsl, crosscompiling and zend.
I've tried copying the binaries for PHP 5.5.5 (the latest) into /opt/freescale/pkgs and reworking the spec and patch files, but the build fails, also fails if I dont include the patches.
When I try to build, i get to the PHP package, then fail at the point of checking to enable DOM support.
configure error: DOM extension requires LIBXML extension, add --enable-libxml
When i check through ltib, I find ---libxml2 is enabled by default and I cant even unselect it, so I'm not sure where I would perform this; add --enable-libxml
How to do I update this PHP package?! or do I look for a patch for json functions?
Thanks for any insight!
Scott, if you are not tied to LTIB, you can try Yocto adding this recipe
OpenEmbedded metadata index - php
Leo
..Hmmm
I'm only tied to what works, I've never used Yocto before and I'm
relatively new to ltib, would you recommend this transition?
On Thu, Oct 31, 2013 at 11:28 AM, Leonardo Sandoval Gonzalez <
Yes, move it now :smileyhappy: There are some documents out there to start (check Daiane Angolini'sTasks). Let us know any trouble in the process.
Leo
Hi Leo,
I have gotten to the point of successfully building and booting
fsl-image-test,
I want to be able to add apache and php, is there anything pre-built into
yocto that I can enable to have these packages included in the build? or do
I build my own recipes?
Thanks!
On Thu, Oct 31, 2013 at 11:45 AM, Leonardo Sandoval Gonzalez <
Hi Scott, there is not need to implement those recipes you need. In the link I posted before, there is a search's field, just type any package you want and see in which layer is located. Then clone that layer, add it on bblayers.conf, finally add the package name to your local.conf. Actually, this last step is no so elegant, in the sense that you are modifying a global configuration file, so all images (by image here, I mean the ones on tmp/deploy/images) you bake will contain the packages you add it there. One good approach is to create a layer and inside create a NEW image (by image here I mean the .bb file) where you know it has all you want. I have create a 'demo' layer here
https://github.com/lsandoval/meta-lsandoval/tree/master/meta-fsl-custom
Leo
Thanks Leo,
Getting closer, I see in bblayers.conf where I need to add the directory
for meta-webserver, but for updating the local.conf, i'm not sure what to
add.
There are a few packages in the meta-webserver directory, do I add them all
individually using
IMAGE_INSTALL_append = " "
and, where in local.conf should this be set, if it needs to be
On Wed, Nov 6, 2013 at 10:05 AM, Leonardo Sandoval Gonzalez <
Yes, so can do it that way (there is another variable which is more commonly used, CORE_IMAGE_EXTRA_INSTALL, both do the job). Once you have all packages you need, the next step is to create a new .bb image. There is an example also on the repo I sent before.
Leo
Thanks again Leo,
Just wanted to clear a couple things up,
in my sources directory, I have a directory called meta-openembedded, which
contains meta-webserver, which has a conf/layer.conf and .bb image in
meta-httpd/apache2 already. If I didn't want to create my own custom layer,
can i just add the meta-webserver directory to bblayers.conf.
Although, I have already tried this and it didn't work.
Appreciate your help.
On Wed, Nov 6, 2013 at 1:55 PM, Leonardo Sandoval Gonzalez <
Hi Scott.
I may have confused you. You have two options,
You can either
Leo
hi, Leo,
I'm in the same situation as Scott. I,d like to see your demo, but the link you provided is not valid now, can you provide it again, thanks.
I'll check that out,
I've been trying to massage fsl-image-test for most of my testing, things
are starting to get clearer.
I tried adding httpd and php packages by changing the
packagegroup-fsl.bbfile like this;
PROVIDES = "$"
PACKAGES += " \
$-gstreamer \ $-gstreamer-streamer \
$-tools-testapps \ $-tools-benchmark \
$-httpd \ $-php \
"
with this at the bottom;
RDEPENDS_$
-httpd = " \
apache2 \
"
ALLOW_EMPTY_$ = "1"
ALLOW_EMPTY_$-gstreamer = "1" ALLOW_EMPTY_$-tools-testapps = "1"
ALLOW_EMPTY_$-tools-benchmark = "1" ALLOW_EMPTY_$-httpd = "1"
ALLOW_EMPTY_$-php = "1"
PACKAGE_ARCH = "$"
bitbake went through the build process without any errors, and my sd card
boots, but i can't find /htdocs, where would the root of the webserver be?
or am I still missing something..
Appreciate the time
On Wed, Nov 6, 2013 at 3:43 PM, Leonardo Sandoval Gonzalez <
Actually you are facing another problem. One thing is the recipe name and another thing what you want to install on you FS from that recipe. On the recipes (php and apache), look at the PACKAGE variable,for example http://cgit.openembedded.org/meta-openembedded/plain/meta-oe/recipes-devtools/php/php.inc so I believe what you really need to use is php-cli or php-dev. The same may also apply for apache. Also, find the working folders on tmp/work, then inside look at the packages-split folder. This is another way to figure out what each -XXX installs....
Leo
Leo
I found the recipe name to be -dev for both php and apache.
I got the apache webserver working: great
I cannot seem to add the php though. I seem to get an error when I do the
build. Can you make sense of this..
Here is my packagegroup.bb;
(the beginning)
PROVIDES = "$"
PACKAGES += " \
$-gstreamer \ $-gstreamer-streamer \
$-tools-testapps \ $-tools-benchmark \
$-httpd-dev \ $-php-dev \
"
(the end)
RDEPENDS_$-httpd-dev = " \ apache2 \ " RDEPENDS_$-php-dev += " \
phpmyadmin \
xdebug \
modphp \
"
Disabled as it has CRC problems in denzil branch
cpuburn-neon
ALLOW_EMPTY_$ = "1" ALLOW_EMPTY_$-gstreamer = "1"
ALLOW_EMPTY_$-tools-testapps = "1" ALLOW_EMPTY_$-tools-benchmark = "1"
ALLOW_EMPTY_$-httpd-dev = "1" ALLOW_EMPTY_$-php-dev = "1"
PACKAGE_ARCH = "$"
And part of the fsl-image-test.bb image;
IMAGE_INSTALL += " \
packagegroup-fsl-gstreamer \
packagegroup-fsl-tools-testapps \
packagegroup-fsl-tools-benchmark \
"
IMAGE_INSTALL_append = " packagegroup-fsl-httpd-dev"
IMAGE_INSTALL_append = " packagegroup-fsl-php-dev"
And here is the build erros;
make[4]: Entering directory
`/home/gw/build/tmp/work/i686-linux/mariadb-native/5.1.67-r0/mariadb-5.1.67/libmysqld/examples'
| ../../i686-linux-libtool --tag=CXX --mode=link g++
-isystem/home/gw/build/tmp/sysroots/i686-linux/usr/include -O2 -pipe
-fno-implicit-templates -fno-exceptions -fno-rtti
-L/home/gw/build/tmp/sysroots/i686-linux/usr/lib
-L/home/gw/build/tmp/sysroots/i686-linux/lib
-Wl,-rpath-link,/home/gw/build/tmp/sysroots/i686-linux/usr/lib
-Wl,-rpath-link,/home/gw/build/tmp/sysroots/i686-linux/lib
-Wl,-rpath,/home/gw/build/tmp/sysroots/i686-linux/usr/lib
-Wl,-rpath,/home/gw/build/tmp/sysroots/i686-linux/lib -Wl,-O1 -rdynamic -o
mysqltest_embedded mysqltest.o ../../libmysqld/libmysqld.la -ldl
../../regex/libregex.la -lpthread -lcrypt -lnsl -lm -lpthread -lcrypt
-lnsl -lm -lz
| i686-linux-libtool: link: g++
-isystem/home/gw/build/tmp/sysroots/i686-linux/usr/include -O2 -pipe
-fno-implicit-templates -fno-exceptions -fno-rtti -Wl,-rpath-link
-Wl,/home/gw/build/tmp/sysroots/i686-linux/usr/lib -Wl,-rpath-link
-Wl,/home/gw/build/tmp/sysroots/i686-linux/lib -Wl,-rpath
-Wl,/home/gw/build/tmp/sysroots/i686-linux/usr/lib -Wl,-rpath
-Wl,/home/gw/build/tmp/sysroots/i686-linux/lib -Wl,-O1 -rdynamic -o
.libs/mysqltest_embedded mysqltest.o
-L/home/gw/build/tmp/sysroots/i686-linux/usr/lib
-L/home/gw/build/tmp/sysroots/i686-linux/lib
../../libmysqld/.libs/libmysqld.so -ldl ../../regex/.libs/libregex.a
-lpthread -lcrypt -lnsl -lm -lz -Wl,-rpath
-Wl,/home/gw/build/tmp/sysroots/i686-linux/usr/lib/mysql
| ../../libmysqld/.libs/libmysqld.so: undefined reference to `dlopen'
| ../../libmysqld/.libs/libmysqld.so: undefined reference to `dlclose'
| ../../libmysqld/.libs/libmysqld.so: undefined reference to `dlerror'
| ../../libmysqld/.libs/libmysqld.so: undefined reference to `dlsym'
| collect2: error: ld returned 1 exit status
| make[4]: *** Error 1
| make[4]: Leaving directory
`/home/gw/build/tmp/work/i686-linux/mariadb-native/5.1.67-r0/mariadb-5.1.67/libmysqld/examples'
| make[3]: *** Error 2
| make[3]: Leaving directory
`/home/gw/build/tmp/work/i686-linux/mariadb-native/5.1.67-r0/mariadb-5.1.67/libmysqld/examples'
| make[2]: *** Error 1
| make[2]: Leaving directory
`/home/gw/build/tmp/work/i686-linux/mariadb-native/5.1.67-r0/mariadb-5.1.67/libmysqld'
| make[1]: *** Error 2
| make[1]: Leaving directory
`/home/gw/build/tmp/work/i686-linux/mariadb-native/5.1.67-r0/mariadb-5.1.67/libmysqld'
| make: *** Error 1
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at
/home/gw/build/tmp/work/i686-linux/mariadb-native/5.1.67-r0/temp/log.do_compile.21680)
ERROR: Task 4578
(/home/gw/sources/meta-openembedded/meta-oe/recipes-support/mysql/
mariadb-native_5.1.67.bb, do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 3632 tasks of which 3629 didn't need to be
rerun and 1 failed.
Waiting for 0 running tasks to finish:
Summary: 1 task failed:
/home/gw/sources/meta-openembedded/meta-oe/recipes-support/mysql/
mariadb-native_5.1.67.bb, do_compile
Summary: There was 1 WARNING message shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
If I eliminate the php code from the .bb files everything builds fine and
the web server works.
Thanks for any insight
On Wed, Nov 6, 2013 at 4:08 PM, Leonardo Sandoval Gonzalez <
Could you try this?
bitbake -c cleansstate mariadb-native
and try again. Sometimes this little trick (clean the sstate before compiling) works when facing a compilation issue.
Also on packagegroup-fsl-php-dev, try adding packages one by one, just to narrow down the pkg giving problems this time.
Leo
Hi Leo,
This issue is still giving me grief,
Should I be using the php out of the webserver directory or the devtools
directory?
Would there be a working example of how to do a lamp install or even just a
php install using yocto?
Thanks,
Scott Penner
Goodwell Inc.
c. 4033761977
a. Box 906 Brooks, Ab T1R1B8
On Nov 7, 2013, at 10:59 AM, Leonardo Sandoval Gonzalez <
Hi Scott,
Could you post your question on the proper layer? this a meta-openembedded related code, so the list would be
Leo
Thanks Leo, tried that bitbake command, when I build again, I still get
this error;
/5.1.67-r0/mariadb-5.1.67/libmysqld'
| make: *** Error 1
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at
/home/gw/build/tmp/work/i686-linux/mariadb-native/5.1.67-r0/temp/log.do_compile.23953)
ERROR: Task 4552
(/home/gw/sources/meta-openembedded/meta-oe/recipes-support/mysql/
mariadb-native_5.1.67.bb, do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 5062 tasks of which 5055 didn't need to be
rerun and 1 failed.
No currently running tasks (5062 of 5092)
Summary: 1 task failed:
/home/gw/sources/meta-openembedded/meta-oe/recipes-support/mysql/
mariadb-native_5.1.67.bb, do_compile
Summary: There was 1 WARNING message shown.
Summary: There was 1 ERROR message shown, returning a non-zero exit code.
I only appended modphp in packagegroup for install;
PROVIDES = "$"
PACKAGES += " \
$-gstreamer \ $-gstreamer-streamer \
$-tools-testapps \ $-tools-benchmark \
$-httpd-dev \ $-php-dev \
"
RDEPENDS_$-httpd-dev = " \ apache2 \ " RDEPENDS_$-php-dev = " \
modphp \
"
and for the fsl-image-test;
IMAGE_INSTALL_append = " packagegroup-fsl-httpd-dev"
IMAGE_INSTALL_append = " packagegroup-fsl-php-dev"
Do I have to have mysql installed or add it to a layer to install php?
Thanks
On Thu, Nov 7, 2013 at 10:59 AM, Leonardo Sandoval Gonzalez <