Patchwork [4/9] consolekit: fix sdk generation issues

login
register
mail settings
Submitter lumag
Date Dec. 13, 2011, 4:19 p.m.
Message ID <1323793193-31090-4-git-send-email-dbaryshkov@gmail.com>
Download mbox | patch
Permalink /patch/16829/
State New
Headers show

Comments

lumag - Dec. 13, 2011, 4:19 p.m.
Currently sdk generation might fail with the following error:
| Collected errors:
|  * extract_archive: Cannot create symlink from ./var/log to
'volatile/log': File exists.
ERROR: Function 'do_populate_sdk' failed

This happens as consolekit package will include both /var/log/ConsoleKit
and /var/volatile/log/ConsoleKit files:
lumag@fangorn:~/OE-scripts$ dpkg-deb -c build/tmp--eglibc/deploy/ipk/core2/consolekit_0.4.5-r7_core2.ipk  | grep var
drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/
drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/log/
drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/log/ConsoleKit/
lrwxrwxrwx root/root         0 2011-12-07 22:12 ./var/run -> volatile/run
drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/
drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/log/
drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/log/ConsoleKit/
drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/run/
drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/run/ConsoleKit/

Inclusion of both log directories causes this error. Drop the
/var/log/ConsoleKit
in favour of /var/volatile/log

Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
---
 .../recipes-support/consolekit/consolekit_0.4.5.bb |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
Richard Purdie - Dec. 15, 2011, 2:58 p.m.
On Tue, 2011-12-13 at 20:19 +0400, Dmitry Eremin-Solenikov wrote:
> Currently sdk generation might fail with the following error:
> | Collected errors:
> |  * extract_archive: Cannot create symlink from ./var/log to
> 'volatile/log': File exists.
> ERROR: Function 'do_populate_sdk' failed
> 
> This happens as consolekit package will include both /var/log/ConsoleKit
> and /var/volatile/log/ConsoleKit files:
> lumag@fangorn:~/OE-scripts$ dpkg-deb -c build/tmp--eglibc/deploy/ipk/core2/consolekit_0.4.5-r7_core2.ipk  | grep var
> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/
> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/log/
> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/log/ConsoleKit/
> lrwxrwxrwx root/root         0 2011-12-07 22:12 ./var/run -> volatile/run
> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/
> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/log/
> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/log/ConsoleKit/
> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/run/
> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/run/ConsoleKit/
> 
> Inclusion of both log directories causes this error. Drop the
> /var/log/ConsoleKit
> in favour of /var/volatile/log
> 
> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>

This effectively reverts:
http://git.openembedded.org/openembedded-core/commit/?id=5608a748af2c754f60137ab7c3010ccce6bf9e40
so I think this fixes one problem at the expense of causing another.
Koen: Any comments?

>  .../recipes-support/consolekit/consolekit_0.4.5.bb |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/meta/recipes-support/consolekit/consolekit_0.4.5.bb b/meta/recipes-support/consolekit/consolekit_0.4.5.bb
> index 45f6ad3..9406d88 100644
> --- a/meta/recipes-support/consolekit/consolekit_0.4.5.bb
> +++ b/meta/recipes-support/consolekit/consolekit_0.4.5.bb
> @@ -2,7 +2,7 @@ DESCRIPTION = "ConsoleKit is a framework for defining and tracking users, login
>  HOMEPAGE="http://www.freedesktop.org/wiki/Software/ConsoleKit"
>  BUGTRACKER="https://bugs.freedesktop.org/buglist.cgi?query_format=specific&product=ConsoleKit"
>  
> -PR = "r7"
> +PR = "r8"
>  
>  LICENSE = "GPLv2+"
>  LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
> @@ -24,7 +24,7 @@ EXTRA_OECONF = "--with-systemdsystemunitdir=${base_libdir}/systemd/system/ \
>                  ${@base_contains('DISTRO_FEATURES', 'pam', '--enable-pam-module --with-pam-module-dir=${base_libdir}/security', '--disable-pam-module', d)} \
>                 "
>  
> -FILES_${PN} += "${localstatedir}/log/ConsoleKit ${libdir}/ConsoleKit ${base_libdir} ${datadir}/dbus-1 ${datadir}/PolicyKit ${datadir}/polkit*"
> +FILES_${PN} += "${libdir}/ConsoleKit ${base_libdir} ${datadir}/dbus-1 ${datadir}/PolicyKit ${datadir}/polkit*"
>  FILES_${PN}-dbg += "${base_libdir}/security/.debug"
>  
>  PACKAGES =+ "pam-plugin-ck-connector"
Koen Kooi - Dec. 15, 2011, 3:06 p.m.
Op 15 dec. 2011, om 15:58 heeft Richard Purdie het volgende geschreven:

