Bug 7539 - Session not displayed on macOS 11 (Big Sur)
Summary: Session not displayed on macOS 11 (Big Sur)
Status: CLOSED FIXED
Alias: None
Product: ThinLinc
Classification: Unclassified
Component: Client platforms (show other bugs)
Version: 4.12.0
Hardware: Macintosh macOS
: P2 Major
Target Milestone: 4.12.1
Assignee: Pierre Ossman
URL:
Keywords: nikle_tester, relnotes
Depends on:
Blocks:
 
Reported: 2020-08-07 16:33 CEST by Mount-first Ng
Modified: 2021-01-21 13:46 CET (History)
5 users (show)

See Also:
Acceptance Criteria:


Attachments
Blank log in window (102.19 KB, image/png)
2020-08-07 16:33 CEST, Mount-first Ng
Details
This is happening again on Big Sur 11.0.1 (162.88 KB, image/png)
2020-11-16 22:53 CET, Nikolai Fetissov
Details

Description Mount-first Ng 2020-08-07 16:33:56 CEST
Created attachment 963 [details]
Blank log in window

Apple has just released macOS Big Sur public beta. I understand this is just a beta but when I use ThinLinc on this version of macOS, ThinLinc's log in window or the first window is blank. I tried to guess to location of the server text field, user name field and password field and typed the proper information in. I was able to log on to the target server but once I connected to the ThinLinc server, the window that popped up was also blank. Since I was connected to a CentOS 7 server, this window should have asked me whether I wanted to use the Classic desktop. Please check. Thanks.
Comment 1 Pierre Ossman cendio 2020-08-26 10:39:15 CEST
Do you think you could share ~/.thinlinc/tlclient.log with us? Hopefully there is some error message giving us an idea of what has gone wrong.
Comment 5 Pierre Ossman cendio 2020-08-31 09:36:57 CEST
A user has reported that this issue only affects ThinLinc 4.10.0 or newer. This makes it likely that it is the new rendering pipeline (bug 7235) that caused this.
Comment 6 Pierre Ossman cendio 2020-08-31 12:44:08 CEST
Scratch that last comment. The reporter also states that even the login window is blank. So it must be a general FLTK issue and not the new rendering pipeline (which is only used for the session).
Comment 7 Pierre Ossman cendio 2020-08-31 12:44:45 CEST
I've managed to get an extra machine here and installed Big Sur on it. I can confirm the same issue here, i.e. the login window is blank. I can also see the same with upstream TigerVNC.
Comment 8 Pierre Ossman cendio 2020-09-01 16:22:09 CEST
So the problem turns out to be that Apple has dropped the function NSWindow:graphicsContext that FLTK needs to render things. They've completely removed it from the current NSWindow page (along with a bunch of other methods):

https://developer.apple.com/documentation/appkit/nswindow

However if you search for it you can still find the method page:

https://developer.apple.com/documentation/appkit/nswindow/1419713-graphicscontext

You can also check older versions using wayback to see it was originally fully documented:

https://web.archive.org/web/20170921021925/https://developer.apple.com/documentation/appkit/nswindow

The page claims that it was deprecated as of macOS 10.15, but evidently it works fine there.

To make things extra interesting, FLTK removed use of this function in the upstream 1.4 branch in favour of other APIs. They backported those changes to 1.3 in commit 4c8b7c99ea5a5d082265320d2d5e834a4da5ac00 (based on commit dd8e60a9563489bce47b3c507b8b70105e871af5). However someone missed the part with this specific call.

We'll try to add that missing backport and see how that behaves.
Comment 9 Pierre Ossman cendio 2020-09-01 16:22:50 CEST
If Apple is doing some spring cleaning in macOS 11 then we should probably do more testing to see if anything else is broken.
Comment 13 Pierre Ossman cendio 2020-09-02 14:27:27 CEST
Seems to work fine now. Tested on macOS 10.15.6 and macOS 11 beta 5.
Comment 15 Niko Lehto cendio 2020-09-07 13:00:59 CEST
I could reproduce this issue using 4.12.0 on macOS 11 beta 5.

Verified this fix on nightly build 6588. Tested:

                 | macOS 11 | macOS 10.15.6
Continous updates|  ✔️       |  ✔️
Sound redirection|  ✔️       |  ✔️
Input            |  ✔️       |  ✔️

Also verified that the same worked with nightly build on fedora 31.
Relnotes looks good.
Comment 16 Peadar 2020-11-16 16:23:36 CET
Hi there,

I have this issue.

Is there any resolution to this problem?

Thanks
Comment 17 Samuel Mannehed cendio 2020-11-16 16:40:15 CET
Hi Peadar, no ThinLinc release includes a fix for this yet. You can try the nightly build client bundle from our download page which does contain this fix:

https://www.cendio.com/thinlinc/download
Comment 18 Peadar 2020-11-16 16:50:16 CET
(In reply to Samuel Mannehed from comment #17)
> Hi Peadar, no ThinLinc release includes a fix for this yet. You can try the
> nightly build client bundle from our download page which does contain this
> fix:
> 
> https://www.cendio.com/thinlinc/download

Great thanks!

That seems to work. However a bit more laggy on my end.

Thanks,
Peadar
Comment 19 Nikolai Fetissov 2020-11-16 22:53:20 CET
Created attachment 967 [details]
This is happening again on Big Sur 11.0.1

Blank login dialogue on macOS 11.0.1 with build 6517
Comment 20 toms 2020-12-06 22:05:30 CET
I have the same issue.  Blank login dialogue on macOS Big Sur 11.0.1 with version ThinLinc Client 4.12.0 (6517).  Any update?
Comment 21 toms 2020-12-06 22:22:03 CET
(In reply to toms from comment #20)
> I have the same issue.  Blank login dialogue on macOS Big Sur 11.0.1 with
> version ThinLinc Client 4.12.0 (6517).  Any update?

FYI, I realized that this wasn't the latest nightly build.  You have to scroll down to the "Nightly build clients (development version)" section, and download the package (which includes all the different versions for different OSes).  In my case the file was named: "tl-4.12.0post-clients", and within that was a folder: "client-macos", and within that was "tl-4.12.0post_6678-client-macos.iso" (possibly specific to last night's build?).  To get this to mount, you need to click twice to open.  It will complain that it wasn't officially signed and recognized by Apple, and gives you options to "cancel" or "move to trash".  Press "cancel", then open the MacOS system preferences, go to "Security & Privacy", select the "General" tab, and at the bottom press "open anyway". After confirming you really want to do this, it should work.

After installing this nightly build, it ThinLinc Client worked (I could see the login dialog boxes, etc.

Note You need to log in before you can comment on or make changes to this bug.