commit:     8f51b98ef781174c33af1e0d92ec8def54ec0be2
Author:     Alon Bar-Lev <alonbl <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 19 13:46:05 2017 +0000
Commit:     Alon Bar-Lev <alonbl <AT> gentoo <DOT> org>
CommitDate: Wed Jul 19 13:52:26 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8f51b98e

dev-libs/opensc: version bump

Package-Manager: Portage-2.3.6, Repoman-2.3.1

 dev-libs/opensc/Manifest                        |   1 +
 dev-libs/opensc/files/opensc-0.17.0-build.patch | 100 ++++++++++++++++++++++++
 dev-libs/opensc/opensc-0.17.0.ebuild            |  60 ++++++++++++++
 3 files changed, 161 insertions(+)

diff --git a/dev-libs/opensc/Manifest b/dev-libs/opensc/Manifest
index c55f52e15fd..f8e3c0ca396 100644
--- a/dev-libs/opensc/Manifest
+++ b/dev-libs/opensc/Manifest
@@ -1 +1,2 @@
 DIST opensc-0.16.0.tar.gz 1760418 SHA256 
3ac8c29542bb48179e7086d35a1b8907a4e86aca3de3323c2f48bd74eaaf5729 SHA512 
15f7d62388dde6dad226acab3cd54f8e2f2f53684dc0cb976c6fc6fbdb4487be931ca69bf965ab07c51efd16be64d5411f10bacea11a07fc823c92dd7bb25139
 WHIRLPOOL 
8207606e4994d7744fc93cc6aef1b0cde8a2073e791aebf71e82669013d261f82abc6e41ddf971fb136d4580c21ea475bb2e36bbdec600b354f5e1decec4b02a
+DIST opensc-0.17.0.tar.gz 1900483 SHA256 
4cd8928c5c5787dd8beee6c77be25032996dedaa4df8bfdd369bcbcde9980bd1 SHA512 
64c4f44be64e315fba96974c23331b06805b258ea6296bcc741b8f50b35bba4ab5aace8137f2642e114210465e6312a38e83d3261952b56ab7c06a43d475a7f7
 WHIRLPOOL 
d48e591ec47589945dd8b4b358ce5c51c980ec75f7ab0724884fa2fe28cedeeacbc575a5ae4b0a354afcc5ffc608e0502c28244c8f3ebd3867dd7e5b7f270259

