Warning, /graphics/digikam/project/bundles/homebrew/README is written in an unsupported language. File is not indexed.

0001 RESUME
0002 ------
0003 Scripts to build binary digiKam package for MacOS
0004 
0005 These scripts build a binary digiKam package for MacOS using HomeBrew
0006 environment and Packages application.
0007 
0008 These scripts follow instructions from Qt bundle deployment for MacOS as shared libraries
0009 available at this url: https://doc.qt.io/qt-6/macos-deployment.html
0010 
0011 
0012 AUTHORS
0013 -------
0014 
0015 (c)      2015 by Shanti <listaccount at revenant dot org>
0016 (c) 2015-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
0017 
0018 
0019 DESCRIPTION
0020 -----------
0021 These files and scripts are used to make a binary package of the digiKam
0022 Software Collection for MacOS. In addition to this README, there are
0023 comments in the scripts that provide some additional explanations for
0024 how they work.
0025 
0026 
0027 BUNDLE CONTENTS
0028 ---------------
0029 
0030 Note: the bundle is relocatable.
0031 
0032 Bundle is composed of two main application containers (digikam and showfoto), to start from the macOS lauchpad.
0033 The digikam sub-container include all resources shared with showfoto.
0034 The showfoto sub-container directories are linked to the digikam sub-container to reduce used-space.
0035 The host directory is called "digiKam.org" and not "digiKam" to allow Showfoto icon to be show on macOS lauchpad,
0036 else only digiKam is visible.
0037 
0038 digiKam.org
0039 ├── digikam.app                             digiKam sub-container
0040 │   └── Contents
0041 │       ├── bin                             Extra binaries
0042 │       ├── etc                             Extra configuration
0043 │       ├── lib                             Libraries and extra dependencies
0044 │       ├── libexec                         Run time dependencies
0045 │       │   └── qt5
0046 │       │       ├── lib
0047 │       │       └── plugins                 Plugins
0048 │       │           ├── bearer
0049 │       │           ├── designer
0050 │       │           ├── digikam             digiKam and Showfoto DPlugins
0051 │       │           │   ├── bqm
0052 │       │           │   ├── dimg
0053 │       │           │   ├── editor
0054 │       │           │   ├── generic
0055 │       │           │   └── rawimport
0056 │       │           ├── generic
0057 │       │           ├── iconengines
0058 │       │           ├── imageformats
0059 │       │           ├── kauth
0060 │       │           ├── kf5
0061 │       │           ├── platforms
0062 │       │           ├── platformthemes
0063 │       │           ├── printsupport
0064 │       │           ├── sqldrivers
0065 │       │           └── styles
0066 │       ├── MacOS                           digiKam binary
0067 │       ├── Resources                       Data and resource files
0068 │       │   ├── applications
0069 │       │   ├── data
0070 │       │   ├── digikam
0071 │       │   ├── kf5
0072 │       │   ├── knotifications5
0073 │       │   ├── kservices5
0074 │       │   ├── kservicetypes5
0075 │       │   ├── kxmlgui5
0076 │       │   ├── lensfun                     Lens auto correction profiles
0077 │       │   ├── locale
0078 │       │   ├── mime
0079 │       │   ├── opencv4
0080 │       │   ├── plugins
0081 │       │   ├── showfoto
0082 │       │   └── solid
0083 │       └── share                           Shared files
0084 └── showfoto.app                            Showfoto sub-container
0085     └── Contents
0086         ├── bin                             -> ../../digikam.app/Contents/bin
0087         ├── etc                             -> ../../digikam.app/Contents/etc
0088         ├── lib                             -> ../../digikam.app/Contents/lib
0089         ├── libexec                         -> ../../digikam.app/Contents/libexec
0090         ├── MacOS                           Showfoto binary
0091         ├── Resources                       -> ../../digikam.app/Contents/Resources
0092         └── share                           -> ../../digikam.app/Contents/share
0093 
0094 REQUIREMENTS
0095 ------------
0096 
0097 To build bundle you need a macOS install in a real computer (best) or in a VM.
0098 This Github project have been tested to install automatically BigSur in VirtualBox and work as expected:
0099 
0100 https://github.com/myspaghetti/macos-virtualbox
0101 
0102 The scripts build digiKam with HomeBrew, so you will need Xcode and the other
0103 prerequisites for HomeBrew.
0104 
0105 See this url for details: https://docs.brew.sh/Xcode.
0106 
0107 For all other HomeBrew requirements, see https://docs.brew.sh/Installation.
0108 
0109 You will also need to install Packages software which does the actual packaging of the files needed to install digiKam:
0110 
0111 http://s.sudre.free.fr/Software/Packages/about.html
0112 
0113 IMPORTANT:
0114 - You must set the minimal MacOS target with relevant SDK installed for backward compatibility.
0115 - You must set the digiKam git tags to checkout right source code to package.
0116 - You must set the option to host debug symbols or not in package.
0117 
0118 NOTE: Look in config.sh file for settings details.
0119 
0120 
0121 HERE THERE BE DRAGONS
0122 ---------------------
0123 Use these scripts at your own risk. For example, both scripts contain
0124 "rm -rf" (to clear previous builds) -- a mistake could wipe your drive.
0125 
0126 
0127 COMPONENTS
0128 ----------
0129 There are 4 main scripts to be run by the user. 2 first ones installs
0130 HomeBrew and all dependencies, next one digiKam, and last one makes a
0131 PKG binary installer for MacOS using Packages.
0132 
0133 
0134 SCRIPT DESCRIPTIONS
0135 -------------------
0136 All scripts should be run from within the digikam-package directory.
0137 
0138 * 01-build-homebrew.sh:
0139 
0140 This script downloads and configures a custom non-root install
0141 of HomeBrew to /opt/homebrew.
0142 
0143 * 02-build-extralibs.sh:
0144 
0145 This script configures, and compile a custom non-root install to /opt/homebrew
0146 of extra libraries, including KF6 frameworks, and most important photo management
0147 libs used by digiKam as Exiv2 and LensFun.
0148 
0149 * 03-build-digikam.sh:
0150 
0151 This script configures, and compile a custom non-root install of digiKam to
0152 /opt/homebrew.
0153 
0154 * 04-build-installer.sh:
0155 
0156 Once you've successfully built digiKam, /opt/homebrew may contain over 10GB of files.
0157 This script grabs the ~250MB needed to run digiKam and Showfoto,
0158 and places them in ./installer/opt. These include applications documentations
0159 and translations.
0160 
0161 This script creates Applescript launch applications for the programs that will
0162 be run by the user (digiKam, Showfoto, etc), and preinstall/postinstall
0163 scripts in ./installer.
0164 
0165 The launcher applications:
0166      1) Update desktop.org files cache system with kbuildsyscoca5.
0167      2) set "DYLD_IMAGE_SUFFIX=_debug" if the digikam port was built with the
0168         +debug variant.
0169 
0170 This script also create the pre-install and post-install scripts that are run
0171 when the package is installed. They delete any pre-existing /opt/homebrew,
0172 delete and recreate /Applications/digiKam.org.
0173 
0174 Finally, this script sets the version number, and runs Packages to
0175 put everything together in the bundle.
0176 
0177 Depending of configuration done in config.sh, this script is able to upload automatically
0178 the bundle file on files.kde.org digiKam area through ssh. A valid ssh key configured
0179 with remote KDE server need to be set previously with the account. You can load ssh key
0180 at startup following instruction give at this url:
0181 
0182 https://unix.stackexchange.com/questions/90853/how-can-i-run-ssh-add-automatically-without-password-prompt
0183 
0184 Note: the bundle can be signed with GPG. You must setup your private and public keys before
0185 and put your passphare to a text file (~/.gnupg/dkorg-gpg-pwd.txt)
0186 
0187 * rll.py
0188 
0189 Run by 04-build-installer.sh. It is a Python script that takes a list of binaries
0190 and libraries supplied by 04-build-installer.sh and recursively lists the dylibs on
0191 which they depend, and their dependencies, etc.. Adapted with minimal
0192 modification (mostly deleting stuff) from
0193 https://github.com/mixxxdj/mixxx/blob/master/build/osx/otool.py.
0194 
0195 * makeall.sh
0196 
0197 This script permit to build whole package from scratch (all stages).
0198 
0199 * update.sh
0200 
0201 This script re-build only digiKam and package (2 last stages).
0202 
0203 
0204 LICENSES
0205 --------
0206 rll.py, like the otool.py source from which it has been adapted, is licensed
0207 under GNU General Public License version 2.
0208 
0209 The scripts and other contents that we have created are licensed
0210 under the GNU General Public License version 2, or any later version.