# -*- mode: org; coding: utf-8; -*-
# SPDX-FileCopyrightText: 2023 Fredrik Salomonsson <plattfot@posteo.net>
#
# SPDX-License-Identifier: GPL-3.0-or-later

#+TITLE: Hacking pinentry-rofi

* Contributing

By far the easiest way to hack on pinentry-rofi is to develop using
Guix:

#+BEGIN_SRC bash
  # Obtain the source code
  cd /path/to/source-code
  guix build -f guix.scm
#+END_SRC

You can now hack this project's files to your heart's content, whilst
testing them from Guix.

To try out any scripts in the project, the easiest is just to install it to a guix profile.

Here is an example to install it to the default profile:
#+BEGIN_SRC bash
  guix package -f guix.scm
#+END_SRC

Then when you're done simply roll back. This can also be used when
testing it against gpg-agent by following what is described in the
[[file:README.org][README]].

** Manual Installation

If you do not yet use  Guix, you will have to install this project's
dependencies manually:
  - autoconf
  - autoconf-archive
  - automake
  - coreutils
  - gawk
  - grep
  - guile
  - make
  - pkg-config (or pkgconf)
  - sed
  - texinfo

Once those dependencies are installed you can run:

#+BEGIN_SRC bash
  autoreconf -vif && ./configure && make check
#+END_SRC

** Guile Hall

   The core of the gnu build system is generated by guile-hall. There
   are some modifications done after that so avoid running
   =hall clean -x= and =hall dist -x= as that will override those
   changes.

   Right now I haven't figured out a good way of dealing with keeping
   the version in sync between the different files, which what I
   mainly used =hall= for.
