On 2011年10月20日 07:18, Saul Wold wrote: > On 10/19/2011 03:31 AM, Xiaofeng Yan wrote: >> On 2011年10月18日 13:44, Xiaofeng Yan wrote: >>> On 2011年10月18日 13:35, Saul Wold wrote: >>>> On 10/17/2011 10:21 PM, Xiaofeng Yan wrote: >>>>> From: Xiaofeng Yan >>>>> >>>>> The new version of qmmp can run on core-image-sato by test. >>>>> $qmmp *.mp3 >>>>> >>>>> Signed-off-by: Xiaofeng Yan >>>>> --- >>>>> meta/recipes-qt/qt-apps/qmmp_0.5.2.bb | 49 >>>>> +++++++++++++++++++++++++++++++++ >>>>> 1 files changed, 49 insertions(+), 0 deletions(-) >>>>> create mode 100644 meta/recipes-qt/qt-apps/qmmp_0.5.2.bb >>>>> >>>>> diff --git a/meta/recipes-qt/qt-apps/qmmp_0.5.2.bb >>>>> b/meta/recipes-qt/qt-apps/qmmp_0.5.2.bb >>>>> new file mode 100644 >>>>> index 0000000..f31409b >>>>> --- /dev/null >>>>> +++ b/meta/recipes-qt/qt-apps/qmmp_0.5.2.bb >>>>> @@ -0,0 +1,49 @@ >>>>> +dESCRIPTION = "Qmmp (Qt-based Multimedia Player) is an >>>>> audio-player, written with help of Qt library" >>>>> +HOMEPAGE = "http://qmmp.ylsoftware.com" >>>>> +LICENSE = "GPLv2" >>>>> +LIC_FILES_CHKSUM = >>>>> "file://COPYING;md5=393a5ca445f6965873eca0259a17f833" >>>>> +SECTION = "multimedia" >>>>> + >>>>> +PR = "r3" >>>>> + >>>>> +PROVIDES = "qmmp" >>>>> +DEPENDS = "qt4-x11-free taglib libmad libvorbis libogg alsa-lib" >>>>> +RDEPENDS_${PN} += "taglib alsa-lib libmad curl" >>>>> + >>>>> +SRC_URI = "http://qmmp.ylsoftware.com/files/${BPN}-${PV}.tar.bz2" >>>>> + >>>>> +SRC_URI[md5sum] = "20852f3cce3471bfc5affa9b2e947dc6" >>>>> +SRC_URI[sha256sum] = >>>>> "6391dec020d2a381d7f4b7890fae6c49eadf88b3c9aef571fe3c5e96140822ec" >>>>> + >>>>> + >>>>> +PARALLEL_MAKE = "" >>>>> + >>>>> +inherit qmake2 cmake >>>>> + >>>>> +export EXTRA_OECMAKE = "-DQT_QMAKE_EXECUTABLE=${OE_QMAKE_QMAKE} \ >>>>> + -DQT_LRELEASE_EXECUTABLE=${OE_QMAKE_LRELEASE} \ >>>>> + -DQT_MOC_EXECUTABLE=${OE_QMAKE_MOC} \ >>>>> + -DQT_UIC_EXECUTABLE=${OE_QMAKE_UIC} \ >>>>> + -DQT_RCC_EXECUTABLE=${OE_QMAKE_RCC} \ >>>>> + -DQT_LIBRARY_DIR=${OE_QMAKE_LIBDIR_QT} \ >>>>> + -DQT_HEADERS_DIR=${OE_QMAKE_INCDIR_QT} \ >>>>> + -DQT_QTCORE_INCLUDE_DIR=${OE_QMAKE_INCDIR_QT}/QtCore \ >>>>> + " >>>>> + >>>>> +FILES_${PN} =+ "\ >>>>> + ${libdir}/qmmp/*/*.so \ >>>>> + ${datadir}/icons/* \ >>>>> + ${datadir}/qmmp/images/* \ >>>>> + ${datadir}/applications/qmmp.desktop \ >>>>> + " >>>>> + >>>> Xiaofeng, >>>> >>>> I was looking into this also, I think it would be better to split all >>>> the various plugins into separate packages using >>>> do_split_packages(), in >>>> the packages.bbclass. >>>> >>>> I started with this code: >>>>> PACKAGES_DYNAMIC = "qmmp-plugin-*" >>>>> >>>>> python populate_packages_prepend () { >>>>> qmmp_libdir = bb.data.expand('${libdir}/qmmp', d) >>>>> >>>>> do_split_packages(d, qmmp_libdir, '^(.*)/(.*)\.so$', >>>>> 'qmmp-plugin-%s-%s', 'Qmmp %s Plugin for %s', extra_depends='') >>>>> } >>>> >>>> But have not completed it yet, if you have time to investigate >>>> further and complete this correctly, there might be a problem with >>>> using multiple Regular expressions in the do_split_packages code, but >>>> I have not fully debugged this yet. >>>> >>>> Please let me know if you can complete this task. >>>> >> Hi saul, >> >> The following is my modification to qmmp_0.5.2.bb. Please review it. >> I want to get a reply about how to ship files in ${datadir} for qmmp. I >> shipped them to FILES_${PN} because qmmp need these files when starting >> up. Do you think that they should be packaged like qmmp-plugin-* ? >> >> Please give me your suggestion and I will modify this file. >> >> >> PACKAGES_DYNAMIC += "qmmp-plugin-*" >> >> >> python populate_packages_prepend () { >> qmmp_libdir = bb.data.expand('${libdir}/qmmp', d) >> do_split_packages(d, qmmp_libdir, '^lib(.*)\.so$', >> 'qmmp-plugin-%s', 'Qmmp %s Plugin for', recursive=True,extra_depends='') >> } >> > 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. > > 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 > qmmp-plugin-- with the Description: Qmmp > plugin for %s" > Hi Saul, 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 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. Please review the following two mode. _Mode 1: Ship .debug to FILES_${PN}-dbg_ PACKAGES_DYNAMIC = "qmmp-plugin-* " python populate_packages_prepend () { import os qmmp_libdir = bb.data.expand('${libdir}/qmmp', d) gd = bb.data.expand('${D}/${libdir}/qmmp', d) plug_dirs = os.listdir(gd) /# for makeing do_split_package for each grouping and name them correctly # qmmp-plugin-- with the Description: Qmmp plugin for %s" # I use the following method./ for plug_dir in plug_dirs: g_plug_dir = os.path.join(qmmp_libdir,plug_dir) do_split_packages(d, g_plug_dir, '^lib(.*)\.so$', 'qmmp-plugin-' + plug_dir + '-%s', 'Qmmp' + plug_dir + 'plugin for %s') } /# 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. / FILES_${PN} = "\ ${bindir}/qmmp \ ${libdir}/lib*${SOLIBS} \ ${datadir}/icons/* \ ${datadir}/qmmp/images/* \ ${datadir}/applications/* \ " FILES_${PN}-dbg += "\ ${libdir}/qmmp/*/.debug/* \ " ================================================================================= _ Mode 2: Split up .debug to sub-packages_ PACKAGES_DYNAMIC = "qmmp-plugin-* qmmp-debug-plugin-*" python populate_packages_prepend () { import os qmmp_libdir = bb.data.expand('${libdir}/qmmp', d) qmmp_pkgd = bb.data.expand('${WORKDIR}/package/${libdir}/qmmp', d) gd = bb.data.expand('${D}/${libdir}/qmmp', d) plug_dirs = os.listdir(gd) for plug_dir in plug_dirs: /#rename .debug to debug/ if os.path.exists( qmmp_pkgd + '/' + plug_dir + '/.debug'): os.rename(qmmp_pkgd + '/' + plug_dir + '/.debug',qmmp_pkgd + '/' + plug_dir + '/debug') g_plug_dir = os.path.join(qmmp_libdir,plug_dir) do_split_packages(d, g_plug_dir, '^lib(.*)\.so$', 'qmmp-plugin-' + plug_dir + '-%s', 'Qmmp' + plug_dir + 'plugin for %s') /#split up .debug to sub-packages/ g_plug_debug_dir = os.path.join(g_plug_dir,'debug') do_split_packages(d, g_plug_debug_dir, '^lib(.*)\.so$', 'qmmp-debug-plugin-' + plug_dir + '-%s', 'Qmmp' + plug_dir + 'plugin debug for %s') } / # 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./ /I check gtk+ and qt4-x11-free and find that they adopt the following method without using default mode./ FILES_${PN} = "\ ${bindir}/qmmp \ ${libdir}/lib*${SOLIBS} \ ${datadir}/icons/* \ ${datadir}/qmmp/images/* \ ${datadir}/applications/* \ " 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? Thanks Yan >> FILES_${PN} = "\ > I think this should be a += >> ${bindir}/qmmp \ >> ${libdir}/lib*${SOLIBS} \ > These 2 should go away (part of default FILES_${PN} >> ${datadir}/icons/* \ >> ${datadir}/qmmp/images/* \ >> ${datadir}/applications/* \ >> " > There are added via the += above. > >> >> FILES_${PN}-dbg += "\ >> ${libdir}/qmmp/*/.debug/* \ >> " >> > These should be picked up by the do_split_package above I believe > >> PACKAGES += "${PN}-plugin-input-mad ${PN}-plugin-input-vorbis " >> >> FILES_${PN}-plugin-input-mad = "${libdir}/qmmp/Input/libmad.so" >> RDEPENDS_${PN}-plugin-input-mad = "libmad" >> FILES_${PN}-plugin-input-vorbis = "${libdir}/qmmp/Input/libvorbis.so" >> RDEPENDS_${PN}-plugin-input-vorbis = "libvorbis libogg" >> > Ideally the above PACKAGES and FILES_ go away and the default actions > take over. > > Thanks for looking into this. > > Sau! > >> >> >> Thanks >> Yan >>> Thanks for your reply and I will investigate it according to your >>> suggestion. >>> >>> Thanks >>> Yan >>>> Thanks >>>> Sau! >>>> >>>> >>>>> +FILES_${PN}-dbg += "\ >>>>> + ${libdir}/qmmp/*/.debug/* \ >>>>> + " >>>>> + >>>>> +PACKAGES += "${PN}-plugin-input-mad ${PN}-plugin-input-vorbis" >>>>> + >>>>> +FILES_${PN}-plugin-input-mad = "${libdir}/qmmp/Input/libmad.so" >>>>> +RDEPENDS_${PN}-plugin-input-mad = "libmad" >>>>> +FILES_${PN}-plugin-input-vorbis = >>>>> "${libdir}/qmmp/Input/libvorbis.so" >>>>> +RDEPENDS_${PN}-plugin-input-vorbis = "libvorbis libogg" >>>> >>>> >>> >>> >>> _______________________________________________ >>> Openembedded-core mailing list >>> Openembedded-core@lists.openembedded.org >>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core >> >> >> >> _______________________________________________ >> Openembedded-core mailing list >> Openembedded-core@lists.openembedded.org >> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core > >