Patchwork ncurses: use ln -r to generate relative symlink

login
register
mail settings
Submitter Ross Burton
Date Feb. 28, 2014, 6:28 p.m.
Message ID <1393612134-15665-1-git-send-email-ross.burton@intel.com>
Download mbox | patch
Permalink /patch/67759/
State Accepted
Commit f363c361fb0f3b7eaa82a4d6f125be5cdc0375fe
Headers show

Comments

Ross Burton - Feb. 28, 2014, 6:28 p.m.
Instead of using a Python do_install() and calling
oe.path.make_relative_symlink, just pass -r to ln to generate a relative symlink
directly.

Signed-off-by: Ross Burton <ross.burton@intel.com>
---
 meta/recipes-core/ncurses/ncurses.inc |   10 ++--------
 1 file changed, 2 insertions(+), 8 deletions(-)
Chong.Lu@windriver.com - March 3, 2014, 3:25 a.m.
On 03/01/2014 02:28 AM, Ross Burton wrote:
> Instead of using a Python do_install() and calling
> oe.path.make_relative_symlink, just pass -r to ln to generate a relative symlink
> directly.
>
> Signed-off-by: Ross Burton <ross.burton@intel.com>
> ---
>   meta/recipes-core/ncurses/ncurses.inc |   10 ++--------
>   1 file changed, 2 insertions(+), 8 deletions(-)
>
> diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc
> index a94466a..835ecc3 100644
> --- a/meta/recipes-core/ncurses/ncurses.inc
> +++ b/meta/recipes-core/ncurses/ncurses.inc
> @@ -147,12 +147,7 @@ _install_cfgs = "\
>     PKG_CONFIG_LIBDIR='${libdir}/pkgconfig' \
>   "
>   
> -python do_install () {
> -    bb.build.exec_func("shell_do_install", d)
> -    oe.path.make_relative_symlink(d.expand("${D}${libdir}/libtinfo.so"))
> -}
> -
> -shell_do_install() {
> +do_install() {
>           # Order of installation is important; widec installs a 'curses.h'
>           # header with more definitions and must be installed last hence.
>           # Compatibility of these headers will be checked in 'do_test()'.
> @@ -226,8 +221,7 @@ shell_do_install() {
>   
>               mv ${D}${libdir}/libtinfo.so.* ${D}${base_libdir}
>               rm ${D}${libdir}/libtinfo.so
> -            # We'll turn this into a relative symlink after do_install returns
> -            ln -sf ${D}${base_libdir}/libtinfo.so.5 ${D}${libdir}/libtinfo.so
> +            ln -rsf ${D}${base_libdir}/libtinfo.so.5 ${D}${libdir}/libtinfo.so
Hi Ross,

In Ubuntu 12.04, `ln' command doesn't have '-r' option.
we will get following error during building ncurses
     ln: invalid option -- 'r'

Best Regards
Chong
>           fi
>   
>           oe_multilib_header curses.h
Khem Raj - March 3, 2014, 3:29 a.m.
On Mar 2, 2014, at 7:25 PM, Lu Chong <Chong.Lu@windriver.com> wrote:

> 
> On 03/01/2014 02:28 AM, Ross Burton wrote:
>> Instead of using a Python do_install() and calling
>> oe.path.make_relative_symlink, just pass -r to ln to generate a relative symlink
>> directly.
>> 
>> Signed-off-by: Ross Burton <ross.burton@intel.com>
>> ---
>>  meta/recipes-core/ncurses/ncurses.inc |   10 ++--------
>>  1 file changed, 2 insertions(+), 8 deletions(-)
>> 
>> diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc
>> index a94466a..835ecc3 100644
>> --- a/meta/recipes-core/ncurses/ncurses.inc
>> +++ b/meta/recipes-core/ncurses/ncurses.inc
>> @@ -147,12 +147,7 @@ _install_cfgs = "\
>>    PKG_CONFIG_LIBDIR='${libdir}/pkgconfig' \
>>  "
>>  -python do_install () {
>> -    bb.build.exec_func("shell_do_install", d)
>> -    oe.path.make_relative_symlink(d.expand("${D}${libdir}/libtinfo.so"))
>> -}
>> -
>> -shell_do_install() {
>> +do_install() {
>>          # Order of installation is important; widec installs a 'curses.h'
>>          # header with more definitions and must be installed last hence.
>>          # Compatibility of these headers will be checked in 'do_test()'.
>> @@ -226,8 +221,7 @@ shell_do_install() {
>>                mv ${D}${libdir}/libtinfo.so.* ${D}${base_libdir}
>>              rm ${D}${libdir}/libtinfo.so
>> -            # We'll turn this into a relative symlink after do_install returns
>> -            ln -sf ${D}${base_libdir}/libtinfo.so.5 ${D}${libdir}/libtinfo.so
>> +            ln -rsf ${D}${base_libdir}/libtinfo.so.5 ${D}${libdir}/libtinfo.so
> Hi Ross,
> 
> In Ubuntu 12.04, `ln' command doesn't have '-r' option.
> we will get following error during building ncurses
>    ln: invalid option -- ‘r'


count debian in too.

> 
> Best Regards
> Chong
>>          fi
>>            oe_multilib_header curses.h
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
Fathi Boudra - March 3, 2014, 9:07 a.m.
Same here, daily build failed.

Builders are using latest Ubuntu LTS shipped with coreutils 8.13 version.
--relative is introduced in coreutils 8.16:
http://git.savannah.gnu.org/gitweb/?p=coreutils.git;a=commit;h=15b8318e93a947d1422e9a927f699eda1085cf0d

On 3 March 2014 05:29, Khem Raj <raj.khem@gmail.com> wrote:
>
> On Mar 2, 2014, at 7:25 PM, Lu Chong <Chong.Lu@windriver.com> wrote:
>
>>
>> On 03/01/2014 02:28 AM, Ross Burton wrote:
>>> Instead of using a Python do_install() and calling
>>> oe.path.make_relative_symlink, just pass -r to ln to generate a relative symlink
>>> directly.
>>>
>>> Signed-off-by: Ross Burton <ross.burton@intel.com>
>>> ---
>>>  meta/recipes-core/ncurses/ncurses.inc |   10 ++--------
>>>  1 file changed, 2 insertions(+), 8 deletions(-)
>>>
>>> diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc
>>> index a94466a..835ecc3 100644
>>> --- a/meta/recipes-core/ncurses/ncurses.inc
>>> +++ b/meta/recipes-core/ncurses/ncurses.inc
>>> @@ -147,12 +147,7 @@ _install_cfgs = "\
>>>    PKG_CONFIG_LIBDIR='${libdir}/pkgconfig' \
>>>  "
>>>  -python do_install () {
>>> -    bb.build.exec_func("shell_do_install", d)
>>> -    oe.path.make_relative_symlink(d.expand("${D}${libdir}/libtinfo.so"))
>>> -}
>>> -
>>> -shell_do_install() {
>>> +do_install() {
>>>          # Order of installation is important; widec installs a 'curses.h'
>>>          # header with more definitions and must be installed last hence.
>>>          # Compatibility of these headers will be checked in 'do_test()'.
>>> @@ -226,8 +221,7 @@ shell_do_install() {
>>>                mv ${D}${libdir}/libtinfo.so.* ${D}${base_libdir}
>>>              rm ${D}${libdir}/libtinfo.so
>>> -            # We'll turn this into a relative symlink after do_install returns
>>> -            ln -sf ${D}${base_libdir}/libtinfo.so.5 ${D}${libdir}/libtinfo.so
>>> +            ln -rsf ${D}${base_libdir}/libtinfo.so.5 ${D}${libdir}/libtinfo.so
>> Hi Ross,
>>
>> In Ubuntu 12.04, `ln' command doesn't have '-r' option.
>> we will get following error during building ncurses
>>    ln: invalid option -- 'r'
>
>
> count debian in too.
>
>>
>> Best Regards
>> Chong
>>>          fi
>>>            oe_multilib_header curses.h
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
Ross Burton - March 3, 2014, 11:50 a.m.
On 3 March 2014 03:29, Khem Raj <raj.khem@gmail.com> wrote:
> count debian in too.

I wrote this patch on Debian stable...

But oh well.

Ross
Khem Raj - March 4, 2014, 11:48 p.m.
On Mon, Mar 3, 2014 at 3:50 AM, Burton, Ross <ross.burton@intel.com> wrote:
> I wrote this patch on Debian stable...

yeah I jumped in too quick, master was debian, but this failed slave
node was ubuntu 12.04

Patch

diff --git a/meta/recipes-core/ncurses/ncurses.inc b/meta/recipes-core/ncurses/ncurses.inc
index a94466a..835ecc3 100644
--- a/meta/recipes-core/ncurses/ncurses.inc
+++ b/meta/recipes-core/ncurses/ncurses.inc
@@ -147,12 +147,7 @@  _install_cfgs = "\
   PKG_CONFIG_LIBDIR='${libdir}/pkgconfig' \
 "
 
-python do_install () {
-    bb.build.exec_func("shell_do_install", d)
-    oe.path.make_relative_symlink(d.expand("${D}${libdir}/libtinfo.so"))
-}
-
-shell_do_install() {
+do_install() {
         # Order of installation is important; widec installs a 'curses.h'
         # header with more definitions and must be installed last hence.
         # Compatibility of these headers will be checked in 'do_test()'.
@@ -226,8 +221,7 @@  shell_do_install() {
 
             mv ${D}${libdir}/libtinfo.so.* ${D}${base_libdir}
             rm ${D}${libdir}/libtinfo.so
-            # We'll turn this into a relative symlink after do_install returns
-            ln -sf ${D}${base_libdir}/libtinfo.so.5 ${D}${libdir}/libtinfo.so
+            ln -rsf ${D}${base_libdir}/libtinfo.so.5 ${D}${libdir}/libtinfo.so
         fi
 
         oe_multilib_header curses.h