> On Tue, 2011-12-13 at 20:19 +0400, Dmitry Eremin-Solenikov wrote:
>> Currently sdk generation might fail with the following error:
>> | Collected errors:
>> |  * extract_archive: Cannot create symlink from ./var/log to
>> 'volatile/log': File exists.
>> ERROR: Function 'do_populate_sdk' failed
>> 
>> This happens as consolekit package will include both /var/log/ConsoleKit
>> and /var/volatile/log/ConsoleKit files:
>> lumag@fangorn:~/OE-scripts$ dpkg-deb -c build/tmp--eglibc/deploy/ipk/core2/consolekit_0.4.5-r7_core2.ipk  | grep var
>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/
>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/log/
>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/log/ConsoleKit/
>> lrwxrwxrwx root/root         0 2011-12-07 22:12 ./var/run -> volatile/run
>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/
>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/log/
>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/log/ConsoleKit/
>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/run/
>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/run/ConsoleKit/
>> 
>> Inclusion of both log directories causes this error. Drop the
>> /var/log/ConsoleKit
>> in favour of /var/volatile/log
>> 
>> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
> 
> This effectively reverts:
> http://git.openembedded.org/openembedded-core/commit/?id=5608a748af2c754f60137ab7c3010ccce6bf9e40
> so I think this fixes one problem at the expense of causing another.
> Koen: Any comments?

If you revert it consolekit won't work at runtime because it fails to start.
Dexuan Cui - Dec. 15, 2011, 4:20 p.m.
Richard Purdie wrote on 2011-12-15:
> On Tue, 2011-12-13 at 20:19 +0400, Dmitry Eremin-Solenikov wrote:
>> Currently sdk generation might fail with the following error:
>> | Collected errors:
>> |  * extract_archive: Cannot create symlink from ./var/log to
>> 'volatile/log': File exists.
>> ERROR: Function 'do_populate_sdk' failed
>> 
>> This happens as consolekit package will include both
>> /var/log/ConsoleKit and /var/volatile/log/ConsoleKit files:
>> lumag@fangorn:~/OE-scripts$ dpkg-deb -c
> build/tmp--eglibc/deploy/ipk/core2/consolekit_0.4.5-r7_core2.ipk  |
> grep var
>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/ drwxr-xr-x
>> root/root         0 2011-12-07 22:12 ./var/log/ drwxr-xr-x root/root   
>>      0 2011-12-07 22:12 ./var/log/ConsoleKit/ lrwxrwxrwx root/root     
>>    0 2011-12-07 22:12 ./var/run -> volatile/run drwxr-xr-x root/root   
>>      0 2011-12-07 22:12 ./var/volatile/ drwxr-xr-x root/root         0
>> 2011-12-07 22:12 ./var/volatile/log/ drwxr-xr-x root/root         0
>> 2011-12-07 22:12 ./var/volatile/log/ConsoleKit/ drwxr-xr-x root/root   
>>      0 2011-12-07 22:12 ./var/volatile/run/ drwxr-xr-x root/root       
>>  0 2011-12-07 22:12 ./var/volatile/run/ConsoleKit/
>> 
>> Inclusion of both log directories causes this error. Drop the
>> /var/log/ConsoleKit in favour of /var/volatile/log
Hi Dmitry,
Could you please explain how and where the extract_archive error is caused?
Where is /var/log linked to /var/volatile/log?

Do you mean RP's patch "consolekit: Fix ${localstatedir} race" didn't fix the issue?
(I suspect so)
 
> This effectively reverts:
> http://git.openembedded.org/openembedded-core/commit/?id=5608a748
> af2c754f60137ab7c3010ccce6bf9e40 so I think this fixes one problem at
> the expense of causing another. Koen: Any comments?

Thanks,
-- Dexuan
Dexuan Cui - Dec. 16, 2011, 1:56 a.m.
Koen Kooi wrote on 2011-12-15:
> 
> Op 15 dec. 2011, om 15:58 heeft Richard Purdie het volgende geschreven:
> 
>> On Tue, 2011-12-13 at 20:19 +0400, Dmitry Eremin-Solenikov wrote:
>>> Currently sdk generation might fail with the following error:
>>> | Collected errors:
>>> |  * extract_archive: Cannot create symlink from ./var/log to
>>> 'volatile/log': File exists.
>>> ERROR: Function 'do_populate_sdk' failed
>>> 
>>> This happens as consolekit package will include both 
>>> /var/log/ConsoleKit and /var/volatile/log/ConsoleKit files:
>>> lumag@fangorn:~/OE-scripts$ dpkg-deb -c
> build/tmp--eglibc/deploy/ipk/core2/consolekit_0.4.5-r7_core2.ipk  | 
> grep var
>>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/ drwxr-xr-x
>>> root/root         0 2011-12-07 22:12 ./var/log/ drwxr-xr-x root/root  
>>>       0 2011-12-07 22:12 ./var/log/ConsoleKit/ lrwxrwxrwx root/root   
>>>      0 2011-12-07 22:12 ./var/run -> volatile/run drwxr-xr-x root/root
>>>         0 2011-12-07 22:12 ./var/volatile/ drwxr-xr-x root/root       
>>>  0 2011-12-07 22:12 ./var/volatile/log/ drwxr-xr-x root/root         0
>>> 2011-12-07 22:12 ./var/volatile/log/ConsoleKit/ drwxr-xr-x root/root  
>>>       0 2011-12-07 22:12 ./var/volatile/run/ drwxr-xr-x root/root     
>>>    0 2011-12-07 22:12 ./var/volatile/run/ConsoleKit/
>>> 
>>> Inclusion of both log directories causes this error. Drop the 
>>> /var/log/ConsoleKit in favour of /var/volatile/log
>>> 
>>> Signed-off-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
>> 
>> This effectively reverts:
>> 
> http://git.openembedded.org/openembedded-core/commit/?id=5608a748
> af2c7
>> 54f60137ab7c3010ccce6bf9e40 so I think this fixes one problem at the 
>> expense of causing another.
>> Koen: Any comments?
> 
> If you revert it consolekit won't work at runtime because it fails to start.
We need to find the proper fix.
meta-toolchain-gmae building (at least with ipk packaging) has been broken by this for half a month...

Thanks,
-- Dexuan
lumag - Dec. 16, 2011, 12:42 p.m.
Koen,

On 12/15/2011 07:06 PM, Koen Kooi wrote:
>
> Op 15 dec. 2011, om 15:58 heeft Richard Purdie het volgende geschreven:
>
>> On Tue, 2011-12-13 at 20:19 +0400, Dmitry Eremin-Solenikov wrote:
>>> Currently sdk generation might fail with the following error:
>>> | Collected errors:
>>> |  * extract_archive: Cannot create symlink from ./var/log to
>>> 'volatile/log': File exists.
>>> ERROR: Function 'do_populate_sdk' failed
>>>
>>> This happens as consolekit package will include both /var/log/ConsoleKit
>>> and /var/volatile/log/ConsoleKit files:
>>> lumag@fangorn:~/OE-scripts$ dpkg-deb -c build/tmp--eglibc/deploy/ipk/core2/consolekit_0.4.5-r7_core2.ipk  | grep var
>>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/
>>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/log/
>>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/log/ConsoleKit/
>>> lrwxrwxrwx root/root         0 2011-12-07 22:12 ./var/run ->  volatile/run
>>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/
>>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/log/
>>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/log/ConsoleKit/
>>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/run/
>>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/volatile/run/ConsoleKit/
>>>
>>> Inclusion of both log directories causes this error. Drop the
>>> /var/log/ConsoleKit
>>> in favour of /var/volatile/log
>>>
>>> Signed-off-by: Dmitry Eremin-Solenikov<dbaryshkov@gmail.com>
>>
>> This effectively reverts:
>> http://git.openembedded.org/openembedded-core/commit/?id=5608a748af2c754f60137ab7c3010ccce6bf9e40
>> so I think this fixes one problem at the expense of causing another.
>> Koen: Any comments?
>
> If you revert it consolekit won't work at runtime because it fails to start.

