[gentoo-dev] dosym function in binary package ebuilds

2022-07-22 Thread Fabulous Zhang Zheng
Good evening, dear list

Most binary package ebuilds have such a *dosym* statement in src_install(),
take net-im/signal-desktop-bin as an example:

dosym ../../opt/Signal/${MY_PN} /usr/bin/${MY_PN} (where the variable
is signal-desktop)

*dosym* creates a symlink of the binary under opt at /usr/bin/ according to
devmanaul.

I'm confused about the "../../", since S="${workdir}",  the correct way
seems to be "dosym  ./opt/Signal/xxx/usr/bin/xxx"

It's much appreciated if anyone could help   ; )


└── signal-desktop-bin-5.50.0
├── distdir
│   └── signal-desktop_5.50.0_amd64.deb ->
/var/cache/distfiles/signal-desktop_5.50.0_amd64.deb
├── files -> /var/db/repos/gentoo/net-im/signal-desktop-bin/files
├── homedir
├── temp
│   ├── build.log
│   ├── eclass-debug.log
│   ├── environment
│   └── logging
└── work
├── opt
└── usr


Re: [gentoo-dev] dosym function in binary package ebuilds

2022-07-22 Thread Alexey Zapparov
`dosym target link_name` creates a symlink. Under the hood it calls `ln`.
First argument may be either absolute path or relative to link_name.
Conventionally relative targets are used.

On Fri, 22 Jul 2022, 16:56 Fabulous Zhang Zheng, 
wrote:

> Good evening, dear list
>
> Most binary package ebuilds have such a *dosym* statement in
> src_install(), take net-im/signal-desktop-bin as an example:
>
> dosym ../../opt/Signal/${MY_PN} /usr/bin/${MY_PN} (where the variable
> is signal-desktop)
>
> *dosym* creates a symlink of the binary under opt at /usr/bin/ according
> to devmanaul.
>
> I'm confused about the "../../", since S="${workdir}",  the correct way
> seems to be "dosym  ./opt/Signal/xxx/usr/bin/xxx"
>
> It's much appreciated if anyone could help   ; )
>
>
> └── signal-desktop-bin-5.50.0
> ├── distdir
> │   └── signal-desktop_5.50.0_amd64.deb ->
> /var/cache/distfiles/signal-desktop_5.50.0_amd64.deb
> ├── files -> /var/db/repos/gentoo/net-im/signal-desktop-bin/files
> ├── homedir
> ├── temp
> │   ├── build.log
> │   ├── eclass-debug.log
> │   ├── environment
> │   └── logging
> └── work
> ├── opt
> └── usr
>
>


Re: [gentoo-dev] dosym function in binary package ebuilds

2022-07-22 Thread Fabulous Zhang Zheng
Dear Alexey,

thanks a lot for your reply, now I get it.

The path in 1st argument is relative to 2nd argument, and what I thought
before was that it's relative to S="${workdir}".

Best wishes



Alexey Zapparov  于2022年7月23日周六 04:50写道:

> `dosym target link_name` creates a symlink. Under the hood it calls `ln`.
> First argument may be either absolute path or relative to link_name.
> Conventionally relative targets are used.
>
> On Fri, 22 Jul 2022, 16:56 Fabulous Zhang Zheng, <
> zheng1181822...@gmail.com> wrote:
>
>> Good evening, dear list
>>
>> Most binary package ebuilds have such a *dosym* statement in
>> src_install(), take net-im/signal-desktop-bin as an example:
>>
>> dosym ../../opt/Signal/${MY_PN} /usr/bin/${MY_PN} (where the variable
>> is signal-desktop)
>>
>> *dosym* creates a symlink of the binary under opt at /usr/bin/ according
>> to devmanaul.
>>
>> I'm confused about the "../../", since S="${workdir}",  the correct way
>> seems to be "dosym  ./opt/Signal/xxx/usr/bin/xxx"
>>
>> It's much appreciated if anyone could help   ; )
>>
>>
>> └── signal-desktop-bin-5.50.0
>> ├── distdir
>> │   └── signal-desktop_5.50.0_amd64.deb ->
>> /var/cache/distfiles/signal-desktop_5.50.0_amd64.deb
>> ├── files -> /var/db/repos/gentoo/net-im/signal-desktop-bin/files
>> ├── homedir
>> ├── temp
>> │   ├── build.log
>> │   ├── eclass-debug.log
>> │   ├── environment
>> │   └── logging
>> └── work
>> ├── opt
>> └── usr
>>
>>