Syncing INSTALL docs; grab Mark's macOS updates
This commit is contained in:
parent
dffa3d8dd6
commit
14dd0446cf
11 changed files with 789 additions and 97 deletions
|
|
@ -14,27 +14,33 @@ http://www.tuxpaint.org/
|
|||
+ Note: A "nobrushspacing" simplifcation option is provided to
|
||||
disable this feature; Tux Paint will continue using the brushes'
|
||||
default spacings.
|
||||
Bill Kendrick <bill@newbreedsoftware.com>
|
||||
|
||||
* Many brushes have been given more reasonable default spacing
|
||||
settings (e.g., star brush's new default spacing causes
|
||||
individual stars to appear, rather than a 'smear').
|
||||
Closes https://sourceforge.net/p/tuxpaint/bugs/243/
|
||||
(h/t Areti Tsolakidou for the suggestion)
|
||||
Bill Kendrick <bill@newbreedsoftware.com>
|
||||
|
||||
* Improvements to "Eraser" tool:
|
||||
------------------------------
|
||||
* Outline for circle-shaped erasers is now also circular.
|
||||
Closes https://sourceforge.net/p/tuxpaint/bugs/244/
|
||||
(h/t Areti Tsolakidou for the suggestion)
|
||||
Bill Kendrick <bill@newbreedsoftware.com>
|
||||
|
||||
* Improvements to "Shapes" tool:
|
||||
------------------------------
|
||||
* Added hexagon (6-sided polygon) and heptagon (7-sided) shapes.
|
||||
Bill Kendrick <bill@newbreedsoftware.com>
|
||||
|
||||
* Showing aspect ratio of shapes when stretching them.
|
||||
Bill Kendrick <bill@newbreedsoftware.com>
|
||||
|
||||
* Using floats more, allowing for proper heptagon support, as
|
||||
well as a non-skewed starting angle for octagons (22.5 degrees).
|
||||
Bill Kendrick <bill@newbreedsoftware.com>
|
||||
|
||||
* Localization Updates:
|
||||
---------------------
|
||||
|
|
@ -46,6 +52,7 @@ http://www.tuxpaint.org/
|
|||
|
||||
* Updated `src/po/check_translations.sh` sanity-checking script
|
||||
so it properly finds the updated docs & other changes.
|
||||
Bill Kendrick <bill@newbreedsoftware.com>
|
||||
|
||||
* Bug Fixes:
|
||||
----------
|
||||
|
|
@ -62,10 +69,15 @@ http://www.tuxpaint.org/
|
|||
|
||||
* Use character class in macOS build script
|
||||
(It appears \t is not compatible with certain versions of grep.)
|
||||
Mark K. Kim <markuskimius@gmail.com>
|
||||
Mark Kim <markuskimius@gmail.com>
|
||||
|
||||
* Remove install stages not needed on macOS
|
||||
Mark K. Kim <markuskimius@gmail.com>
|
||||
Mark Kim <markuskimius@gmail.com>
|
||||
|
||||
* Documentation updates:
|
||||
---------------------
|
||||
* macOS Apple Silicon and Universal Binary build instructions
|
||||
Mark Kim <markuskimius@gmail.com>
|
||||
|
||||
|
||||
2021.November.25 (0.9.27)
|
||||
|
|
|
|||
|
|
@ -590,7 +590,7 @@ Compiling and Installation
|
|||
|
||||
macOS Users
|
||||
|
||||
September 21, 2021 Mark K. Kim <markuskimius@gmail.com>
|
||||
January 20, 2022 Mark Kim <markuskimius@gmail.com>
|
||||
|
||||
Tux Paint 0.9.22 and earlier required building Tux Paint from the
|
||||
Xcode IDE. Starting with 0.9.23, however, Tux Paint for macOS is built
|
||||
|
|
@ -640,7 +640,7 @@ Compiling and Installation
|
|||
$ sudo port install rust cargo
|
||||
$ git clone https://github.com/ImageOptim/libimagequant.git
|
||||
$ cd libimagequant/imagequant-sys
|
||||
$ cargo build --release
|
||||
$ cargo build --release # Must use cargo from MacPorts
|
||||
$ sudo make PREFIX=/opt/local install
|
||||
|
||||
WARNING: Having any UNIX-like toolset installed on your Mac besides
|
||||
|
|
@ -661,6 +661,9 @@ Compiling and Installation
|
|||
in-place or copied to /Applications. It also creates TuxPaint.dmg
|
||||
for distribution.
|
||||
|
||||
Additional steps may be required when building for Apple Silicon.
|
||||
See "Building for Apple Silicon" below.
|
||||
|
||||
-------------------------------------------------------
|
||||
|
||||
Known Issues
|
||||
|
|
@ -675,6 +678,12 @@ Compiling and Installation
|
|||
on how to obtain, install, and build Tux Paint on an old version
|
||||
of macOS.
|
||||
|
||||
Alternatively, Tux Paint and all of its library dependencies may
|
||||
be compiled with appropriate options to be runnable on older
|
||||
versions of macOS. These options are already set on Tux Paint,
|
||||
so only its dependencies (from MacPorts) need to be recompiled.
|
||||
See "Recompiling MacPorts" below for the instructions.
|
||||
|
||||
-------------------------------------------------------
|
||||
|
||||
Old Versions of macOS
|
||||
|
|
@ -682,12 +691,15 @@ Compiling and Installation
|
|||
Some old versions of macOS can be downloaded from Apple's support
|
||||
page: https://support.apple.com/en-us/HT211683
|
||||
|
||||
macOS 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.
|
||||
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.
|
||||
|
||||
Dual booting multiple versions of macOS for Apple Silicon has been
|
||||
so far unsuccessful.
|
||||
|
||||
As of this writing, the oldest version of macOS available on Apple's
|
||||
support site is Yosemite 10.10, which expects "GPT (GUID Partition
|
||||
|
|
@ -700,10 +712,6 @@ Compiling and Installation
|
|||
using the instructions found here:
|
||||
https://support.apple.com/en-mide/HT201372
|
||||
|
||||
It has been found that macOS can be installed onto the bootable
|
||||
media itself, so you can make the flash drive into a bootable
|
||||
installer then install the old macOS onto the same flash drive.
|
||||
|
||||
Once the old macOS is installed, you may find the Xcode on the App
|
||||
Store is too new to run on the version of the old macOS. Old
|
||||
versions of Xcode can be downloaded from Apple's Developer site in
|
||||
|
|
@ -719,6 +727,72 @@ Compiling and Installation
|
|||
--install") but otherwise build Tux Paint using the same steps
|
||||
described in the earlier part of this document.
|
||||
|
||||
Recompiling MacPorts
|
||||
|
||||
To recompile MacPorts to be usable on older versions of macOS, set
|
||||
the following options in /opt/local/etc/macports/macports.conf:172
|
||||
|
||||
buildfromsource always
|
||||
macosx_deployment_target 10.10
|
||||
|
||||
Then uninstall all MacPorts packages:
|
||||
|
||||
$ sudo port -fp uninstall installed
|
||||
|
||||
Then reinstall all MacPorts packages needed by Tux Paint. Also
|
||||
rebuild libimagequant using the updated Cargo package from MacPorts.
|
||||
|
||||
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.
|
||||
|
||||
Building for Apple Silicon
|
||||
|
||||
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:
|
||||
|
||||
$ codesign -s - TuxPaint.app
|
||||
$ make TuxPaint.dmg
|
||||
|
||||
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 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
|
||||
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) and DMG, is required, must also be
|
||||
rebuilt:
|
||||
|
||||
$ macos/build-universal.sh
|
||||
$ codesign -s - TuxPaint.app
|
||||
$ make TuxPaint.dmg
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Debugging
|
||||
|
|
|
|||
|
|
@ -751,7 +751,7 @@
|
|||
</h3>
|
||||
<p style="font-size: small;">
|
||||
<em>
|
||||
September 21, 2021 Mark K. Kim <<a href="mailto:markuskimius@gmail.com">markuskimius@gmail.com</a>>
|
||||
January 20, 2022 Mark Kim <<a href="mailto:markuskimius@gmail.com">markuskimius@gmail.com</a>>
|
||||
</em>
|
||||
</p>
|
||||
|
||||
|
|
@ -800,7 +800,7 @@
|
|||
$ sudo port install rust cargo<br/>
|
||||
$ git clone https://github.com/ImageOptim/libimagequant.git<br/>
|
||||
$ cd libimagequant/imagequant-sys<br/>
|
||||
$ cargo build --release<br/>
|
||||
$ cargo build --release # Must use cargo from MacPorts<br/>
|
||||
$ sudo make PREFIX=/opt/local install
|
||||
</code>
|
||||
</blockquote>
|
||||
|
|
@ -824,6 +824,9 @@
|
|||
</code>
|
||||
</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>
|
||||
|
||||
<p>
|
||||
Additional steps may be required when building for Apple Silicon. See "Building for Apple Silicon" below. </p>
|
||||
</blockquote>
|
||||
|
||||
<hr size="1" noshade width="75%" />
|
||||
|
|
@ -834,7 +837,9 @@
|
|||
<li>
|
||||
A macOS binary built on a specific version of macOS only runs on that version of macOS or later. To ensure Tux Paint can run on the oldest version of macOS possible, build it on the oldest version of macOS available. As of this writing we know Tux Paint cannot be built to run on macOS 10.7 or earlier.<br/>
|
||||
<br/>
|
||||
See "Old Versions of macOS" below for best-effort instructions on how to obtain, install, and build Tux Paint on an old version of macOS. </li>
|
||||
See "Old Versions of macOS" below for best-effort instructions on how to obtain, install, and build Tux Paint on an old version of macOS.<br/>
|
||||
<br/>
|
||||
Alternatively, Tux Paint and all of its library dependencies may be compiled with appropriate options to be runnable on older versions of macOS. These options are already set on Tux Paint, so only its dependencies (from MacPorts) need to be recompiled. See "Recompiling MacPorts" below for the instructions. </li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
|
|
@ -846,7 +851,10 @@
|
|||
Some old versions of macOS can be downloaded from Apple's support page: <a href="https://support.apple.com/en-us/HT211683">https://support.apple.com/en-us/HT211683</a> </p>
|
||||
|
||||
<p>
|
||||
macOS 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>
|
||||
Dual booting multiple versions of macOS for Apple Silicon has been so far unsuccessful. </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>
|
||||
|
|
@ -854,9 +862,6 @@
|
|||
<p>
|
||||
Upon launching the installer, if you get a popup about macOS being too old or new to be installed, a bootable installer can be created using the instructions found here: <a href="https://support.apple.com/en-mide/HT201372">https://support.apple.com/en-mide/HT201372</a> </p>
|
||||
|
||||
<p>
|
||||
It has been found that macOS can be installed onto the bootable media itself, so you can make the flash drive into a bootable installer then install the old macOS onto the same flash drive. </p>
|
||||
|
||||
<p>
|
||||
Once the old macOS is installed, you may find the Xcode on the App Store is too new to run on the version of the old macOS. Old versions of Xcode can be downloaded from Apple's Developer site in an area accessible with free registration: <a href="https://developer.apple.com/download/more/">https://developer.apple.com/download/more/</a> </p>
|
||||
|
||||
|
|
@ -868,6 +873,63 @@
|
|||
|
||||
</blockquote>
|
||||
|
||||
<h4>Recompiling MacPorts</h4>
|
||||
<blockquote>
|
||||
<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>
|
||||
<code>
|
||||
buildfromsource always<br/>
|
||||
macosx_deployment_target 10.10
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Then uninstall all MacPorts packages: <blockquote>
|
||||
<code>
|
||||
$ sudo port -fp uninstall installed
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild libimagequant using the updated Cargo package from MacPorts. </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>
|
||||
</blockquote>
|
||||
|
||||
<h4>Building for Apple Silicon</h4>
|
||||
<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>
|
||||
<code>
|
||||
$ codesign -s - TuxPaint.app<br/>
|
||||
$ make TuxPaint.dmg
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
<p>If you get an error that the application bundle is already signed, remove it before signing:: <blockquote>
|
||||
<code>
|
||||
$ codesign --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>
|
||||
</blockquote>
|
||||
|
||||
<h4>Building a Universal Binary</h4>
|
||||
<blockquote>
|
||||
<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>
|
||||
<code>
|
||||
$ macos/build-universal.sh<br/>
|
||||
$ codesign -s - TuxPaint.app <br/>
|
||||
$ make TuxPaint.dmg
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
</blockquote>
|
||||
|
||||
</blockquote>
|
||||
|
|
|
|||
|
|
@ -590,7 +590,7 @@ Compiling and Installation
|
|||
|
||||
macOS Users
|
||||
|
||||
septiembre 21, 2021 Mark K. Kim <markuskimius@gmail.com>
|
||||
enero 20, 2022 Mark Kim <markuskimius@gmail.com>
|
||||
|
||||
Tux Paint 0.9.22 and earlier required building Tux Paint from the
|
||||
Xcode IDE. Starting with 0.9.23, however, Tux Paint for macOS is built
|
||||
|
|
@ -640,7 +640,7 @@ Compiling and Installation
|
|||
$ sudo port install rust cargo
|
||||
$ git clone https://github.com/ImageOptim/libimagequant.git
|
||||
$ cd libimagequant/imagequant-sys
|
||||
$ cargo build --release
|
||||
$ cargo build --release # Must use cargo from MacPorts
|
||||
$ sudo make PREFIX=/opt/local install
|
||||
|
||||
WARNING: Having any UNIX-like toolset installed on your Mac besides
|
||||
|
|
@ -661,6 +661,9 @@ Compiling and Installation
|
|||
in-place or copied to /Applications. It also creates TuxPaint.dmg
|
||||
for distribution.
|
||||
|
||||
Additional steps may be required when building for Apple Silicon.
|
||||
See "Building for Apple Silicon" below.
|
||||
|
||||
-------------------------------------------------------
|
||||
|
||||
Known Issues
|
||||
|
|
@ -675,6 +678,12 @@ Compiling and Installation
|
|||
on how to obtain, install, and build Tux Paint on an old version
|
||||
of macOS.
|
||||
|
||||
Alternatively, Tux Paint and all of its library dependencies may
|
||||
be compiled with appropriate options to be runnable on older
|
||||
versions of macOS. These options are already set on Tux Paint,
|
||||
so only its dependencies (from MacPorts) need to be recompiled.
|
||||
See "Recompiling MacPorts" below for the instructions.
|
||||
|
||||
-------------------------------------------------------
|
||||
|
||||
Old Versions of macOS
|
||||
|
|
@ -682,12 +691,15 @@ Compiling and Installation
|
|||
Some old versions of macOS can be downloaded from Apple's support
|
||||
page: https://support.apple.com/en-us/HT211683
|
||||
|
||||
macOS 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.
|
||||
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.
|
||||
|
||||
Dual booting multiple versions of macOS for Apple Silicon has been
|
||||
so far unsuccessful.
|
||||
|
||||
As of this writing, the oldest version of macOS available on Apple's
|
||||
support site is Yosemite 10.10, which expects "GPT (GUID Partition
|
||||
|
|
@ -700,10 +712,6 @@ Compiling and Installation
|
|||
using the instructions found here:
|
||||
https://support.apple.com/en-mide/HT201372
|
||||
|
||||
It has been found that macOS can be installed onto the bootable
|
||||
media itself, so you can make the flash drive into a bootable
|
||||
installer then install the old macOS onto the same flash drive.
|
||||
|
||||
Once the old macOS is installed, you may find the Xcode on the App
|
||||
Store is too new to run on the version of the old macOS. Old
|
||||
versions of Xcode can be downloaded from Apple's Developer site in
|
||||
|
|
@ -719,6 +727,72 @@ Compiling and Installation
|
|||
--install") but otherwise build Tux Paint using the same steps
|
||||
described in the earlier part of this document.
|
||||
|
||||
Recompiling MacPorts
|
||||
|
||||
To recompile MacPorts to be usable on older versions of macOS, set
|
||||
the following options in /opt/local/etc/macports/macports.conf:172
|
||||
|
||||
buildfromsource always
|
||||
macosx_deployment_target 10.10
|
||||
|
||||
Then uninstall all MacPorts packages:
|
||||
|
||||
$ sudo port -fp uninstall installed
|
||||
|
||||
Then reinstall all MacPorts packages needed by Tux Paint. Also
|
||||
rebuild libimagequant using the updated Cargo package from MacPorts.
|
||||
|
||||
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.
|
||||
|
||||
Building for Apple Silicon
|
||||
|
||||
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:
|
||||
|
||||
$ codesign -s - TuxPaint.app
|
||||
$ make TuxPaint.dmg
|
||||
|
||||
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 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
|
||||
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) and DMG, is required, must also be
|
||||
rebuilt:
|
||||
|
||||
$ macos/build-universal.sh
|
||||
$ codesign -s - TuxPaint.app
|
||||
$ make TuxPaint.dmg
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Debugging
|
||||
|
|
|
|||
|
|
@ -751,7 +751,7 @@
|
|||
</h3>
|
||||
<p style="font-size: small;">
|
||||
<em>
|
||||
septiembre 21, 2021 Mark K. Kim <<a href="mailto:markuskimius@gmail.com">markuskimius@gmail.com</a>>
|
||||
enero 20, 2022 Mark Kim <<a href="mailto:markuskimius@gmail.com">markuskimius@gmail.com</a>>
|
||||
</em>
|
||||
</p>
|
||||
|
||||
|
|
@ -800,7 +800,7 @@
|
|||
$ sudo port install rust cargo<br/>
|
||||
$ git clone https://github.com/ImageOptim/libimagequant.git<br/>
|
||||
$ cd libimagequant/imagequant-sys<br/>
|
||||
$ cargo build --release<br/>
|
||||
$ cargo build --release # Must use cargo from MacPorts<br/>
|
||||
$ sudo make PREFIX=/opt/local install
|
||||
</code>
|
||||
</blockquote>
|
||||
|
|
@ -824,6 +824,9 @@
|
|||
</code>
|
||||
</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>
|
||||
|
||||
<p>
|
||||
Additional steps may be required when building for Apple Silicon. See "Building for Apple Silicon" below. </p>
|
||||
</blockquote>
|
||||
|
||||
<hr size="1" noshade width="75%" />
|
||||
|
|
@ -834,7 +837,9 @@
|
|||
<li>
|
||||
A macOS binary built on a specific version of macOS only runs on that version of macOS or later. To ensure Tux Paint can run on the oldest version of macOS possible, build it on the oldest version of macOS available. As of this writing we know Tux Paint cannot be built to run on macOS 10.7 or earlier.<br/>
|
||||
<br/>
|
||||
See "Old Versions of macOS" below for best-effort instructions on how to obtain, install, and build Tux Paint on an old version of macOS. </li>
|
||||
See "Old Versions of macOS" below for best-effort instructions on how to obtain, install, and build Tux Paint on an old version of macOS.<br/>
|
||||
<br/>
|
||||
Alternatively, Tux Paint and all of its library dependencies may be compiled with appropriate options to be runnable on older versions of macOS. These options are already set on Tux Paint, so only its dependencies (from MacPorts) need to be recompiled. See "Recompiling MacPorts" below for the instructions. </li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
|
|
@ -846,7 +851,10 @@
|
|||
Some old versions of macOS can be downloaded from Apple's support page: <a href="https://support.apple.com/en-us/HT211683">https://support.apple.com/en-us/HT211683</a> </p>
|
||||
|
||||
<p>
|
||||
macOS 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>
|
||||
Dual booting multiple versions of macOS for Apple Silicon has been so far unsuccessful. </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>
|
||||
|
|
@ -854,9 +862,6 @@
|
|||
<p>
|
||||
Upon launching the installer, if you get a popup about macOS being too old or new to be installed, a bootable installer can be created using the instructions found here: <a href="https://support.apple.com/en-mide/HT201372">https://support.apple.com/en-mide/HT201372</a> </p>
|
||||
|
||||
<p>
|
||||
It has been found that macOS can be installed onto the bootable media itself, so you can make the flash drive into a bootable installer then install the old macOS onto the same flash drive. </p>
|
||||
|
||||
<p>
|
||||
Once the old macOS is installed, you may find the Xcode on the App Store is too new to run on the version of the old macOS. Old versions of Xcode can be downloaded from Apple's Developer site in an area accessible with free registration: <a href="https://developer.apple.com/download/more/">https://developer.apple.com/download/more/</a> </p>
|
||||
|
||||
|
|
@ -868,6 +873,63 @@
|
|||
|
||||
</blockquote>
|
||||
|
||||
<h4>Recompiling MacPorts</h4>
|
||||
<blockquote>
|
||||
<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>
|
||||
<code>
|
||||
buildfromsource always<br/>
|
||||
macosx_deployment_target 10.10
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Then uninstall all MacPorts packages: <blockquote>
|
||||
<code>
|
||||
$ sudo port -fp uninstall installed
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild libimagequant using the updated Cargo package from MacPorts. </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>
|
||||
</blockquote>
|
||||
|
||||
<h4>Building for Apple Silicon</h4>
|
||||
<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>
|
||||
<code>
|
||||
$ codesign -s - TuxPaint.app<br/>
|
||||
$ make TuxPaint.dmg
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
<p>If you get an error that the application bundle is already signed, remove it before signing:: <blockquote>
|
||||
<code>
|
||||
$ codesign --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>
|
||||
</blockquote>
|
||||
|
||||
<h4>Building a Universal Binary</h4>
|
||||
<blockquote>
|
||||
<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>
|
||||
<code>
|
||||
$ macos/build-universal.sh<br/>
|
||||
$ codesign -s - TuxPaint.app <br/>
|
||||
$ make TuxPaint.dmg
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
</blockquote>
|
||||
|
||||
</blockquote>
|
||||
|
|
|
|||
|
|
@ -618,7 +618,7 @@ Compilation et installation
|
|||
|
||||
Utilisateurs de macOS
|
||||
|
||||
septembre 21, 2021 Mark K. Kim <markuskimius@gmail.com>
|
||||
janvier 20, 2022 Mark Kim <markuskimius@gmail.com>
|
||||
|
||||
Tux Paint 0.9.22, et avant, devrait être construit avec Xcode IDE. À
|
||||
partir de la version 0.9.23, cependant, Tux Paint pour macOS est
|
||||
|
|
@ -669,7 +669,7 @@ Compilation et installation
|
|||
$ sudo port install rust cargo
|
||||
$ git clone https://github.com/ImageOptim/libimagequant.git
|
||||
$ cd libimagequant/imagequant-sys
|
||||
$ cargo build --release
|
||||
$ cargo build --release # Must use cargo from MacPorts
|
||||
$ sudo make PREFIX=/opt/local install
|
||||
|
||||
ATTENTION :Posséder des outils Unix à côté de MacPorts et Xcode,
|
||||
|
|
@ -690,6 +690,9 @@ Compilation et installation
|
|||
place ou copiée sur /Applications. Il crée également TuxPaint.dmg
|
||||
pour la distribution.
|
||||
|
||||
Additional steps may be required when building for Apple Silicon.
|
||||
See "Building for Apple Silicon" below.
|
||||
|
||||
-------------------------------------------------------
|
||||
|
||||
Problèmes connus
|
||||
|
|
@ -706,6 +709,12 @@ Compilation et installation
|
|||
meilleures instructions pour obtenir, installer et construire
|
||||
Tux Paint sur des vieilles versions de macOS.
|
||||
|
||||
Alternatively, Tux Paint and all of its library dependencies may
|
||||
be compiled with appropriate options to be runnable on older
|
||||
versions of macOS. These options are already set on Tux Paint,
|
||||
so only its dependencies (from MacPorts) need to be recompiled.
|
||||
See "Recompiling MacPorts" below for the instructions.
|
||||
|
||||
-------------------------------------------------------
|
||||
|
||||
Vieilles versions de macOS
|
||||
|
|
@ -713,12 +722,15 @@ Compilation et installation
|
|||
Quelques vieilles versions de macOS peuvent être téléchargées sur la
|
||||
page d'aide d'Apple : https://support.apple.com/en-us/HT211683
|
||||
|
||||
macOS permet de booter sur plusieurs versions de l'OS, mais c'est
|
||||
préférable et plus facile d'installer le vieux macOS sur une clé.
|
||||
Quelque soit la l'endroit où vous l'installer, le partitionnement du
|
||||
disque et le type de partition doivent correspondre à ce qu'attend
|
||||
l'ancien macOS, dès lors utilisez l'utilitaire de partitionnement et
|
||||
le format de la clé en accord avec ceci.
|
||||
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.
|
||||
|
||||
Dual booting multiple versions of macOS for Apple Silicon has been
|
||||
so far unsuccessful.
|
||||
|
||||
À ce moment, l'ancienne version de macOS disponible sur le site
|
||||
d'Apple est la Yosemite 10.10, qui un partitionnement "GPT (GUID
|
||||
|
|
@ -730,10 +742,6 @@ Compilation et installation
|
|||
installateur bootable peut être créé en suivant les instructions
|
||||
données ici : https://support.apple.com/en-mide/HT201372
|
||||
|
||||
Il apparaît que macOS peut être installé sur le media bootable
|
||||
lui-même, dès lors vous pouvez flasher l'installeur bootable et
|
||||
mettre le vieux macOS sur ce même média.
|
||||
|
||||
Une fois l'ancienne version de macOS installée, vous pouvez trouver
|
||||
que le Xcode du App Store est trop récent pour tourner sur la
|
||||
version du vieux macOS. Des anciennes versions de Xcode peuvent être
|
||||
|
|
@ -751,6 +759,72 @@ Compilation et installation
|
|||
"xcode-select --install") mais alors vous compilez Tux Paint en
|
||||
utilisant les mêmes étapes décrites auparavant dans ce document.
|
||||
|
||||
Recompiling MacPorts
|
||||
|
||||
To recompile MacPorts to be usable on older versions of macOS, set
|
||||
the following options in /opt/local/etc/macports/macports.conf:172
|
||||
|
||||
buildfromsource always
|
||||
macosx_deployment_target 10.10
|
||||
|
||||
Then uninstall all MacPorts packages:
|
||||
|
||||
$ sudo port -fp uninstall installed
|
||||
|
||||
Then reinstall all MacPorts packages needed by Tux Paint. Also
|
||||
rebuild libimagequant using the updated Cargo package from MacPorts.
|
||||
|
||||
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.
|
||||
|
||||
Building for Apple Silicon
|
||||
|
||||
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:
|
||||
|
||||
$ codesign -s - TuxPaint.app
|
||||
$ make TuxPaint.dmg
|
||||
|
||||
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 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
|
||||
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) and DMG, is required, must also be
|
||||
rebuilt:
|
||||
|
||||
$ macos/build-universal.sh
|
||||
$ codesign -s - TuxPaint.app
|
||||
$ make TuxPaint.dmg
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Débogage
|
||||
|
|
|
|||
|
|
@ -751,7 +751,7 @@
|
|||
</h3>
|
||||
<p style="font-size: small;">
|
||||
<em>
|
||||
septembre 21, 2021 Mark K. Kim <<a href="mailto:markuskimius@gmail.com">markuskimius@gmail.com</a>>
|
||||
janvier 20, 2022 Mark Kim <<a href="mailto:markuskimius@gmail.com">markuskimius@gmail.com</a>>
|
||||
</em>
|
||||
</p>
|
||||
|
||||
|
|
@ -800,7 +800,7 @@
|
|||
$ sudo port install rust cargo<br/>
|
||||
$ git clone https://github.com/ImageOptim/libimagequant.git<br/>
|
||||
$ cd libimagequant/imagequant-sys<br/>
|
||||
$ cargo build --release<br/>
|
||||
$ cargo build --release # Must use cargo from MacPorts<br/>
|
||||
$ sudo make PREFIX=/opt/local install
|
||||
</code>
|
||||
</blockquote>
|
||||
|
|
@ -824,6 +824,9 @@
|
|||
</code>
|
||||
</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>
|
||||
|
||||
<p>
|
||||
Additional steps may be required when building for Apple Silicon. See "Building for Apple Silicon" below. </p>
|
||||
</blockquote>
|
||||
|
||||
<hr size="1" noshade width="75%" />
|
||||
|
|
@ -834,7 +837,9 @@
|
|||
<li>
|
||||
Un binaire macOS construit sur une version spécifique de macOS ne fonctionnera qu'avec cette version, ou une plus récente. Pour s'assurer que Tux Paint puisse tourner sur la plus vieille version de macOS possible, construisez le sur la plus vieille version de macOS disponible. Au moment où nous écrivons Tux Paint ne peut être construit pour tourner sur macOS 10.7 ou plus récent.<br/>
|
||||
<br/>
|
||||
Voyez "Vieilles Versions de macOS" ci-dessous pour les meilleures instructions pour obtenir, installer et construire Tux Paint sur des vieilles versions de macOS. </li>
|
||||
Voyez "Vieilles Versions de macOS" ci-dessous pour les meilleures instructions pour obtenir, installer et construire Tux Paint sur des vieilles versions de macOS.<br/>
|
||||
<br/>
|
||||
Alternatively, Tux Paint and all of its library dependencies may be compiled with appropriate options to be runnable on older versions of macOS. These options are already set on Tux Paint, so only its dependencies (from MacPorts) need to be recompiled. See "Recompiling MacPorts" below for the instructions. </li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
|
|
@ -846,7 +851,10 @@
|
|||
Quelques vieilles versions de macOS peuvent être téléchargées sur la page d'aide d'Apple : <a href="https://support.apple.com/en-us/HT211683">https://support.apple.com/en-us/HT211683</a> </p>
|
||||
|
||||
<p>
|
||||
macOS permet de booter sur plusieurs versions de l'OS, mais c'est préférable et plus facile d'installer le vieux macOS sur une clé. Quelque soit la l'endroit où vous l'installer, le partitionnement du disque et le type de partition doivent correspondre à ce qu'attend l'ancien macOS, dès lors utilisez l'utilitaire de partitionnement et le format de la clé en accord avec ceci. </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>
|
||||
Dual booting multiple versions of macOS for Apple Silicon has been so far unsuccessful. </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>
|
||||
|
|
@ -854,9 +862,6 @@
|
|||
<p>
|
||||
Au lancement de l'installateur, si vous avez un message disant que macOD est trop vieux ou trop récent pour être installé, un installateur bootable peut être créé en suivant les instructions données ici : <a href="https://support.apple.com/en-mide/HT201372">https://support.apple.com/en-mide/HT201372</a> </p>
|
||||
|
||||
<p>
|
||||
Il apparaît que macOS peut être installé sur le media bootable lui-même, dès lors vous pouvez flasher l'installeur bootable et mettre le vieux macOS sur ce même média. </p>
|
||||
|
||||
<p>
|
||||
Une fois l'ancienne version de macOS installée, vous pouvez trouver que le Xcode du App Store est trop récent pour tourner sur la version du vieux macOS. Des anciennes versions de Xcode peuvent être téléchargées sur le site des développeurs d'Apple dans une zone accessible après enregistrement gratuit : <a href="https://developer.apple.com/download/more/">https://developer.apple.com/download/more/</a> </p>
|
||||
|
||||
|
|
@ -868,6 +873,63 @@
|
|||
|
||||
</blockquote>
|
||||
|
||||
<h4>Recompiling MacPorts</h4>
|
||||
<blockquote>
|
||||
<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>
|
||||
<code>
|
||||
buildfromsource always<br/>
|
||||
macosx_deployment_target 10.10
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Then uninstall all MacPorts packages: <blockquote>
|
||||
<code>
|
||||
$ sudo port -fp uninstall installed
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild libimagequant using the updated Cargo package from MacPorts. </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>
|
||||
</blockquote>
|
||||
|
||||
<h4>Building for Apple Silicon</h4>
|
||||
<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>
|
||||
<code>
|
||||
$ codesign -s - TuxPaint.app<br/>
|
||||
$ make TuxPaint.dmg
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
<p>If you get an error that the application bundle is already signed, remove it before signing:: <blockquote>
|
||||
<code>
|
||||
$ codesign --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>
|
||||
</blockquote>
|
||||
|
||||
<h4>Building a Universal Binary</h4>
|
||||
<blockquote>
|
||||
<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>
|
||||
<code>
|
||||
$ macos/build-universal.sh<br/>
|
||||
$ codesign -s - TuxPaint.app <br/>
|
||||
$ make TuxPaint.dmg
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
</blockquote>
|
||||
|
||||
</blockquote>
|
||||
|
|
|
|||
|
|
@ -600,7 +600,7 @@ Compiling and Installation
|
|||
|
||||
Usuarios de macOS
|
||||
|
||||
21 de Setembro de 2021 Mark K. Kim <markuskimius@gmail.com>
|
||||
20 de Xaneiro de 2022 Mark Kim <markuskimius@gmail.com>
|
||||
|
||||
Tux Paint 0.9.22 and earlier required building Tux Paint from the
|
||||
Xcode IDE. Starting with 0.9.23, however, Tux Paint for macOS is built
|
||||
|
|
@ -650,7 +650,7 @@ Compiling and Installation
|
|||
$ sudo port install rust cargo
|
||||
$ git clone https://github.com/ImageOptim/libimagequant.git
|
||||
$ cd libimagequant/imagequant-sys
|
||||
$ cargo build --release
|
||||
$ cargo build --release # Must use cargo from MacPorts
|
||||
$ sudo make PREFIX=/opt/local install
|
||||
|
||||
WARNING: Having any UNIX-like toolset installed on your Mac besides
|
||||
|
|
@ -671,6 +671,9 @@ Compiling and Installation
|
|||
in-place or copied to /Applications. It also creates TuxPaint.dmg
|
||||
for distribution.
|
||||
|
||||
Additional steps may be required when building for Apple Silicon.
|
||||
See "Building for Apple Silicon" below.
|
||||
|
||||
-------------------------------------------------------
|
||||
|
||||
Known Issues
|
||||
|
|
@ -685,6 +688,12 @@ Compiling and Installation
|
|||
on how to obtain, install, and build Tux Paint on an old version
|
||||
of macOS.
|
||||
|
||||
Alternatively, Tux Paint and all of its library dependencies may
|
||||
be compiled with appropriate options to be runnable on older
|
||||
versions of macOS. These options are already set on Tux Paint,
|
||||
so only its dependencies (from MacPorts) need to be recompiled.
|
||||
See "Recompiling MacPorts" below for the instructions.
|
||||
|
||||
-------------------------------------------------------
|
||||
|
||||
Old Versions of macOS
|
||||
|
|
@ -692,12 +701,15 @@ Compiling and Installation
|
|||
Some old versions of macOS can be downloaded from Apple's support
|
||||
page: https://support.apple.com/en-us/HT211683
|
||||
|
||||
macOS 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.
|
||||
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.
|
||||
|
||||
Dual booting multiple versions of macOS for Apple Silicon has been
|
||||
so far unsuccessful.
|
||||
|
||||
As of this writing, the oldest version of macOS available on Apple's
|
||||
support site is Yosemite 10.10, which expects "GPT (GUID Partition
|
||||
|
|
@ -710,10 +722,6 @@ Compiling and Installation
|
|||
using the instructions found here:
|
||||
https://support.apple.com/en-mide/HT201372
|
||||
|
||||
It has been found that macOS can be installed onto the bootable
|
||||
media itself, so you can make the flash drive into a bootable
|
||||
installer then install the old macOS onto the same flash drive.
|
||||
|
||||
Once the old macOS is installed, you may find the Xcode on the App
|
||||
Store is too new to run on the version of the old macOS. Old
|
||||
versions of Xcode can be downloaded from Apple's Developer site in
|
||||
|
|
@ -729,6 +737,72 @@ Compiling and Installation
|
|||
--install") but otherwise build Tux Paint using the same steps
|
||||
described in the earlier part of this document.
|
||||
|
||||
Recompiling MacPorts
|
||||
|
||||
To recompile MacPorts to be usable on older versions of macOS, set
|
||||
the following options in /opt/local/etc/macports/macports.conf:172
|
||||
|
||||
buildfromsource always
|
||||
macosx_deployment_target 10.10
|
||||
|
||||
Then uninstall all MacPorts packages:
|
||||
|
||||
$ sudo port -fp uninstall installed
|
||||
|
||||
Then reinstall all MacPorts packages needed by Tux Paint. Also
|
||||
rebuild libimagequant using the updated Cargo package from MacPorts.
|
||||
|
||||
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.
|
||||
|
||||
Building for Apple Silicon
|
||||
|
||||
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:
|
||||
|
||||
$ codesign -s - TuxPaint.app
|
||||
$ make TuxPaint.dmg
|
||||
|
||||
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 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
|
||||
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) and DMG, is required, must also be
|
||||
rebuilt:
|
||||
|
||||
$ macos/build-universal.sh
|
||||
$ codesign -s - TuxPaint.app
|
||||
$ make TuxPaint.dmg
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Debugging
|
||||
|
|
|
|||
|
|
@ -751,7 +751,7 @@
|
|||
</h3>
|
||||
<p style="font-size: small;">
|
||||
<em>
|
||||
21 de Setembro de 2021 Mark K. Kim <<a href="mailto:markuskimius@gmail.com">markuskimius@gmail.com</a>>
|
||||
20 de Xaneiro de 2022 Mark Kim <<a href="mailto:markuskimius@gmail.com">markuskimius@gmail.com</a>>
|
||||
</em>
|
||||
</p>
|
||||
|
||||
|
|
@ -800,7 +800,7 @@
|
|||
$ sudo port install rust cargo<br/>
|
||||
$ git clone https://github.com/ImageOptim/libimagequant.git<br/>
|
||||
$ cd libimagequant/imagequant-sys<br/>
|
||||
$ cargo build --release<br/>
|
||||
$ cargo build --release # Must use cargo from MacPorts<br/>
|
||||
$ sudo make PREFIX=/opt/local install
|
||||
</code>
|
||||
</blockquote>
|
||||
|
|
@ -824,6 +824,9 @@
|
|||
</code>
|
||||
</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>
|
||||
|
||||
<p>
|
||||
Additional steps may be required when building for Apple Silicon. See "Building for Apple Silicon" below. </p>
|
||||
</blockquote>
|
||||
|
||||
<hr size="1" noshade width="75%" />
|
||||
|
|
@ -834,7 +837,9 @@
|
|||
<li>
|
||||
A macOS binary built on a specific version of macOS only runs on that version of macOS or later. To ensure Tux Paint can run on the oldest version of macOS possible, build it on the oldest version of macOS available. As of this writing we know Tux Paint cannot be built to run on macOS 10.7 or earlier.<br/>
|
||||
<br/>
|
||||
See "Old Versions of macOS" below for best-effort instructions on how to obtain, install, and build Tux Paint on an old version of macOS. </li>
|
||||
See "Old Versions of macOS" below for best-effort instructions on how to obtain, install, and build Tux Paint on an old version of macOS.<br/>
|
||||
<br/>
|
||||
Alternatively, Tux Paint and all of its library dependencies may be compiled with appropriate options to be runnable on older versions of macOS. These options are already set on Tux Paint, so only its dependencies (from MacPorts) need to be recompiled. See "Recompiling MacPorts" below for the instructions. </li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
|
|
@ -846,7 +851,10 @@
|
|||
Some old versions of macOS can be downloaded from Apple's support page: <a href="https://support.apple.com/en-us/HT211683">https://support.apple.com/en-us/HT211683</a> </p>
|
||||
|
||||
<p>
|
||||
macOS 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>
|
||||
Dual booting multiple versions of macOS for Apple Silicon has been so far unsuccessful. </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>
|
||||
|
|
@ -854,9 +862,6 @@
|
|||
<p>
|
||||
Upon launching the installer, if you get a popup about macOS being too old or new to be installed, a bootable installer can be created using the instructions found here: <a href="https://support.apple.com/en-mide/HT201372">https://support.apple.com/en-mide/HT201372</a> </p>
|
||||
|
||||
<p>
|
||||
It has been found that macOS can be installed onto the bootable media itself, so you can make the flash drive into a bootable installer then install the old macOS onto the same flash drive. </p>
|
||||
|
||||
<p>
|
||||
Once the old macOS is installed, you may find the Xcode on the App Store is too new to run on the version of the old macOS. Old versions of Xcode can be downloaded from Apple's Developer site in an area accessible with free registration: <a href="https://developer.apple.com/download/more/">https://developer.apple.com/download/more/</a> </p>
|
||||
|
||||
|
|
@ -868,6 +873,63 @@
|
|||
|
||||
</blockquote>
|
||||
|
||||
<h4>Recompiling MacPorts</h4>
|
||||
<blockquote>
|
||||
<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>
|
||||
<code>
|
||||
buildfromsource always<br/>
|
||||
macosx_deployment_target 10.10
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Then uninstall all MacPorts packages: <blockquote>
|
||||
<code>
|
||||
$ sudo port -fp uninstall installed
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild libimagequant using the updated Cargo package from MacPorts. </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>
|
||||
</blockquote>
|
||||
|
||||
<h4>Building for Apple Silicon</h4>
|
||||
<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>
|
||||
<code>
|
||||
$ codesign -s - TuxPaint.app<br/>
|
||||
$ make TuxPaint.dmg
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
<p>If you get an error that the application bundle is already signed, remove it before signing:: <blockquote>
|
||||
<code>
|
||||
$ codesign --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>
|
||||
</blockquote>
|
||||
|
||||
<h4>Building a Universal Binary</h4>
|
||||
<blockquote>
|
||||
<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>
|
||||
<code>
|
||||
$ macos/build-universal.sh<br/>
|
||||
$ codesign -s - TuxPaint.app <br/>
|
||||
$ make TuxPaint.dmg
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
</blockquote>
|
||||
|
||||
</blockquote>
|
||||
|
|
|
|||
|
|
@ -590,7 +590,7 @@ Compiling and Installation
|
|||
|
||||
macOS のユーザー
|
||||
|
||||
2021年9月21日 Mark K. Kim <markuskimius@gmail.com>
|
||||
2022年1月20日 Mark Kim <markuskimius@gmail.com>
|
||||
|
||||
Tux Paint 0.9.22 and earlier required building Tux Paint from the
|
||||
Xcode IDE. Starting with 0.9.23, however, Tux Paint for macOS is built
|
||||
|
|
@ -640,7 +640,7 @@ Compiling and Installation
|
|||
$ sudo port install rust cargo
|
||||
$ git clone https://github.com/ImageOptim/libimagequant.git
|
||||
$ cd libimagequant/imagequant-sys
|
||||
$ cargo build --release
|
||||
$ cargo build --release # Must use cargo from MacPorts
|
||||
$ sudo make PREFIX=/opt/local install
|
||||
|
||||
WARNING: Having any UNIX-like toolset installed on your Mac besides
|
||||
|
|
@ -661,6 +661,9 @@ Compiling and Installation
|
|||
in-place or copied to /Applications. It also creates TuxPaint.dmg
|
||||
for distribution.
|
||||
|
||||
Additional steps may be required when building for Apple Silicon.
|
||||
See "Building for Apple Silicon" below.
|
||||
|
||||
-------------------------------------------------------
|
||||
|
||||
Known Issues
|
||||
|
|
@ -675,6 +678,12 @@ Compiling and Installation
|
|||
on how to obtain, install, and build Tux Paint on an old version
|
||||
of macOS.
|
||||
|
||||
Alternatively, Tux Paint and all of its library dependencies may
|
||||
be compiled with appropriate options to be runnable on older
|
||||
versions of macOS. These options are already set on Tux Paint,
|
||||
so only its dependencies (from MacPorts) need to be recompiled.
|
||||
See "Recompiling MacPorts" below for the instructions.
|
||||
|
||||
-------------------------------------------------------
|
||||
|
||||
Old Versions of macOS
|
||||
|
|
@ -682,12 +691,15 @@ Compiling and Installation
|
|||
Some old versions of macOS can be downloaded from Apple's support
|
||||
page: https://support.apple.com/en-us/HT211683
|
||||
|
||||
macOS 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.
|
||||
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.
|
||||
|
||||
Dual booting multiple versions of macOS for Apple Silicon has been
|
||||
so far unsuccessful.
|
||||
|
||||
As of this writing, the oldest version of macOS available on Apple's
|
||||
support site is Yosemite 10.10, which expects "GPT (GUID Partition
|
||||
|
|
@ -700,10 +712,6 @@ Compiling and Installation
|
|||
using the instructions found here:
|
||||
https://support.apple.com/en-mide/HT201372
|
||||
|
||||
It has been found that macOS can be installed onto the bootable
|
||||
media itself, so you can make the flash drive into a bootable
|
||||
installer then install the old macOS onto the same flash drive.
|
||||
|
||||
Once the old macOS is installed, you may find the Xcode on the App
|
||||
Store is too new to run on the version of the old macOS. Old
|
||||
versions of Xcode can be downloaded from Apple's Developer site in
|
||||
|
|
@ -719,6 +727,72 @@ Compiling and Installation
|
|||
--install") but otherwise build Tux Paint using the same steps
|
||||
described in the earlier part of this document.
|
||||
|
||||
Recompiling MacPorts
|
||||
|
||||
To recompile MacPorts to be usable on older versions of macOS, set
|
||||
the following options in /opt/local/etc/macports/macports.conf:172
|
||||
|
||||
buildfromsource always
|
||||
macosx_deployment_target 10.10
|
||||
|
||||
Then uninstall all MacPorts packages:
|
||||
|
||||
$ sudo port -fp uninstall installed
|
||||
|
||||
Then reinstall all MacPorts packages needed by Tux Paint. Also
|
||||
rebuild libimagequant using the updated Cargo package from MacPorts.
|
||||
|
||||
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.
|
||||
|
||||
Building for Apple Silicon
|
||||
|
||||
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:
|
||||
|
||||
$ codesign -s - TuxPaint.app
|
||||
$ make TuxPaint.dmg
|
||||
|
||||
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 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
|
||||
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) and DMG, is required, must also be
|
||||
rebuilt:
|
||||
|
||||
$ macos/build-universal.sh
|
||||
$ codesign -s - TuxPaint.app
|
||||
$ make TuxPaint.dmg
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Debugging
|
||||
|
|
|
|||
|
|
@ -751,7 +751,7 @@
|
|||
</h3>
|
||||
<p style="font-size: small;">
|
||||
<em>
|
||||
2021年9月21日 Mark K. Kim <<a href="mailto:markuskimius@gmail.com">markuskimius@gmail.com</a>>
|
||||
2022年1月20日 Mark Kim <<a href="mailto:markuskimius@gmail.com">markuskimius@gmail.com</a>>
|
||||
</em>
|
||||
</p>
|
||||
|
||||
|
|
@ -800,7 +800,7 @@
|
|||
$ sudo port install rust cargo<br/>
|
||||
$ git clone https://github.com/ImageOptim/libimagequant.git<br/>
|
||||
$ cd libimagequant/imagequant-sys<br/>
|
||||
$ cargo build --release<br/>
|
||||
$ cargo build --release # Must use cargo from MacPorts<br/>
|
||||
$ sudo make PREFIX=/opt/local install
|
||||
</code>
|
||||
</blockquote>
|
||||
|
|
@ -824,6 +824,9 @@
|
|||
</code>
|
||||
</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>
|
||||
|
||||
<p>
|
||||
Additional steps may be required when building for Apple Silicon. See "Building for Apple Silicon" below. </p>
|
||||
</blockquote>
|
||||
|
||||
<hr size="1" noshade width="75%" />
|
||||
|
|
@ -834,7 +837,9 @@
|
|||
<li>
|
||||
A macOS binary built on a specific version of macOS only runs on that version of macOS or later. To ensure Tux Paint can run on the oldest version of macOS possible, build it on the oldest version of macOS available. As of this writing we know Tux Paint cannot be built to run on macOS 10.7 or earlier.<br/>
|
||||
<br/>
|
||||
See "Old Versions of macOS" below for best-effort instructions on how to obtain, install, and build Tux Paint on an old version of macOS. </li>
|
||||
See "Old Versions of macOS" below for best-effort instructions on how to obtain, install, and build Tux Paint on an old version of macOS.<br/>
|
||||
<br/>
|
||||
Alternatively, Tux Paint and all of its library dependencies may be compiled with appropriate options to be runnable on older versions of macOS. These options are already set on Tux Paint, so only its dependencies (from MacPorts) need to be recompiled. See "Recompiling MacPorts" below for the instructions. </li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
|
||||
|
|
@ -846,7 +851,10 @@
|
|||
Some old versions of macOS can be downloaded from Apple's support page: <a href="https://support.apple.com/en-us/HT211683">https://support.apple.com/en-us/HT211683</a> </p>
|
||||
|
||||
<p>
|
||||
macOS 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>
|
||||
Dual booting multiple versions of macOS for Apple Silicon has been so far unsuccessful. </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>
|
||||
|
|
@ -854,9 +862,6 @@
|
|||
<p>
|
||||
Upon launching the installer, if you get a popup about macOS being too old or new to be installed, a bootable installer can be created using the instructions found here: <a href="https://support.apple.com/en-mide/HT201372">https://support.apple.com/en-mide/HT201372</a> </p>
|
||||
|
||||
<p>
|
||||
It has been found that macOS can be installed onto the bootable media itself, so you can make the flash drive into a bootable installer then install the old macOS onto the same flash drive. </p>
|
||||
|
||||
<p>
|
||||
Once the old macOS is installed, you may find the Xcode on the App Store is too new to run on the version of the old macOS. Old versions of Xcode can be downloaded from Apple's Developer site in an area accessible with free registration: <a href="https://developer.apple.com/download/more/">https://developer.apple.com/download/more/</a> </p>
|
||||
|
||||
|
|
@ -868,6 +873,63 @@
|
|||
|
||||
</blockquote>
|
||||
|
||||
<h4>Recompiling MacPorts</h4>
|
||||
<blockquote>
|
||||
<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>
|
||||
<code>
|
||||
buildfromsource always<br/>
|
||||
macosx_deployment_target 10.10
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Then uninstall all MacPorts packages: <blockquote>
|
||||
<code>
|
||||
$ sudo port -fp uninstall installed
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Then reinstall all MacPorts packages needed by Tux Paint. Also rebuild libimagequant using the updated Cargo package from MacPorts. </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>
|
||||
</blockquote>
|
||||
|
||||
<h4>Building for Apple Silicon</h4>
|
||||
<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>
|
||||
<code>
|
||||
$ codesign -s - TuxPaint.app<br/>
|
||||
$ make TuxPaint.dmg
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
<p>If you get an error that the application bundle is already signed, remove it before signing:: <blockquote>
|
||||
<code>
|
||||
$ codesign --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>
|
||||
</blockquote>
|
||||
|
||||
<h4>Building a Universal Binary</h4>
|
||||
<blockquote>
|
||||
<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>
|
||||
<code>
|
||||
$ macos/build-universal.sh<br/>
|
||||
$ codesign -s - TuxPaint.app <br/>
|
||||
$ make TuxPaint.dmg
|
||||
</code>
|
||||
</blockquote>
|
||||
</p>
|
||||
</blockquote>
|
||||
|
||||
</blockquote>
|
||||
|
||||
</blockquote>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue