* [PATCH 0/1] license.bbclass: fix copying license directories failed @ 2013-11-20 10:39 Hongxu Jia 2013-11-20 10:39 ` [PATCH 1/1] " Hongxu Jia 0 siblings, 1 reply; 6+ messages in thread From: Hongxu Jia @ 2013-11-20 10:39 UTC (permalink / raw) To: openembedded-core; +Cc: saul.wold The following changes since commit 215dab864e7cf74394840621ad0754db593708f1: bitbake: fetch2: Fix handling of SCM mirrors in MIRRORS (2013-11-19 13:22:48 +0000) are available in the git repository at: git://git.pokylinux.org/poky-contrib hongxu/fix-license http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=hongxu/fix-license Hongxu Jia (1): license.bbclass: fix copying license directories failed meta/classes/license.bbclass | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) -- 1.8.1.2 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/1] license.bbclass: fix copying license directories failed 2013-11-20 10:39 [PATCH 0/1] license.bbclass: fix copying license directories failed Hongxu Jia @ 2013-11-20 10:39 ` Hongxu Jia 2013-11-21 16:41 ` Paul Eggleton 0 siblings, 1 reply; 6+ messages in thread From: Hongxu Jia @ 2013-11-20 10:39 UTC (permalink / raw) To: openembedded-core; +Cc: saul.wold For each recipe, it populated license files to ${LICENSE_DIRECTORY}/${PN}, such as kernel's license dir was ${LICENSE_DIRECTORY}/kernel-3.10.17-yocto-standard; In do_rootfs task, it copied license directories from ${LICENSE_DIRECTORY}/ ${pkg}, and ${pkg} was listed in ${INSTALLED_PKGS}; We got ${INSTALLED_PKGS} by rpm query, such as the kernel were 'kernel-*', but the kernel's PN was linux-yocto, so searching ${LICENSE_DIRECTORY}/ kernel-* failed. Copied license directories from ${LICENSE_DIRECTORY}/${PN} fixed this issue. [YOCTO #5572] Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> --- meta/classes/license.bbclass | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass index 6d7ee94..32605ff 100644 --- a/meta/classes/license.bbclass +++ b/meta/classes/license.bbclass @@ -68,15 +68,18 @@ license_create_manifest() { if [ "${COPY_LIC_DIRS}" = "1" ]; then for pkg in ${INSTALLED_PKGS}; do mkdir -p ${IMAGE_ROOTFS}/usr/share/common-licenses/${pkg} - for lic in `ls ${LICENSE_DIRECTORY}/${pkg}`; do + pkged_pn="$(sed -n "/^PACKAGE NAME: ${pkg}$/,/^$/ \ + {s/^RECIPE NAME: //; /^PACKAGE NAME:/d; /^PACKAGE VERSION:/d; /^LICENSE:/d; p}" \ + ${LICENSE_MANIFEST})" + for lic in `ls ${LICENSE_DIRECTORY}/${pkged_pn}`; do # Really don't need to copy the generics as they're # represented in the manifest and in the actual pkg licenses # Doing so would make your image quite a bit larger if [[ "${lic}" != "generic_"* ]]; then - cp ${LICENSE_DIRECTORY}/${pkg}/${lic} ${IMAGE_ROOTFS}/usr/share/common-licenses/${pkg}/${lic} + cp ${LICENSE_DIRECTORY}/${pkged_pn}/${lic} ${IMAGE_ROOTFS}/usr/share/common-licenses/${pkg}/${lic} elif [[ "${lic}" == "generic_"* ]]; then if [ ! -f ${IMAGE_ROOTFS}/usr/share/common-licenses/${lic} ]; then - cp ${LICENSE_DIRECTORY}/${pkg}/${lic} ${IMAGE_ROOTFS}/usr/share/common-licenses/ + cp ${LICENSE_DIRECTORY}/${pkged_pn}/${lic} ${IMAGE_ROOTFS}/usr/share/common-licenses/ fi ln -s ../${lic} ${IMAGE_ROOTFS}/usr/share/common-licenses/${pkg}/${lic} fi -- 1.8.1.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] license.bbclass: fix copying license directories failed 2013-11-20 10:39 ` [PATCH 1/1] " Hongxu Jia @ 2013-11-21 16:41 ` Paul Eggleton 2013-11-22 6:06 ` Hongxu Jia 0 siblings, 1 reply; 6+ messages in thread From: Paul Eggleton @ 2013-11-21 16:41 UTC (permalink / raw) To: Hongxu Jia; +Cc: openembedded-core, saul.wold Hi Hongxu, On Wednesday 20 November 2013 18:39:02 Hongxu Jia wrote: > For each recipe, it populated license files to ${LICENSE_DIRECTORY}/${PN}, > such as kernel's license dir was > ${LICENSE_DIRECTORY}/kernel-3.10.17-yocto-standard; > > In do_rootfs task, it copied license directories from ${LICENSE_DIRECTORY}/ > ${pkg}, and ${pkg} was listed in ${INSTALLED_PKGS}; > > We got ${INSTALLED_PKGS} by rpm query, such as the kernel were 'kernel-*', > but the kernel's PN was linux-yocto, so searching ${LICENSE_DIRECTORY}/ > kernel-* failed. > > Copied license directories from ${LICENSE_DIRECTORY}/${PN} fixed this issue. > > [YOCTO #5572] > > Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> > --- > meta/classes/license.bbclass | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass > index 6d7ee94..32605ff 100644 > --- a/meta/classes/license.bbclass > +++ b/meta/classes/license.bbclass > @@ -68,15 +68,18 @@ license_create_manifest() { > if [ "${COPY_LIC_DIRS}" = "1" ]; then > for pkg in ${INSTALLED_PKGS}; do > mkdir -p ${IMAGE_ROOTFS}/usr/share/common-licenses/${pkg} > - for lic in `ls ${LICENSE_DIRECTORY}/${pkg}`; do > + pkged_pn="$(sed -n "/^PACKAGE NAME: ${pkg}$/,/^$/ \ > + {s/^RECIPE NAME: //; /^PACKAGE > NAME:/d; /^PACKAGE VERSION:/d; /^LICENSE:/d; p}" \ + > ${LICENSE_MANIFEST})" > + for lic in `ls ${LICENSE_DIRECTORY}/${pkged_pn}`; do This isn't the right way to do this. If you need to look up the recipe name from the target package name, in master you can now use: oe-pkgdata-util lookup-recipe ${PKGDATA_DIR} "<list of packages>" Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] license.bbclass: fix copying license directories failed 2013-11-21 16:41 ` Paul Eggleton @ 2013-11-22 6:06 ` Hongxu Jia 2013-11-22 9:54 ` Paul Eggleton 0 siblings, 1 reply; 6+ messages in thread From: Hongxu Jia @ 2013-11-22 6:06 UTC (permalink / raw) To: Paul Eggleton; +Cc: openembedded-core, saul.wold Hi Paul, On 11/22/2013 12:41 AM, Paul Eggleton wrote: > Hi Hongxu, > > On Wednesday 20 November 2013 18:39:02 Hongxu Jia wrote: >> For each recipe, it populated license files to ${LICENSE_DIRECTORY}/${PN}, >> such as kernel's license dir was >> ${LICENSE_DIRECTORY}/kernel-3.10.17-yocto-standard; >> >> In do_rootfs task, it copied license directories from ${LICENSE_DIRECTORY}/ >> ${pkg}, and ${pkg} was listed in ${INSTALLED_PKGS}; >> >> We got ${INSTALLED_PKGS} by rpm query, such as the kernel were 'kernel-*', >> but the kernel's PN was linux-yocto, so searching ${LICENSE_DIRECTORY}/ >> kernel-* failed. >> >> Copied license directories from ${LICENSE_DIRECTORY}/${PN} fixed this issue. >> >> [YOCTO #5572] >> >> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> >> --- >> meta/classes/license.bbclass | 9 ++++++--- >> 1 file changed, 6 insertions(+), 3 deletions(-) >> >> diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass >> index 6d7ee94..32605ff 100644 >> --- a/meta/classes/license.bbclass >> +++ b/meta/classes/license.bbclass >> @@ -68,15 +68,18 @@ license_create_manifest() { >> if [ "${COPY_LIC_DIRS}" = "1" ]; then >> for pkg in ${INSTALLED_PKGS}; do >> mkdir -p ${IMAGE_ROOTFS}/usr/share/common-licenses/${pkg} >> - for lic in `ls ${LICENSE_DIRECTORY}/${pkg}`; do >> + pkged_pn="$(sed -n "/^PACKAGE NAME: ${pkg}$/,/^$/ \ >> + {s/^RECIPE NAME: //; /^PACKAGE >> NAME:/d; /^PACKAGE VERSION:/d; /^LICENSE:/d; p}" \ + >> ${LICENSE_MANIFEST})" >> + for lic in `ls ${LICENSE_DIRECTORY}/${pkged_pn}`; do > This isn't the right way to do this. If you need to look up the recipe name > from the target package name, in master you can now use: > > oe-pkgdata-util lookup-recipe ${PKGDATA_DIR} "<list of packages>" I am afraid to use oe-pkgdata-util here is not a good idea: - everything we need has been listed in ${LICENSE_MANIFEST}, we just need to sort them out; - the oe-pkgdata-util utility only support to search the specific ${PKGDATA_DIR} directory which was ${TMPDIR}/pkgdata/ ${MULTIMACH_TARGET_SYS}, but we need to search multiple ${MULTIMACH_TARGET_SYS} directories; Such as "base-passwd in x86_64" and "base-files in qemux86_64"; //Hongxu > Cheers, > Paul > ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] license.bbclass: fix copying license directories failed 2013-11-22 6:06 ` Hongxu Jia @ 2013-11-22 9:54 ` Paul Eggleton 2013-11-23 7:21 ` Hongxu Jia 0 siblings, 1 reply; 6+ messages in thread From: Paul Eggleton @ 2013-11-22 9:54 UTC (permalink / raw) To: Hongxu Jia, openembedded-core; +Cc: saul.wold On Friday 22 November 2013 14:06:01 Hongxu Jia wrote: > Hi Paul, > > On 11/22/2013 12:41 AM, Paul Eggleton wrote: > > Hi Hongxu, > > > > On Wednesday 20 November 2013 18:39:02 Hongxu Jia wrote: > >> For each recipe, it populated license files to > >> ${LICENSE_DIRECTORY}/${PN}, > >> such as kernel's license dir was > >> ${LICENSE_DIRECTORY}/kernel-3.10.17-yocto-standard; > >> > >> In do_rootfs task, it copied license directories from > >> ${LICENSE_DIRECTORY}/ > >> ${pkg}, and ${pkg} was listed in ${INSTALLED_PKGS}; > >> > >> We got ${INSTALLED_PKGS} by rpm query, such as the kernel were > >> 'kernel-*', > >> but the kernel's PN was linux-yocto, so searching ${LICENSE_DIRECTORY}/ > >> kernel-* failed. > >> > >> Copied license directories from ${LICENSE_DIRECTORY}/${PN} fixed this > >> issue. > >> > >> [YOCTO #5572] > >> > >> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> > >> --- > >> > >> meta/classes/license.bbclass | 9 ++++++--- > >> 1 file changed, 6 insertions(+), 3 deletions(-) > >> > >> diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass > >> index 6d7ee94..32605ff 100644 > >> --- a/meta/classes/license.bbclass > >> +++ b/meta/classes/license.bbclass > >> @@ -68,15 +68,18 @@ license_create_manifest() { > >> > >> if [ "${COPY_LIC_DIRS}" = "1" ]; then > >> > >> for pkg in ${INSTALLED_PKGS}; do > >> > >> mkdir -p ${IMAGE_ROOTFS}/usr/share/common-licenses/${pkg} > >> > >> - for lic in `ls ${LICENSE_DIRECTORY}/${pkg}`; do > >> + pkged_pn="$(sed -n "/^PACKAGE NAME: ${pkg}$/,/^$/ \ > >> + {s/^RECIPE NAME: //; > >> /^PACKAGE > >> NAME:/d; /^PACKAGE VERSION:/d; /^LICENSE:/d; p}" \ + > >> > >> ${LICENSE_MANIFEST})" > >> > >> + for lic in `ls ${LICENSE_DIRECTORY}/${pkged_pn}`; do > > > > This isn't the right way to do this. If you need to look up the recipe > > name > > > > from the target package name, in master you can now use: > > oe-pkgdata-util lookup-recipe ${PKGDATA_DIR} "<list of packages>" > > I am afraid to use oe-pkgdata-util here is not a good idea: > > - everything we need has been listed in ${LICENSE_MANIFEST}, > we just need to sort them out; > > - the oe-pkgdata-util utility only support to search the specific > ${PKGDATA_DIR} directory which was ${TMPDIR}/pkgdata/ > ${MULTIMACH_TARGET_SYS}, but we need to search multiple > ${MULTIMACH_TARGET_SYS} directories; Note that in 1.5 the pkgdata structure changed - it is now under the machine- specific sysroot, so there is only one directory to look in. Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/1] license.bbclass: fix copying license directories failed 2013-11-22 9:54 ` Paul Eggleton @ 2013-11-23 7:21 ` Hongxu Jia 0 siblings, 0 replies; 6+ messages in thread From: Hongxu Jia @ 2013-11-23 7:21 UTC (permalink / raw) To: Paul Eggleton, openembedded-core; +Cc: saul.wold Hi Paul, I have done as your suggestions: --- a/meta/classes/license.bbclass +++ b/meta/classes/license.bbclass @@ -68,15 +68,16 @@ license_create_manifest() { if [ "${COPY_LIC_DIRS}" = "1" ]; then for pkg in ${INSTALLED_PKGS}; do mkdir -p ${IMAGE_ROOTFS}/usr/share/common-licenses/${pkg} - for lic in `ls ${LICENSE_DIRECTORY}/${pkg}`; do + pkged_pn="$(oe-pkgdata-util lookup-recipe ${PKGDATA_DIR} ${pkg})" + for lic in `ls ${LICENSE_DIRECTORY}/${pkged_pn}`; do # Really don't need to copy the generics as they're # represented in the manifest and in the actual pkg licenses # Doing so would make your image quite a bit larger if [ "${lic#generic_}" = "${lic}" ]; then - cp ${LICENSE_DIRECTORY}/${pkg}/${lic} ${IMAGE_ROOTFS}/usr/share/common-licenses/${pkg}/${lic} + cp ${LICENSE_DIRECTORY}/${pkged_pn}/${lic} ${IMAGE_ROOTFS}/usr/share/common-licenses/${pkg}/${lic} else if [ ! -f ${IMAGE_ROOTFS}/usr/share/common-licenses/${lic} ]; then - cp ${LICENSE_DIRECTORY}/${pkg}/${lic} ${IMAGE_ROOTFS}/usr/share/common-licenses/ + cp ${LICENSE_DIRECTORY}/${pkged_pn}/${lic} ${IMAGE_ROOTFS}/usr/share/common-licenses/ fi ln -s ../${lic} ${IMAGE_ROOTFS}/usr/share/common-licenses/${pkg}/${lic} fi //Hongxu On 11/22/2013 05:54 PM, Paul Eggleton wrote: > On Friday 22 November 2013 14:06:01 Hongxu Jia wrote: >> Hi Paul, >> >> On 11/22/2013 12:41 AM, Paul Eggleton wrote: >>> Hi Hongxu, >>> >>> On Wednesday 20 November 2013 18:39:02 Hongxu Jia wrote: >>>> For each recipe, it populated license files to >>>> ${LICENSE_DIRECTORY}/${PN}, >>>> such as kernel's license dir was >>>> ${LICENSE_DIRECTORY}/kernel-3.10.17-yocto-standard; >>>> >>>> In do_rootfs task, it copied license directories from >>>> ${LICENSE_DIRECTORY}/ >>>> ${pkg}, and ${pkg} was listed in ${INSTALLED_PKGS}; >>>> >>>> We got ${INSTALLED_PKGS} by rpm query, such as the kernel were >>>> 'kernel-*', >>>> but the kernel's PN was linux-yocto, so searching ${LICENSE_DIRECTORY}/ >>>> kernel-* failed. >>>> >>>> Copied license directories from ${LICENSE_DIRECTORY}/${PN} fixed this >>>> issue. >>>> >>>> [YOCTO #5572] >>>> >>>> Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> >>>> --- >>>> >>>> meta/classes/license.bbclass | 9 ++++++--- >>>> 1 file changed, 6 insertions(+), 3 deletions(-) >>>> >>>> diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass >>>> index 6d7ee94..32605ff 100644 >>>> --- a/meta/classes/license.bbclass >>>> +++ b/meta/classes/license.bbclass >>>> @@ -68,15 +68,18 @@ license_create_manifest() { >>>> >>>> if [ "${COPY_LIC_DIRS}" = "1" ]; then >>>> >>>> for pkg in ${INSTALLED_PKGS}; do >>>> >>>> mkdir -p ${IMAGE_ROOTFS}/usr/share/common-licenses/${pkg} >>>> >>>> - for lic in `ls ${LICENSE_DIRECTORY}/${pkg}`; do >>>> + pkged_pn="$(sed -n "/^PACKAGE NAME: ${pkg}$/,/^$/ \ >>>> + {s/^RECIPE NAME: //; >>>> /^PACKAGE >>>> NAME:/d; /^PACKAGE VERSION:/d; /^LICENSE:/d; p}" \ + >>>> >>>> ${LICENSE_MANIFEST})" >>>> >>>> + for lic in `ls ${LICENSE_DIRECTORY}/${pkged_pn}`; do >>> This isn't the right way to do this. If you need to look up the recipe >>> name >>> >>> from the target package name, in master you can now use: >>> oe-pkgdata-util lookup-recipe ${PKGDATA_DIR} "<list of packages>" >> I am afraid to use oe-pkgdata-util here is not a good idea: >> >> - everything we need has been listed in ${LICENSE_MANIFEST}, >> we just need to sort them out; >> >> - the oe-pkgdata-util utility only support to search the specific >> ${PKGDATA_DIR} directory which was ${TMPDIR}/pkgdata/ >> ${MULTIMACH_TARGET_SYS}, but we need to search multiple >> ${MULTIMACH_TARGET_SYS} directories; > Note that in 1.5 the pkgdata structure changed - it is now under the machine- > specific sysroot, so there is only one directory to look in. > > Cheers, > Paul > ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-11-23 7:21 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-11-20 10:39 [PATCH 0/1] license.bbclass: fix copying license directories failed Hongxu Jia 2013-11-20 10:39 ` [PATCH 1/1] " Hongxu Jia 2013-11-21 16:41 ` Paul Eggleton 2013-11-22 6:06 ` Hongxu Jia 2013-11-22 9:54 ` Paul Eggleton 2013-11-23 7:21 ` Hongxu Jia
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox