<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">Am 07.12.2020 um 08:10 schrieb Steve Lhomme <<a href="mailto:robux4@ycbcr.xyz" class="">robux4@ycbcr.xyz</a>>:</div><br class="Apple-interchange-newline"><div class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">On 2020-12-06 17:43, Felix Paul Kühne wrote:</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class="">Hello,<br class=""><blockquote type="cite" class="">Am 30.11.2020 um 19:06 schrieb David Fuhrmann <<a href="mailto:david.fuhrmann@gmail.com" class="">david.fuhrmann@gmail.com</a>>:<br class=""><br class=""><blockquote type="cite" class="">Am 29.11.2020 um 20:12 schrieb Felix Paul Kühne <<a href="mailto:fkuehne@videolan.org" class="">fkuehne@videolan.org</a>>:<br class=""><br class="">From: Felix Paul Kühne <<a href="mailto:felix@feepk.net" class="">felix@feepk.net</a>><br class=""><br class="">---<br class="">extras/package/macosx/package.mak | 6 +++++-<br class="">1 file changed, 5 insertions(+), 1 deletion(-)<br class=""><br class="">diff --git a/extras/package/macosx/package.mak b/extras/package/macosx/package.mak<br class="">index 1423d7874e..0e60cc838a 100644<br class="">--- a/extras/package/macosx/package.mak<br class="">+++ b/extras/package/macosx/package.mak<br class="">@@ -61,7 +61,11 @@ endif<br class=""><span class="Apple-tab-span" style="white-space: pre;">  </span>## Install binary<br class=""><span class="Apple-tab-span" style="white-space: pre;">    </span>cp $(prefix)/bin/vlc $@/Contents/MacOS/VLC<br class=""><span class="Apple-tab-span" style="white-space: pre;">   </span>## Generate plugin cache<br class="">-<span class="Apple-tab-span" style="white-space: pre;">    </span>bin/vlc-cache-gen $@/Contents/MacOS/plugins<br class="">+<span class="Apple-tab-span" style="white-space: pre;"> </span>if test "$(build)" = "$(host)"; then \<br class="">+<span class="Apple-tab-span" style="white-space: pre;">  </span><span class="Apple-tab-span" style="white-space: pre;">  </span>bin/vlc-cache-gen $@/Contents/MacOS/plugins \<br class=""></blockquote><br class="">This patch has syntax issues (missing ";" ).<br class=""><br class=""><blockquote type="cite" class="">+<span class="Apple-tab-span" style="white-space: pre;">    </span>else \<br class="">+<span class="Apple-tab-span" style="white-space: pre;">      </span><span class="Apple-tab-span" style="white-space: pre;">  </span>echo "Cross-compilation: cache generation skipped!" ; \<br class="">+<span class="Apple-tab-span" style="white-space: pre;">   </span>fi<br class=""><span class="Apple-tab-span" style="white-space: pre;">   </span>find $@ -type d -exec chmod ugo+rx '{}' \;<br class=""><span class="Apple-tab-span" style="white-space: pre;">   </span>find $@ -type f -exec chmod ugo+r '{}' \;<br class=""><br class=""></blockquote><br class="">Also, we need to generate the plugin cache, in my opinion, prior / during the release signing process. Otherwise the bundle might get corrupted (and has an invalid signature) once a plugin cache is (maybe) added later.<br class=""></blockquote>Ideally, the plugin cache should not be stored in the plugins folder within the application bundle but some place else such as ~/Library/Caches.<br class=""></blockquote><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">That means the plugin cache would be shared among all versions of VLC you run on your system. That doesn't seem right.</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><blockquote type="cite" style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><blockquote type="cite" class="">Is there a way to build vlc-cache-gen as a build-tool, so it can be executed on x86?<br class=""></blockquote>No, because vlc-cache-gen needs to load the plugins to generate the cache. When executing a x86 binary on plugins compiled for ARM on a x86 Mac, it will tell "No plugins in $PATH“ and create an empty cache as it cannot run the plugins.<br class="">FYI, I ran a small test on my ARM Mac:<br class="">time vlc<span class="Apple-converted-space"> </span><a href="vlc://quit" class="">vlc://quit</a><span class="Apple-converted-space"> </span>is 0,33s with a cache and 0,38s without. so yes, there is a speed advantage, but it’s small, so shipping the first VLC-Mac for ARM without a cache could be „fast enough“. (FYI, in translation mode, the x86_64 binary takes 0,47s.)<br class="">The other alternative is would be to ship an ARM binary that is compiled natively on an ARM Mac and therefore includes a cache.<br class="">If we decide to ship a binary without a cache, it seems to be generated never (and therefore the package will not be invalidated) unless the user decides to execute the app with —reset-plugins-cache.<br class=""></blockquote><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">It might be possible to detect the first run (or a missing cache) and generate the cache then.</span><br style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;" class=""></div></blockquote><div><br class=""></div><div>No application shall modify any file inside the application bundle after installation, otherwise the signature will become invalid. And this might potentially cause other runtime problems later on, like broken security permissions, etc.</div><div><br class=""></div><div>So generating the cache after installation works only if the cache is stored outside of the application bundle. But I think this idea does not easily work as mentioned above, and as also discussed a while ago if I remember.</div><div><br class=""></div>Currently the cache is (re)generated during the final release signing step (it must be generated after the libraries / plugins are signed, and before the actual plugins.dat file is signed as well). So one solution could be to do the release signing on an arm mac (which makes the release process more restricted and harder to do).</div><div><br class=""></div><div>Or we ship without cache for now.</div><div><br class=""></div><div>BR. David</div></body></html>