[OE-core] [PATCH 1/2] qmmp: update to 0.5.2

Xiaofeng Yan xiaofeng.yan at windriver.com
Thu Oct 20 11:46:31 UTC 2011


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<xiaofeng.yan at windriver.com>
>>>>>
>>>>> The new version of qmmp can run on core-image-sato by test.
>>>>> $qmmp *.mp3
>>>>>
>>>>> Signed-off-by: Xiaofeng Yan<xiaofeng.yan at windriver.com>
>>>>> ---
>>>>> 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-<group>-<library>  with the Description: Qmmp <Group> 
> 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-<group>-<library>  with the Description: Qmmp <Group> 
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 at lists.openembedded.org
>>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>>
>>
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core at lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20111020/5439f598/attachment-0002.html>


More information about the Openembedded-core mailing list