[vlc-devel] [PATCH 2/2] macosx: add a nag screen when executing the Intel binary on ARM-64
Marvin Scholz
epirat07 at gmail.com
Mon Nov 30 19:37:54 CET 2020
On 30 Nov 2020, at 18:48, Felix Paul Kühne wrote:
> Hi Marvin,
>
>> Am 30.11.2020 um 17:42 schrieb Marvin Scholz <epirat07 at gmail.com>:
>>
>> On 30 Nov 2020, at 17:20, Felix Paul Kühne wrote:
>>
>>> From: Felix Paul Kühne <felix at feepk.net>
>>>
>>> ---
>>> modules/gui/macosx/VLCMain.m | 40
>>> +++++++++++++++++++++++++++++++++++-
>>> 1 file changed, 39 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/modules/gui/macosx/VLCMain.m
>>> b/modules/gui/macosx/VLCMain.m
>>> index 3e08c48da9..6668ea456d 100644
>>> --- a/modules/gui/macosx/VLCMain.m
>>> +++ b/modules/gui/macosx/VLCMain.m
>>> @@ -1,7 +1,7 @@
>>> /*****************************************************************************
>>> * VLCMain.m: MacOS X interface module
>>> *****************************************************************************
>>> - * Copyright (C) 2002-2016 VLC authors and VideoLAN
>>> + * Copyright (C) 2002-2020 VLC authors and VideoLAN
>>> * $Id$
>>> *
>>> * Authors: Derk-Jan Hartman <hartman at videolan.org>
>>> @@ -35,6 +35,7 @@
>>>
>>> #include <stdlib.h> /*
>>> malloc(), free() */
>>> #include <string.h>
>>> +#include <sys/sysctl.h>
>>> #include <vlc_common.h>
>>> #include <vlc_atomic.h>
>>> #include <vlc_actions.h>
>>> @@ -319,6 +320,43 @@ -
>>> (void)applicationDidFinishLaunching:(NSNotification *)aNotification
>>> if (kidsAround && var_GetBool(p_playlist, "playlist-autostart"))
>>> playlist_Control(p_playlist, PLAYLIST_PLAY, true);
>>> PL_UNLOCK;
>>> +
>>> + /* on macOS 11 and later, check whether the user attempts to
>>> deploy
>>> + * the x86_64 binary on ARM-64 - if yes, run a nag screen */
>>> + if (OSX_BIGSUR_AND_HIGHER) {
>>> + if ([self processIsTranslated] > 0) {
>>> + msg_Warn(p_intf, "Process is translated!");
>>> + [self runNagScreen];
>>> + }
>>> + }
>>
>> I think it makes sense to log it, but I am against adding a nag
>> screen
>> for this, especially without a way to turn it off.
>
> Should we add a third choice aka „never annoy again“?
>
>>
>>> +}
>>> +
>>> +- (int)processIsTranslated
>>> +{
>>> + int ret = 0;
>>> + size_t size = sizeof(ret);
>>> + if (sysctlbyname("sysctl.proc_translated", &ret, &size, NULL, 0)
>>> == -1) {
>>> + if (errno == ENOENT)
>>> + return 0;
>>> + return -1;
>>> + }
>>> + return ret;
>>> +}
>>> +
>>> +- (void)runNagScreen
>>> +{
>>> + NSAlert *alert = [NSAlert alertWithMessageText:_NS("VLC runs in
>>> translation mode")
>>> + defaultButton:_NS("Download
>>> native version")
>>
>> The button should be titled "Open Website" as that is what it does.
>
> Good point.
>
> In general, I would favor such a screen because people will download
> the wrong version, they just will, especially if we decide not to
> release a universal binary of VLC as the major means of distribution
> for macOS. The speed penalty is significant when using the Intel
> binary on ARM-64.
>
> Another option would be to silently bridge Intel-binary installations
> on ARM-Macs for the subsequent release of .12 to their native binary
> using Sparkle. We could also do both.
>
> Opinions wanted :)
>
> Cheers,
As long as we include a checkbox to do not ask again, that seems fine.
But especially as long as we are not 100% feature complete with things
like
bluray there can still be a good reason to want to run the intel slice
or
binary, even with a performance penalty (even if just for testing
something
against the ARM slice to confirm it works/does not work).
>
> Felix
>
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
More information about the vlc-devel
mailing list