[gentoo-dev] dosym function in binary package ebuilds
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
`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
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 >> >>