Sync INSTALL docs after Mark's macOS updates
This commit is contained in:
parent
0175773efc
commit
3b027b9a4c
11 changed files with 217 additions and 157 deletions
|
|
@ -7,7 +7,7 @@ Various contributors (see below, and AUTHORS.txt)
|
||||||
http://www.tuxpaint.org/
|
http://www.tuxpaint.org/
|
||||||
|
|
||||||
|
|
||||||
2022.January.21 (0.9.28)
|
2022.January.24 (0.9.28)
|
||||||
* Improvements to "Paint" and "Lines" tools:
|
* Improvements to "Paint" and "Lines" tools:
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
* Brush spacing may now be altered within Tux Paint.
|
* Brush spacing may now be altered within Tux Paint.
|
||||||
|
|
|
||||||
|
|
@ -658,11 +658,11 @@ Compiling and Installation
|
||||||
% make install
|
% make install
|
||||||
|
|
||||||
... to create the TuxPaint.app application bundle that can be run
|
... to create the TuxPaint.app application bundle that can be run
|
||||||
in-place or copied to /Applications. It also creates TuxPaint.dmg
|
in-place or copied to /Applications. To create the DMG file for
|
||||||
for distribution.
|
distribution, use 'make TuxPaint.dmg'.
|
||||||
|
|
||||||
Additional steps may be required when building for Apple Silicon.
|
Additional steps may be required when building for the Apple
|
||||||
See "Building for Apple Silicon" below.
|
Silicon. See "Building for Apple Silicon" below.
|
||||||
|
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
|
||||||
|
|
@ -699,7 +699,11 @@ Compiling and Installation
|
||||||
flash drive accordingly.
|
flash drive accordingly.
|
||||||
|
|
||||||
Dual booting multiple versions of macOS for Apple Silicon has been
|
Dual booting multiple versions of macOS for Apple Silicon has been
|
||||||
so far unsuccessful.
|
so far unsuccessful. Instead of installing an older version of macOS
|
||||||
|
for Apple Silicon to build Tux Paint to run on the old version of
|
||||||
|
macOS for Apple Silicon, use the instructions found in the
|
||||||
|
"Recompiling MacPorts" section to build Tux Paint to run on older
|
||||||
|
versions of macOS for Apple Silicon.
|
||||||
|
|
||||||
As of this writing, the oldest version of macOS available on Apple's
|
As of this writing, the oldest version of macOS available on Apple's
|
||||||
support site is Yosemite 10.10, which expects "GPT (GUID Partition
|
support site is Yosemite 10.10, which expects "GPT (GUID Partition
|
||||||
|
|
@ -730,7 +734,7 @@ Compiling and Installation
|
||||||
Recompiling MacPorts
|
Recompiling MacPorts
|
||||||
|
|
||||||
To recompile MacPorts to be usable on older versions of macOS, set
|
To recompile MacPorts to be usable on older versions of macOS, set
|
||||||
the following options in /opt/local/etc/macports/macports.conf:172
|
the following options in /opt/local/etc/macports/macports.conf:
|
||||||
|
|
||||||
buildfromsource always
|
buildfromsource always
|
||||||
macosx_deployment_target 10.10
|
macosx_deployment_target 10.10
|
||||||
|
|
@ -748,7 +752,9 @@ Compiling and Installation
|
||||||
Silicon. Unfortunately, although MacPorts has the option to enable
|
Silicon. Unfortunately, although MacPorts has the option to enable
|
||||||
the building of universal libraries, several libraries Tux Paint
|
the building of universal libraries, several libraries Tux Paint
|
||||||
require cannot be built as universal libraries so they can only be
|
require cannot be built as universal libraries so they can only be
|
||||||
built to run natively on the hardware on which they were built.
|
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
|
Building for Apple Silicon
|
||||||
|
|
||||||
|
|
@ -756,17 +762,22 @@ Compiling and Installation
|
||||||
applications be signed, even if it is signed "ad-hoc" (anonymously).
|
applications be signed, even if it is signed "ad-hoc" (anonymously).
|
||||||
Because of this, compilers that produce native Apple Silicon
|
Because of this, compilers that produce native Apple Silicon
|
||||||
applications sign all produced binaries and libraries as a part of
|
applications sign all produced binaries and libraries as a part of
|
||||||
the compilation process. However, the Tux Paint compilation process
|
the compilation process.^* However, the Tux Paint compilation
|
||||||
modifies the libraries to be modular so they can be added into the
|
process modifies the libraries to be modular (using
|
||||||
application bundle, which has the unfortunate side effect of
|
install_name_tool) so they can be added into the application bundle,
|
||||||
breaking the signature. This can be addressed by signing the
|
which has the unfortunate side effect of breaking the signature.
|
||||||
application bundle ad-hoc (example below) or using your own Apple
|
This can be addressed by signing the application bundle ad-hoc
|
||||||
Developer license key. The DMG file, if needed, also needs to be
|
(example below) or using your own Apple Developer Identity if you
|
||||||
recreated using the signed application bundle:
|
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
|
$ codesign -s - TuxPaint.app
|
||||||
$ make TuxPaint.dmg
|
$ 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,
|
If you get an error that the application bundle is already signed,
|
||||||
remove it before signing::
|
remove it before signing::
|
||||||
|
|
||||||
|
|
@ -779,15 +790,15 @@ Compiling and Installation
|
||||||
|
|
||||||
Building a Universal Binary
|
Building a Universal Binary
|
||||||
|
|
||||||
To build the Universal binary, compile Tux Paint for the Intel CPU
|
To build Tux Paint as a Universal Binary, compile Tux Paint for the
|
||||||
and the Apple Silicon separately. Rename the app bundle for the
|
Intel CPU and the Apple Silicon separately first. Then rename the
|
||||||
Intel CPU to TuxPaint-x86_64.app, and the bundle for the Apple
|
app bundle for the Intel CPU to TuxPaint-x86_64.app, and the bundle
|
||||||
Silicon to TuxPaint-arm64.app, copy the app bundle from the Intel
|
for the Apple Silicon to TuxPaint-arm64.app, copy the app bundle
|
||||||
machine to the Apple Silicon machine, then use the provided
|
from the Intel machine to the Apple Silicon machine, then use the
|
||||||
build-universal.sh script to combine the two application bundles as
|
provided build-universal.sh script to combine the two application
|
||||||
below. The produced bundle must be signed (see "Building for Apple
|
bundles as below. The produced bundle must be signed (see "Building
|
||||||
Silicon" above for more details) and DMG, is required, must also be
|
for Apple Silicon" above for more details). The DMG file, if
|
||||||
rebuilt:
|
required, must be built after the signing:
|
||||||
|
|
||||||
$ macos/build-universal.sh
|
$ macos/build-universal.sh
|
||||||
$ codesign -s - TuxPaint.app
|
$ codesign -s - TuxPaint.app
|
||||||
|
|
|
||||||
|
|
@ -823,10 +823,10 @@
|
||||||
% make install
|
% make install
|
||||||
</code>
|
</code>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
... to create the <code>TuxPaint.app</code> application bundle that can be run in-place or copied to <code>/Applications</code>. It also creates <code>TuxPaint.dmg</code> for distribution. </p>
|
... 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>
|
<p>
|
||||||
Additional steps may be required when building for Apple Silicon. See "Building for Apple Silicon" below. </p>
|
Additional steps may be required when building for the Apple Silicon. See "Building for Apple Silicon" below. </p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<hr size="1" noshade width="75%" />
|
<hr size="1" noshade width="75%" />
|
||||||
|
|
@ -854,7 +854,7 @@
|
||||||
macOS for Intel CPU does allow dual booting of multiple versions of the OS, but it's safer and easier to install the old macOS onto a flash drive. Wherever you're installing it, the target drive's partitioniong scheme and partition type must match what the old macOS expects, so use the Disk Utility to partition and format the flash drive accordingly. </p>
|
macOS for Intel CPU does allow dual booting of multiple versions of the OS, but it's safer and easier to install the old macOS onto a flash drive. Wherever you're installing it, the target drive's partitioniong scheme and partition type must match what the old macOS expects, so use the Disk Utility to partition and format the flash drive accordingly. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Dual booting multiple versions of macOS for Apple Silicon has been so far unsuccessful. </p>
|
Dual booting multiple versions of macOS for Apple Silicon has been so far unsuccessful. Instead of installing an older version of macOS for Apple Silicon to build Tux Paint to run on the old version of macOS for Apple Silicon, use the instructions found in the "Recompiling MacPorts" section to build Tux Paint to run on older versions of macOS for Apple Silicon. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
As of this writing, the oldest version of macOS available on Apple's support site is Yosemite 10.10, which expects "GPT (GUID Partition Table)" partitioning scheme instead of the older MBR scheme, and "Mac OS Extended (Journaled)" as the partition type instead of the newer APFS partition type. </p>
|
As of this writing, the oldest version of macOS available on Apple's support site is Yosemite 10.10, which expects "GPT (GUID Partition Table)" partitioning scheme instead of the older MBR scheme, and "Mac OS Extended (Journaled)" as the partition type instead of the newer APFS partition type. </p>
|
||||||
|
|
@ -876,7 +876,7 @@
|
||||||
<h4>Recompiling MacPorts</h4>
|
<h4>Recompiling MacPorts</h4>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>
|
<p>
|
||||||
To recompile MacPorts to be usable on older versions of macOS, set the following options in <code style="white-space: nowrap;">/opt/local/etc/macports/macports.conf</code>:172 <blockquote>
|
To recompile MacPorts to be usable on older versions of macOS, set the following options in <code style="white-space: nowrap;">/opt/local/etc/macports/macports.conf</code>: <blockquote>
|
||||||
<code>
|
<code>
|
||||||
buildfromsource always<br/>
|
buildfromsource always<br/>
|
||||||
macosx_deployment_target 10.10
|
macosx_deployment_target 10.10
|
||||||
|
|
@ -896,17 +896,18 @@
|
||||||
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild libimagequant using the updated Cargo package from MacPorts. </p>
|
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild libimagequant using the updated Cargo package from MacPorts. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
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. </p>
|
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>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<h4>Building for Apple Silicon</h4>
|
<h4>Building for Apple Silicon</h4>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>macOS for Applie 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 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 license key. The DMG file, if needed, also needs to be recreated using the signed application bundle: <blockquote>
|
<p>macOS for Applie 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>
|
<code>
|
||||||
$ codesign -s - TuxPaint.app<br/>
|
$ codesign -s - TuxPaint.app<br/>
|
||||||
$ make TuxPaint.dmg
|
$ make TuxPaint.dmg
|
||||||
</code>
|
</code>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
<sup>*</sup> 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.
|
||||||
</p>
|
</p>
|
||||||
<p>If you get an error that the application bundle is already signed, remove it before signing:: <blockquote>
|
<p>If you get an error that the application bundle is already signed, remove it before signing:: <blockquote>
|
||||||
<code>
|
<code>
|
||||||
|
|
@ -914,13 +915,13 @@
|
||||||
</code>
|
</code>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
</p>
|
</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>
|
<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>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<h4>Building a Universal Binary</h4>
|
<h4>Building a Universal Binary</h4>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>
|
<p>
|
||||||
To build the Universal binary, compile Tux Paint for the Intel CPU and the Apple Silicon separately. 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) and DMG, is required, must also be rebuilt: <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 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>
|
||||||
<code>
|
<code>
|
||||||
$ macos/build-universal.sh<br/>
|
$ macos/build-universal.sh<br/>
|
||||||
$ codesign -s - TuxPaint.app <br/>
|
$ codesign -s - TuxPaint.app <br/>
|
||||||
|
|
|
||||||
|
|
@ -658,11 +658,11 @@ Compiling and Installation
|
||||||
% make install
|
% make install
|
||||||
|
|
||||||
... to create the TuxPaint.app application bundle that can be run
|
... to create the TuxPaint.app application bundle that can be run
|
||||||
in-place or copied to /Applications. It also creates TuxPaint.dmg
|
in-place or copied to /Applications. To create the DMG file for
|
||||||
for distribution.
|
distribution, use 'make TuxPaint.dmg'.
|
||||||
|
|
||||||
Additional steps may be required when building for Apple Silicon.
|
Additional steps may be required when building for the Apple
|
||||||
See "Building for Apple Silicon" below.
|
Silicon. See "Building for Apple Silicon" below.
|
||||||
|
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
|
||||||
|
|
@ -699,7 +699,11 @@ Compiling and Installation
|
||||||
flash drive accordingly.
|
flash drive accordingly.
|
||||||
|
|
||||||
Dual booting multiple versions of macOS for Apple Silicon has been
|
Dual booting multiple versions of macOS for Apple Silicon has been
|
||||||
so far unsuccessful.
|
so far unsuccessful. Instead of installing an older version of macOS
|
||||||
|
for Apple Silicon to build Tux Paint to run on the old version of
|
||||||
|
macOS for Apple Silicon, use the instructions found in the
|
||||||
|
"Recompiling MacPorts" section to build Tux Paint to run on older
|
||||||
|
versions of macOS for Apple Silicon.
|
||||||
|
|
||||||
As of this writing, the oldest version of macOS available on Apple's
|
As of this writing, the oldest version of macOS available on Apple's
|
||||||
support site is Yosemite 10.10, which expects "GPT (GUID Partition
|
support site is Yosemite 10.10, which expects "GPT (GUID Partition
|
||||||
|
|
@ -730,7 +734,7 @@ Compiling and Installation
|
||||||
Recompiling MacPorts
|
Recompiling MacPorts
|
||||||
|
|
||||||
To recompile MacPorts to be usable on older versions of macOS, set
|
To recompile MacPorts to be usable on older versions of macOS, set
|
||||||
the following options in /opt/local/etc/macports/macports.conf:172
|
the following options in /opt/local/etc/macports/macports.conf:
|
||||||
|
|
||||||
buildfromsource always
|
buildfromsource always
|
||||||
macosx_deployment_target 10.10
|
macosx_deployment_target 10.10
|
||||||
|
|
@ -748,7 +752,9 @@ Compiling and Installation
|
||||||
Silicon. Unfortunately, although MacPorts has the option to enable
|
Silicon. Unfortunately, although MacPorts has the option to enable
|
||||||
the building of universal libraries, several libraries Tux Paint
|
the building of universal libraries, several libraries Tux Paint
|
||||||
require cannot be built as universal libraries so they can only be
|
require cannot be built as universal libraries so they can only be
|
||||||
built to run natively on the hardware on which they were built.
|
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
|
Building for Apple Silicon
|
||||||
|
|
||||||
|
|
@ -756,17 +762,22 @@ Compiling and Installation
|
||||||
applications be signed, even if it is signed "ad-hoc" (anonymously).
|
applications be signed, even if it is signed "ad-hoc" (anonymously).
|
||||||
Because of this, compilers that produce native Apple Silicon
|
Because of this, compilers that produce native Apple Silicon
|
||||||
applications sign all produced binaries and libraries as a part of
|
applications sign all produced binaries and libraries as a part of
|
||||||
the compilation process. However, the Tux Paint compilation process
|
the compilation process.^* However, the Tux Paint compilation
|
||||||
modifies the libraries to be modular so they can be added into the
|
process modifies the libraries to be modular (using
|
||||||
application bundle, which has the unfortunate side effect of
|
install_name_tool) so they can be added into the application bundle,
|
||||||
breaking the signature. This can be addressed by signing the
|
which has the unfortunate side effect of breaking the signature.
|
||||||
application bundle ad-hoc (example below) or using your own Apple
|
This can be addressed by signing the application bundle ad-hoc
|
||||||
Developer license key. The DMG file, if needed, also needs to be
|
(example below) or using your own Apple Developer Identity if you
|
||||||
recreated using the signed application bundle:
|
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
|
$ codesign -s - TuxPaint.app
|
||||||
$ make TuxPaint.dmg
|
$ 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,
|
If you get an error that the application bundle is already signed,
|
||||||
remove it before signing::
|
remove it before signing::
|
||||||
|
|
||||||
|
|
@ -779,15 +790,15 @@ Compiling and Installation
|
||||||
|
|
||||||
Building a Universal Binary
|
Building a Universal Binary
|
||||||
|
|
||||||
To build the Universal binary, compile Tux Paint for the Intel CPU
|
To build Tux Paint as a Universal Binary, compile Tux Paint for the
|
||||||
and the Apple Silicon separately. Rename the app bundle for the
|
Intel CPU and the Apple Silicon separately first. Then rename the
|
||||||
Intel CPU to TuxPaint-x86_64.app, and the bundle for the Apple
|
app bundle for the Intel CPU to TuxPaint-x86_64.app, and the bundle
|
||||||
Silicon to TuxPaint-arm64.app, copy the app bundle from the Intel
|
for the Apple Silicon to TuxPaint-arm64.app, copy the app bundle
|
||||||
machine to the Apple Silicon machine, then use the provided
|
from the Intel machine to the Apple Silicon machine, then use the
|
||||||
build-universal.sh script to combine the two application bundles as
|
provided build-universal.sh script to combine the two application
|
||||||
below. The produced bundle must be signed (see "Building for Apple
|
bundles as below. The produced bundle must be signed (see "Building
|
||||||
Silicon" above for more details) and DMG, is required, must also be
|
for Apple Silicon" above for more details). The DMG file, if
|
||||||
rebuilt:
|
required, must be built after the signing:
|
||||||
|
|
||||||
$ macos/build-universal.sh
|
$ macos/build-universal.sh
|
||||||
$ codesign -s - TuxPaint.app
|
$ codesign -s - TuxPaint.app
|
||||||
|
|
|
||||||
|
|
@ -823,10 +823,10 @@
|
||||||
% make install
|
% make install
|
||||||
</code>
|
</code>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
... to create the <code>TuxPaint.app</code> application bundle that can be run in-place or copied to <code>/Applications</code>. It also creates <code>TuxPaint.dmg</code> for distribution. </p>
|
... 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>
|
<p>
|
||||||
Additional steps may be required when building for Apple Silicon. See "Building for Apple Silicon" below. </p>
|
Additional steps may be required when building for the Apple Silicon. See "Building for Apple Silicon" below. </p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<hr size="1" noshade width="75%" />
|
<hr size="1" noshade width="75%" />
|
||||||
|
|
@ -854,7 +854,7 @@
|
||||||
macOS for Intel CPU does allow dual booting of multiple versions of the OS, but it's safer and easier to install the old macOS onto a flash drive. Wherever you're installing it, the target drive's partitioniong scheme and partition type must match what the old macOS expects, so use the Disk Utility to partition and format the flash drive accordingly. </p>
|
macOS for Intel CPU does allow dual booting of multiple versions of the OS, but it's safer and easier to install the old macOS onto a flash drive. Wherever you're installing it, the target drive's partitioniong scheme and partition type must match what the old macOS expects, so use the Disk Utility to partition and format the flash drive accordingly. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Dual booting multiple versions of macOS for Apple Silicon has been so far unsuccessful. </p>
|
Dual booting multiple versions of macOS for Apple Silicon has been so far unsuccessful. Instead of installing an older version of macOS for Apple Silicon to build Tux Paint to run on the old version of macOS for Apple Silicon, use the instructions found in the "Recompiling MacPorts" section to build Tux Paint to run on older versions of macOS for Apple Silicon. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
As of this writing, the oldest version of macOS available on Apple's support site is Yosemite 10.10, which expects "GPT (GUID Partition Table)" partitioning scheme instead of the older MBR scheme, and "Mac OS Extended (Journaled)" as the partition type instead of the newer APFS partition type. </p>
|
As of this writing, the oldest version of macOS available on Apple's support site is Yosemite 10.10, which expects "GPT (GUID Partition Table)" partitioning scheme instead of the older MBR scheme, and "Mac OS Extended (Journaled)" as the partition type instead of the newer APFS partition type. </p>
|
||||||
|
|
@ -876,7 +876,7 @@
|
||||||
<h4>Recompiling MacPorts</h4>
|
<h4>Recompiling MacPorts</h4>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>
|
<p>
|
||||||
To recompile MacPorts to be usable on older versions of macOS, set the following options in <code style="white-space: nowrap;">/opt/local/etc/macports/macports.conf</code>:172 <blockquote>
|
To recompile MacPorts to be usable on older versions of macOS, set the following options in <code style="white-space: nowrap;">/opt/local/etc/macports/macports.conf</code>: <blockquote>
|
||||||
<code>
|
<code>
|
||||||
buildfromsource always<br/>
|
buildfromsource always<br/>
|
||||||
macosx_deployment_target 10.10
|
macosx_deployment_target 10.10
|
||||||
|
|
@ -896,17 +896,18 @@
|
||||||
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild libimagequant using the updated Cargo package from MacPorts. </p>
|
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild libimagequant using the updated Cargo package from MacPorts. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
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. </p>
|
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>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<h4>Building for Apple Silicon</h4>
|
<h4>Building for Apple Silicon</h4>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>macOS for Applie 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 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 license key. The DMG file, if needed, also needs to be recreated using the signed application bundle: <blockquote>
|
<p>macOS for Applie 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>
|
<code>
|
||||||
$ codesign -s - TuxPaint.app<br/>
|
$ codesign -s - TuxPaint.app<br/>
|
||||||
$ make TuxPaint.dmg
|
$ make TuxPaint.dmg
|
||||||
</code>
|
</code>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
<sup>*</sup> 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.
|
||||||
</p>
|
</p>
|
||||||
<p>If you get an error that the application bundle is already signed, remove it before signing:: <blockquote>
|
<p>If you get an error that the application bundle is already signed, remove it before signing:: <blockquote>
|
||||||
<code>
|
<code>
|
||||||
|
|
@ -914,13 +915,13 @@
|
||||||
</code>
|
</code>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
</p>
|
</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>
|
<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>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<h4>Building a Universal Binary</h4>
|
<h4>Building a Universal Binary</h4>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>
|
<p>
|
||||||
To build the Universal binary, compile Tux Paint for the Intel CPU and the Apple Silicon separately. 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) and DMG, is required, must also be rebuilt: <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 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>
|
||||||
<code>
|
<code>
|
||||||
$ macos/build-universal.sh<br/>
|
$ macos/build-universal.sh<br/>
|
||||||
$ codesign -s - TuxPaint.app <br/>
|
$ codesign -s - TuxPaint.app <br/>
|
||||||
|
|
|
||||||
|
|
@ -686,12 +686,12 @@ Compilation et installation
|
||||||
% make
|
% make
|
||||||
% make install
|
% make install
|
||||||
|
|
||||||
... pour crée l'application TuxPaint.app qui peut être exécutée sur
|
... to create the TuxPaint.app application bundle that can be run
|
||||||
place ou copiée sur /Applications. Il crée également TuxPaint.dmg
|
in-place or copied to /Applications. To create the DMG file for
|
||||||
pour la distribution.
|
distribution, use 'make TuxPaint.dmg'.
|
||||||
|
|
||||||
Additional steps may be required when building for Apple Silicon.
|
Additional steps may be required when building for the Apple
|
||||||
See "Building for Apple Silicon" below.
|
Silicon. See "Building for Apple Silicon" below.
|
||||||
|
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
|
||||||
|
|
@ -730,7 +730,11 @@ Compilation et installation
|
||||||
flash drive accordingly.
|
flash drive accordingly.
|
||||||
|
|
||||||
Dual booting multiple versions of macOS for Apple Silicon has been
|
Dual booting multiple versions of macOS for Apple Silicon has been
|
||||||
so far unsuccessful.
|
so far unsuccessful. Instead of installing an older version of macOS
|
||||||
|
for Apple Silicon to build Tux Paint to run on the old version of
|
||||||
|
macOS for Apple Silicon, use the instructions found in the
|
||||||
|
"Recompiling MacPorts" section to build Tux Paint to run on older
|
||||||
|
versions of macOS for Apple Silicon.
|
||||||
|
|
||||||
À ce moment, l'ancienne version de macOS disponible sur le site
|
À ce moment, l'ancienne version de macOS disponible sur le site
|
||||||
d'Apple est la Yosemite 10.10, qui un partitionnement "GPT (GUID
|
d'Apple est la Yosemite 10.10, qui un partitionnement "GPT (GUID
|
||||||
|
|
@ -762,7 +766,7 @@ Compilation et installation
|
||||||
Recompiling MacPorts
|
Recompiling MacPorts
|
||||||
|
|
||||||
To recompile MacPorts to be usable on older versions of macOS, set
|
To recompile MacPorts to be usable on older versions of macOS, set
|
||||||
the following options in /opt/local/etc/macports/macports.conf:172
|
the following options in /opt/local/etc/macports/macports.conf:
|
||||||
|
|
||||||
buildfromsource always
|
buildfromsource always
|
||||||
macosx_deployment_target 10.10
|
macosx_deployment_target 10.10
|
||||||
|
|
@ -780,7 +784,9 @@ Compilation et installation
|
||||||
Silicon. Unfortunately, although MacPorts has the option to enable
|
Silicon. Unfortunately, although MacPorts has the option to enable
|
||||||
the building of universal libraries, several libraries Tux Paint
|
the building of universal libraries, several libraries Tux Paint
|
||||||
require cannot be built as universal libraries so they can only be
|
require cannot be built as universal libraries so they can only be
|
||||||
built to run natively on the hardware on which they were built.
|
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
|
Building for Apple Silicon
|
||||||
|
|
||||||
|
|
@ -788,17 +794,22 @@ Compilation et installation
|
||||||
applications be signed, even if it is signed "ad-hoc" (anonymously).
|
applications be signed, even if it is signed "ad-hoc" (anonymously).
|
||||||
Because of this, compilers that produce native Apple Silicon
|
Because of this, compilers that produce native Apple Silicon
|
||||||
applications sign all produced binaries and libraries as a part of
|
applications sign all produced binaries and libraries as a part of
|
||||||
the compilation process. However, the Tux Paint compilation process
|
the compilation process.^* However, the Tux Paint compilation
|
||||||
modifies the libraries to be modular so they can be added into the
|
process modifies the libraries to be modular (using
|
||||||
application bundle, which has the unfortunate side effect of
|
install_name_tool) so they can be added into the application bundle,
|
||||||
breaking the signature. This can be addressed by signing the
|
which has the unfortunate side effect of breaking the signature.
|
||||||
application bundle ad-hoc (example below) or using your own Apple
|
This can be addressed by signing the application bundle ad-hoc
|
||||||
Developer license key. The DMG file, if needed, also needs to be
|
(example below) or using your own Apple Developer Identity if you
|
||||||
recreated using the signed application bundle:
|
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
|
$ codesign -s - TuxPaint.app
|
||||||
$ make TuxPaint.dmg
|
$ 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,
|
If you get an error that the application bundle is already signed,
|
||||||
remove it before signing::
|
remove it before signing::
|
||||||
|
|
||||||
|
|
@ -811,15 +822,15 @@ Compilation et installation
|
||||||
|
|
||||||
Building a Universal Binary
|
Building a Universal Binary
|
||||||
|
|
||||||
To build the Universal binary, compile Tux Paint for the Intel CPU
|
To build Tux Paint as a Universal Binary, compile Tux Paint for the
|
||||||
and the Apple Silicon separately. Rename the app bundle for the
|
Intel CPU and the Apple Silicon separately first. Then rename the
|
||||||
Intel CPU to TuxPaint-x86_64.app, and the bundle for the Apple
|
app bundle for the Intel CPU to TuxPaint-x86_64.app, and the bundle
|
||||||
Silicon to TuxPaint-arm64.app, copy the app bundle from the Intel
|
for the Apple Silicon to TuxPaint-arm64.app, copy the app bundle
|
||||||
machine to the Apple Silicon machine, then use the provided
|
from the Intel machine to the Apple Silicon machine, then use the
|
||||||
build-universal.sh script to combine the two application bundles as
|
provided build-universal.sh script to combine the two application
|
||||||
below. The produced bundle must be signed (see "Building for Apple
|
bundles as below. The produced bundle must be signed (see "Building
|
||||||
Silicon" above for more details) and DMG, is required, must also be
|
for Apple Silicon" above for more details). The DMG file, if
|
||||||
rebuilt:
|
required, must be built after the signing:
|
||||||
|
|
||||||
$ macos/build-universal.sh
|
$ macos/build-universal.sh
|
||||||
$ codesign -s - TuxPaint.app
|
$ codesign -s - TuxPaint.app
|
||||||
|
|
|
||||||
|
|
@ -823,10 +823,10 @@
|
||||||
% make install
|
% make install
|
||||||
</code>
|
</code>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
... pour crée l'application <code>TuxPaint.app</code> qui peut être exécutée sur place ou copiée sur <code>/Applications</code>. Il crée également <code>TuxPaint.dmg</code> pour la distribution. </p>
|
... 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>
|
<p>
|
||||||
Additional steps may be required when building for Apple Silicon. See "Building for Apple Silicon" below. </p>
|
Additional steps may be required when building for the Apple Silicon. See "Building for Apple Silicon" below. </p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<hr size="1" noshade width="75%" />
|
<hr size="1" noshade width="75%" />
|
||||||
|
|
@ -854,7 +854,7 @@
|
||||||
macOS for Intel CPU does allow dual booting of multiple versions of the OS, but it's safer and easier to install the old macOS onto a flash drive. Wherever you're installing it, the target drive's partitioniong scheme and partition type must match what the old macOS expects, so use the Disk Utility to partition and format the flash drive accordingly. </p>
|
macOS for Intel CPU does allow dual booting of multiple versions of the OS, but it's safer and easier to install the old macOS onto a flash drive. Wherever you're installing it, the target drive's partitioniong scheme and partition type must match what the old macOS expects, so use the Disk Utility to partition and format the flash drive accordingly. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Dual booting multiple versions of macOS for Apple Silicon has been so far unsuccessful. </p>
|
Dual booting multiple versions of macOS for Apple Silicon has been so far unsuccessful. Instead of installing an older version of macOS for Apple Silicon to build Tux Paint to run on the old version of macOS for Apple Silicon, use the instructions found in the "Recompiling MacPorts" section to build Tux Paint to run on older versions of macOS for Apple Silicon. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
À ce moment, l'ancienne version de macOS disponible sur le site d'Apple est la Yosemite 10.10, qui un partitionnement "GPT (GUID Partition Table)" au lieu de MBR, et "Mac OS Extended (Journalisé)" comme type de partition au lieu du nouveau type APFS. </p>
|
À ce moment, l'ancienne version de macOS disponible sur le site d'Apple est la Yosemite 10.10, qui un partitionnement "GPT (GUID Partition Table)" au lieu de MBR, et "Mac OS Extended (Journalisé)" comme type de partition au lieu du nouveau type APFS. </p>
|
||||||
|
|
@ -876,7 +876,7 @@
|
||||||
<h4>Recompiling MacPorts</h4>
|
<h4>Recompiling MacPorts</h4>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>
|
<p>
|
||||||
To recompile MacPorts to be usable on older versions of macOS, set the following options in <code style="white-space: nowrap;">/opt/local/etc/macports/macports.conf</code>:172 <blockquote>
|
To recompile MacPorts to be usable on older versions of macOS, set the following options in <code style="white-space: nowrap;">/opt/local/etc/macports/macports.conf</code>: <blockquote>
|
||||||
<code>
|
<code>
|
||||||
buildfromsource always<br/>
|
buildfromsource always<br/>
|
||||||
macosx_deployment_target 10.10
|
macosx_deployment_target 10.10
|
||||||
|
|
@ -896,17 +896,18 @@
|
||||||
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild libimagequant using the updated Cargo package from MacPorts. </p>
|
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild libimagequant using the updated Cargo package from MacPorts. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
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. </p>
|
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>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<h4>Building for Apple Silicon</h4>
|
<h4>Building for Apple Silicon</h4>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>macOS for Applie 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 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 license key. The DMG file, if needed, also needs to be recreated using the signed application bundle: <blockquote>
|
<p>macOS for Applie 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>
|
<code>
|
||||||
$ codesign -s - TuxPaint.app<br/>
|
$ codesign -s - TuxPaint.app<br/>
|
||||||
$ make TuxPaint.dmg
|
$ make TuxPaint.dmg
|
||||||
</code>
|
</code>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
<sup>*</sup> 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.
|
||||||
</p>
|
</p>
|
||||||
<p>If you get an error that the application bundle is already signed, remove it before signing:: <blockquote>
|
<p>If you get an error that the application bundle is already signed, remove it before signing:: <blockquote>
|
||||||
<code>
|
<code>
|
||||||
|
|
@ -914,13 +915,13 @@
|
||||||
</code>
|
</code>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
</p>
|
</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>
|
<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>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<h4>Building a Universal Binary</h4>
|
<h4>Building a Universal Binary</h4>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>
|
<p>
|
||||||
To build the Universal binary, compile Tux Paint for the Intel CPU and the Apple Silicon separately. 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) and DMG, is required, must also be rebuilt: <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 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>
|
||||||
<code>
|
<code>
|
||||||
$ macos/build-universal.sh<br/>
|
$ macos/build-universal.sh<br/>
|
||||||
$ codesign -s - TuxPaint.app <br/>
|
$ codesign -s - TuxPaint.app <br/>
|
||||||
|
|
|
||||||
|
|
@ -668,11 +668,11 @@ Compiling and Installation
|
||||||
% make install
|
% make install
|
||||||
|
|
||||||
... to create the TuxPaint.app application bundle that can be run
|
... to create the TuxPaint.app application bundle that can be run
|
||||||
in-place or copied to /Applications. It also creates TuxPaint.dmg
|
in-place or copied to /Applications. To create the DMG file for
|
||||||
for distribution.
|
distribution, use 'make TuxPaint.dmg'.
|
||||||
|
|
||||||
Additional steps may be required when building for Apple Silicon.
|
Additional steps may be required when building for the Apple
|
||||||
See "Building for Apple Silicon" below.
|
Silicon. See "Building for Apple Silicon" below.
|
||||||
|
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
|
||||||
|
|
@ -709,7 +709,11 @@ Compiling and Installation
|
||||||
flash drive accordingly.
|
flash drive accordingly.
|
||||||
|
|
||||||
Dual booting multiple versions of macOS for Apple Silicon has been
|
Dual booting multiple versions of macOS for Apple Silicon has been
|
||||||
so far unsuccessful.
|
so far unsuccessful. Instead of installing an older version of macOS
|
||||||
|
for Apple Silicon to build Tux Paint to run on the old version of
|
||||||
|
macOS for Apple Silicon, use the instructions found in the
|
||||||
|
"Recompiling MacPorts" section to build Tux Paint to run on older
|
||||||
|
versions of macOS for Apple Silicon.
|
||||||
|
|
||||||
As of this writing, the oldest version of macOS available on Apple's
|
As of this writing, the oldest version of macOS available on Apple's
|
||||||
support site is Yosemite 10.10, which expects "GPT (GUID Partition
|
support site is Yosemite 10.10, which expects "GPT (GUID Partition
|
||||||
|
|
@ -740,7 +744,7 @@ Compiling and Installation
|
||||||
Recompiling MacPorts
|
Recompiling MacPorts
|
||||||
|
|
||||||
To recompile MacPorts to be usable on older versions of macOS, set
|
To recompile MacPorts to be usable on older versions of macOS, set
|
||||||
the following options in /opt/local/etc/macports/macports.conf:172
|
the following options in /opt/local/etc/macports/macports.conf:
|
||||||
|
|
||||||
buildfromsource always
|
buildfromsource always
|
||||||
macosx_deployment_target 10.10
|
macosx_deployment_target 10.10
|
||||||
|
|
@ -758,7 +762,9 @@ Compiling and Installation
|
||||||
Silicon. Unfortunately, although MacPorts has the option to enable
|
Silicon. Unfortunately, although MacPorts has the option to enable
|
||||||
the building of universal libraries, several libraries Tux Paint
|
the building of universal libraries, several libraries Tux Paint
|
||||||
require cannot be built as universal libraries so they can only be
|
require cannot be built as universal libraries so they can only be
|
||||||
built to run natively on the hardware on which they were built.
|
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
|
Building for Apple Silicon
|
||||||
|
|
||||||
|
|
@ -766,17 +772,22 @@ Compiling and Installation
|
||||||
applications be signed, even if it is signed "ad-hoc" (anonymously).
|
applications be signed, even if it is signed "ad-hoc" (anonymously).
|
||||||
Because of this, compilers that produce native Apple Silicon
|
Because of this, compilers that produce native Apple Silicon
|
||||||
applications sign all produced binaries and libraries as a part of
|
applications sign all produced binaries and libraries as a part of
|
||||||
the compilation process. However, the Tux Paint compilation process
|
the compilation process.^* However, the Tux Paint compilation
|
||||||
modifies the libraries to be modular so they can be added into the
|
process modifies the libraries to be modular (using
|
||||||
application bundle, which has the unfortunate side effect of
|
install_name_tool) so they can be added into the application bundle,
|
||||||
breaking the signature. This can be addressed by signing the
|
which has the unfortunate side effect of breaking the signature.
|
||||||
application bundle ad-hoc (example below) or using your own Apple
|
This can be addressed by signing the application bundle ad-hoc
|
||||||
Developer license key. The DMG file, if needed, also needs to be
|
(example below) or using your own Apple Developer Identity if you
|
||||||
recreated using the signed application bundle:
|
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
|
$ codesign -s - TuxPaint.app
|
||||||
$ make TuxPaint.dmg
|
$ 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,
|
If you get an error that the application bundle is already signed,
|
||||||
remove it before signing::
|
remove it before signing::
|
||||||
|
|
||||||
|
|
@ -789,15 +800,15 @@ Compiling and Installation
|
||||||
|
|
||||||
Building a Universal Binary
|
Building a Universal Binary
|
||||||
|
|
||||||
To build the Universal binary, compile Tux Paint for the Intel CPU
|
To build Tux Paint as a Universal Binary, compile Tux Paint for the
|
||||||
and the Apple Silicon separately. Rename the app bundle for the
|
Intel CPU and the Apple Silicon separately first. Then rename the
|
||||||
Intel CPU to TuxPaint-x86_64.app, and the bundle for the Apple
|
app bundle for the Intel CPU to TuxPaint-x86_64.app, and the bundle
|
||||||
Silicon to TuxPaint-arm64.app, copy the app bundle from the Intel
|
for the Apple Silicon to TuxPaint-arm64.app, copy the app bundle
|
||||||
machine to the Apple Silicon machine, then use the provided
|
from the Intel machine to the Apple Silicon machine, then use the
|
||||||
build-universal.sh script to combine the two application bundles as
|
provided build-universal.sh script to combine the two application
|
||||||
below. The produced bundle must be signed (see "Building for Apple
|
bundles as below. The produced bundle must be signed (see "Building
|
||||||
Silicon" above for more details) and DMG, is required, must also be
|
for Apple Silicon" above for more details). The DMG file, if
|
||||||
rebuilt:
|
required, must be built after the signing:
|
||||||
|
|
||||||
$ macos/build-universal.sh
|
$ macos/build-universal.sh
|
||||||
$ codesign -s - TuxPaint.app
|
$ codesign -s - TuxPaint.app
|
||||||
|
|
|
||||||
|
|
@ -823,10 +823,10 @@
|
||||||
% make install
|
% make install
|
||||||
</code>
|
</code>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
... to create the <code>TuxPaint.app</code> application bundle that can be run in-place or copied to <code>/Applications</code>. It also creates <code>TuxPaint.dmg</code> for distribution. </p>
|
... 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>
|
<p>
|
||||||
Additional steps may be required when building for Apple Silicon. See "Building for Apple Silicon" below. </p>
|
Additional steps may be required when building for the Apple Silicon. See "Building for Apple Silicon" below. </p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<hr size="1" noshade width="75%" />
|
<hr size="1" noshade width="75%" />
|
||||||
|
|
@ -854,7 +854,7 @@
|
||||||
macOS for Intel CPU does allow dual booting of multiple versions of the OS, but it's safer and easier to install the old macOS onto a flash drive. Wherever you're installing it, the target drive's partitioniong scheme and partition type must match what the old macOS expects, so use the Disk Utility to partition and format the flash drive accordingly. </p>
|
macOS for Intel CPU does allow dual booting of multiple versions of the OS, but it's safer and easier to install the old macOS onto a flash drive. Wherever you're installing it, the target drive's partitioniong scheme and partition type must match what the old macOS expects, so use the Disk Utility to partition and format the flash drive accordingly. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Dual booting multiple versions of macOS for Apple Silicon has been so far unsuccessful. </p>
|
Dual booting multiple versions of macOS for Apple Silicon has been so far unsuccessful. Instead of installing an older version of macOS for Apple Silicon to build Tux Paint to run on the old version of macOS for Apple Silicon, use the instructions found in the "Recompiling MacPorts" section to build Tux Paint to run on older versions of macOS for Apple Silicon. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
As of this writing, the oldest version of macOS available on Apple's support site is Yosemite 10.10, which expects "GPT (GUID Partition Table)" partitioning scheme instead of the older MBR scheme, and "Mac OS Extended (Journaled)" as the partition type instead of the newer APFS partition type. </p>
|
As of this writing, the oldest version of macOS available on Apple's support site is Yosemite 10.10, which expects "GPT (GUID Partition Table)" partitioning scheme instead of the older MBR scheme, and "Mac OS Extended (Journaled)" as the partition type instead of the newer APFS partition type. </p>
|
||||||
|
|
@ -876,7 +876,7 @@
|
||||||
<h4>Recompiling MacPorts</h4>
|
<h4>Recompiling MacPorts</h4>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>
|
<p>
|
||||||
To recompile MacPorts to be usable on older versions of macOS, set the following options in <code style="white-space: nowrap;">/opt/local/etc/macports/macports.conf</code>:172 <blockquote>
|
To recompile MacPorts to be usable on older versions of macOS, set the following options in <code style="white-space: nowrap;">/opt/local/etc/macports/macports.conf</code>: <blockquote>
|
||||||
<code>
|
<code>
|
||||||
buildfromsource always<br/>
|
buildfromsource always<br/>
|
||||||
macosx_deployment_target 10.10
|
macosx_deployment_target 10.10
|
||||||
|
|
@ -896,17 +896,18 @@
|
||||||
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild libimagequant using the updated Cargo package from MacPorts. </p>
|
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild libimagequant using the updated Cargo package from MacPorts. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
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. </p>
|
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>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<h4>Building for Apple Silicon</h4>
|
<h4>Building for Apple Silicon</h4>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>macOS for Applie 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 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 license key. The DMG file, if needed, also needs to be recreated using the signed application bundle: <blockquote>
|
<p>macOS for Applie 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>
|
<code>
|
||||||
$ codesign -s - TuxPaint.app<br/>
|
$ codesign -s - TuxPaint.app<br/>
|
||||||
$ make TuxPaint.dmg
|
$ make TuxPaint.dmg
|
||||||
</code>
|
</code>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
<sup>*</sup> 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.
|
||||||
</p>
|
</p>
|
||||||
<p>If you get an error that the application bundle is already signed, remove it before signing:: <blockquote>
|
<p>If you get an error that the application bundle is already signed, remove it before signing:: <blockquote>
|
||||||
<code>
|
<code>
|
||||||
|
|
@ -914,13 +915,13 @@
|
||||||
</code>
|
</code>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
</p>
|
</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>
|
<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>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<h4>Building a Universal Binary</h4>
|
<h4>Building a Universal Binary</h4>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>
|
<p>
|
||||||
To build the Universal binary, compile Tux Paint for the Intel CPU and the Apple Silicon separately. 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) and DMG, is required, must also be rebuilt: <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 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>
|
||||||
<code>
|
<code>
|
||||||
$ macos/build-universal.sh<br/>
|
$ macos/build-universal.sh<br/>
|
||||||
$ codesign -s - TuxPaint.app <br/>
|
$ codesign -s - TuxPaint.app <br/>
|
||||||
|
|
|
||||||
|
|
@ -658,11 +658,11 @@ Compiling and Installation
|
||||||
% make install
|
% make install
|
||||||
|
|
||||||
... to create the TuxPaint.app application bundle that can be run
|
... to create the TuxPaint.app application bundle that can be run
|
||||||
in-place or copied to /Applications. It also creates TuxPaint.dmg
|
in-place or copied to /Applications. To create the DMG file for
|
||||||
for distribution.
|
distribution, use 'make TuxPaint.dmg'.
|
||||||
|
|
||||||
Additional steps may be required when building for Apple Silicon.
|
Additional steps may be required when building for the Apple
|
||||||
See "Building for Apple Silicon" below.
|
Silicon. See "Building for Apple Silicon" below.
|
||||||
|
|
||||||
-------------------------------------------------------
|
-------------------------------------------------------
|
||||||
|
|
||||||
|
|
@ -699,7 +699,11 @@ Compiling and Installation
|
||||||
flash drive accordingly.
|
flash drive accordingly.
|
||||||
|
|
||||||
Dual booting multiple versions of macOS for Apple Silicon has been
|
Dual booting multiple versions of macOS for Apple Silicon has been
|
||||||
so far unsuccessful.
|
so far unsuccessful. Instead of installing an older version of macOS
|
||||||
|
for Apple Silicon to build Tux Paint to run on the old version of
|
||||||
|
macOS for Apple Silicon, use the instructions found in the
|
||||||
|
"Recompiling MacPorts" section to build Tux Paint to run on older
|
||||||
|
versions of macOS for Apple Silicon.
|
||||||
|
|
||||||
As of this writing, the oldest version of macOS available on Apple's
|
As of this writing, the oldest version of macOS available on Apple's
|
||||||
support site is Yosemite 10.10, which expects "GPT (GUID Partition
|
support site is Yosemite 10.10, which expects "GPT (GUID Partition
|
||||||
|
|
@ -730,7 +734,7 @@ Compiling and Installation
|
||||||
Recompiling MacPorts
|
Recompiling MacPorts
|
||||||
|
|
||||||
To recompile MacPorts to be usable on older versions of macOS, set
|
To recompile MacPorts to be usable on older versions of macOS, set
|
||||||
the following options in /opt/local/etc/macports/macports.conf:172
|
the following options in /opt/local/etc/macports/macports.conf:
|
||||||
|
|
||||||
buildfromsource always
|
buildfromsource always
|
||||||
macosx_deployment_target 10.10
|
macosx_deployment_target 10.10
|
||||||
|
|
@ -748,7 +752,9 @@ Compiling and Installation
|
||||||
Silicon. Unfortunately, although MacPorts has the option to enable
|
Silicon. Unfortunately, although MacPorts has the option to enable
|
||||||
the building of universal libraries, several libraries Tux Paint
|
the building of universal libraries, several libraries Tux Paint
|
||||||
require cannot be built as universal libraries so they can only be
|
require cannot be built as universal libraries so they can only be
|
||||||
built to run natively on the hardware on which they were built.
|
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
|
Building for Apple Silicon
|
||||||
|
|
||||||
|
|
@ -756,17 +762,22 @@ Compiling and Installation
|
||||||
applications be signed, even if it is signed "ad-hoc" (anonymously).
|
applications be signed, even if it is signed "ad-hoc" (anonymously).
|
||||||
Because of this, compilers that produce native Apple Silicon
|
Because of this, compilers that produce native Apple Silicon
|
||||||
applications sign all produced binaries and libraries as a part of
|
applications sign all produced binaries and libraries as a part of
|
||||||
the compilation process. However, the Tux Paint compilation process
|
the compilation process.^* However, the Tux Paint compilation
|
||||||
modifies the libraries to be modular so they can be added into the
|
process modifies the libraries to be modular (using
|
||||||
application bundle, which has the unfortunate side effect of
|
install_name_tool) so they can be added into the application bundle,
|
||||||
breaking the signature. This can be addressed by signing the
|
which has the unfortunate side effect of breaking the signature.
|
||||||
application bundle ad-hoc (example below) or using your own Apple
|
This can be addressed by signing the application bundle ad-hoc
|
||||||
Developer license key. The DMG file, if needed, also needs to be
|
(example below) or using your own Apple Developer Identity if you
|
||||||
recreated using the signed application bundle:
|
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
|
$ codesign -s - TuxPaint.app
|
||||||
$ make TuxPaint.dmg
|
$ 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,
|
If you get an error that the application bundle is already signed,
|
||||||
remove it before signing::
|
remove it before signing::
|
||||||
|
|
||||||
|
|
@ -779,15 +790,15 @@ Compiling and Installation
|
||||||
|
|
||||||
Building a Universal Binary
|
Building a Universal Binary
|
||||||
|
|
||||||
To build the Universal binary, compile Tux Paint for the Intel CPU
|
To build Tux Paint as a Universal Binary, compile Tux Paint for the
|
||||||
and the Apple Silicon separately. Rename the app bundle for the
|
Intel CPU and the Apple Silicon separately first. Then rename the
|
||||||
Intel CPU to TuxPaint-x86_64.app, and the bundle for the Apple
|
app bundle for the Intel CPU to TuxPaint-x86_64.app, and the bundle
|
||||||
Silicon to TuxPaint-arm64.app, copy the app bundle from the Intel
|
for the Apple Silicon to TuxPaint-arm64.app, copy the app bundle
|
||||||
machine to the Apple Silicon machine, then use the provided
|
from the Intel machine to the Apple Silicon machine, then use the
|
||||||
build-universal.sh script to combine the two application bundles as
|
provided build-universal.sh script to combine the two application
|
||||||
below. The produced bundle must be signed (see "Building for Apple
|
bundles as below. The produced bundle must be signed (see "Building
|
||||||
Silicon" above for more details) and DMG, is required, must also be
|
for Apple Silicon" above for more details). The DMG file, if
|
||||||
rebuilt:
|
required, must be built after the signing:
|
||||||
|
|
||||||
$ macos/build-universal.sh
|
$ macos/build-universal.sh
|
||||||
$ codesign -s - TuxPaint.app
|
$ codesign -s - TuxPaint.app
|
||||||
|
|
|
||||||
|
|
@ -823,10 +823,10 @@
|
||||||
% make install
|
% make install
|
||||||
</code>
|
</code>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
... to create the <code>TuxPaint.app</code> application bundle that can be run in-place or copied to <code>/Applications</code>. It also creates <code>TuxPaint.dmg</code> for distribution. </p>
|
... 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>
|
<p>
|
||||||
Additional steps may be required when building for Apple Silicon. See "Building for Apple Silicon" below. </p>
|
Additional steps may be required when building for the Apple Silicon. See "Building for Apple Silicon" below. </p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<hr size="1" noshade width="75%" />
|
<hr size="1" noshade width="75%" />
|
||||||
|
|
@ -854,7 +854,7 @@
|
||||||
macOS for Intel CPU does allow dual booting of multiple versions of the OS, but it's safer and easier to install the old macOS onto a flash drive. Wherever you're installing it, the target drive's partitioniong scheme and partition type must match what the old macOS expects, so use the Disk Utility to partition and format the flash drive accordingly. </p>
|
macOS for Intel CPU does allow dual booting of multiple versions of the OS, but it's safer and easier to install the old macOS onto a flash drive. Wherever you're installing it, the target drive's partitioniong scheme and partition type must match what the old macOS expects, so use the Disk Utility to partition and format the flash drive accordingly. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Dual booting multiple versions of macOS for Apple Silicon has been so far unsuccessful. </p>
|
Dual booting multiple versions of macOS for Apple Silicon has been so far unsuccessful. Instead of installing an older version of macOS for Apple Silicon to build Tux Paint to run on the old version of macOS for Apple Silicon, use the instructions found in the "Recompiling MacPorts" section to build Tux Paint to run on older versions of macOS for Apple Silicon. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
As of this writing, the oldest version of macOS available on Apple's support site is Yosemite 10.10, which expects "GPT (GUID Partition Table)" partitioning scheme instead of the older MBR scheme, and "Mac OS Extended (Journaled)" as the partition type instead of the newer APFS partition type. </p>
|
As of this writing, the oldest version of macOS available on Apple's support site is Yosemite 10.10, which expects "GPT (GUID Partition Table)" partitioning scheme instead of the older MBR scheme, and "Mac OS Extended (Journaled)" as the partition type instead of the newer APFS partition type. </p>
|
||||||
|
|
@ -876,7 +876,7 @@
|
||||||
<h4>Recompiling MacPorts</h4>
|
<h4>Recompiling MacPorts</h4>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>
|
<p>
|
||||||
To recompile MacPorts to be usable on older versions of macOS, set the following options in <code style="white-space: nowrap;">/opt/local/etc/macports/macports.conf</code>:172 <blockquote>
|
To recompile MacPorts to be usable on older versions of macOS, set the following options in <code style="white-space: nowrap;">/opt/local/etc/macports/macports.conf</code>: <blockquote>
|
||||||
<code>
|
<code>
|
||||||
buildfromsource always<br/>
|
buildfromsource always<br/>
|
||||||
macosx_deployment_target 10.10
|
macosx_deployment_target 10.10
|
||||||
|
|
@ -896,17 +896,18 @@
|
||||||
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild libimagequant using the updated Cargo package from MacPorts. </p>
|
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild libimagequant using the updated Cargo package from MacPorts. </p>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
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. </p>
|
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>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<h4>Building for Apple Silicon</h4>
|
<h4>Building for Apple Silicon</h4>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>macOS for Applie 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 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 license key. The DMG file, if needed, also needs to be recreated using the signed application bundle: <blockquote>
|
<p>macOS for Applie 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>
|
<code>
|
||||||
$ codesign -s - TuxPaint.app<br/>
|
$ codesign -s - TuxPaint.app<br/>
|
||||||
$ make TuxPaint.dmg
|
$ make TuxPaint.dmg
|
||||||
</code>
|
</code>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
<sup>*</sup> 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.
|
||||||
</p>
|
</p>
|
||||||
<p>If you get an error that the application bundle is already signed, remove it before signing:: <blockquote>
|
<p>If you get an error that the application bundle is already signed, remove it before signing:: <blockquote>
|
||||||
<code>
|
<code>
|
||||||
|
|
@ -914,13 +915,13 @@
|
||||||
</code>
|
</code>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
</p>
|
</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>
|
<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>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<h4>Building a Universal Binary</h4>
|
<h4>Building a Universal Binary</h4>
|
||||||
<blockquote>
|
<blockquote>
|
||||||
<p>
|
<p>
|
||||||
To build the Universal binary, compile Tux Paint for the Intel CPU and the Apple Silicon separately. 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) and DMG, is required, must also be rebuilt: <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 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>
|
||||||
<code>
|
<code>
|
||||||
$ macos/build-universal.sh<br/>
|
$ macos/build-universal.sh<br/>
|
||||||
$ codesign -s - TuxPaint.app <br/>
|
$ codesign -s - TuxPaint.app <br/>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue