<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#ffffff">
On 2011年10月20日 07:18, Saul Wold wrote:
<blockquote cite="mid:4E9F5AC2.9080905@intel.com" type="cite">On
10/19/2011 03:31 AM, Xiaofeng Yan wrote:
<br>
<blockquote type="cite">On 2011年10月18日 13:44, Xiaofeng Yan wrote:
<br>
<blockquote type="cite">On 2011年10月18日 13:35, Saul Wold wrote:
<br>
<blockquote type="cite">On 10/17/2011 10:21 PM, Xiaofeng Yan
wrote:
<br>
<blockquote type="cite">From: Xiaofeng
Yan<a class="moz-txt-link-rfc2396E" href="mailto:xiaofeng.yan@windriver.com"><xiaofeng.yan@windriver.com></a>
<br>
<br>
The new version of qmmp can run on core-image-sato by
test.
<br>
$qmmp *.mp3
<br>
<br>
Signed-off-by: Xiaofeng
Yan<a class="moz-txt-link-rfc2396E" href="mailto:xiaofeng.yan@windriver.com"><xiaofeng.yan@windriver.com></a>
<br>
---
<br>
meta/recipes-qt/qt-apps/qmmp_0.5.2.bb | 49
<br>
+++++++++++++++++++++++++++++++++
<br>
1 files changed, 49 insertions(+), 0 deletions(-)
<br>
create mode 100644 meta/recipes-qt/qt-apps/qmmp_0.5.2.bb
<br>
<br>
diff --git a/meta/recipes-qt/qt-apps/qmmp_0.5.2.bb
<br>
b/meta/recipes-qt/qt-apps/qmmp_0.5.2.bb
<br>
new file mode 100644
<br>
index 0000000..f31409b
<br>
--- /dev/null
<br>
+++ b/meta/recipes-qt/qt-apps/qmmp_0.5.2.bb
<br>
@@ -0,0 +1,49 @@
<br>
+dESCRIPTION = "Qmmp (Qt-based Multimedia Player) is an
<br>
audio-player, written with help of Qt library"
<br>
+HOMEPAGE = <a class="moz-txt-link-rfc2396E" href="http://qmmp.ylsoftware.com">"http://qmmp.ylsoftware.com"</a>
<br>
+LICENSE = "GPLv2"
<br>
+LIC_FILES_CHKSUM =
<br>
<a class="moz-txt-link-rfc2396E" href="file://COPYING;md5=393a5ca445f6965873eca0259a17f833">"file://COPYING;md5=393a5ca445f6965873eca0259a17f833"</a>
<br>
+SECTION = "multimedia"
<br>
+
<br>
+PR = "r3"
<br>
+
<br>
+PROVIDES = "qmmp"
<br>
+DEPENDS = "qt4-x11-free taglib libmad libvorbis libogg
alsa-lib"
<br>
+RDEPENDS_${PN} += "taglib alsa-lib libmad curl"
<br>
+
<br>
+SRC_URI =
<a class="moz-txt-link-rfc2396E" href="http://qmmp.ylsoftware.com/files/${BPN}-${PV}.tar.bz2">"http://qmmp.ylsoftware.com/files/${BPN}-${PV}.tar.bz2"</a>
<br>
+
<br>
+SRC_URI[md5sum] = "20852f3cce3471bfc5affa9b2e947dc6"
<br>
+SRC_URI[sha256sum] =
<br>
"6391dec020d2a381d7f4b7890fae6c49eadf88b3c9aef571fe3c5e96140822ec"
<br>
+
<br>
+
<br>
+PARALLEL_MAKE = ""
<br>
+
<br>
+inherit qmake2 cmake
<br>
+
<br>
+export EXTRA_OECMAKE =
"-DQT_QMAKE_EXECUTABLE=${OE_QMAKE_QMAKE} \
<br>
+ -DQT_LRELEASE_EXECUTABLE=${OE_QMAKE_LRELEASE} \
<br>
+ -DQT_MOC_EXECUTABLE=${OE_QMAKE_MOC} \
<br>
+ -DQT_UIC_EXECUTABLE=${OE_QMAKE_UIC} \
<br>
+ -DQT_RCC_EXECUTABLE=${OE_QMAKE_RCC} \
<br>
+ -DQT_LIBRARY_DIR=${OE_QMAKE_LIBDIR_QT} \
<br>
+ -DQT_HEADERS_DIR=${OE_QMAKE_INCDIR_QT} \
<br>
+ -DQT_QTCORE_INCLUDE_DIR=${OE_QMAKE_INCDIR_QT}/QtCore \
<br>
+ "
<br>
+
<br>
+FILES_${PN} =+ "\
<br>
+ ${libdir}/qmmp/*/*.so \
<br>
+ ${datadir}/icons/* \
<br>
+ ${datadir}/qmmp/images/* \
<br>
+ ${datadir}/applications/qmmp.desktop \
<br>
+ "
<br>
+
<br>
</blockquote>
Xiaofeng,
<br>
<br>
I was looking into this also, I think it would be better to
split all
<br>
the various plugins into separate packages using
do_split_packages(), in
<br>
the packages.bbclass.
<br>
<br>
I started with this code:
<br>
<blockquote type="cite">PACKAGES_DYNAMIC = "qmmp-plugin-*"
<br>
<br>
python populate_packages_prepend () {
<br>
qmmp_libdir = bb.data.expand('${libdir}/qmmp', d)
<br>
<br>
do_split_packages(d, qmmp_libdir, '^(.*)/(.*)\.so$',
<br>
'qmmp-plugin-%s-%s', 'Qmmp %s Plugin for %s',
extra_depends='')
<br>
}
<br>
</blockquote>
<br>
But have not completed it yet, if you have time to
investigate
<br>
further and complete this correctly, there might be a
problem with
<br>
using multiple Regular expressions in the do_split_packages
code, but
<br>
I have not fully debugged this yet.
<br>
<br>
Please let me know if you can complete this task.
<br>
<br>
</blockquote>
</blockquote>
Hi saul,
<br>
<br>
The following is my modification to qmmp_0.5.2.bb. Please review
it.
<br>
I want to get a reply about how to ship files in ${datadir} for
qmmp. I
<br>
shipped them to FILES_${PN} because qmmp need these files when
starting
<br>
up. Do you think that they should be packaged like qmmp-plugin-*
?
<br>
<br>
Please give me your suggestion and I will modify this file.
<br>
<br>
<br>
PACKAGES_DYNAMIC += "qmmp-plugin-*"
<br>
<br>
<br>
python populate_packages_prepend () {
<br>
qmmp_libdir = bb.data.expand('${libdir}/qmmp', d)
<br>
do_split_packages(d, qmmp_libdir, '^lib(.*)\.so$',
<br>
'qmmp-plugin-%s', 'Qmmp %s Plugin for',
recursive=True,extra_depends='')
<br>
}
<br>
<br>
</blockquote>
Ah, I see you added the recursive flag, I was trying to capture
the plugin group (Input, Ouput, Effect, ...) in the package name
incase there was name conflict, also to match the mad and vorbis
naming below.
<br>
<br>
If using multiple RE expressions in the re match does not work,
then we should make do_split_package for each grouping and name
them correctly
<br>
qmmp-plugin-<group>-<library> with the Description:
Qmmp <Group> plugin for %s"
<br>
<br>
</blockquote>
<br>
Hi Saul,<br>
<br>
I find .debug can't be packaged to rpm package because it is
invisible directory. In current OE-core .debug was shipped to
FILES_${PN}-dbg, for example , gtk+ ,qt4-x11-free<br>
If we want to split up .debug/* to single package, we can rename
.debug to debug to make this directory visible, then debug directory
can be split up to single package.<br>
Please review the following two mode. <br>
<br>
<font color="#330033"><u>Mode 1: Ship .debug to FILES_${PN}-dbg</u></font><br>
<br>
PACKAGES_DYNAMIC = "qmmp-plugin-* "<br>
<br>
<br>
python populate_packages_prepend () {<br>
import os<br>
qmmp_libdir = bb.data.expand('${libdir}/qmmp', d)<br>
gd = bb.data.expand('${D}/${libdir}/qmmp', d)<br>
plug_dirs = os.listdir(gd)<br>
<font color="#3333ff"><i># for makeing do_split_package for each
grouping and name them correctly <br>
# qmmp-plugin-<group>-<library> with the
Description: Qmmp <Group> plugin for %s"<br>
# I use the following method.</i></font> <br>
for plug_dir in plug_dirs:<br>
g_plug_dir = os.path.join(qmmp_libdir,plug_dir)<br>
do_split_packages(d, g_plug_dir, '^lib(.*)\.so$',
'qmmp-plugin-' + plug_dir + '-%s', 'Qmmp' + plug_dir + 'plugin for
%s')<br>
<br>
<br>
<br>
}<br>
<br>
<i><font color="#3333ff"># if I don't point files to ship file to
${PN}, then FILE_${PN} will get files in usr/lib/qmmp and
qmmp-plug-* will not get files.</font> </i><br>
FILES_${PN} = "\<br>
${bindir}/qmmp \<br>
${libdir}/lib*${SOLIBS} \<br>
${datadir}/icons/* \<br>
${datadir}/qmmp/images/* \<br>
${datadir}/applications/* \<br>
"<br>
<br>
FILES_${PN}-dbg += "\<br>
${libdir}/qmmp/*/.debug/* \<br>
"<br>
=================================================================================<br>
<u><font color="#330033"><br>
Mode 2: Split up .debug to sub-packages</font></u><br>
<br>
PACKAGES_DYNAMIC = "qmmp-plugin-* qmmp-debug-plugin-*"<br>
<br>
<br>
python populate_packages_prepend () {<br>
import os<br>
qmmp_libdir = bb.data.expand('${libdir}/qmmp', d)<br>
qmmp_pkgd =
bb.data.expand('${WORKDIR}/package/${libdir}/qmmp', d)<br>
gd = bb.data.expand('${D}/${libdir}/qmmp', d)<br>
plug_dirs = os.listdir(gd)<br>
<br>
for plug_dir in plug_dirs:<br>
<i><font color="#3333ff">#rename .debug to debug</font></i><br>
if os.path.exists( qmmp_pkgd + '/' + plug_dir +
'/.debug'):<br>
os.rename(qmmp_pkgd + '/' + plug_dir +
'/.debug',qmmp_pkgd + '/' + plug_dir + '/debug')<br>
g_plug_dir = os.path.join(qmmp_libdir,plug_dir)<br>
do_split_packages(d, g_plug_dir, '^lib(.*)\.so$',
'qmmp-plugin-' + plug_dir + '-%s', 'Qmmp' + plug_dir + 'plugin for
%s')<br>
<i><font color="#3333ff"> #split up .debug to
sub-packages</font></i><br>
g_plug_debug_dir = os.path.join(g_plug_dir,'debug')<br>
do_split_packages(d, g_plug_debug_dir,
'^lib(.*)\.so$', 'qmmp-debug-plugin-' + plug_dir + '-%s', 'Qmmp' +
plug_dir + 'plugin debug for %s')<br>
}<br>
<i><font color="#3333ff"><br>
# if I don't point files to ship file to ${PN}, then FILE_${PN}
will get files in usr/lib/qmmp and qmmp-plug-* will not get
files.</font></i> <i><font color="#3333ff"> I check gtk+ and
qt4-x11-free and find that they adopt the following method
without using default mode.</font></i><br>
FILES_${PN} = "\<br>
${bindir}/qmmp \<br>
${libdir}/lib*${SOLIBS} \<br>
${datadir}/icons/* \<br>
${datadir}/qmmp/images/* \<br>
${datadir}/applications/* \<br>
"<br>
<br>
Do you have any comment for above code. If have, I will continue
looking into modification method according to your suggestion. Do
you think we should select which method? <br>
<br>
Thanks<br>
Yan<br>
<br>
<blockquote cite="mid:4E9F5AC2.9080905@intel.com" type="cite">
<blockquote type="cite">FILES_${PN} = "\
<br>
</blockquote>
I think this should be a +=
<br>
<blockquote type="cite"> ${bindir}/qmmp \
<br>
${libdir}/lib*${SOLIBS} \
<br>
</blockquote>
These 2 should go away (part of default FILES_${PN}
<br>
<blockquote type="cite"> ${datadir}/icons/* \
<br>
${datadir}/qmmp/images/* \
<br>
${datadir}/applications/* \
<br>
"
<br>
</blockquote>
There are added via the += above.
<br>
<br>
<blockquote type="cite">
<br>
FILES_${PN}-dbg += "\
<br>
${libdir}/qmmp/*/.debug/* \
<br>
"
<br>
<br>
</blockquote>
These should be picked up by the do_split_package above I believe
<br>
<br>
<blockquote type="cite">PACKAGES += "${PN}-plugin-input-mad
${PN}-plugin-input-vorbis "
<br>
<br>
FILES_${PN}-plugin-input-mad = "${libdir}/qmmp/Input/libmad.so"
<br>
RDEPENDS_${PN}-plugin-input-mad = "libmad"
<br>
FILES_${PN}-plugin-input-vorbis =
"${libdir}/qmmp/Input/libvorbis.so"
<br>
RDEPENDS_${PN}-plugin-input-vorbis = "libvorbis libogg"
<br>
<br>
</blockquote>
Ideally the above PACKAGES and FILES_ go away and the default
actions take over.
<br>
<br>
Thanks for looking into this.
<br>
<br>
Sau!
<br>
<br>
<blockquote type="cite">
<br>
<br>
Thanks
<br>
Yan
<br>
<blockquote type="cite">Thanks for your reply and I will
investigate it according to your
<br>
suggestion.
<br>
<br>
Thanks
<br>
Yan
<br>
<blockquote type="cite">Thanks
<br>
Sau!
<br>
<br>
<br>
<blockquote type="cite">+FILES_${PN}-dbg += "\
<br>
+ ${libdir}/qmmp/*/.debug/* \
<br>
+ "
<br>
+
<br>
+PACKAGES += "${PN}-plugin-input-mad
${PN}-plugin-input-vorbis"
<br>
+
<br>
+FILES_${PN}-plugin-input-mad =
"${libdir}/qmmp/Input/libmad.so"
<br>
+RDEPENDS_${PN}-plugin-input-mad = "libmad"
<br>
+FILES_${PN}-plugin-input-vorbis =
"${libdir}/qmmp/Input/libvorbis.so"
<br>
+RDEPENDS_${PN}-plugin-input-vorbis = "libvorbis libogg"
<br>
</blockquote>
<br>
<br>
</blockquote>
<br>
<br>
_______________________________________________
<br>
Openembedded-core mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@lists.openembedded.org</a>
<br>
<a class="moz-txt-link-freetext" href="http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core">http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core</a>
<br>
</blockquote>
<br>
<br>
<br>
_______________________________________________
<br>
Openembedded-core mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@lists.openembedded.org</a>
<br>
<a class="moz-txt-link-freetext" href="http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core">http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core</a>
<br>
</blockquote>
<br>
<br>
</blockquote>
<br>
</body>
</html>