<!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">&lt;xiaofeng.yan@windriver.com&gt;</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">&lt;xiaofeng.yan@windriver.com&gt;</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-&lt;group&gt;-&lt;library&gt;  with the Description:
      Qmmp &lt;Group&gt; 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-&lt;group&gt;-&lt;library&gt;  with the
        Description: Qmmp &lt;Group&gt; 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>