RESUME
------
These scripts build a binary digiKam AppImage bundle for Linux using Ubuntu 64 bits.


AUTHORS
-------

(c) 2015-2025 by Gilles Caulier <caulier dot gilles at gmail dot com>


DESCRIPTION
-----------
These files and scripts are used to make binary AppImage bundle of the digiKam
Software Collection for Linux.

For more information about AppImage, see at this url:
http://appimage.org/

In addition to this README, there are comments in the scripts that provide some
additional explanation for how they work.


BUNDLE CONTENTS
---------------

Note: the bundle is rellocable.

.
└── usr
    ├── bin                                         Main executable
    │   ├── data                                    Marble data
    │   └── plugins                                 Marble plugins
    ├── lib                                         All Shared libraries, including 64 bits
    ├── lib64 -> lib                                Symbolic link, for compatibility
    ├── plugins                                     Qt based plugins
    │   ├── bearer
    │   ├── designer
    │   ├── generic
    │   ├── geoservices
    │   ├── iconengines
    │   ├── imageformats
    │   ├── kauth                                   KDE authentication
    │   ├── kf5                                     Generic KDE plugins
    │   ├── mediaservice
    │   ├── org.kde.kglobalaccel5.platforms         KDE global accelerators
    │   ├── platforminputcontexts
    │   ├── platforms
    │   ├── playlistformats
    │   ├── position
    │   ├── sensorgestures
    │   ├── sensors
    │   ├── sqldrivers
    │   ├── webkit
    │   └── xcbglintegrations
    ├── share                                       Shared data files
    │   ├── digikam                                 digiKam
    │   ├── knotifications5                         KDE
    │   ├── kservices5                              KDE
    │   ├── kservicetypes5                          KDE
    │   ├── kxmlgui5                                KDE
    │   ├── lensfun                                 Lens database for Lensfun
    │   ├── locale                                  KDE i18n
    │   ├── metainfo                                Application metadata
    │   ├── OpenCV                                  OpenCv shared lib data
    │   └── solid                                   KDE Solid
    └── translations                                Qt i18n


REQUIREMENTS
------------

- For technical reasons about compatibility with libc, Ubuntu 22.04 is used to be compatible
  at run-time under other Linux distributions. NOTE: we have tested Centos in the pass but
  this distribution is really a puzzle to group all required multimedia packages.

- Create a fresh XUbuntu 22.04 environment in a Virtual Machine:
  Install the distribution using official ISO from http://ftp.free.fr/mirrors/ftp.xubuntu.com/releases/22.04.3/release/
  or another mirror.
  Use a static 80Gb virtual disk with separated partitions as 50Gb for /, 8Gb for swap, and 23Gb for /home.
- Using XUbuntu allow to not use Plasma or Gnome desktop. Light XFCE desktop is not Qt5 based desktop.
  Setup the Internet repositories and install update.
- Install the minimum requirement to checkout the code:
  apt install git openssh-askpass
  git clone https://invent.kde.org/graphics/digikam.git DK
  cd DK/project/appimage/

- Customize the config.sh file:
  Setup the digiKam git tags to checkout right source code in bundle.
  Setup the option to host debug symbols or not in bundle.


COMPONENTS
----------
There are 4 scripts to be run by the user. 2 first ones installs
components on XUbuntu and all dependencies, next one digiKam, and last one makes a
binary AppImage bundle for Linux.


SCRIPT DESCRIPTIONS
-------------------
All scripts should be run from within this directory.

* 01-build-host.sh:

This script downloads and configures all packages for XUbuntu to compile digiKam, KDE, Qt,
and all other important low level libraries. When the system is ready, this script compile
and install low level and Qt libraries.

* 02-build-extralibs.sh:

This script configures, compile, and install KDE frameworks.

* 03-build-digikam.sh:

This script configures, and compile digiKam.

* 04-build-installer.sh:

Once you've successfully built digiKam, this script create the AppImage bundle.
This include applications translations.
Depending of configuration done in config.sh, this script is able to upload automatically
the bundle file on files.kde.org digiKam area through ssh. A valid ssh key configured
with remote KDE server need to be set previously with the account. You can load ssh key
at startup following these instructions:

1/ As root, mkdir /root/.ssh
2/ Put your ssh keys in /root/.ssh
3/ Install openssh-ask-pass package.
4/ Edit /root/.bashrc and add these lines at end:

# --- ssh key rules

eval `SSH_ASKPASS=/usr/libexec/openssh/x11-ssh-askpass /usr/bin/keychain -q --eval --noask --agents ssh ~/.ssh/id_rsa`

# ---

Note: the bundle can be signed with GPG. You must setup your private and public keys before
and put your passphare to a text file (~/.gnupg/dkorg-gpg-pwd.txt)

5/ Re-login as root to setup password.

Source : https://unix.stackexchange.com/questions/90853/how-can-i-run-ssh-add-automatically-without-password-prompt

* makeall.sh

This script permit to build whole Linux bundle from scratch in one time.

* update.sh

This script re-build only digiKam and Linux bundle.


AT RUN-TIME ON TARGET COMPUTER
------------------------------
- Make AppImage file executable (Ubuntu : chmod +x _bundle_file_).
- Add Fuse on on computer       (Ubuntu : sudo apt install fuse).
- Add user right to use Fuse    (Ubuntu : sudo usermod -a -G fuse _user_name_).


LICENSES
--------
The scripts and other contents of this package are licensed under the BSD-3-Clause License.
