Openembedded Core Discussions
 help / color / mirror / Atom feed
* [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