Sync docs: macOS build info & French translation

h/t Mark & Jacques
This commit is contained in:
Bill Kendrick 2023-08-20 09:27:15 -07:00
parent 89a8cc5efe
commit d570f12f0b
133 changed files with 1094 additions and 1400 deletions

View file

@ -665,8 +665,8 @@ Simply, run:
copied to /Applications. To create the DMG file for distribution, use 'make
TuxPaint.dmg'.
Additional steps may be required when building for the Apple Silicon. See
"Building for Apple Silicon" below.
Additional steps are required when building a Unviersal Binary. See "Building a
Universal Binary" below.
Known Issues
@ -749,36 +749,6 @@ they can only be built to run natively on the hardware on which they were
built. See "Building a Universal Binary" below for instructions on how to build
Tux Paint as a Universal Binary.
Building for Apple Silicon
macOS for Apple Silicon requires all native Apple Silicon applications be
signed, even if it is signed "ad-hoc" (anonymously). Because of this, compilers
that produce native Apple Silicon applications sign all produced binaries and
libraries as a part of the compilation process.^* However, the Tux Paint
compilation process modifies the libraries to be modular (using
install_name_tool) so they can be added into the application bundle, which has
the unfortunate side effect of breaking the signature. This can be addressed by
signing the application bundle ad-hoc (example below) or using your own Apple
Developer Identity if you have one. The DMG file, if needed, must be created
after signing the App Bundle so the DMG file is created with signed App Bundle:
$ codesign -s - TuxPaint.app
$ make TuxPaint.dmg
^* For more information on the code signing requirements on the Apple Silicon,
see https://developer.apple.com/documentation/macos-release-notes/
macos-big-sur-11_0_1-universal-apps-release-notes#:~:text=
New%20in%20macOS,pass%20through%20Gatekeeper.
If you get an error that the application bundle is already signed, remove it
before signing:
$ codesign --remove-signature TuxPaint.app
If you plan to combine the Apple Silicon bundle with the Intel CPU bundle to
produce the Universal bundle, the code signing must be done after they are
combined. See "Building a Universal Binary" below.
Building a Universal Binary
To build Tux Paint as a Universal Binary, compile Tux Paint for the Intel CPU
@ -786,12 +756,9 @@ and the Apple Silicon separately first. Then rename the app bundle for the
Intel CPU to TuxPaint-x86_64.app, and the bundle for the Apple Silicon to
TuxPaint-arm64.app, copy the app bundle from the Intel machine to the Apple
Silicon machine, then use the provided build-universal.sh script to combine the
two application bundles as below. The produced bundle must be signed (see
"Building for Apple Silicon" above for more details). The DMG file, if
required, must be built after the signing:
two application bundles as below. The DMG file can be built afterwards:
$ macos/build-universal.sh
$ codesign -s - TuxPaint.app
$ make TuxPaint.dmg
-----------------------------------------------------------------------

View file

@ -1047,7 +1047,7 @@
... to create the <code>TuxPaint.app</code> application bundle that can be run in-place or copied to <code>/Applications</code>. To create the DMG file for distribution, use 'make TuxPaint.dmg'. </p>
<p>
Additional steps may be required when building for the Apple Silicon. See "Building for Apple Silicon" below. </p>
Additional steps are required when building a Unviersal Binary. See "Building a Universal Binary" below. </p>
</section><!-- H3: How to Build -->
<section class="indent"><!-- H3: Known Issues -->
@ -1127,28 +1127,6 @@
As of this writing, all libraries Tux Paint requires from MacPorts can be recompiled in this manner to run on macOS 10.10 Yosemite and later on Intel CPUs, and macOS 11.0 Big Sur and later on Apple Silicon. Unfortunately, although MacPorts has the option to enable the building of universal libraries, several libraries Tux Paint require cannot be built as universal libraries so they can only be built to run natively on the hardware on which they were built. See "Building a Universal Binary" below for instructions on how to build Tux Paint as a Universal Binary. </p>
</section><!-- H3: Recompiling MacPorts -->
<section class="indent"><!-- H3: Building for Apple Silicon -->
<header>
<h3>
Building for Apple Silicon </h3>
</header>
<p>macOS for Apple Silicon requires all native Apple Silicon applications be signed, even if it is signed "ad-hoc" (anonymously). Because of this, compilers that produce native Apple Silicon applications sign all produced binaries and libraries as a part of the compilation process.<sup>*</sup> However, the Tux Paint compilation process modifies the libraries to be modular (using <code>install_name_tool</code>) so they can be added into the application bundle, which has the unfortunate side effect of breaking the signature. This can be addressed by signing the application bundle ad-hoc (example below) or using your own Apple Developer Identity if you have one. The DMG file, if needed, must be created after signing the App Bundle so the DMG file is created with signed App Bundle: <blockquote>
<code>
$ <strong>codesign</strong> -s - TuxPaint.app<br/>
$ <strong>make</strong> TuxPaint.dmg
</code>
</blockquote>
<sup>*</sup> For more information on the code signing requirements on the Apple Silicon, see <a href="https://developer.apple.com/documentation/macos-release-notes/macos-big-sur-11_0_1-universal-apps-release-notes#:~:text=New%20in%20macOS,pass%20through%20Gatekeeper">https://developer.apple.com/documentation/macos-release-notes/macos-big-sur-11_0_1-universal-apps-release-notes#:~:text=New%20in%20macOS,pass%20through%20Gatekeeper</a>. </p>
<p>If you get an error that the application bundle is already signed, remove it before signing: <blockquote>
<code>
$ <strong>codesign</strong> --remove-signature TuxPaint.app
</code>
</blockquote>
</p>
<p>If you plan to combine the Apple Silicon bundle with the Intel CPU bundle to produce the Universal bundle, the code signing must be done after they are combined. See "Building a Universal Binary" below. </p>
</section><!-- H3: Building for Apple Silicon -->
<section class="indent"><!-- H3: Building a Universal Binary -->
<header>
<h3>
@ -1156,10 +1134,9 @@
</header>
<p>
To build Tux Paint as a Universal Binary, compile Tux Paint for the Intel CPU and the Apple Silicon separately first. Then rename the app bundle for the Intel CPU to TuxPaint-x86_64.app, and the bundle for the Apple Silicon to TuxPaint-arm64.app, copy the app bundle from the Intel machine to the Apple Silicon machine, then use the provided <code>build-universal.sh</code> script to combine the two application bundles as below. The produced bundle must be signed (see "Building for Apple Silicon" above for more details). The DMG file, if required, must be built after the signing: <blockquote>
To build Tux Paint as a Universal Binary, compile Tux Paint for the Intel CPU and the Apple Silicon separately first. Then rename the app bundle for the Intel CPU to TuxPaint-x86_64.app, and the bundle for the Apple Silicon to TuxPaint-arm64.app, copy the app bundle from the Intel machine to the Apple Silicon machine, then use the provided <code>build-universal.sh</code> script to combine the two application bundles as below. The DMG file can be built afterwards: <blockquote>
<code>
$ <strong>macos/build-universal.sh</strong><br/>
$ <strong>codesign</strong> -s - TuxPaint.app <br/>
$ <strong>make</strong> TuxPaint.dmg
</code>
</blockquote>