In your usecase, do you have a /var/volatile? 
/var/volatile/log/ConsoleKit? Could you please be more specific in the 
layout of your /var and in the error/trace of consolekit on your side?

I'd really like to solve this somehow as for now I have a broken SDK 
generation (at it seems it's not my fault as other people on ML 
suggested that they experienced errors with meta-toolchain-gmae).
lumag - Dec. 16, 2011, 12:42 p.m.
On 12/15/2011 08:20 PM, Cui, Dexuan wrote:
> Richard Purdie wrote on 2011-12-15:
>> On Tue, 2011-12-13 at 20:19 +0400, Dmitry Eremin-Solenikov wrote:
>>> Currently sdk generation might fail with the following error:
>>> | Collected errors:
>>> |  * extract_archive: Cannot create symlink from ./var/log to
>>> 'volatile/log': File exists.
>>> ERROR: Function 'do_populate_sdk' failed
>>>
>>> This happens as consolekit package will include both
>>> /var/log/ConsoleKit and /var/volatile/log/ConsoleKit files:
>>> lumag@fangorn:~/OE-scripts$ dpkg-deb -c
>> build/tmp--eglibc/deploy/ipk/core2/consolekit_0.4.5-r7_core2.ipk  |
>> grep var
>>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/ drwxr-xr-x
>>> root/root         0 2011-12-07 22:12 ./var/log/ drwxr-xr-x root/root
>>>       0 2011-12-07 22:12 ./var/log/ConsoleKit/ lrwxrwxrwx root/root
>>>     0 2011-12-07 22:12 ./var/run ->  volatile/run drwxr-xr-x root/root
>>>       0 2011-12-07 22:12 ./var/volatile/ drwxr-xr-x root/root         0
>>> 2011-12-07 22:12 ./var/volatile/log/ drwxr-xr-x root/root         0
>>> 2011-12-07 22:12 ./var/volatile/log/ConsoleKit/ drwxr-xr-x root/root
>>>       0 2011-12-07 22:12 ./var/volatile/run/ drwxr-xr-x root/root
>>>   0 2011-12-07 22:12 ./var/volatile/run/ConsoleKit/
>>>
>>> Inclusion of both log directories causes this error. Drop the
>>> /var/log/ConsoleKit in favour of /var/volatile/log
> Hi Dmitry,
> Could you please explain how and where the extract_archive error is caused?
> Where is /var/log linked to /var/volatile/log?

I have tried building meta-toolchain-qte... and I got exactly the error 
from my original message.

>
> Do you mean RP's patch "consolekit: Fix ${localstatedir} race" didn't fix the issue?
> (I suspect so)

Yes, I still had the issues even after PR's patch.

