distributable:
  url: https://gnupg.org/ftp/gcrypt/gnupg/gnupg-{{version}}.tar.bz2
  strip-components: 1

versions:
  url: https://gnupg.org/ftp/gcrypt/gnupg/
  match: /gnupg-(\d+\.\d+(\.\d+)?)\.tar\.bz2/
  strip:
    - /gnupg-/
    - /.tar.bz2/

runtime:
  env:
    # allows us to be relocatable provided `gpgconf.ctl` exists alongside
    # the `gpgconf` binary. NOTE causes warning messages on Darwin:
    #     error reading symlink '/proc/curproc/file': No such file or directory
    # which seemingly cannot be avoided without a patch
    GNUPG_BUILD_ROOT: '{{prefix}}'

dependencies:
  zlib.net: ^1.1
  sourceware.org/bzip2: '*'
  gnupg.org/npth: '*'
  gnupg.org/libgpg-error: '*'
  gnupg.org/libksba: '*'
  gnupg.org/libassuan: 2
  gnupg.org/libgcrypt: '*'
  gnupg.org/pinentry: '*'
  gnutls.org: ^3
  openldap.org: ^2
  gnu.org/readline: ^8
  sqlite.org: ^3
  darwin: # nobody added a comment to say why this is Darwin only
    gnu.org/gettext: ^0.21

build:
  freedesktop.org/pkg-config: '*'
  linux:
    gnu.org/gcc: '*'
  script:
    - ./configure $ARGS
    - make --jobs {{ hw.concurrency }}
    - make --jobs {{ hw.concurrency }} install

    # this makes the lookup machinery relocatable, see above
    - cp props/gpgconf.ctl {{prefix}}/bin

    - run: |
        sed -i.bak "s|{{prefix}}|\$(dirname \$0)/..|g" gpg-wks-client
        rm gpg-wks-client.bak
      working-directory: '{{prefix}}/libexec'
    - run: |
        mkdir -p var/run etc/gnupg
        chmod 700 etc/gnupg
      working-directory: '{{prefix}}'

    # nobody added a comment explaining why this conf is required
    - run: cp props/gpg.conf {{prefix}}/etc/gnupg/gpg.conf
  env:
    ARGS:
      - --prefix={{prefix}}
      - --libdir={{prefix}}/lib
      - --sysconfdir={{prefix}}/etc
      - --disable-debug
      - --disable-dependency-tracking
      - --disable-silent-rules
      - --with-pinentry-pgm={{deps.gnupg.org/pinentry.prefix}}/bin/pinentry

provides:
  - bin/gpg
  - bin/gpg-agent
  - bin/gpg-connect-agent
  - bin/gpg-wks-server
  - bin/gpgconf
  - bin/gpgparsemail
  - bin/gpgscm
  - bin/gpgsm
  - bin/gpgsplit
  - bin/gpgtar
  - bin/gpgv
  - bin/kbxutil
  - bin/watchgnupg

test:
  script:
    - killall gpg-agent || true
    - gpg --version | grep {{version}}
    - gpg --quick-gen-key --batch --passphrase ""  "Testing" default default never
    - gpg --detach-sign test.txt
    - gpg --verify test.txt.sig
