diff mbox series

package.bbclase: Add check for /build in copydebugsources()

Message ID 20230220213022.2898796-1-saul.wold@windriver.com
State New
Headers show
Series package.bbclase: Add check for /build in copydebugsources() | expand

Commit Message

Saul Wold Feb. 20, 2023, 9:30 p.m. UTC
This is needed when the SDK or eSDK is installed in a /build top level
directory as it conflicts with the build directory within the existing
/usr/src/debug/build (which is really a link). Rename it and then do the
copy, this is not an issue with master currently due to some other
changes that occurred in master.

Fixes: [YOCTO #15026]

Signed-off-by: Saul Wold <saul.wold@windriver.com>
---
 meta/classes/package.bbclass | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Richard Purdie Feb. 20, 2023, 10:40 p.m. UTC | #1
On Mon, 2023-02-20 at 13:30 -0800, Saul Wold wrote:
> This is needed when the SDK or eSDK is installed in a /build top level
> directory as it conflicts with the build directory within the existing
> /usr/src/debug/build (which is really a link). Rename it and then do the
> copy, 
> 

> this is not an issue with master currently due to some other
> changes that occurred in master.

Is this an issue in master or not? I can't parse that! :)

Cheers,

Richard

> 
> Fixes: [YOCTO #15026]
> 
> Signed-off-by: Saul Wold <saul.wold@windriver.com>
> ---
>  meta/classes/package.bbclass | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
> index 8b11fdd155..2950218145 100644
> --- a/meta/classes/package.bbclass
> +++ b/meta/classes/package.bbclass
> @@ -636,6 +636,13 @@ def copydebugsources(debugsrcdir, sources, d):
>          # Same check as above for externalsrc
>          if workdir not in sdir:
>              if os.path.exists(dvar + debugsrcdir + sdir):
> +                # Special case for /build since we need to move into
> +                # /usr/src/debug/build so rename sdir to build.build
> +                if sdir.find("/build") == 0:
> +                    cmd = "mv %s%s%s %s%s%s" % (dvar, debugsrcdir, "/build", dvar, debugsrcdir, "/build.build")
> +                    subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
> +                    sdir = sdir.replace("/build", "/build.build", 1)
> +
>                  cmd = "mv %s%s%s/* %s%s" % (dvar, debugsrcdir, sdir, dvar,debugsrcdir)
>                  subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
>
Saul Wold Feb. 21, 2023, 2:29 a.m. UTC | #2
On 2/20/23 14:40, Richard Purdie wrote:
> On Mon, 2023-02-20 at 13:30 -0800, Saul Wold wrote:
>> This is needed when the SDK or eSDK is installed in a /build top level
>> directory as it conflicts with the build directory within the existing
>> /usr/src/debug/build (which is really a link). Rename it and then do the
>> copy,
>>
> 
>> this is not an issue with master currently due to some other
>> changes that occurred in master.
> 
> Is this an issue in master or not? I can't parse that! :)
> Oops, sorry this is meant for Kirkstone branch, their is a different problem in master since the code was refactored a direct backport is not possible.

Oops, sorry this is meant for Kirkstone branch, the code in master was 
refactored and seems to have solved the problem since /us/src/debug now 
has $PN/$PV components in the path.

I will resend it as kirkstone specific.

Sau!
> Cheers,
> 
> Richard
> 
>>
>> Fixes: [YOCTO #15026]
>>
>> Signed-off-by: Saul Wold <saul.wold@windriver.com>
>> ---
>>   meta/classes/package.bbclass | 7 +++++++
>>   1 file changed, 7 insertions(+)
>>
>> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
>> index 8b11fdd155..2950218145 100644
>> --- a/meta/classes/package.bbclass
>> +++ b/meta/classes/package.bbclass
>> @@ -636,6 +636,13 @@ def copydebugsources(debugsrcdir, sources, d):
>>           # Same check as above for externalsrc
>>           if workdir not in sdir:
>>               if os.path.exists(dvar + debugsrcdir + sdir):
>> +                # Special case for /build since we need to move into
>> +                # /usr/src/debug/build so rename sdir to build.build
>> +                if sdir.find("/build") == 0:
>> +                    cmd = "mv %s%s%s %s%s%s" % (dvar, debugsrcdir, "/build", dvar, debugsrcdir, "/build.build")
>> +                    subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
>> +                    sdir = sdir.replace("/build", "/build.build", 1)
>> +
>>                   cmd = "mv %s%s%s/* %s%s" % (dvar, debugsrcdir, sdir, dvar,debugsrcdir)
>>                   subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
>>
diff mbox series

Patch

diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
index 8b11fdd155..2950218145 100644
--- a/meta/classes/package.bbclass
+++ b/meta/classes/package.bbclass
@@ -636,6 +636,13 @@  def copydebugsources(debugsrcdir, sources, d):
         # Same check as above for externalsrc
         if workdir not in sdir:
             if os.path.exists(dvar + debugsrcdir + sdir):
+                # Special case for /build since we need to move into
+                # /usr/src/debug/build so rename sdir to build.build
+                if sdir.find("/build") == 0:
+                    cmd = "mv %s%s%s %s%s%s" % (dvar, debugsrcdir, "/build", dvar, debugsrcdir, "/build.build")
+                    subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
+                    sdir = sdir.replace("/build", "/build.build", 1)
+
                 cmd = "mv %s%s%s/* %s%s" % (dvar, debugsrcdir, sdir, dvar,debugsrcdir)
                 subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)