pkgsrc-Users archive

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

Re: wip/freerdp (2.1.2): run time fatal on netbsd-9.1



On Sun, 2 May 2021, Jaromír Dole�Mek wrote:
Le sam. 1 mai 2021 à 20:48, Jaromír Doleček
<jaromir.dolecek%gmail.com@localhost> a écrit :

Le sam. 1 mai 2021 à 18:35, <is%netbsd.org@localhost> a écrit :
xfreerdp2 as built out of wip/freerdp within 2020Q4 build tree, netbsd/amd64 9.1, connects, asks for password, creates an X window and closes it immediately with
[18:25:17:240] [9163:92a72000] [ERROR][com.winpr.synch.timer] - InitializeWaitableTimer: os specific implementation is missing

Detailed message trail below.

TL;DR freerdp timers support only Linux and macOS.

InitializeWaitableTimer() uses Linux-only timerfd_create(2) when it
needs a timer with completion routine, and if there is not one, it
does some custom logic for macOS. If completion routine is not needed,
it optionally uses timer_create(3), which NetBSD does support. Both
branches have the same message.

Just to confirm which branch it is hitting, can you send an excerpt
from the freerdp configure, see if it found the timer_create(),
timer_delete(), timer_settime() and timer_getting()?

FYI I've updated wip/freerdp to 2.3.2, but sadly the timer code seems
to be the same as in 2.0.0rc4.

I got confused by net/freerdp2 vs wip/freerdp.

I've actually now removed the wip one, my upgrade was not really
working due to some PLIST/compile issues on NetBSD anyway, and
net/freerdp2 is a newer version than original wip/freerdp 2.0.0rc4.

I'm now looking at what is going on there. I confirmed it's taking the
'argument' path, i.e. one requiring timerfd_create(2) on Linux, or
macos.

Apparently FreeBSD has this in ports without special patches for this
code, so I'm trying to figure what exactly triggers the failure on
NetBSD.

Eventually I want to update net/freerdp2 to the newest version, and
make it work on macOS too, but that after it actually works on NetBSD.

On FreeBSD, the magic happens here:
https://github.com/FreeRDP/FreeRDP/blob/2.1.1/winpr/libwinpr/synch/CMakeLists.txt#L31

devel/libepoll-shim (https://github.com/jiixyj/epoll-shim) provides
the timerfd implementation.

--
Stephen


Home | Main Index | Thread Index | Old Index