[master,kirkstone] rootfs-postcommands: fix symlinks where link and output path are equal

Message ID 20220503080309.9511-1-davide.gardenal@huawei.com
State Accepted, archived
Commit bed63756c56f296ff3d5a7eef66e978bd19f1008
Headers show
Series [master,kirkstone] rootfs-postcommands: fix symlinks where link and output path are equal | expand

Commit Message

Davide Gardenal May 3, 2022, 8:03 a.m. UTC
When creating the manifest and the testdata.json links, if the link
name is equal to the output name the link is not created, otherwise
it is. This prevents a link-to-self in the first case.

Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
---
 meta/classes/rootfs-postcommands.bbclass | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

Comments

Luca Ceresoli May 3, 2022, 9:43 a.m. UTC | #1
Hi Davide,

Il giorno Tue,  3 May 2022 10:03:09 +0200
"Davide Gardenal" <davidegarde2000@gmail.com> ha scritto:

> When creating the manifest and the testdata.json links, if the link
> name is equal to the output name the link is not created, otherwise
> it is. This prevents a link-to-self in the first case.
> 
> Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
> ---
>  meta/classes/rootfs-postcommands.bbclass | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/meta/classes/rootfs-postcommands.bbclass
> b/meta/classes/rootfs-postcommands.bbclass index
> 7b92df69c5..c949115647 100644 ---
> a/meta/classes/rootfs-postcommands.bbclass +++
> b/meta/classes/rootfs-postcommands.bbclass @@ -267,9 +267,10 @@
> python write_image_manifest () { 
>      if os.path.exists(manifest_name) and link_name:
>          manifest_link = deploy_dir + "/" + link_name + ".manifest"
> -        if os.path.lexists(manifest_link):
> -            os.remove(manifest_link)
> -        os.symlink(os.path.basename(manifest_name), manifest_link)
> +		if manifest_link != manifest_name
> +			if os.path.lexists(manifest_link):
> +				os.remove(manifest_link)
> +			os.symlink(os.path.basename(manifest_name),

This change is mixing tabs and spaces.

>  # Can be used to create /etc/timestamp during image construction to
> give a reasonably @@ -339,9 +340,10 @@ python write_image_test_data()
> { 
>      if os.path.exists(testdata_name) and link_name:
>          testdata_link = os.path.join(deploy_dir, "%s.testdata.json"
> % link_name)
> -        if os.path.lexists(testdata_link):
> -            os.remove(testdata_link)
> -        os.symlink(os.path.basename(testdata_name), testdata_link)
> +		if testdata_link != testdata_name:
> +			if os.path.lexists(testdata_link):
> +				os.remove(testdata_link)
> +			os.symlink(os.path.basename(testdata_name),

And this as well.

Can you send v2 with spaces-only indentation?

Best regards,
Davide Gardenal May 3, 2022, 9:46 a.m. UTC | #2
Yes, I don’t know how this happened...

> Il giorno 3 mag 2022, alle ore 11:43, Luca Ceresoli <luca.ceresoli@bootlin.com> ha scritto:
> 
> Hi Davide,
> 
> Il giorno Tue,  3 May 2022 10:03:09 +0200
> "Davide Gardenal" <davidegarde2000@gmail.com> ha scritto:
> 
>> When creating the manifest and the testdata.json links, if the link
>> name is equal to the output name the link is not created, otherwise
>> it is. This prevents a link-to-self in the first case.
>> 
>> Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
>> ---
>> meta/classes/rootfs-postcommands.bbclass | 14 ++++++++------
>> 1 file changed, 8 insertions(+), 6 deletions(-)
>> 
>> diff --git a/meta/classes/rootfs-postcommands.bbclass
>> b/meta/classes/rootfs-postcommands.bbclass index
>> 7b92df69c5..c949115647 100644 ---
>> a/meta/classes/rootfs-postcommands.bbclass +++
>> b/meta/classes/rootfs-postcommands.bbclass @@ -267,9 +267,10 @@
>> python write_image_manifest () { 
>>     if os.path.exists(manifest_name) and link_name:
>>         manifest_link = deploy_dir + "/" + link_name + ".manifest"
>> -        if os.path.lexists(manifest_link):
>> -            os.remove(manifest_link)
>> -        os.symlink(os.path.basename(manifest_name), manifest_link)
>> +		if manifest_link != manifest_name
>> +			if os.path.lexists(manifest_link):
>> +				os.remove(manifest_link)
>> +			os.symlink(os.path.basename(manifest_name),
> 
> This change is mixing tabs and spaces.
> 
>> # Can be used to create /etc/timestamp during image construction to
>> give a reasonably @@ -339,9 +340,10 @@ python write_image_test_data()
>> { 
>>     if os.path.exists(testdata_name) and link_name:
>>         testdata_link = os.path.join(deploy_dir, "%s.testdata.json"
>> % link_name)
>> -        if os.path.lexists(testdata_link):
>> -            os.remove(testdata_link)
>> -        os.symlink(os.path.basename(testdata_name), testdata_link)
>> +		if testdata_link != testdata_name:
>> +			if os.path.lexists(testdata_link):
>> +				os.remove(testdata_link)
>> +			os.symlink(os.path.basename(testdata_name),
> 
> And this as well.
> 
> Can you send v2 with spaces-only indentation?
> 
> Best regards,
> -- 
> Luca Ceresoli, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com

Patch

diff --git a/meta/classes/rootfs-postcommands.bbclass b/meta/classes/rootfs-postcommands.bbclass
index 7b92df69c5..c949115647 100644
--- a/meta/classes/rootfs-postcommands.bbclass
+++ b/meta/classes/rootfs-postcommands.bbclass
@@ -267,9 +267,10 @@  python write_image_manifest () {
 
     if os.path.exists(manifest_name) and link_name:
         manifest_link = deploy_dir + "/" + link_name + ".manifest"
-        if os.path.lexists(manifest_link):
-            os.remove(manifest_link)
-        os.symlink(os.path.basename(manifest_name), manifest_link)
+		if manifest_link != manifest_name
+			if os.path.lexists(manifest_link):
+				os.remove(manifest_link)
+			os.symlink(os.path.basename(manifest_name), manifest_link)
 }
 
 # Can be used to create /etc/timestamp during image construction to give a reasonably
@@ -339,9 +340,10 @@  python write_image_test_data() {
 
     if os.path.exists(testdata_name) and link_name:
         testdata_link = os.path.join(deploy_dir, "%s.testdata.json" % link_name)
-        if os.path.lexists(testdata_link):
-            os.remove(testdata_link)
-        os.symlink(os.path.basename(testdata_name), testdata_link)
+		if testdata_link != testdata_name:
+			if os.path.lexists(testdata_link):
+				os.remove(testdata_link)
+			os.symlink(os.path.basename(testdata_name), testdata_link)
 }
 write_image_test_data[vardepsexclude] += "TOPDIR"