* [PATCH 0/1] archiver.bbclass: exclude recursive symlink for diff
@ 2013-09-03 11:51 Robert Yang
2013-09-03 11:51 ` [PATCH 1/1] " Robert Yang
0 siblings, 1 reply; 7+ messages in thread
From: Robert Yang @ 2013-09-03 11:51 UTC (permalink / raw)
To: openembedded-core
The following changes since commit 755f7d9afaab4e7424f5f57587aa45df3807acf0:
pulseaudio: disable GTK+ by default (2013-09-02 18:04:59 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib robert/archiver
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=robert/archiver
Robert Yang (1):
archiver.bbclass: exclude recursive symlink for diff
meta/classes/archiver.bbclass | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
--
1.7.10.4
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/1] archiver.bbclass: exclude recursive symlink for diff
2013-09-03 11:51 [PATCH 0/1] archiver.bbclass: exclude recursive symlink for diff Robert Yang
@ 2013-09-03 11:51 ` Robert Yang
2013-09-03 12:51 ` Robert Yang
0 siblings, 1 reply; 7+ messages in thread
From: Robert Yang @ 2013-09-03 11:51 UTC (permalink / raw)
To: openembedded-core
There would be errors if there are recursive symlinks in the ${S}:
diff: /xxx/udev/182-r8/udev-182/test/sys/block/loop0/bdi/subsystem/0:16/subsystem: recursive directory loop
We can check the recursive symlink and save it to the exclude file, then
the diff's --exclude-from argument can exclude them
[YOCTO #4986]
Signed-off-by: Valentin Cobelea <valentin.cobelea@enea.com>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
meta/classes/archiver.bbclass | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass
index 66efe7d..f5ad562 100644
--- a/meta/classes/archiver.bbclass
+++ b/meta/classes/archiver.bbclass
@@ -493,6 +493,24 @@ def create_diff_gz(d):
for i in exclude_from:
f.write(i)
f.write("\n")
+
+ symlinks = []
+ directories = []
+
+ # Add symlink and root dir to the separated lists for checking whether
+ # there is recursive symlink
+ for root, dirs, files in os.walk(os.getcwd(), followlinks=True):
+ if os.path.islink(root):
+ symlinks.append(root)
+ elif os.path.isdir(root):
+ directories.append(root)
+
+ # Check if there is a recursive symlink to a dir
+ for sym in symlinks:
+ if sym in directories:
+ # write the 'sym' in the 'exclude-from' file
+ f.write(os.path.basename(sym))
+
f.close()
s=d.getVar('S', True)
--
1.7.10.4
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 1/1] archiver.bbclass: exclude recursive symlink for diff
2013-09-03 11:51 ` [PATCH 1/1] " Robert Yang
@ 2013-09-03 12:51 ` Robert Yang
2013-09-03 12:53 ` Vali Cobelea
0 siblings, 1 reply; 7+ messages in thread
From: Robert Yang @ 2013-09-03 12:51 UTC (permalink / raw)
To: openembedded-core
Please hold this patch for a while, seems that it didn't fix all of the things.
// Robert
On 09/03/2013 07:51 PM, Robert Yang wrote:
> There would be errors if there are recursive symlinks in the ${S}:
>
> diff: /xxx/udev/182-r8/udev-182/test/sys/block/loop0/bdi/subsystem/0:16/subsystem: recursive directory loop
>
> We can check the recursive symlink and save it to the exclude file, then
> the diff's --exclude-from argument can exclude them
>
> [YOCTO #4986]
>
> Signed-off-by: Valentin Cobelea <valentin.cobelea@enea.com>
> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> ---
> meta/classes/archiver.bbclass | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass
> index 66efe7d..f5ad562 100644
> --- a/meta/classes/archiver.bbclass
> +++ b/meta/classes/archiver.bbclass
> @@ -493,6 +493,24 @@ def create_diff_gz(d):
> for i in exclude_from:
> f.write(i)
> f.write("\n")
> +
> + symlinks = []
> + directories = []
> +
> + # Add symlink and root dir to the separated lists for checking whether
> + # there is recursive symlink
> + for root, dirs, files in os.walk(os.getcwd(), followlinks=True):
> + if os.path.islink(root):
> + symlinks.append(root)
> + elif os.path.isdir(root):
> + directories.append(root)
> +
> + # Check if there is a recursive symlink to a dir
> + for sym in symlinks:
> + if sym in directories:
> + # write the 'sym' in the 'exclude-from' file
> + f.write(os.path.basename(sym))
> +
> f.close()
>
> s=d.getVar('S', True)
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/1] archiver.bbclass: exclude recursive symlink for diff
2013-09-03 12:51 ` Robert Yang
@ 2013-09-03 12:53 ` Vali Cobelea
2013-09-04 0:57 ` Robert Yang
0 siblings, 1 reply; 7+ messages in thread
From: Vali Cobelea @ 2013-09-03 12:53 UTC (permalink / raw)
To: Robert Yang; +Cc: openembedded-core
Hi,
What seems to be the issue ?
BR,
Valentin
On 09/03/2013 03:51 PM, Robert Yang wrote:
>
> Please hold this patch for a while, seems that it didn't fix all of
> the things.
>
> // Robert
>
> On 09/03/2013 07:51 PM, Robert Yang wrote:
>> There would be errors if there are recursive symlinks in the ${S}:
>>
>> diff:
>> /xxx/udev/182-r8/udev-182/test/sys/block/loop0/bdi/subsystem/0:16/subsystem:
>> recursive directory loop
>>
>> We can check the recursive symlink and save it to the exclude file, then
>> the diff's --exclude-from argument can exclude them
>>
>> [YOCTO #4986]
>>
>> Signed-off-by: Valentin Cobelea <valentin.cobelea@enea.com>
>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>> ---
>> meta/classes/archiver.bbclass | 18 ++++++++++++++++++
>> 1 file changed, 18 insertions(+)
>>
>> diff --git a/meta/classes/archiver.bbclass
>> b/meta/classes/archiver.bbclass
>> index 66efe7d..f5ad562 100644
>> --- a/meta/classes/archiver.bbclass
>> +++ b/meta/classes/archiver.bbclass
>> @@ -493,6 +493,24 @@ def create_diff_gz(d):
>> for i in exclude_from:
>> f.write(i)
>> f.write("\n")
>> +
>> + symlinks = []
>> + directories = []
>> +
>> + # Add symlink and root dir to the separated lists for checking
>> whether
>> + # there is recursive symlink
>> + for root, dirs, files in os.walk(os.getcwd(), followlinks=True):
>> + if os.path.islink(root):
>> + symlinks.append(root)
>> + elif os.path.isdir(root):
>> + directories.append(root)
>> +
>> + # Check if there is a recursive symlink to a dir
>> + for sym in symlinks:
>> + if sym in directories:
>> + # write the 'sym' in the 'exclude-from' file
>> + f.write(os.path.basename(sym))
>> +
>> f.close()
>>
>> s=d.getVar('S', True)
>>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/1] archiver.bbclass: exclude recursive symlink for diff
2013-09-03 12:53 ` Vali Cobelea
@ 2013-09-04 0:57 ` Robert Yang
2013-09-04 7:22 ` Vali Cobelea
0 siblings, 1 reply; 7+ messages in thread
From: Robert Yang @ 2013-09-04 0:57 UTC (permalink / raw)
To: Vali Cobelea; +Cc: openembedded-core
Hi Valentin,
It hangs up when build acl (which means that I can reproduce the
problem as you have told), but it worked well without this patch,
maybe python version related, I will do more investigation.
// Robert
On 09/03/2013 08:53 PM, Vali Cobelea wrote:
> Hi,
>
> What seems to be the issue ?
>
> BR,
> Valentin
>
>
> On 09/03/2013 03:51 PM, Robert Yang wrote:
>>
>> Please hold this patch for a while, seems that it didn't fix all of the things.
>>
>> // Robert
>>
>> On 09/03/2013 07:51 PM, Robert Yang wrote:
>>> There would be errors if there are recursive symlinks in the ${S}:
>>>
>>> diff:
>>> /xxx/udev/182-r8/udev-182/test/sys/block/loop0/bdi/subsystem/0:16/subsystem:
>>> recursive directory loop
>>>
>>> We can check the recursive symlink and save it to the exclude file, then
>>> the diff's --exclude-from argument can exclude them
>>>
>>> [YOCTO #4986]
>>>
>>> Signed-off-by: Valentin Cobelea <valentin.cobelea@enea.com>
>>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>>> ---
>>> meta/classes/archiver.bbclass | 18 ++++++++++++++++++
>>> 1 file changed, 18 insertions(+)
>>>
>>> diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass
>>> index 66efe7d..f5ad562 100644
>>> --- a/meta/classes/archiver.bbclass
>>> +++ b/meta/classes/archiver.bbclass
>>> @@ -493,6 +493,24 @@ def create_diff_gz(d):
>>> for i in exclude_from:
>>> f.write(i)
>>> f.write("\n")
>>> +
>>> + symlinks = []
>>> + directories = []
>>> +
>>> + # Add symlink and root dir to the separated lists for checking whether
>>> + # there is recursive symlink
>>> + for root, dirs, files in os.walk(os.getcwd(), followlinks=True):
>>> + if os.path.islink(root):
>>> + symlinks.append(root)
>>> + elif os.path.isdir(root):
>>> + directories.append(root)
>>> +
>>> + # Check if there is a recursive symlink to a dir
>>> + for sym in symlinks:
>>> + if sym in directories:
>>> + # write the 'sym' in the 'exclude-from' file
>>> + f.write(os.path.basename(sym))
>>> +
>>> f.close()
>>>
>>> s=d.getVar('S', True)
>>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/1] archiver.bbclass: exclude recursive symlink for diff
2013-09-04 0:57 ` Robert Yang
@ 2013-09-04 7:22 ` Vali Cobelea
2013-09-04 8:01 ` Robert Yang
0 siblings, 1 reply; 7+ messages in thread
From: Vali Cobelea @ 2013-09-04 7:22 UTC (permalink / raw)
To: Robert Yang; +Cc: openembedded-core
Hi,
You can try even without the patch and see if you reproduce the issue.
We do have the symlinks recursivity problem as I said but on random
packages, "udev" was the first we noticed.
Best regards,
Valentin
On 09/04/2013 03:57 AM, Robert Yang wrote:
>
> Hi Valentin,
>
> It hangs up when build acl (which means that I can reproduce the
> problem as you have told), but it worked well without this patch,
> maybe python version related, I will do more investigation.
>
> // Robert
>
> On 09/03/2013 08:53 PM, Vali Cobelea wrote:
>> Hi,
>>
>> What seems to be the issue ?
>>
>> BR,
>> Valentin
>>
>>
>> On 09/03/2013 03:51 PM, Robert Yang wrote:
>>>
>>> Please hold this patch for a while, seems that it didn't fix all of
>>> the things.
>>>
>>> // Robert
>>>
>>> On 09/03/2013 07:51 PM, Robert Yang wrote:
>>>> There would be errors if there are recursive symlinks in the ${S}:
>>>>
>>>> diff:
>>>> /xxx/udev/182-r8/udev-182/test/sys/block/loop0/bdi/subsystem/0:16/subsystem:
>>>>
>>>> recursive directory loop
>>>>
>>>> We can check the recursive symlink and save it to the exclude file,
>>>> then
>>>> the diff's --exclude-from argument can exclude them
>>>>
>>>> [YOCTO #4986]
>>>>
>>>> Signed-off-by: Valentin Cobelea <valentin.cobelea@enea.com>
>>>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>>>> ---
>>>> meta/classes/archiver.bbclass | 18 ++++++++++++++++++
>>>> 1 file changed, 18 insertions(+)
>>>>
>>>> diff --git a/meta/classes/archiver.bbclass
>>>> b/meta/classes/archiver.bbclass
>>>> index 66efe7d..f5ad562 100644
>>>> --- a/meta/classes/archiver.bbclass
>>>> +++ b/meta/classes/archiver.bbclass
>>>> @@ -493,6 +493,24 @@ def create_diff_gz(d):
>>>> for i in exclude_from:
>>>> f.write(i)
>>>> f.write("\n")
>>>> +
>>>> + symlinks = []
>>>> + directories = []
>>>> +
>>>> + # Add symlink and root dir to the separated lists for checking
>>>> whether
>>>> + # there is recursive symlink
>>>> + for root, dirs, files in os.walk(os.getcwd(), followlinks=True):
>>>> + if os.path.islink(root):
>>>> + symlinks.append(root)
>>>> + elif os.path.isdir(root):
>>>> + directories.append(root)
>>>> +
>>>> + # Check if there is a recursive symlink to a dir
>>>> + for sym in symlinks:
>>>> + if sym in directories:
>>>> + # write the 'sym' in the 'exclude-from' file
>>>> + f.write(os.path.basename(sym))
>>>> +
>>>> f.close()
>>>>
>>>> s=d.getVar('S', True)
>>>>
>>> _______________________________________________
>>> Openembedded-core mailing list
>>> Openembedded-core@lists.openembedded.org
>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>>
>>
>>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/1] archiver.bbclass: exclude recursive symlink for diff
2013-09-04 7:22 ` Vali Cobelea
@ 2013-09-04 8:01 ` Robert Yang
0 siblings, 0 replies; 7+ messages in thread
From: Robert Yang @ 2013-09-04 8:01 UTC (permalink / raw)
To: Vali Cobelea; +Cc: openembedded-core
On 09/04/2013 03:22 PM, Vali Cobelea wrote:
> Hi,
>
> You can try even without the patch and see if you reproduce the issue.
> We do have the symlinks recursivity problem as I said but on random packages,
> "udev" was the first we noticed.
I can't reproduce the error, but it is really a problem, I've added a patch
in the bugzilla, and will send it here sooner.
// Robert
>
> Best regards,
> Valentin
>
> On 09/04/2013 03:57 AM, Robert Yang wrote:
>>
>> Hi Valentin,
>>
>> It hangs up when build acl (which means that I can reproduce the
>> problem as you have told), but it worked well without this patch,
>> maybe python version related, I will do more investigation.
>>
>> // Robert
>>
>> On 09/03/2013 08:53 PM, Vali Cobelea wrote:
>>> Hi,
>>>
>>> What seems to be the issue ?
>>>
>>> BR,
>>> Valentin
>>>
>>>
>>> On 09/03/2013 03:51 PM, Robert Yang wrote:
>>>>
>>>> Please hold this patch for a while, seems that it didn't fix all of the things.
>>>>
>>>> // Robert
>>>>
>>>> On 09/03/2013 07:51 PM, Robert Yang wrote:
>>>>> There would be errors if there are recursive symlinks in the ${S}:
>>>>>
>>>>> diff:
>>>>> /xxx/udev/182-r8/udev-182/test/sys/block/loop0/bdi/subsystem/0:16/subsystem:
>>>>> recursive directory loop
>>>>>
>>>>> We can check the recursive symlink and save it to the exclude file, then
>>>>> the diff's --exclude-from argument can exclude them
>>>>>
>>>>> [YOCTO #4986]
>>>>>
>>>>> Signed-off-by: Valentin Cobelea <valentin.cobelea@enea.com>
>>>>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>>>>> ---
>>>>> meta/classes/archiver.bbclass | 18 ++++++++++++++++++
>>>>> 1 file changed, 18 insertions(+)
>>>>>
>>>>> diff --git a/meta/classes/archiver.bbclass b/meta/classes/archiver.bbclass
>>>>> index 66efe7d..f5ad562 100644
>>>>> --- a/meta/classes/archiver.bbclass
>>>>> +++ b/meta/classes/archiver.bbclass
>>>>> @@ -493,6 +493,24 @@ def create_diff_gz(d):
>>>>> for i in exclude_from:
>>>>> f.write(i)
>>>>> f.write("\n")
>>>>> +
>>>>> + symlinks = []
>>>>> + directories = []
>>>>> +
>>>>> + # Add symlink and root dir to the separated lists for checking whether
>>>>> + # there is recursive symlink
>>>>> + for root, dirs, files in os.walk(os.getcwd(), followlinks=True):
>>>>> + if os.path.islink(root):
>>>>> + symlinks.append(root)
>>>>> + elif os.path.isdir(root):
>>>>> + directories.append(root)
>>>>> +
>>>>> + # Check if there is a recursive symlink to a dir
>>>>> + for sym in symlinks:
>>>>> + if sym in directories:
>>>>> + # write the 'sym' in the 'exclude-from' file
>>>>> + f.write(os.path.basename(sym))
>>>>> +
>>>>> f.close()
>>>>>
>>>>> s=d.getVar('S', True)
>>>>>
>>>> _______________________________________________
>>>> Openembedded-core mailing list
>>>> Openembedded-core@lists.openembedded.org
>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>>>
>>>
>>>
>
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2013-09-04 8:02 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-03 11:51 [PATCH 0/1] archiver.bbclass: exclude recursive symlink for diff Robert Yang
2013-09-03 11:51 ` [PATCH 1/1] " Robert Yang
2013-09-03 12:51 ` Robert Yang
2013-09-03 12:53 ` Vali Cobelea
2013-09-04 0:57 ` Robert Yang
2013-09-04 7:22 ` Vali Cobelea
2013-09-04 8:01 ` Robert Yang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox