= Developing Kleopatra = This page is meant to give (new) developers a hand. Information about developing Kleopatra are widespread and do currently not link each other. <> == General information == The product page of Kleopatra can be Found on KDE.org https://www.kde.org/applications/utilities/kleopatra/ === Coding Guidlines === As a KDE-Application, Kleopatra follows the Kdelibs Coding Style. https://community.kde.org/Policies/Kdelibs_Coding_Style === API Docs === An automatically generated API-Documentation about Kleopatra and Libkleo can be found here: http://api.kde.org/4.14-api/kdepim-apidocs/kleopatra/html/index.html http://api.kde.org/4.14-api/kdepim-apidocs/libkleo/html/index.html == Getting started == === Build Kleopatra from GIT === See: https://wiki.gnupg.org/BuildingFromGIT/Kleopatra?highlight=%28kleopatra%29 === Build Kleopatra as part of Gpg4Win === At first you might want to build Gpg4Win and Kleopatra. Get information about building Gpg4Win here: https://www.gpg4win.org/build-installer-gnulinux.html To now Build Gpg4Win with your modified version of Kleopatra, do the following: * in gpg4win/src/playground/build delete(or move) the "kleopatra-" directory Remember the name * create a symlink to the self-build git-repo. Name it "kleopatra-" * apply the (five) patches in gpg4win/patches/kleopatra ** these are executable scripts. Just execute them, no need to git apply ** you might want to create a new local branch for this, to get a clean working tree * change to gpg4win/src/playground/build/kleopatra--build and "make" === Reach Kleopatra from external processes === To archive platform independent inter-process communication Kleopatra opens a socket on localhost, which can be reached from localhost. When Kleopatra is running, "ss -l" should deliver something similar to this: {{{ u_str LISTEN 0 128 /home/sengelhardt/.gnupg/S.uiserver 3877681 * 0 }}} using "gpg-connect-agent", you can reach Kleopatra from different processes. with {{{ gpg-connect-agent -v -S /home/sengelhardt/.gnupg/S.uiserver }}} you can access to socket directly. Use "help" to see what the sockets accepts. In "kleopatra/tests/gpg-connect-agent-scripts" you can find some premade scripts. To try a one out, use {{{ "gpg-connect-agent -v -S ~/.gnupg/S.uiserver < gpgex-sign" }}} for example. This behavior is defined in kleopatra/src/uiserver.