>
>> This effectively reverts:
>> http://git.openembedded.org/openembedded-core/commit/?id=5608a748
>> af2c754f60137ab7c3010ccce6bf9e40 so I think this fixes one problem at
>> the expense of causing another. Koen: Any comments?
>
> Thanks,
> -- Dexuan
Richard Purdie - Dec. 16, 2011, 3:25 p.m.
On Fri, 2011-12-16 at 16:42 +0400, Dmitry Eremin-Solenikov wrote:
> On 12/15/2011 08:20 PM, Cui, Dexuan wrote:
> > Richard Purdie wrote on 2011-12-15:
> >> On Tue, 2011-12-13 at 20:19 +0400, Dmitry Eremin-Solenikov wrote:
> >>> Currently sdk generation might fail with the following error:
> >>> | Collected errors:
> >>> |  * extract_archive: Cannot create symlink from ./var/log to
> >>> 'volatile/log': File exists.
> >>> ERROR: Function 'do_populate_sdk' failed
> >>>
> >>> This happens as consolekit package will include both
> >>> /var/log/ConsoleKit and /var/volatile/log/ConsoleKit files:
> >>> lumag@fangorn:~/OE-scripts$ dpkg-deb -c
> >> build/tmp--eglibc/deploy/ipk/core2/consolekit_0.4.5-r7_core2.ipk  |
> >> grep var
> >>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/ drwxr-xr-x
> >>> root/root         0 2011-12-07 22:12 ./var/log/ drwxr-xr-x root/root
> >>>       0 2011-12-07 22:12 ./var/log/ConsoleKit/ lrwxrwxrwx root/root
> >>>     0 2011-12-07 22:12 ./var/run ->  volatile/run drwxr-xr-x root/root
> >>>       0 2011-12-07 22:12 ./var/volatile/ drwxr-xr-x root/root         0
> >>> 2011-12-07 22:12 ./var/volatile/log/ drwxr-xr-x root/root         0
> >>> 2011-12-07 22:12 ./var/volatile/log/ConsoleKit/ drwxr-xr-x root/root
> >>>       0 2011-12-07 22:12 ./var/volatile/run/ drwxr-xr-x root/root
> >>>   0 2011-12-07 22:12 ./var/volatile/run/ConsoleKit/
> >>>
> >>> Inclusion of both log directories causes this error. Drop the
> >>> /var/log/ConsoleKit in favour of /var/volatile/log
> > Hi Dmitry,
> > Could you please explain how and where the extract_archive error is caused?
> > Where is /var/log linked to /var/volatile/log?
> 
> I have tried building meta-toolchain-qte... and I got exactly the error 
> from my original message.
> 
> >
> > Do you mean RP's patch "consolekit: Fix ${localstatedir} race" didn't fix the issue?
> > (I suspect so)
> 
> Yes, I still had the issues even after PR's patch.
> 
> >
> >> This effectively reverts:
> >> http://git.openembedded.org/openembedded-core/commit/?id=5608a748
> >> af2c754f60137ab7c3010ccce6bf9e40 so I think this fixes one problem at
> >> the expense of causing another. Koen: Any comments?
> >
> > Thanks,
> > -- Dexuan

I believe this is an installation ordering problem in opkg. If you apply
my opkg patch (and the nativesdk one I just posted), I don't see this
problem with meta-toolchain-gmae.

Cheers,

Richard
lumag - Dec. 16, 2011, 4:07 p.m.
On 12/16/2011 07:25 PM, Richard Purdie wrote:
> On Fri, 2011-12-16 at 16:42 +0400, Dmitry Eremin-Solenikov wrote:
>> On 12/15/2011 08:20 PM, Cui, Dexuan wrote:
>>> Richard Purdie wrote on 2011-12-15:
>>>> On Tue, 2011-12-13 at 20:19 +0400, Dmitry Eremin-Solenikov wrote:
>>>>> Currently sdk generation might fail with the following error:
>>>>> | Collected errors:
>>>>> |  * extract_archive: Cannot create symlink from ./var/log to
>>>>> 'volatile/log': File exists.
>>>>> ERROR: Function 'do_populate_sdk' failed
>>>>>
>>>>> This happens as consolekit package will include both
>>>>> /var/log/ConsoleKit and /var/volatile/log/ConsoleKit files:
>>>>> lumag@fangorn:~/OE-scripts$ dpkg-deb -c
>>>> build/tmp--eglibc/deploy/ipk/core2/consolekit_0.4.5-r7_core2.ipk  |
>>>> grep var
>>>>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/ drwxr-xr-x
>>>>> root/root         0 2011-12-07 22:12 ./var/log/ drwxr-xr-x root/root
>>>>>        0 2011-12-07 22:12 ./var/log/ConsoleKit/ lrwxrwxrwx root/root
>>>>>      0 2011-12-07 22:12 ./var/run ->   volatile/run drwxr-xr-x root/root
>>>>>        0 2011-12-07 22:12 ./var/volatile/ drwxr-xr-x root/root         0
>>>>> 2011-12-07 22:12 ./var/volatile/log/ drwxr-xr-x root/root         0
>>>>> 2011-12-07 22:12 ./var/volatile/log/ConsoleKit/ drwxr-xr-x root/root
>>>>>        0 2011-12-07 22:12 ./var/volatile/run/ drwxr-xr-x root/root
>>>>>    0 2011-12-07 22:12 ./var/volatile/run/ConsoleKit/
>>>>>
>>>>> Inclusion of both log directories causes this error. Drop the
>>>>> /var/log/ConsoleKit in favour of /var/volatile/log
>>> Hi Dmitry,
>>> Could you please explain how and where the extract_archive error is caused?
>>> Where is /var/log linked to /var/volatile/log?
>>
>> I have tried building meta-toolchain-qte... and I got exactly the error
>> from my original message.
>>
>>>
>>> Do you mean RP's patch "consolekit: Fix ${localstatedir} race" didn't fix the issue?
>>> (I suspect so)
>>
>> Yes, I still had the issues even after PR's patch.
>>
>>>
>>>> This effectively reverts:
>>>> http://git.openembedded.org/openembedded-core/commit/?id=5608a748
>>>> af2c754f60137ab7c3010ccce6bf9e40 so I think this fixes one problem at
>>>> the expense of causing another. Koen: Any comments?
>>>
>>> Thanks,
>>> -- Dexuan
>
> I believe this is an installation ordering problem in opkg. If you apply
> my opkg patch (and the nativesdk one I just posted), I don't see this
> problem with meta-toolchain-gmae.

I still see one problem. Without my patch I have both 
/var/volatile/log/ConsoleKit and /var/log/ConsoleKit in consolekit 
package. Won't that cause troubles?
Richard Purdie - Dec. 16, 2011, 4:46 p.m.
On Fri, 2011-12-16 at 20:07 +0400, Dmitry Eremin-Solenikov wrote:
> On 12/16/2011 07:25 PM, Richard Purdie wrote:
> > On Fri, 2011-12-16 at 16:42 +0400, Dmitry Eremin-Solenikov wrote:
> >> On 12/15/2011 08:20 PM, Cui, Dexuan wrote:
> >>> Richard Purdie wrote on 2011-12-15:
> >>>> On Tue, 2011-12-13 at 20:19 +0400, Dmitry Eremin-Solenikov wrote:
> >>>>> Currently sdk generation might fail with the following error:
> >>>>> | Collected errors:
> >>>>> |  * extract_archive: Cannot create symlink from ./var/log to
> >>>>> 'volatile/log': File exists.
> >>>>> ERROR: Function 'do_populate_sdk' failed
> >>>>>
> >>>>> This happens as consolekit package will include both
> >>>>> /var/log/ConsoleKit and /var/volatile/log/ConsoleKit files:
> >>>>> lumag@fangorn:~/OE-scripts$ dpkg-deb -c
> >>>> build/tmp--eglibc/deploy/ipk/core2/consolekit_0.4.5-r7_core2.ipk  |
> >>>> grep var
> >>>>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/ drwxr-xr-x
> >>>>> root/root         0 2011-12-07 22:12 ./var/log/ drwxr-xr-x root/root
> >>>>>        0 2011-12-07 22:12 ./var/log/ConsoleKit/ lrwxrwxrwx root/root
> >>>>>      0 2011-12-07 22:12 ./var/run ->   volatile/run drwxr-xr-x root/root
> >>>>>        0 2011-12-07 22:12 ./var/volatile/ drwxr-xr-x root/root         0
> >>>>> 2011-12-07 22:12 ./var/volatile/log/ drwxr-xr-x root/root         0
> >>>>> 2011-12-07 22:12 ./var/volatile/log/ConsoleKit/ drwxr-xr-x root/root
> >>>>>        0 2011-12-07 22:12 ./var/volatile/run/ drwxr-xr-x root/root
> >>>>>    0 2011-12-07 22:12 ./var/volatile/run/ConsoleKit/
> >>>>>
> >>>>> Inclusion of both log directories causes this error. Drop the
> >>>>> /var/log/ConsoleKit in favour of /var/volatile/log
> >>> Hi Dmitry,
> >>> Could you please explain how and where the extract_archive error is caused?
> >>> Where is /var/log linked to /var/volatile/log?
> >>
> >> I have tried building meta-toolchain-qte... and I got exactly the error
> >> from my original message.
> >>
> >>>
> >>> Do you mean RP's patch "consolekit: Fix ${localstatedir} race" didn't fix the issue?
> >>> (I suspect so)
> >>
> >> Yes, I still had the issues even after PR's patch.
> >>
> >>>
> >>>> This effectively reverts:
> >>>> http://git.openembedded.org/openembedded-core/commit/?id=5608a748
> >>>> af2c754f60137ab7c3010ccce6bf9e40 so I think this fixes one problem at
> >>>> the expense of causing another. Koen: Any comments?
> >>>
> >>> Thanks,
> >>> -- Dexuan
> >
> > I believe this is an installation ordering problem in opkg. If you apply
> > my opkg patch (and the nativesdk one I just posted), I don't see this
> > problem with meta-toolchain-gmae.
> 
> I still see one problem. Without my patch I have both 
> /var/volatile/log/ConsoleKit and /var/log/ConsoleKit in consolekit 
> package. Won't that cause troubles?

