I’m developing new features for Krita.
But
$ cmake …/krita -DCMAKE_INSTALL_PREFIX=$HOME/kritadev/install -DCMAKE_BUILD_TYPE=Debug -DKRITA_DEVS=ON
I get an error when running cmake on Debian.
CMake Error at CMakeLists.txt:1018 (find_package):
By not providing “FindImmer.cmake” in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by “Immer”, but
CMake did not find one.
Could not find a package configuration file provided by “Immer” with any of
the following names:
ImmerConfig.cmake
immer-config.cmake
Add the installation prefix of “Immer” to CMAKE_PREFIX_PATH or set
“Immer_DIR” to a directory containing one of the above files. If “Immer”
provides a separate development package or SDK, be sure it has been
installed.
Immer?
/usr/lib/riscv64-linux-gnu/cmake/Immer/ImmerConfig.cmake
RISC-V?
RISC-V CPU?
The /usr/lib/riscv64-linux-gnu/ directory does not exist on Debian for x86_64 CPU.
How do I build Krita with Docker on Debian?
Maybe I haven’t studied this enough, but I couldn’t understand this explanation.
Also, this explanation assumes Ubuntu, not Debian.
There is no /etc/docker/daemon.json on Docker for Debian.
I did the following on Debian.
$ sudo apt remove docker docker-engine docker.io containerd runc
$ sudo apt update
$ sudo apt install ca-certificates curl gnupg lsb-release
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo
“deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] Index of linux/debian/
$(lsb_release -cs) stable” | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update
$ sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
$ sudo docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
$ sudo docker run -it ubuntu bash
root@xxxxxxxxxxxx:/#
exit
$ cd ~
~$ mkdir docker
~$ sudo vi /etc/docker/daemon.json
{
“data-root” : “/home/yourusername/docker/”
}
:wq
~$ sudo systemctl stop docker.socket
~$ sudo systemctl status docker
Active: inactive (dead)
q
~$ sudo systemctl start docker
~$ git clone Dmitry Kazakov / Krita Docker Env · GitLab krita-auto-1
~$ cd krita-auto-1/
~/krita-auto-1$ mkdir persistent
~/krita-auto-1$ cd persistent/
~/krita-auto-1/persistent$ git clone git@invent.kde.org:youraccountid/krita.git
~/krita-auto-1/persistent$ cd krita
~/krita-auto-1/persistent/krita$ git branch -r | less
q
~/krita-auto-1/persistent/krita$ git checkout -b yourbranchname origin/yourbranchname
~/krita-auto-1/persistent/krita$ cd …
~/krita-auto-1/persistent$ cd …
~/krita-auto-1$ ls
Dockerfile bin default-home ubuntu-focal
README.md data persistent user-hooks.d
~/krita-auto-1$ ./bin/bootstrap-deps.sh
~/krita-auto-1$ ./bin/build_image krita-deps
=> ERROR [base_image 8/16] RUN groupadd -g 105 render 0.3s
[base_image 8/16] RUN groupadd -g 105 render:
0.292 groupadd: GID ‘105’ already exists
ERROR: failed to solve: process “/bin/sh -c groupadd -g ${RENDER_GID} render” did not complete successfully: exit code: 4
As a workaround I did the following:
~/krita-auto-1$ vi Dockerfile
RUN groupadd -g ${RENDER_GID} render
I changed this line to
RUN groupadd -g 1001 render
~/krita-auto-1$ ./bin/build_image krita-deps
~/krita-auto-1$ ./bin/run_container krita-deps krita-auto-1
~/krita-auto-1$ ./bin/enter
appimage@debian-note:/home/appimage/appimage-workspace/krita-build>cd /home/appimage/persistent
appimage@debian-note:/home/appimage/persistent>ls
deps downloads krita qtcreator-package.tar.gz
appimage@debian-note:/home/appimage/persistent>tar -zxvf qtcreator-package.tar.gz
appimage@debian-note:/home/appimage/persistent>cp -rp qtcreator ~/
appimage@debian-note:/home/appimage/persistent>exit
~/krita-auto-1$ ./bin/qtcreator
Menu
File>Open File or Project
/home/appimage/persistent/krita/CMakeLists.txt
Click Open Button
Click on the wrench icon that says Project
Click Configure Project Button
CMake
Build directory:
Click Browse…
/home/appimage/appimage-workspace/krita-build
Click Choose Button
Click OK Button
– Configuring done (15.2s)
– Generating done (6.8s)
CMake Warning:
Manually-specified variables were not used by the project:
QT_QMAKE_EXECUTABLE
– Build files have been written to: /home/appimage/appimage-workspace/krita-build
Elapsed time: 00:23.
Click on the hammer icon in the bottom left of the window to build
Click the 4. Compile Output tab at the bottom of the screen to see the progress of the build
When the build is complete, click the wrench icon on the left
Click the play button icon with the bug in the bottom left to debug
Signal Received - Qt Creator
The inferior stopped because it received a signal from the operating system.
Signal name : SIGABRT
Signal meaning : Aborted
Click OK Button
This will result in an error, but it is the correct procedure
Click the wrench icon labeled Projects on the left
Build & Run
Desktop
Click Run
Run
Run configuration:
Click Add… Button
Enter “Custom Executable” in the “Filter configuration by name” text box
Select Custom Executable and click Create Button
Executable:
Cilck Browse… Button
/home/appimage/appimage-workspace/deps/usr/bin/krita
Click Open Button
Click the play button icon with the bug in the bottom left to run debug
Signal Received - Qt Creator
The inferior stopped because it received a signal from the operating system.
Signal name : SIGABRT
Signal meaning : Aborted
Click OK Button
I successfully started Krita on my development branch debug build via Docker on Debian.
Oh!
I solved this question myself.