diff --git a/dev-libs/opensc/files/opensc-0.17.0-build.patch 
b/dev-libs/opensc/files/opensc-0.17.0-build.patch
new file mode 100644
index 00000000000..8a51d7ac445
--- /dev/null
+++ b/dev-libs/opensc/files/opensc-0.17.0-build.patch
@@ -0,0 +1,100 @@
+From 65b302e33b710833d4d14bf8eaf00acdaa436c39 Mon Sep 17 00:00:00 2001
+From: Frank Morgner <[email protected]>
+Date: Wed, 19 Jul 2017 00:09:36 +0200
+Subject: [PATCH] sc-hsm: fixed building with --disable-sm
+
+Closes https://github.com/OpenSC/OpenSC/pull/1103
+---
+ src/libopensc/card-sc-hsm.c | 21 ++++++++++++++++++++-
+ 1 file changed, 20 insertions(+), 1 deletion(-)
+
+diff --git a/src/libopensc/card-sc-hsm.c b/src/libopensc/card-sc-hsm.c
+index cfa084a06..1f61e0138 100644
+--- a/src/libopensc/card-sc-hsm.c
++++ b/src/libopensc/card-sc-hsm.c
+@@ -284,7 +284,9 @@ static int sc_hsm_soc_select_minbioclient(sc_card_t *card)
+       };
+ 
+       /* Select MinBioClient */
++#ifdef ENABLE_SM
+       sc_sm_stop(card);
++#endif
+       sc_format_apdu(card, &apdu, SC_APDU_CASE_3_SHORT, 0xA4, 0x04, 0x0C);
+       apdu.data = minBioClient_aid.value;
+       apdu.datalen = minBioClient_aid.len;
+@@ -533,7 +535,9 @@ static int sc_hsm_pin_cmd(sc_card_t *card, struct 
sc_pin_cmd_data *data,
+       sc_hsm_private_data_t *priv = (sc_hsm_private_data_t *) card->drv_data;
+       sc_apdu_t apdu;
+       u8 cmdbuff[16];
++#ifdef ENABLE_SM
+       u8 rbuf[SC_MAX_APDU_BUFFER_SIZE];
++#endif
+       int r;
+       int cmd = data->cmd;
+       size_t pin2_len = data->pin2.len;
+@@ -563,7 +567,10 @@ static int sc_hsm_pin_cmd(sc_card_t *card, struct 
sc_pin_cmd_data *data,
+       if ((card->type == SC_CARD_TYPE_SC_HSM_SOC || card->reader->uid.len
+                               || cmd == SC_PIN_CMD_GET_SESSION_PIN)
+                       && (data->cmd != SC_PIN_CMD_GET_INFO)
+-                      && card->sm_ctx.sm_mode != SM_MODE_TRANSMIT) {
++#ifdef ENABLE_SM
++                      && card->sm_ctx.sm_mode != SM_MODE_TRANSMIT
++#endif
++                      ) {
+               LOG_TEST_RET(card->ctx,
+                               sc_hsm_perform_chip_authentication(card),
+                               "Could not perform chip authentication");
+@@ -604,6 +611,7 @@ static int sc_hsm_pin_cmd(sc_card_t *card, struct 
sc_pin_cmd_data *data,
+                       data->apdu = &apdu;
+               }
+ 
++#ifdef ENABLE_SM
+               if ((data->cmd == SC_PIN_CMD_GET_INFO)
+                               && (card->sm_ctx.sm_mode == SM_MODE_TRANSMIT)) {
+                       /* JCOP's SM accelerator is incapable of using case 1 
APDU in SM */
+@@ -612,6 +620,7 @@ static int sc_hsm_pin_cmd(sc_card_t *card, struct 
sc_pin_cmd_data *data,
+                       apdu.resplen = sizeof rbuf;
+                       data->apdu = &apdu;
+               }
++#endif
+ 
+               data->pin1.offset = 5;
+               data->pin1.length_offset = 4;
+@@ -627,11 +636,17 @@ static int sc_hsm_pin_cmd(sc_card_t *card, struct 
sc_pin_cmd_data *data,
+               data->cmd = SC_PIN_CMD_GET_SESSION_PIN;
+               if (data->pin_reference == 0x81) {
+                       u8 recvbuf[SC_MAX_APDU_BUFFER_SIZE];
++#ifdef ENABLE_SM
+                       if (card->sm_ctx.sm_mode != SM_MODE_TRANSMIT) {
+                               sc_debug(card->ctx, SC_LOG_DEBUG_NORMAL,
+                                               "Session PIN generation only 
supported in SM");
+                               LOG_FUNC_RETURN(card->ctx, SC_SUCCESS);
+                       }
++#else
++                      sc_debug(card->ctx, SC_LOG_DEBUG_NORMAL,
++                                      "Session PIN generation only supported 
in SM");
++                      LOG_FUNC_RETURN(card->ctx, SC_SUCCESS);
++#endif
+                       sc_format_apdu(card, &apdu, SC_APDU_CASE_2_SHORT, 0x5A, 
0x01, data->pin_reference);
+                       apdu.cla = 0x80;
+                       apdu.resp = recvbuf;
+@@ -669,7 +684,9 @@ static int sc_hsm_logout(sc_card_t * card)
+       sc_path_t path;
+       sc_hsm_private_data_t *priv = (sc_hsm_private_data_t *) card->drv_data;
+       memset(priv->sopin, 0, sizeof(priv->sopin));
++#ifdef ENABLE_SM
+       sc_sm_stop(card);
++#endif
+ 
+       sc_path_set(&path, SC_PATH_TYPE_DF_NAME, sc_hsm_aid.value, 
sc_hsm_aid.len, 0, 0);
+ 
+@@ -1586,7 +1603,9 @@ static int sc_hsm_init(struct sc_card *card)
+ static int sc_hsm_finish(sc_card_t * card)
+ {
+       sc_hsm_private_data_t *priv = (sc_hsm_private_data_t *) card->drv_data;
++#ifdef ENABLE_SM
+       sc_sm_stop(card);
++#endif
+       if (priv->serialno) {
+               free(priv->serialno);
+       }

diff --git a/dev-libs/opensc/opensc-0.17.0.ebuild 
b/dev-libs/opensc/opensc-0.17.0.ebuild
new file mode 100644
index 00000000000..0612c40f2bb
--- /dev/null
+++ b/dev-libs/opensc/opensc-0.17.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit ltprune
+
+DESCRIPTION="Libraries and applications to access smartcards"
+HOMEPAGE="https://github.com/OpenSC/OpenSC/wiki";
+SRC_URI="https://github.com/OpenSC/OpenSC/releases/download/${PV}/${P}.tar.gz";
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~ppc ~ppc64 ~s390 ~sh ~sparc 
~x86"
+IUSE="doc +pcsc-lite secure-messaging openct ctapi readline libressl ssl zlib"
+
+RDEPEND="zlib? ( sys-libs/zlib )
+       readline? ( sys-libs/readline:0= )
+       ssl? (
+               !libressl? ( dev-libs/openssl:0= )
+               libressl? ( dev-libs/libressl:0= )
+       )
+       openct? ( >=dev-libs/openct-0.5.0 )
+       pcsc-lite? ( >=sys-apps/pcsc-lite-1.3.0 )"
+DEPEND="${RDEPEND}
+       virtual/pkgconfig
+       app-text/docbook-xsl-stylesheets
+       dev-libs/libxslt"
+
+REQUIRED_USE="
+       pcsc-lite? ( !openct !ctapi )
+       openct? ( !pcsc-lite !ctapi )
+       ctapi? ( !pcsc-lite !openct )
+       || ( pcsc-lite openct ctapi )"
+
+PATCHES=(
+       "${FILESDIR}/${P}-build.patch"
+)
+
+src_configure() {
+       econf \
+               --docdir="/usr/share/doc/${PF}" \
+               --htmldir='$(docdir)/html' \
+               --disable-static \
+               --disable-openpace \
+               $(use_enable doc) \
+               $(use_enable openct) \
+               $(use_enable readline) \
+               $(use_enable zlib) \
+               $(use_enable secure-messaging sm) \
+               $(use_enable ssl openssl) \
+               $(use_enable pcsc-lite pcsc) \
+               $(use_enable openct) \
+               $(use_enable ctapi)
+}
+
+src_install() {
+       default
+       prune_libtool_files --all
+}

Reply via email to