No, that wasn't the problem opkg was reporting. The problem opkg was
reporting was that base-files hadn't installed first and its responsible
for setting up the var symlinks.

Cheers,

Richard
lumag - Dec. 16, 2011, 5:55 p.m.
On 12/16/2011 08:46 PM, Richard Purdie wrote:
> On Fri, 2011-12-16 at 20:07 +0400, Dmitry Eremin-Solenikov wrote:
>> On 12/16/2011 07:25 PM, Richard Purdie wrote:
>>> On Fri, 2011-12-16 at 16:42 +0400, Dmitry Eremin-Solenikov wrote:
>>>> On 12/15/2011 08:20 PM, Cui, Dexuan wrote:
>>>>> Richard Purdie wrote on 2011-12-15:
>>>>>> On Tue, 2011-12-13 at 20:19 +0400, Dmitry Eremin-Solenikov wrote:
>>>>>>> Currently sdk generation might fail with the following error:
>>>>>>> | Collected errors:
>>>>>>> |  * extract_archive: Cannot create symlink from ./var/log to
>>>>>>> 'volatile/log': File exists.
>>>>>>> ERROR: Function 'do_populate_sdk' failed
>>>>>>>
>>>>>>> This happens as consolekit package will include both
>>>>>>> /var/log/ConsoleKit and /var/volatile/log/ConsoleKit files:
>>>>>>> lumag@fangorn:~/OE-scripts$ dpkg-deb -c
>>>>>> build/tmp--eglibc/deploy/ipk/core2/consolekit_0.4.5-r7_core2.ipk  |
>>>>>> grep var
>>>>>>> drwxr-xr-x root/root         0 2011-12-07 22:12 ./var/ drwxr-xr-x
>>>>>>> root/root         0 2011-12-07 22:12 ./var/log/ drwxr-xr-x root/root
>>>>>>>         0 2011-12-07 22:12 ./var/log/ConsoleKit/ lrwxrwxrwx root/root
>>>>>>>       0 2011-12-07 22:12 ./var/run ->    volatile/run drwxr-xr-x root/root
>>>>>>>         0 2011-12-07 22:12 ./var/volatile/ drwxr-xr-x root/root         0
>>>>>>> 2011-12-07 22:12 ./var/volatile/log/ drwxr-xr-x root/root         0
>>>>>>> 2011-12-07 22:12 ./var/volatile/log/ConsoleKit/ drwxr-xr-x root/root
>>>>>>>         0 2011-12-07 22:12 ./var/volatile/run/ drwxr-xr-x root/root
>>>>>>>     0 2011-12-07 22:12 ./var/volatile/run/ConsoleKit/
>>>>>>>
>>>>>>> Inclusion of both log directories causes this error. Drop the
>>>>>>> /var/log/ConsoleKit in favour of /var/volatile/log
>>>>> Hi Dmitry,
>>>>> Could you please explain how and where the extract_archive error is caused?
>>>>> Where is /var/log linked to /var/volatile/log?
>>>>
>>>> I have tried building meta-toolchain-qte... and I got exactly the error
>>>> from my original message.
>>>>
>>>>>
>>>>> Do you mean RP's patch "consolekit: Fix ${localstatedir} race" didn't fix the issue?
>>>>> (I suspect so)
>>>>
>>>> Yes, I still had the issues even after PR's patch.
>>>>
>>>>>
>>>>>> This effectively reverts:
>>>>>> http://git.openembedded.org/openembedded-core/commit/?id=5608a748
>>>>>> af2c754f60137ab7c3010ccce6bf9e40 so I think this fixes one problem at
>>>>>> the expense of causing another. Koen: Any comments?
>>>>>
>>>>> Thanks,
>>>>> -- Dexuan
>>>
>>> I believe this is an installation ordering problem in opkg. If you apply
>>> my opkg patch (and the nativesdk one I just posted), I don't see this
>>> problem with meta-toolchain-gmae.
>>
>> I still see one problem. Without my patch I have both
>> /var/volatile/log/ConsoleKit and /var/log/ConsoleKit in consolekit
>> package. Won't that cause troubles?
>
> No, that wasn't the problem opkg was reporting. The problem opkg was
> reporting was that base-files hadn't installed first and its responsible
> for setting up the var symlinks.

