Installed the current mpf on a Fedora 10, 64-bit machine. Do not find the mpf-new-component.sh file per the user guide. Does this file come with the free download? Thank you.
Thank you for the file. Mpf-new-component.sh now says it cannot find stamp-template.sh in tools/mpf-autotemplate. Also, does mpf-new-component.sh need to run as su? Thank you.
I took some time to go over the MPF component build process, and I think the most reliable option is to build from source. Here are the steps you should take:
From the ~/mpf directory: ./build-all --no-install (build all MPF components)
sudo ./build-all (install MPF components to /usr/local/lib/gstreamer-0.10)
The build-all script will generate the mpf-new-component.sh script and install it to /usr/local/bin (please delete the version of the script that I uploaded here, I got the version wrong).
You should then be able to generate a new MPF component as follows:
If the last step fails with the error "Installed version not found, looking for source tree...", try making a symbolic link from /mpf to /usr/local/share/mpf (sudo ln -s /mpf /usr/local/share/mpf) and run mpf-new-component.sh again (the location where build-all puts the source tree seems to vary between Linux distributions, and I'm not sure which distro you are using).
Making progress. Moved to a 32-bit machine with RHEL5 and was able to build base components, generate a test component and build the test component. One question - where do I get the RDF package that is needed by your software (telling me GRDF not available during build).
Get the following errors when running gst-inspect on the test component:
(gst-inspect-0.10:21829): GStreamer-WARNING **: Failed to load plugin '/home/jf/mymdfcomponents/mympfcomponent/.libs/libmympfcomponent.so': /home/jf/mymdfcomponents/mympfcomponent/.libs/libmympfcomponent.so: undefined symbol: mpf_component_set_teardown No such element or plugin 'mympfcomponent'
Sorry I missed out a couple of things from my previous post. I started again from scratch on a 32-bit machine; here are the extra steps you need to take:
Install grdf - check out from https://svn.appscio.com/svn/GRDF/trunk/grdf/ and build in the same way as the MPF components (from the grdf directory, ./autogen.sh; make; sudo make install)
Rebuild your custom component in the same way as before
export GST_PLUGIN_PATH=/usr/local/lib/gstreamer-0.10 (this assumes you ran "sudo make install" for all components; if you don't want to do that, you can add the .libs subdirectory of your MPF component directory to GST_PLUGIN_PATH)
gst-inspect [your MPF component] should then work.
Sorry this is taking a few iterations to get working; please keep us posted.
Moved to RHEL5, 32-bit. Can build basic MPF stuff and create and build a test component. Had to upgrade to higher levels of gstreamer.
Next step - can now build GRDF stuff. Had to upgrade check-devel and glib-2.0 to do this.
Current step - downloaded and built OpenCV 2.0 but am getting MPF build errors when building components that use OpenCV.
In file included from /usr/local/include/opencv/cxcore.h:70, from /usr/local/include/opencv/cv.h:58, from mpf-iplimage.h:24, from mpf-iplimage.c:31: /usr/local/include/opencv/cxtypes.h: In function 'cvRound': /usr/local/include/opencv/cxtypes.h:240: warning: incompatible implicit declaration of built-in function 'lrint' In file included from /usr/local/include/opencv/cxcore.hpp:46, from /usr/local/include/opencv/cxcore.h:2123, from /usr/local/include/opencv/cv.h:58, from mpf-iplimage.h:24, from mpf-iplimage.c:31: /usr/local/include/opencv/cxmisc.h:52:26: error: cvconfig.h: No such file or directory
Get other compile errors when cvconfig.h is included - overlaps with config.h generated by mpf for the mpf-iplimage component.
You should use version 1.x of OpenCV, not 2.0. If you uninstall your 2.0 version and use yum to install the opencv package from the Red Hat repositories, you should get version 1.0.0. Double check that the correct version is in your PKG_CONFIG_PATH before you rebuild the MPF components.
The MPF build should have detected the OpenCV version and generated an error if the version was too new; we're working on fixing that.
That worked, Gareth. Missed that (it says to install opencv in the ./build-all output). Believe it builds the second time. The first pass (./build-all --clean --no-install builds the data types but they are not seen by the rest of the build (MPF_RDF not found). The ./build-all then builds and installs the remaining items.
PocketSphinx is not part of the ./build-all but is it buildable? Any particular version needed?
I'm pretty sure that the mpf-pocketsphinx data type code is out of date; we changed the MPF component data type templates last year and I don't think we updated this particular data type accordingly. If you need this one specifically, I'll take a look and see what we need to do to get it building - just let me know.
No need for you to look at PocketSphinx at this time - was just curious. Have enough to proceed. Know that PocketSphinx integration is on your roadmap.
re: Where is mpf-new-component.sh ?
Jim,
Sorry for the confusion; I've added mpf-new-component.sh to the MPF Downloads section of www.appscio.org.
Please do the following:
yum list mpf*
Missing stamp-template.sh
Thank you for the file. Mpf-new-component.sh now says it cannot find stamp-template.sh in tools/mpf-autotemplate. Also, does mpf-new-component.sh need to run as su? Thank you.
Re: Missing stamp-template.sh
Hi Jim,
I took some time to go over the MPF component build process, and I think the most reliable option is to build from source. Here are the steps you should take:
The build-all script will generate the mpf-new-component.sh script and install it to /usr/local/bin (please delete the version of the script that I uploaded here, I got the version wrong).
You should then be able to generate a new MPF component as follows:
If the last step fails with the error "Installed version not found, looking for source tree...", try making a symbolic link from /mpf to /usr/local/share/mpf (sudo ln -s /mpf /usr/local/share/mpf) and run mpf-new-component.sh again (the location where build-all puts the source tree seems to vary between Linux distributions, and I'm not sure which distro you are using).
Please let us know how you get on.
Progress
Making progress. Moved to a 32-bit machine with RHEL5 and was able to build base components, generate a test component and build the test component. One question - where do I get the RDF package that is needed by your software (telling me GRDF not available during build).
Get the following errors when running gst-inspect on the test component:
(gst-inspect-0.10:21829): GStreamer-WARNING **: Failed to load plugin '/usr/local/lib/gstreamer-0.10/libvoidraw.so': /usr/local/lib/gstreamer-0.10/libvoidraw.so: undefined symbol: mpf_component_set_teardown
(gst-inspect-0.10:21829): GStreamer-WARNING **: Failed to load plugin '/usr/local/lib/gstreamer-0.10/libmpf-identity.so': /usr/local/lib/gstreamer-0.10/libmpf-identity.so: undefined symbol: mpf_component_set_teardown
(gst-inspect-0.10:21829): GStreamer-WARNING **: Failed to load plugin '/usr/local/lib/gstreamer-0.10/libmpf-buffers.so': /usr/local/lib/gstreamer-0.10/libmpf-buffers.so: undefined symbol: mpf_component_set_teardown
(gst-inspect-0.10:21829): GStreamer-WARNING **: Failed to load plugin '/usr/local/lib/gstreamer-0.10/libmpf-xml-pipeline-dump.so': /usr/local/lib/gstreamer-0.10/libmpf-xml-pipeline-dump.so: undefined symbol: mpf_component_set_teardown
(gst-inspect-0.10:21829): GStreamer-WARNING **: Failed to load plugin '/usr/local/lib/gstreamer-0.10/libmpf-mux.so': /usr/local/lib/gstreamer-0.10/libmpf-mux.so: undefined symbol: mpf_component_set_teardown
(gst-inspect-0.10:21829): GStreamer-WARNING **: Failed to load plugin '/home/jf/mymdfcomponents/mympfcomponent/.libs/libmympfcomponent.so': /home/jf/mymdfcomponents/mympfcomponent/.libs/libmympfcomponent.so: undefined symbol: mpf_component_set_teardown
No such element or plugin 'mympfcomponent'
re: Progress
Hi Jim,
Sorry I missed out a couple of things from my previous post. I started again from scratch on a 32-bit machine; here are the extra steps you need to take:
Sorry this is taking a few iterations to get working; please keep us posted.
Thanks,
Gareth
Status
Gareth,
Sorry for the delay. Thanks for your assistance.
Moved to RHEL5, 32-bit. Can build basic MPF stuff and create and build a test component. Had to upgrade to higher levels of gstreamer.
Next step - can now build GRDF stuff. Had to upgrade check-devel and glib-2.0 to do this.
Current step - downloaded and built OpenCV 2.0 but am getting MPF build errors when building components that use OpenCV.
In file included from /usr/local/include/opencv/cxcore.h:70,
from /usr/local/include/opencv/cv.h:58,
from mpf-iplimage.h:24,
from mpf-iplimage.c:31:
/usr/local/include/opencv/cxtypes.h: In function 'cvRound':
/usr/local/include/opencv/cxtypes.h:240: warning: incompatible implicit declaration of built-in function 'lrint'
In file included from /usr/local/include/opencv/cxcore.hpp:46,
from /usr/local/include/opencv/cxcore.h:2123,
from /usr/local/include/opencv/cv.h:58,
from mpf-iplimage.h:24,
from mpf-iplimage.c:31:
/usr/local/include/opencv/cxmisc.h:52:26: error: cvconfig.h: No such file or directory
Get other compile errors when cvconfig.h is included - overlaps with config.h generated by mpf for the mpf-iplimage component.
Regard,
Jim Fontana
re: Status
Jim,
You should use version 1.x of OpenCV, not 2.0. If you uninstall your 2.0 version and use yum to install the opencv package from the Red Hat repositories, you should get version 1.0.0. Double check that the correct version is in your PKG_CONFIG_PATH before you rebuild the MPF components.
The MPF build should have detected the OpenCV version and generated an error if the version was too new; we're working on fixing that.
Gareth
Missed That
That worked, Gareth. Missed that (it says to install opencv in the ./build-all output). Believe it builds the second time. The first pass (./build-all --clean --no-install builds the data types but they are not seen by the rest of the build (MPF_RDF not found). The ./build-all then builds and installs the remaining items.
PocketSphinx is not part of the ./build-all but is it buildable? Any particular version needed?
Thanks.
Jim Fontana
re: Missed That
I'm pretty sure that the mpf-pocketsphinx data type code is out of date; we changed the MPF component data type templates last year and I don't think we updated this particular data type accordingly. If you need this one specifically, I'll take a look and see what we need to do to get it building - just let me know.
Thanks
Gareth
Gareth, No need for you to
Gareth,
No need for you to look at PocketSphinx at this time - was just curious. Have enough to proceed. Know that PocketSphinx integration is on your roadmap.
Regards,
Jim Fontana