Get Involved/development/Mac: Difference between revisions

From KDE Community Wiki
(→‎Overview: People should not build Qt, KDE Craft will install Qt correctly on macOS)
(In order to build KDE software on macOS, we recommend KDE Craft)
Line 1: Line 1:
A screen recording version is available https://www.youtube.com/watch?v=kjFUfZ3Lupo
A screen recording version is available https://www.youtube.com/watch?v=kjFUfZ3Lupo


== Installation using patched version of Qt and MacPorts ==
== KDE Craft ==
 
* [https://guide.macports.org/#installing.macports Install Macports]
** Note: If you have an existing installation of MacPorts ''and'' installed ports that depend on Qt, see [https://mail.kde.org/pipermail/kde-mac/2017-June/005280.html this mail].
* Install git, if you don't have it yet:
sudo port install git
* Get the ports tree for patched qt and frameworks:
# We assume you're doing this in your home directory
cd ~
git clone https://github.com/mkae/macstrop.git
# create index
cd macstrop
portindex
* [https://guide.macports.org/chunked/development.local-repositories.html Register the new ports with Macports]. To do so, edit ${prefix}/etc/macports/sources.conf, where prefix is the root path of your MacPorts installation (/opt/local by default). Add the following line ''above'' any other path specifications (thus making sure it will take precedence):
file:///Users/YourUserName/macstrop
 
It is recommended that you build the patched Qt before any frameworks, in order to make extra sure all dependencies are resolved, correctly:
sudo port install qt5-kde
 
You can now start building frameworks or applications (if already packaged), using e.g.
sudo port install kf5-parts
sudo port install kf5-kate
sudo port install kf5-frameworkintegration    # will get the most common frameworks in one go
 
Many ports have additional variants, such as "+docs" for handbooks / API documentation:
sudo port install kf5-kate +docs
port variants kf5-kate      # list available variants
port notes kf5-kate            # show any notes
 
== Installation using Craft ==


* Install [https://www.python.org/downloads/ Python 3]
* Install [https://www.python.org/downloads/ Python 3]
Line 59: Line 30:


The workaround for now is either to create and mount a case-insensitive disk image for craft usage or to manually create symlinks as needed.
The workaround for now is either to create and mount a case-insensitive disk image for craft usage or to manually create symlinks as needed.
== Alternative to KDE Craft. Installation using a patched version of Qt and MacPorts ==
* [https://guide.macports.org/#installing.macports Install Macports]
** Note: If you have an existing installation of MacPorts ''and'' installed ports that depend on Qt, see [https://mail.kde.org/pipermail/kde-mac/2017-June/005280.html this mail].
* Install git, if you don't have it yet:
sudo port install git
* Get the ports tree for patched qt and frameworks:
# We assume you're doing this in your home directory
cd ~
git clone https://github.com/mkae/macstrop.git
# create index
cd macstrop
portindex
* [https://guide.macports.org/chunked/development.local-repositories.html Register the new ports with Macports]. To do so, edit ${prefix}/etc/macports/sources.conf, where prefix is the root path of your MacPorts installation (/opt/local by default). Add the following line ''above'' any other path specifications (thus making sure it will take precedence):
file:///Users/YourUserName/macstrop
It is recommended that you build the patched Qt before any frameworks, in order to make extra sure all dependencies are resolved, correctly:
sudo port install qt5-kde
You can now start building frameworks or applications (if already packaged), using e.g.
sudo port install kf5-parts
sudo port install kf5-kate
sudo port install kf5-frameworkintegration    # will get the most common frameworks in one go
Many ports have additional variants, such as "+docs" for handbooks / API documentation:
sudo port install kf5-kate +docs
port variants kf5-kate      # list available variants
port notes kf5-kate            # show any notes

Revision as of 21:56, 22 September 2023

A screen recording version is available https://www.youtube.com/watch?v=kjFUfZ3Lupo

KDE Craft

  • Install Python 3
  • Install XCode (at least developper command-line tools suffice):
xcode-select --install

Install Craft

 curl https://raw.githubusercontent.com/KDE/craft/master/setup/CraftBootstrap.py -o setup.py && python3 setup.py --prefix ~/CraftRoot

Note: At the time of this writing, with a fresh installation of Python 3.7 or 3.8, this command will fail with "certificate verify failed: unable to get local issuer certificate". To fix this, run the following, once:

 "/Applications/Python [Version]/Install Certificates.command"

Using craft

  • Every time you want to use craft in a new shell, you need to set up the craft environment, first:
source ~/CraftRoot/craft/craftenv.sh
  • In this shell, now craft is usable, e.g. to build Kate with all dependencies:
craft kate

Case sensitive filesystem considerations

When building craft packages on case-sensitive filesystem, you will see errors in packages referencing some of the KF5 libraries:

   fatal error: 'sonnet/highlighter.h' file not found

This is a known upstream issue: https://bugs.kde.org/show_bug.cgi?id=419167

NOTE: The bug was closed due to a lack of information. If you run into this issue, please reopen it!

The workaround for now is either to create and mount a case-insensitive disk image for craft usage or to manually create symlinks as needed.

Alternative to KDE Craft. Installation using a patched version of Qt and MacPorts

  • Install Macports
    • Note: If you have an existing installation of MacPorts and installed ports that depend on Qt, see this mail.
  • Install git, if you don't have it yet:
sudo port install git 
  • Get the ports tree for patched qt and frameworks:
# We assume you're doing this in your home directory
cd ~
git clone https://github.com/mkae/macstrop.git
# create index
cd macstrop
portindex
  • Register the new ports with Macports. To do so, edit ${prefix}/etc/macports/sources.conf, where prefix is the root path of your MacPorts installation (/opt/local by default). Add the following line above any other path specifications (thus making sure it will take precedence):
file:///Users/YourUserName/macstrop

It is recommended that you build the patched Qt before any frameworks, in order to make extra sure all dependencies are resolved, correctly:

sudo port install qt5-kde

You can now start building frameworks or applications (if already packaged), using e.g.

sudo port install kf5-parts
sudo port install kf5-kate
sudo port install kf5-frameworkintegration     # will get the most common frameworks in one go

Many ports have additional variants, such as "+docs" for handbooks / API documentation:

sudo port install kf5-kate +docs
port variants kf5-kate       # list available variants
port notes kf5-kate            # show any notes