[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