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


AUTHORS
-------

(c) 2015-2023 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                                     Qt5 based plugins
    │   ├── bearer
    │   ├── designer
    │   ├── generic
    │   ├── geoservices
    │   ├── iconengines
    │   ├── imageformats
    │   ├── kauth                                   KF5 authentication
    │   ├── kf5                                     Generic KF5 plugins
    │   ├── mediaservice
    │   ├── org.kde.kglobalaccel5.platforms         KF5 global accelerators
    │   ├── platforminputcontexts
    │   ├── platforms
    │   ├── playlistformats
    │   ├── position
    │   ├── sensorgestures
    │   ├── sensors
    │   ├── sqldrivers
    │   ├── webkit
    │   └── xcbglintegrations
    ├── share                                       Shared data files
    │   ├── digikam                                 digiKam
    │   ├── knotifications5                         KF5
    │   ├── kservices5                              KF5
    │   ├── kservicetypes5                          KF5
    │   ├── kxmlgui5                                KF5
    │   ├── lensfun                                 Lens database for Lensfun
    │   ├── locale                                  KF5 i18n
    │   ├── metainfo                                Application metadata
    │   ├── OpenCV                                  OpenCv shared lib data
    │   └── solid                                   KF5 Solid
    └── translations                                Qt5 i18n


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

- For technical reasons about compatibility with libc, Ubuntu 18.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 18.04 environment in a Virtual Machine:
  Install the distribution using official ISO from http://ftp.free.fr/mirrors/ftp.xubuntu.com/releases/18.04.5/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 Mageia 7 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 Mageia 7 to compile digiKam, KF5, Qt5,
and all other important low level libraries. When the system is ready, this script compile
and install low level and Qt5 libraries.

* 02-build-extralibs.sh:

This script configures, compile, and install KF5 frameworks and Marble.

* 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 documentations and 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 (CentOS : chmod +x _bundle_file_).
- Add Fuse on on computer       (CentOS : yum install fuse).
- Add user right to use Fuse    (CentOS : usermod -a -G fuse _user_name_).


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