pkgsrc-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: 2025Q3: gstreamer1 linker error on Slackware 15



On 25/11/30 09:10AM, Greg Troxel wrote:
> 
> My somewhat fuzzy impression is that tirpc is in base on many systems
> and has been ejected on many GNU/Linux systems.
> 

RPC is described in RFC 5531, published after Sun relicensed the API
as 3-clause-bsd in 2009. 
https://www.rfc-editor.org/rfc/rfc5531 

From my understanding: 

* On BSDs and macOS rpc(3) is embedded in the C library.
* SunOS has the original Sun RPC which requires linking against libnls,
  and is also transport independent.
* AIX, SCO and QNX provide a compatible interface which I haven't
  investigated in detail (might just be the same port of Sun RPC). 
* Contemporary Linux generally lacks RPC support, as removed from glibc
  2.26 in 2017. 
  https://lists.gnu.org/archive/html/info-gnu/2017-08/msg00000.html
  https://wiki.gentoo.org/wiki/Project:Toolchain/Glibc_2.26_porting_notes/RPC_implementation

Taking all this into consideration, our only supported platform
requiring libtirpc appears to be Linux (+Cygwin?; +Haiku?).

Regarding issues with RPC on Slackware, see:
https://www.linuxquestions.org/questions/slackware-14/glibc-rpcsvc-vanished-in-l-glibc-2-14-1-i486-2-txz-913702-print/ 

Libtirpc requires patching to be able to compile outside of Linux, as it
invokes the mutex(5) kernel API found in linux/mutex.h.

> Thus the questions are
>   - how does pkgsrc view tirpc - part of base, or a packaget to be
>     depended on

It's part of base on most systems, so should it perhaps be addressed inside a  
dedicated mk/rpc.builtin.mk file? 

>   - does gstreamer1 need tirpc (the implementation, not a particular
>     library name) on all platforms, or special for Linux?

I'm positive RPC support is required regardless of the target platform. 

>   - if gstreamer1 is using tirpc, then why isn't it buildlinked all the
>     time?

I just updated the builtin.mk file in devel/libtirpc to detect a native
RPC API.

>   - does a bl3 line on libtirpc on e.g. NetBSD result in no additional
>     dependencies, because it's built in?

It seems to work now, I attempted to buildlink libtirpc unconditionally
inside gstreamer1 and sysutils/fam and it resulted in no additional
dependencies. 

I think wm/cde should buildlink it too. 

> 
> So while you are on the right track and we should figure out how to
> solve your problem, I'd like to see it done in sound way that maximizes
> the odds of also fixing this, and not breaking anything, on all the
> platforms not tested on.

At this point my take is that we either:

* fix libtirpc to build on any platform so we don't have to forcibly
  rely on a built-in implementation (which on older Unices may result in
  incompatibilities)
* Further enhance the builtin.mk in libtirpc so that it covers all
  built-in implementations and informs the user if no compatible API was
  found outside of Linux.

Also, take into account that RPC belongis to the past and I don't
think anybody is developing new software using it.
  that a 


-- 
PVO | https://retrobsd.ddns.net


Home | Main Index | Thread Index | Old Index