diff options
author | NP-Hardass <NP-Hardass@gentoo.org> | 2017-06-20 18:46:06 -0400 |
---|---|---|
committer | NP-Hardass <NP-Hardass@gentoo.org> | 2017-06-20 18:48:53 -0400 |
commit | cbc49b3b9bbcd1736e335e3c16ca6770b7234898 (patch) | |
tree | e43d870a65d65711e6154da88e663ee061ca312b /app-crypt/acme-tiny | |
parent | dev-lang/ghc: disable parallel 'make install' until it gets fixed upstream (diff) | |
download | gentoo-cbc49b3b9bbcd1736e335e3c16ca6770b7234898.tar.gz gentoo-cbc49b3b9bbcd1736e335e3c16ca6770b7234898.tar.bz2 gentoo-cbc49b3b9bbcd1736e335e3c16ca6770b7234898.zip |
app-crypt/acme-tiny: Initial commit
Package-Manager: Portage-2.3.6, Repoman-2.3.2
Diffstat (limited to 'app-crypt/acme-tiny')
-rw-r--r-- | app-crypt/acme-tiny/Manifest | 1 | ||||
-rw-r--r-- | app-crypt/acme-tiny/acme-tiny-20170207.ebuild | 47 | ||||
-rw-r--r-- | app-crypt/acme-tiny/acme-tiny-9999.ebuild | 47 | ||||
-rw-r--r-- | app-crypt/acme-tiny/files/acme-tiny-PR101-contactinfo.patch | 97 | ||||
-rw-r--r-- | app-crypt/acme-tiny/files/acme-tiny-PR50-setup.py.patch | 150 | ||||
-rw-r--r-- | app-crypt/acme-tiny/files/acme-tiny-PR87-readmefix.patch | 23 | ||||
-rw-r--r-- | app-crypt/acme-tiny/metadata.xml | 14 |
7 files changed, 379 insertions, 0 deletions
diff --git a/app-crypt/acme-tiny/Manifest b/app-crypt/acme-tiny/Manifest new file mode 100644 index 000000000000..022d3d6856d1 --- /dev/null +++ b/app-crypt/acme-tiny/Manifest @@ -0,0 +1 @@ +DIST acme-tiny-20170207.tar.gz 10510 SHA256 aef2541c7270a9aa4d4ce49509d6a0f48e59eccc116df0fe7defe77df724f544 SHA512 260de3fe3052e3eba3e8438b15e34d95c99f95d75137ddabe9c031a83bd7b967bebabe6916fa23de6194ab19cc687942af0cc700b7095b7c810820800c26061e WHIRLPOOL f16ed8b8f0a096bf379ad203343061b9bc078999029254b9462178a930e08728f370f0837991676f5d6bad41cd5279fbecc27dfa9b08c307341e1052cd9bbdfb diff --git a/app-crypt/acme-tiny/acme-tiny-20170207.ebuild b/app-crypt/acme-tiny/acme-tiny-20170207.ebuild new file mode 100644 index 000000000000..05ce311583f1 --- /dev/null +++ b/app-crypt/acme-tiny/acme-tiny-20170207.ebuild @@ -0,0 +1,47 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} ) +inherit distutils-r1 + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/diafygi/${PN}.git" + KEYWORDS="" +else + HASH="daba51d37efd7c1f205f9da383b9b09968e30d29" + SRC_URI="https://github.com/diafygi/${PN}/archive/${HASH}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" + S="${WORKDIR}/${PN}-${HASH}" +fi + +DESCRIPTION="A tiny, auditable script for Let's Encrypt's ACME Protocol" +HOMEPAGE="https://github.com/diafygi/acme-tiny" + +LICENSE="MIT" +SLOT="0" + +IUSE="minimal" + +DEPEND="dev-python/setuptools_scm[${PYTHON_USEDEP}]" +RDEPEND="dev-libs/openssl:0" + +PATCHES=( "${FILESDIR}/${PN}-PR50-setup.py.patch" ) + +pkg_setup() { + if [[ ${PV} != 9999 ]]; then + export SETUPTOOLS_SCM_PRETEND_VERSION="0.1.dev79+n${HASH:0:7}.d$(date +%Y%m%d)" + fi +} + +src_prepare() { + if ! use minimal; then + PATCHES+=( + "${FILESDIR}/${PN}-PR87-readmefix.patch" + "${FILESDIR}/${PN}-PR101-contactinfo.patch" + ) + fi + distutils-r1_src_prepare +} diff --git a/app-crypt/acme-tiny/acme-tiny-9999.ebuild b/app-crypt/acme-tiny/acme-tiny-9999.ebuild new file mode 100644 index 000000000000..05ce311583f1 --- /dev/null +++ b/app-crypt/acme-tiny/acme-tiny-9999.ebuild @@ -0,0 +1,47 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} ) +inherit distutils-r1 + +if [[ ${PV} == 9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/diafygi/${PN}.git" + KEYWORDS="" +else + HASH="daba51d37efd7c1f205f9da383b9b09968e30d29" + SRC_URI="https://github.com/diafygi/${PN}/archive/${HASH}.tar.gz -> ${P}.tar.gz" + KEYWORDS="~amd64 ~x86" + S="${WORKDIR}/${PN}-${HASH}" +fi + +DESCRIPTION="A tiny, auditable script for Let's Encrypt's ACME Protocol" +HOMEPAGE="https://github.com/diafygi/acme-tiny" + +LICENSE="MIT" +SLOT="0" + +IUSE="minimal" + +DEPEND="dev-python/setuptools_scm[${PYTHON_USEDEP}]" +RDEPEND="dev-libs/openssl:0" + +PATCHES=( "${FILESDIR}/${PN}-PR50-setup.py.patch" ) + +pkg_setup() { + if [[ ${PV} != 9999 ]]; then + export SETUPTOOLS_SCM_PRETEND_VERSION="0.1.dev79+n${HASH:0:7}.d$(date +%Y%m%d)" + fi +} + +src_prepare() { + if ! use minimal; then + PATCHES+=( + "${FILESDIR}/${PN}-PR87-readmefix.patch" + "${FILESDIR}/${PN}-PR101-contactinfo.patch" + ) + fi + distutils-r1_src_prepare +} diff --git a/app-crypt/acme-tiny/files/acme-tiny-PR101-contactinfo.patch b/app-crypt/acme-tiny/files/acme-tiny-PR101-contactinfo.patch new file mode 100644 index 000000000000..787b66c1129f --- /dev/null +++ b/app-crypt/acme-tiny/files/acme-tiny-PR101-contactinfo.patch @@ -0,0 +1,97 @@ +From 86083e6f79c6af99a59d8ee27c61f5d9b407f436 Mon Sep 17 00:00:00 2001 +From: Phiber2000 <phiber2000@gmx.de> +Date: Thu, 10 Mar 2016 16:43:54 +0100 +Subject: [PATCH 1/3] added contact key in payload and email parameter + +--- + acme_tiny.py | 12 ++++++++---- + 1 file changed, 8 insertions(+), 4 deletions(-) + +diff --git a/acme_tiny.py b/acme_tiny.py +index 34a1863..bd79321 100644 +--- a/acme_tiny.py ++++ b/acme_tiny.py +@@ -12,7 +12,7 @@ + LOGGER.addHandler(logging.StreamHandler()) + LOGGER.setLevel(logging.INFO) + +-def get_crt(account_key, csr, acme_dir, log=LOGGER, CA=DEFAULT_CA): ++def get_crt(account_key, csr, acme_dir, account_email, log=LOGGER, CA=DEFAULT_CA): + # helper function base64 encode for jose spec + def _b64(b): + return base64.urlsafe_b64encode(b).decode('utf8').replace("=", "") +@@ -80,10 +80,13 @@ def _send_signed_request(url, payload): + + # get the certificate domains and expiration + log.info("Registering account...") +- code, result = _send_signed_request(CA + "/acme/new-reg", { ++ payload = { + "resource": "new-reg", + "agreement": "https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf", +- }) ++ } ++ if account_email: ++ payload["contact"] = ["mailto:"+account_email] ++ code, result = _send_signed_request(CA + "/acme/new-reg", payload) + if code == 201: + log.info("Registered!") + elif code == 409: +@@ -188,10 +191,11 @@ def main(argv): + parser.add_argument("--acme-dir", required=True, help="path to the .well-known/acme-challenge/ directory") + parser.add_argument("--quiet", action="store_const", const=logging.ERROR, help="suppress output except for errors") + parser.add_argument("--ca", default=DEFAULT_CA, help="certificate authority, default is Let's Encrypt") ++ parser.add_argument("--account-email", help="contact e-mail address") + + args = parser.parse_args(argv) + LOGGER.setLevel(args.quiet or LOGGER.level) +- signed_crt = get_crt(args.account_key, args.csr, args.acme_dir, log=LOGGER, CA=args.ca) ++ signed_crt = get_crt(args.account_key, args.csr, args.acme_dir, args.account_email, log=LOGGER, CA=args.ca) + sys.stdout.write(signed_crt) + + if __name__ == "__main__": # pragma: no cover + +From b128ae1289b106e1ddf20d3787a431d8ea949cf3 Mon Sep 17 00:00:00 2001 +From: Phiber2000 <phiber2000@gmx.de> +Date: Thu, 10 Mar 2016 19:27:17 +0100 +Subject: [PATCH 2/3] code style correction + +--- + acme_tiny.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/acme_tiny.py b/acme_tiny.py +index bd79321..cea57ee 100644 +--- a/acme_tiny.py ++++ b/acme_tiny.py +@@ -85,7 +85,7 @@ def _send_signed_request(url, payload): + "agreement": "https://letsencrypt.org/documents/LE-SA-v1.0.1-July-27-2015.pdf", + } + if account_email: +- payload["contact"] = ["mailto:"+account_email] ++ payload["contact"] = ["mailto:{0}".format(account_email)] + code, result = _send_signed_request(CA + "/acme/new-reg", payload) + if code == 201: + log.info("Registered!") + +From 90eac8d6f22e858168ead32f00f13e7c997b64fc Mon Sep 17 00:00:00 2001 +From: Phiber2000 <phiber2000@gmx.de> +Date: Thu, 10 Mar 2016 19:33:21 +0100 +Subject: [PATCH 3/3] updated email argument helptext + +--- + acme_tiny.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/acme_tiny.py b/acme_tiny.py +index cea57ee..930cd43 100644 +--- a/acme_tiny.py ++++ b/acme_tiny.py +@@ -191,7 +191,7 @@ def main(argv): + parser.add_argument("--acme-dir", required=True, help="path to the .well-known/acme-challenge/ directory") + parser.add_argument("--quiet", action="store_const", const=logging.ERROR, help="suppress output except for errors") + parser.add_argument("--ca", default=DEFAULT_CA, help="certificate authority, default is Let's Encrypt") +- parser.add_argument("--account-email", help="contact e-mail address") ++ parser.add_argument("--account-email", help="set contact e-mail address, leave empty to keep current") + + args = parser.parse_args(argv) + LOGGER.setLevel(args.quiet or LOGGER.level) diff --git a/app-crypt/acme-tiny/files/acme-tiny-PR50-setup.py.patch b/app-crypt/acme-tiny/files/acme-tiny-PR50-setup.py.patch new file mode 100644 index 000000000000..c7e2c08a7c6e --- /dev/null +++ b/app-crypt/acme-tiny/files/acme-tiny-PR50-setup.py.patch @@ -0,0 +1,150 @@ +From 9bc3865d8c86392ca115ffb64a9389e92e00e861 Mon Sep 17 00:00:00 2001 +From: Jonas Haag <jonas@lophus.org> +Date: Tue, 29 Dec 2015 14:14:49 +0100 +Subject: [PATCH 1/3] Add setup.py + +--- + acme_tiny.py | 2 +- + setup.py | 28 ++++++++++++++++++++++++++++ + tests/__init__.py | 1 + + tests/test_install.py | 24 ++++++++++++++++++++++++ + 4 files changed, 54 insertions(+), 1 deletion(-) + create mode 100644 setup.py + create mode 100644 tests/test_install.py + +diff --git a/acme_tiny.py b/acme_tiny.py +index f54db0c..ca9ad3d 100644 +--- a/acme_tiny.py ++++ b/acme_tiny.py +@@ -165,7 +165,7 @@ def _send_signed_request(url, payload): + return """-----BEGIN CERTIFICATE-----\n{0}\n-----END CERTIFICATE-----\n""".format( + "\n".join(textwrap.wrap(base64.b64encode(result).decode('utf8'), 64))) + +-def main(argv): ++def main(argv=None): + parser = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description=textwrap.dedent("""\ +diff --git a/setup.py b/setup.py +new file mode 100644 +index 0000000..9ed597e +--- /dev/null ++++ b/setup.py +@@ -0,0 +1,28 @@ ++from setuptools import setup ++ ++setup( ++ name="acme-tiny", ++ version="1.0.0", ++ url="https://github.com/diafygi/acme-tiny", ++ author="Daniel Roesler", ++ author_email="diafygi@gmail.com", ++ description="A tiny script to issue and renew TLS certs from Let's Encrypt", ++ license="MIT", ++ py_modules=['acme_tiny'], ++ entry_points={'console_scripts': [ ++ 'acme-tiny = acme_tiny:main', ++ ]}, ++ classifiers = [ ++ 'Development Status :: 5 - Production/Stable', ++ 'Intended Audience :: System Administrators' ++ 'License :: OSI Approved :: MIT License', ++ 'Operating System :: OS Independent', ++ 'Programming Language :: Python', ++ 'Programming Language :: Python :: 2', ++ 'Programming Language :: Python :: 2.7', ++ 'Programming Language :: Python :: 3', ++ 'Programming Language :: Python :: 3.3', ++ 'Programming Language :: Python :: 3.4', ++ 'Programming Language :: Python :: 3.5', ++ ] ++) +diff --git a/tests/__init__.py b/tests/__init__.py +index ce89619..5ade34c 100644 +--- a/tests/__init__.py ++++ b/tests/__init__.py +@@ -1 +1,2 @@ + from .test_module import TestModule ++from .test_install import TestInstall +diff --git a/tests/test_install.py b/tests/test_install.py +new file mode 100644 +index 0000000..005f36c +--- /dev/null ++++ b/tests/test_install.py +@@ -0,0 +1,24 @@ ++import unittest ++import os ++import tempfile ++import shutil ++import subprocess ++ ++ ++class TestInstall(unittest.TestCase): ++ def setUp(self): ++ self.tempdir = tempfile.mkdtemp() ++ subprocess.check_call(["virtualenv", self.tempdir]) ++ ++ def tearDown(self): ++ shutil.rmtree(self.tempdir) ++ ++ def virtualenv_bin(self, cmd): ++ return os.path.join(self.tempdir, "bin", cmd) ++ ++ def test_install(self): ++ subprocess.check_call([self.virtualenv_bin("python"), "setup.py", "install"]) ++ ++ def test_cli(self): ++ self.test_install() ++ subprocess.check_call([self.virtualenv_bin("acme-tiny"), "-h"]) + +From cdf1bde83d6b640a8896722557386b6d9b6a9fbb Mon Sep 17 00:00:00 2001 +From: Rob Speed <speed.rob@gmail.com> +Date: Wed, 10 Feb 2016 21:53:24 -0500 +Subject: [PATCH 2/3] Added setuptools_scm for automatic versioning based on + tags. + +--- + setup.py | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index 9ed597e..7ec7ef1 100644 +--- a/setup.py ++++ b/setup.py +@@ -2,7 +2,7 @@ + + setup( + name="acme-tiny", +- version="1.0.0", ++ use_scm_version=True, + url="https://github.com/diafygi/acme-tiny", + author="Daniel Roesler", + author_email="diafygi@gmail.com", +@@ -12,6 +12,7 @@ + entry_points={'console_scripts': [ + 'acme-tiny = acme_tiny:main', + ]}, ++ setup_requires=['setuptools_scm'], + classifiers = [ + 'Development Status :: 5 - Production/Stable', + 'Intended Audience :: System Administrators' + +From edcaee1fa841d49a3fa488288faa8e6573269413 Mon Sep 17 00:00:00 2001 +From: Matthias Bach <marix@marix.org> +Date: Mon, 22 Feb 2016 22:53:06 +0100 +Subject: [PATCH 3/3] Mark wheels of acme-tiny as universal + +Ensure that wheels created from the acme-tiny source are marked as universal. +--- + setup.cfg | 2 ++ + 1 file changed, 2 insertions(+) + create mode 100644 setup.cfg + +diff --git a/setup.cfg b/setup.cfg +new file mode 100644 +index 0000000..434559d +--- /dev/null ++++ b/setup.cfg +@@ -0,0 +1,2 @@ ++[wheel] ++universal=True diff --git a/app-crypt/acme-tiny/files/acme-tiny-PR87-readmefix.patch b/app-crypt/acme-tiny/files/acme-tiny-PR87-readmefix.patch new file mode 100644 index 000000000000..1f576d50c755 --- /dev/null +++ b/app-crypt/acme-tiny/files/acme-tiny-PR87-readmefix.patch @@ -0,0 +1,23 @@ +From 85df9d1217341893ab6dbbe58fb7c878e15d832b Mon Sep 17 00:00:00 2001 +From: Jakub Wilk <jwilk@jwilk.net> +Date: Wed, 24 Feb 2016 22:10:01 +0100 +Subject: [PATCH] renew_cert.sh: fix unusual shebang + +sh is normally lives in /bin, not in /usr/bin. +--- + README.md | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/README.md b/README.md +index dfa562c..5c83a67 100644 +--- a/README.md ++++ b/README.md +@@ -171,7 +171,7 @@ for example script). + + Example of a `renew_cert.sh`: + ```sh +-#!/usr/bin/sh ++#!/bin/sh + python /path/to/acme_tiny.py --account-key /path/to/account.key --csr /path/to/domain.csr --acme-dir /var/www/challenges/ > /tmp/signed.crt || exit + wget -O - https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem > intermediate.pem + cat /tmp/signed.crt intermediate.pem > /path/to/chained.pem diff --git a/app-crypt/acme-tiny/metadata.xml b/app-crypt/acme-tiny/metadata.xml new file mode 100644 index 000000000000..1e492cbeec20 --- /dev/null +++ b/app-crypt/acme-tiny/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>NP-Hardass@gentoo.org</email> + <name>NP-Hardass</name> + </maintainer> + <longdescription> + A tiny, auditable script for Let's Encrypt's ACME Protocol + </longdescription> + <upstream> + <remote-id type="github">diafygi/acme-tiny</remote-id> + </upstream> +</pkgmetadata> |