# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

from spack import *


class Gnupg(AutotoolsPackage):
    """GnuPG is a complete and free implementation of the OpenPGP
       standard as defined by RFC4880 """

    homepage = "https://gnupg.org/index.html"
    url      = "https://gnupg.org/ftp/gcrypt/gnupg/gnupg-2.2.17.tar.bz2"

    version('2.2.17', sha256='afa262868e39b651a2db4c071fba90415154243e83a830ca00516f9a807fd514')
    version('2.2.15', sha256='cb8ce298d7b36558ffc48aec961b14c830ff1783eef7a623411188b5e0f5d454')
    version('2.2.3',  sha256='cbd37105d139f7aa74f92b6f65d136658682094b0e308666b820ae4b984084b4')
    version('2.1.21', sha256='7aead8a8ba75b69866f583b6c747d91414d523bfdfbe9a8e0fe026b16ba427dd')

    depends_on('libgcrypt@1.7.0:')
    depends_on('libassuan@2.4:', when='@:2.2.3')
    depends_on('libassuan@2.5:', when='@2.2.15:')
    depends_on('libksba@1.3.4:')
    depends_on('libgpg-error@1.24:')
    depends_on('npth@1.2:')
    depends_on('zlib')
    depends_on('libiconv')

    def configure_args(self):
        return [
            '--without-tar',
            '--with-libgpg-error-prefix=' + self.spec['libgpg-error'].prefix,
            '--with-libgcrypt-prefix='    + self.spec['libgcrypt'].prefix,
            '--with-libassuan-prefix='    + self.spec['libassuan'].prefix,
            '--with-ksba-prefix='         + self.spec['libksba'].prefix,
            '--with-npth-prefix='         + self.spec['npth'].prefix,
            '--without-ldap',
            '--with-libiconv-prefix='     + self.spec['libiconv'].prefix,
            '--without-regex',
            '--with-zlib='                + self.spec['zlib'].prefix,
            '--without-bzip2',
            '--without-readline',
        ]

@@ -256,104 +256,45 @@
 %22%22%22G
-nuPG is a complete and free implementation of the OpenPGP%0A       standard as defined by RFC4880 
+NU Pretty Good Privacy (PGP) package.
 %22%22%22%0A
@@ -402,17 +402,17 @@
 pg-2.2.1
-7
+9
 .tar.bz2
@@ -414,16 +414,113 @@
 r.bz2%22%0A%0A
+    version('2.2.19', sha256='242554c0e06f3a83c420b052f750b65ead711cc3fddddb5e7274fcdbb4e9dec0')%0A
     vers
@@ -896,24 +896,89 @@
 6ba427dd')%0A%0A
+    depends_on('npth@1.2:')%0A    depends_on('libgpg-error@1.24:')%0A
     depends_
@@ -996,24 +996,57 @@
 pt@1.7.0:')%0A
+    depends_on('libksba@1.3.4:')%0A
     depends_
@@ -1152,87 +1152,28 @@
 on('
-libksba@1.3.4:')%0A    depends_on('libgpg-error@1.24:')%0A    depends_on('npth@1.2:
+pinentry', type='run
 ')%0A 
@@ -1187,20 +1187,24 @@
 nds_on('
-z
 lib
+iconv
 ')%0A    d
@@ -1214,24 +1214,20 @@
 nds_on('
+z
 lib
-iconv
 ')%0A%0A    
@@ -1264,44 +1264,283 @@
     
-return %5B%0A            '--without-tar'
+args = %5B%0A            '--disable-bzip2',%0A            '--disable-sqlite',%0A            '--disable-ntbtls',%0A            '--disable-gnutls',%0A            '--disable-ldap',%0A            '--disable-regex',%0A            '--with-pinentry-pgm='        + self.spec%5B'pinentry'%5D.command.path
 ,%0A  
@@ -1912,38 +1912,8 @@
 ix,%0A
-            '--without-ldap',%0A
     
@@ -1986,39 +1986,8 @@
 ix,%0A
-            '--without-regex',%0A
     
@@ -2075,21 +2075,60 @@
 without-
-bzip2
+tar',%0A            '--without-libiconv-prefix
 ',%0A     
@@ -2166,8 +2166,103 @@
       %5D%0A
+%0A        if self.run_tests:%0A            args.append('--enable-all-tests')%0A%0A        return args%0A

add 2.2.19, add missing pinentry dep (#15390)