That is not the problem that was reported by opkg. That is what I saw in 
the built package - /var/volatile/log/ConsoleKit and /var/log/ConsoleKit.

BTW, Koen. I've just built a consolekit package in Angstrom environment
with my patch applied and here is the interesting part:
lumag@fangorn:~/OE-scripts$ dpkg-deb -c 
build/tmp-angstrom-eglibc/deploy/ipk/armv5te/consolekit_0.4.5-r8_armv5te.ipk 
  | grep var
drwxr-xr-x root/root         0 2011-12-16 21:32 ./var/
drwxr-xr-x root/root         0 2011-12-16 21:32 ./var/run/
drwxr-xr-x root/root         0 2011-12-16 21:32 ./var/run/ConsoleKit/
drwxr-xr-x root/root         0 2011-12-16 21:32 ./var/log/
drwxr-xr-x root/root         0 2011-12-16 21:32 ./var/log/ConsoleKit/

So the package does include the /var/log/ConsoleKit even without 
explicit note on it. Could you please recheck your environment and try 
building/checking consolekit package with my patch applied?

Patch

diff --git a/meta/recipes-support/consolekit/consolekit_0.4.5.bb b/meta/recipes-support/consolekit/consolekit_0.4.5.bb
index 45f6ad3..9406d88 100644
--- a/meta/recipes-support/consolekit/consolekit_0.4.5.bb
+++ b/meta/recipes-support/consolekit/consolekit_0.4.5.bb
@@ -2,7 +2,7 @@  DESCRIPTION = "ConsoleKit is a framework for defining and tracking users, login
 HOMEPAGE="http://www.freedesktop.org/wiki/Software/ConsoleKit"
 BUGTRACKER="https://bugs.freedesktop.org/buglist.cgi?query_format=specific&product=ConsoleKit"
 
-PR = "r7"
+PR = "r8"
 
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
@@ -24,7 +24,7 @@  EXTRA_OECONF = "--with-systemdsystemunitdir=${base_libdir}/systemd/system/ \
                 ${@base_contains('DISTRO_FEATURES', 'pam', '--enable-pam-module --with-pam-module-dir=${base_libdir}/security', '--disable-pam-module', d)} \
                "
 
-FILES_${PN} += "${localstatedir}/log/ConsoleKit ${libdir}/ConsoleKit ${base_libdir} ${datadir}/dbus-1 ${datadir}/PolicyKit ${datadir}/polkit*"
+FILES_${PN} += "${libdir}/ConsoleKit ${base_libdir} ${datadir}/dbus-1 ${datadir}/PolicyKit ${datadir}/polkit*"
 FILES_${PN}-dbg += "${base_libdir}/security/.debug"
 
 PACKAGES =+ "pam-plugin-ck-connector"