summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorIdo Rosen2013-11-03 21:48:40 -0500
committerIdo Rosen2013-11-03 21:48:40 -0500
commit6202e047a5db645ae62b3d32645aae6f64d38360 (patch)
tree7b4b742b6f6cd7eb58fc308790d5152401b9cbeb
downloadaur-6202e047a5db645ae62b3d32645aae6f64d38360.tar.gz
Added gnupg-largekeys.
-rw-r--r--.SRCINFO50
-rw-r--r--PKGBUILD74
-rw-r--r--PKGBUILD.sigbin0 -> 543 bytes
-rw-r--r--gnupg2-large-keys.patch24
-rw-r--r--gnupg2-large-keys.patch.sigbin0 -> 543 bytes
-rw-r--r--install22
-rw-r--r--install.sigbin0 -> 543 bytes
-rw-r--r--protect-tool-env.patch28
-rw-r--r--protect-tool-env.patch.sigbin0 -> 543 bytes
9 files changed, 198 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..2fd4feebea41
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,50 @@
+pkgbase = gnupg-largekeys
+ pkgdesc = Complete and free implementation of the OpenPGP standard
+ pkgver = 2.0.22
+ pkgrel = 1
+ url = http://www.gnupg.org/
+ install = install
+ arch = i686
+ arch = x86_64
+ license = GPL
+ makedepends = curl
+ makedepends = libldap
+ makedepends = libusb-compat
+ depends = bzip2
+ depends = libksba
+ depends = libgcrypt
+ depends = pth
+ depends = libassuan
+ depends = readline
+ depends = pinentry
+ depends = dirmngr
+ optdepends = curl: gpg2keys_curl
+ optdepends = libldap: gpg2keys_ldap
+ optdepends = libusb-compat: scdaemon
+ provides = gnupg2=2.0.22
+ provides = gnupg=2.0.22
+ conflicts = gnupg2
+ conflicts = gnupg
+ replaces = gnupg2
+ replaces = gnupg
+ source = ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-2.0.22.tar.bz2
+ source = ftp://ftp.gnupg.org/gcrypt/gnupg/gnupg-2.0.22.tar.bz2.sig
+ source = protect-tool-env.patch
+ source = protect-tool-env.patch.sig
+ source = gnupg2-large-keys.patch
+ source = gnupg2-large-keys.patch.sig
+ source = install
+ source = install.sig
+ source = PKGBUILD.sig
+ sha1sums = 9ba9ee288e9bf813e0f1e25cbe06b58d3072d8b8
+ sha1sums = SKIP
+ sha1sums = 2ec97ba55ae47ff0d63bc813b8c64cb79cef11db
+ sha1sums = SKIP
+ sha1sums = a77b9616d238fbdd5488e7024e5e1f36ce8ed586
+ sha1sums = SKIP
+ sha1sums = ff80fc79329cfa631c19ae1ea6fc4a390ab851f7
+ sha1sums = SKIP
+ sha1sums = SKIP
+
+pkgname = gnupg-largekeys
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..9ca6f04466a5
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,74 @@
+# $Id$
+# Maintainer: Ido Rosen <ido@kernel.org>
+# Contributor: Gaetan Bisson <bisson@archlinux.org>
+# Contributor: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Andreas Radke <andyrtr@archlinux.org>
+# Contributor: Judd Vinet <jvinet@zeroflux.org>
+#
+# NOTE: To request changes to this package, please submit a pull request
+# to the GitHub repository at https://github.com/ido/packages-archlinux
+# Otherwise, open a GitHub issue. Thank you! -Ido
+#
+
+pkgname=gnupg-largekeys
+pkgver=2.0.22
+pkgrel=1
+pkgdesc='Complete and free implementation of the OpenPGP standard'
+url='http://www.gnupg.org/'
+license=('GPL')
+arch=('i686' 'x86_64')
+optdepends=('curl: gpg2keys_curl'
+ 'libldap: gpg2keys_ldap'
+ 'libusb-compat: scdaemon')
+makedepends=('curl' 'libldap' 'libusb-compat')
+depends=('bzip2' 'libksba' 'libgcrypt' 'pth' 'libassuan' 'readline' 'pinentry' 'dirmngr')
+source=("ftp://ftp.gnupg.org/gcrypt/${pkgname%%-largekeys}/${pkgname%%-largekeys}-${pkgver}.tar.bz2"{,.sig}
+ 'protect-tool-env.patch'{,.sig}
+ 'gnupg2-large-keys.patch'{,.sig}
+ 'install'{,.sig}
+ 'PKGBUILD.sig')
+sha1sums=('9ba9ee288e9bf813e0f1e25cbe06b58d3072d8b8' 'SKIP'
+ '2ec97ba55ae47ff0d63bc813b8c64cb79cef11db' 'SKIP'
+ 'a77b9616d238fbdd5488e7024e5e1f36ce8ed586' 'SKIP'
+ 'ff80fc79329cfa631c19ae1ea6fc4a390ab851f7' 'SKIP'
+ 'SKIP')
+
+install=install
+
+conflicts=('gnupg2' 'gnupg')
+provides=("gnupg2=${pkgver}" "gnupg=${pkgver}")
+replaces=('gnupg2' 'gnupg')
+
+prepare() {
+ cd "${srcdir}/${pkgname%%-largekeys}-${pkgver}"
+ patch -p1 -i ../protect-tool-env.patch # FS#31900
+ patch -p1 -i ../gnupg2-large-keys.patch
+}
+
+build() {
+ cd "${srcdir}/${pkgname%%-largekeys}-${pkgver}"
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --sbindir=/usr/bin \
+ --libexecdir=/usr/lib/gnupg \
+ --enable-maintainer-mode \
+ --enable-symcryptrun \
+ --enable-gpgtar \
+
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname%%-largekeys}-${pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname%%-largekeys}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ ln -s gpg2 "${pkgdir}"/usr/bin/gpg
+ ln -s gpgv2 "${pkgdir}"/usr/bin/gpgv
+ ln -s gpg2.1.gz "${pkgdir}"/usr/share/man/man1/gpg.1.gz
+ rm "${pkgdir}/usr/share/gnupg/com-certs.pem" # FS#33059
+}
diff --git a/PKGBUILD.sig b/PKGBUILD.sig
new file mode 100644
index 000000000000..a7d34aefb5ba
--- /dev/null
+++ b/PKGBUILD.sig
Binary files differ
diff --git a/gnupg2-large-keys.patch b/gnupg2-large-keys.patch
new file mode 100644
index 000000000000..dfd8d8c40ef7
--- /dev/null
+++ b/gnupg2-large-keys.patch
@@ -0,0 +1,24 @@
+diff -rupN old/g10/gpg.c new/g10/gpg.c
+--- old/g10/gpg.c 2013-10-04 08:32:53.000000000 -0400
++++ new/g10/gpg.c 2013-11-03 21:36:43.271787518 -0500
+@@ -2050,7 +2050,7 @@ main (int argc, char **argv)
+ #endif
+
+ /* Initialize the secure memory. */
+- if (!gcry_control (GCRYCTL_INIT_SECMEM, 32768, 0))
++ if (!gcry_control (GCRYCTL_INIT_SECMEM, 131072, 0))
+ got_secmem = 1;
+ #if defined(HAVE_GETUID) && defined(HAVE_GETEUID)
+ /* There should be no way to get to this spot while still carrying
+diff -rupN old/g10/keygen.c new/g10/keygen.c
+--- old/g10/keygen.c 2013-10-04 09:00:22.000000000 -0400
++++ new/g10/keygen.c 2013-11-03 21:36:59.932182593 -0500
+@@ -1771,7 +1771,7 @@ ask_algo (int addmode, int *r_subkey_alg
+ static unsigned
+ ask_keysize (int algo, unsigned int primary_keysize)
+ {
+- unsigned int nbits, min, def = DEFAULT_STD_KEYSIZE, max=4096;
++ unsigned int nbits, min, def = DEFAULT_STD_KEYSIZE, max=65535;
+ int for_subkey = !!primary_keysize;
+ int autocomp = 0;
+
diff --git a/gnupg2-large-keys.patch.sig b/gnupg2-large-keys.patch.sig
new file mode 100644
index 000000000000..971a1b374123
--- /dev/null
+++ b/gnupg2-large-keys.patch.sig
Binary files differ
diff --git a/install b/install
new file mode 100644
index 000000000000..31ccfdf18b21
--- /dev/null
+++ b/install
@@ -0,0 +1,22 @@
+info_dir=/usr/share/info
+info_files=(gnupg.info gnupg.info-1 gnupg.info-2)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info ${info_dir}/$f ${info_dir}/dir 2> /dev/null
+ done
+ echo -e "\e[1mNOTE: Keys larger than 16384 bits fail on unpatched gnupg versions!\e[0m"
+}
+
+post_upgrade() {
+ post_install $1
+ echo -e "\e[1mNOTE: Keys larger than 16384 bits fail on unpatched gnupg versions!\e[0m"
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ usr/bin/install-info --delete ${info_dir}/$f ${info_dir}/dir 2> /dev/null
+ done
+}
diff --git a/install.sig b/install.sig
new file mode 100644
index 000000000000..17ce0153ba4f
--- /dev/null
+++ b/install.sig
Binary files differ
diff --git a/protect-tool-env.patch b/protect-tool-env.patch
new file mode 100644
index 000000000000..132791fdd192
--- /dev/null
+++ b/protect-tool-env.patch
@@ -0,0 +1,28 @@
+diff -Naur old/agent/protect-tool.c new/agent/protect-tool.c
+--- old/agent/protect-tool.c 2012-12-08 13:53:17.067611957 +1100
++++ new/agent/protect-tool.c 2012-12-08 13:53:28.247633012 +1100
+@@ -102,6 +102,7 @@
+ static int opt_status_msg;
+ static const char *opt_p12_charset;
+ static const char *opt_agent_program;
++static session_env_t opt_session_env;
+
+ static char *get_passphrase (int promptno);
+ static void release_passphrase (char *pw);
+@@ -1040,6 +1041,7 @@
+
+ opt_homedir = default_homedir ();
+
++ opt_session_env = session_env_new ();
+
+ pargs.argc = &argc;
+ pargs.argv = &argv;
+@@ -1091,7 +1093,7 @@
+ opt.verbose,
+ opt_homedir,
+ opt_agent_program,
+- NULL, NULL, NULL);
++ NULL, NULL, opt_session_env);
+
+ if (opt_prompt)
+ opt_prompt = percent_plus_unescape (opt_prompt, 0);
diff --git a/protect-tool-env.patch.sig b/protect-tool-env.patch.sig
new file mode 100644
index 000000000000..b8d26861fd4b
--- /dev/null
+++ b/protect-tool-env.patch.sig
Binary files differ