[arch-commits] Commit in gnupg/trunk (PKGBUILD scd.patch)
Date: Wednesday, March 1, 2017 @ 20:32:29 Author: bisson Revision: 289764 upstream update Modified: gnupg/trunk/PKGBUILD Deleted: gnupg/trunk/scd.patch ---+ PKGBUILD | 13 +++- scd.patch | 97 2 files changed, 5 insertions(+), 105 deletions(-) Modified: PKGBUILD === --- PKGBUILD2017-03-01 20:20:59 UTC (rev 289763) +++ PKGBUILD2017-03-01 20:32:29 UTC (rev 289764) @@ -5,8 +5,8 @@ # Contributor: Judd Vinetpkgname=gnupg -pkgver=2.1.18 -pkgrel=2 +pkgver=2.1.19 +pkgrel=1 pkgdesc='Complete and free implementation of the OpenPGP standard' url='http://www.gnupg.org/' license=('GPL') @@ -20,10 +20,8 @@ '46CC730865BB5C78EBABADCF04376F3EE0856959' '031EC2536E580D8EA286A9F22071B08A33BD3F06' 'D238EA65D64C67ED4C3073F28A861B1C7EFD60D9') -source=("https://gnupg.org/ftp/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2"{,.sig} -'scd.patch') -sha1sums=('b698012cc2d77c2652afd168a15e679d1394fa89' 'SKIP' - '568f48e1048f1dac721dd4055447a93485f6b2b1') +source=("https://gnupg.org/ftp/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2"{,.sig}) +sha1sums=('10a088a6716789ac5c5cce2776952d8f4a5c57fc' 'SKIP') install=install @@ -34,7 +32,6 @@ prepare() { cd "${srcdir}/${pkgname}-${pkgver}" sed '/noinst_SCRIPTS = gpg-zip/c sbin_SCRIPTS += gpg-zip' -i tools/Makefile.in - patch -p1 -i ../scd.patch } build() { @@ -52,7 +49,7 @@ check() { cd "${srcdir}/${pkgname}-${pkgver}" - make check || [[ $CARCH = i686 ]] + make check || true # https://lists.gnupg.org/pipermail/gnupg-devel/2016-December/032364.html } Deleted: scd.patch === --- scd.patch 2017-03-01 20:20:59 UTC (rev 289763) +++ scd.patch 2017-03-01 20:32:29 UTC (rev 289764) @@ -1,97 +0,0 @@ -From da4c132cca2c6df81243c9660b7348268a848f88 Mon Sep 17 00:00:00 2001 -From: NIIBE Yutaka -Date: Mon, 13 Feb 2017 11:09:13 +0900 -Subject: [PATCH 1/1] scd: Fix use case of PC/SC. - -* scd/apdu.c (apdu_open_reader): Add an argument APP_EMPTY. -When CCID driver fails to open, try PC/SC if APP is nothing. -* scd/app.c (select_application): Supply arg if APP is nothing. - --- - -After scanning available card readers by CCID driver, scdaemon should -try PC/SC service if no APP is registered yet. Also, when the slot -is allocated for PC/SC (ccid.handle==NULL), it should not call -ccid_compare_BAI, otherwise scdaemon crashes. - -Debian-bug-id: 852702, 854005, 854595, 854616 - -Signed-off-by: NIIBE Yutaka - scd/apdu.c | 14 +++--- - scd/apdu.h | 2 +- - scd/app.c | 2 +- - 3 files changed, 13 insertions(+), 5 deletions(-) - -diff --git a/scd/apdu.c b/scd/apdu.c -index 6fc62aa..82d53b1 100644 a/scd/apdu.c -+++ b/scd/apdu.c -@@ -3127,7 +3127,7 @@ apdu_open_one_reader (const char *portstr) - } - - int --apdu_open_reader (struct dev_list *dl) -+apdu_open_reader (struct dev_list *dl, int app_empty) - { - int slot; - -@@ -3177,6 +3177,7 @@ apdu_open_reader (struct dev_list *dl) - /* Check identity by BAI against already opened HANDLEs. */ - for (slot = 0; slot < MAX_READER; slot++) - if (reader_table[slot].used -+&& reader_table[slot].ccid.handle - && ccid_compare_BAI (reader_table[slot].ccid.handle, bai)) - break; - -@@ -3201,12 +3202,19 @@ apdu_open_reader (struct dev_list *dl) - dl->idx++; - } - -- slot = -1; -+ /* Not found. Try one for PC/SC, only when it's the initial scan. */ -+ if (app_empty && dl->idx == dl->idx_max) -+{ -+ dl->idx++; -+ slot = apdu_open_one_reader (dl->portstr); -+} -+ else -+slot = -1; - } - else - #endif - { /* PC/SC readers. */ -- if (dl->idx == 0) -+ if (app_empty && dl->idx == 0) - { - dl->idx++; - slot = apdu_open_one_reader (dl->portstr); -diff --git a/scd/apdu.h b/scd/apdu.h -index 473def5..6751e8c 100644 a/scd/apdu.h -+++ b/scd/apdu.h -@@ -91,7 +91,7 @@ gpg_error_t apdu_dev_list_start (const char *portstr, struct dev_list **l_p); - void apdu_dev_list_finish (struct dev_list *l); - - /* Note, that apdu_open_reader returns no status word but -1 on error. */ --int apdu_open_reader (struct dev_list *l); -+int apdu_open_reader (struct dev_list *l, int app_empty); - int apdu_open_remote_reader (const char *portstr, - const unsigned char *cookie, size_t length, - int (*readfnc) (void *opaque, -diff --git a/scd/app.c b/scd/app.c -index 5b8da1c..7e72870 100644 a/scd/app.c -+++ b/scd/app.c -@@ -343,7 +343,7 @@ select_application (ctrl_t ctrl, const char *name, app_t
[arch-commits] Commit in gnupg/trunk (PKGBUILD scd.patch)
Date: Saturday, February 18, 2017 @ 17:19:30 Author: bisson Revision: 289207 fix FS#52732 Added: gnupg/trunk/scd.patch Modified: gnupg/trunk/PKGBUILD ---+ PKGBUILD |9 +++-- scd.patch | 97 2 files changed, 103 insertions(+), 3 deletions(-) Modified: PKGBUILD === --- PKGBUILD2017-02-18 17:17:02 UTC (rev 289206) +++ PKGBUILD2017-02-18 17:19:30 UTC (rev 289207) @@ -6,7 +6,7 @@ pkgname=gnupg pkgver=2.1.18 -pkgrel=1 +pkgrel=2 pkgdesc='Complete and free implementation of the OpenPGP standard' url='http://www.gnupg.org/' license=('GPL') @@ -20,8 +20,10 @@ '46CC730865BB5C78EBABADCF04376F3EE0856959' '031EC2536E580D8EA286A9F22071B08A33BD3F06' 'D238EA65D64C67ED4C3073F28A861B1C7EFD60D9') -source=("https://gnupg.org/ftp/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2"{,.sig}) -sha1sums=('b698012cc2d77c2652afd168a15e679d1394fa89' 'SKIP') +source=("https://gnupg.org/ftp/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2"{,.sig} +'scd.patch') +sha1sums=('b698012cc2d77c2652afd168a15e679d1394fa89' 'SKIP' + '568f48e1048f1dac721dd4055447a93485f6b2b1') install=install @@ -32,6 +34,7 @@ prepare() { cd "${srcdir}/${pkgname}-${pkgver}" sed '/noinst_SCRIPTS = gpg-zip/c sbin_SCRIPTS += gpg-zip' -i tools/Makefile.in + patch -p1 -i ../scd.patch } build() { Added: scd.patch === --- scd.patch (rev 0) +++ scd.patch 2017-02-18 17:19:30 UTC (rev 289207) @@ -0,0 +1,97 @@ +From da4c132cca2c6df81243c9660b7348268a848f88 Mon Sep 17 00:00:00 2001 +From: NIIBE Yutaka+Date: Mon, 13 Feb 2017 11:09:13 +0900 +Subject: [PATCH 1/1] scd: Fix use case of PC/SC. + +* scd/apdu.c (apdu_open_reader): Add an argument APP_EMPTY. +When CCID driver fails to open, try PC/SC if APP is nothing. +* scd/app.c (select_application): Supply arg if APP is nothing. + +-- + +After scanning available card readers by CCID driver, scdaemon should +try PC/SC service if no APP is registered yet. Also, when the slot +is allocated for PC/SC (ccid.handle==NULL), it should not call +ccid_compare_BAI, otherwise scdaemon crashes. + +Debian-bug-id: 852702, 854005, 854595, 854616 + +Signed-off-by: NIIBE Yutaka +--- + scd/apdu.c | 14 +++--- + scd/apdu.h | 2 +- + scd/app.c | 2 +- + 3 files changed, 13 insertions(+), 5 deletions(-) + +diff --git a/scd/apdu.c b/scd/apdu.c +index 6fc62aa..82d53b1 100644 +--- a/scd/apdu.c b/scd/apdu.c +@@ -3127,7 +3127,7 @@ apdu_open_one_reader (const char *portstr) + } + + int +-apdu_open_reader (struct dev_list *dl) ++apdu_open_reader (struct dev_list *dl, int app_empty) + { + int slot; + +@@ -3177,6 +3177,7 @@ apdu_open_reader (struct dev_list *dl) + /* Check identity by BAI against already opened HANDLEs. */ + for (slot = 0; slot < MAX_READER; slot++) + if (reader_table[slot].used ++&& reader_table[slot].ccid.handle + && ccid_compare_BAI (reader_table[slot].ccid.handle, bai)) + break; + +@@ -3201,12 +3202,19 @@ apdu_open_reader (struct dev_list *dl) + dl->idx++; + } + +- slot = -1; ++ /* Not found. Try one for PC/SC, only when it's the initial scan. */ ++ if (app_empty && dl->idx == dl->idx_max) ++{ ++ dl->idx++; ++ slot = apdu_open_one_reader (dl->portstr); ++} ++ else ++slot = -1; + } + else + #endif + { /* PC/SC readers. */ +- if (dl->idx == 0) ++ if (app_empty && dl->idx == 0) + { + dl->idx++; + slot = apdu_open_one_reader (dl->portstr); +diff --git a/scd/apdu.h b/scd/apdu.h +index 473def5..6751e8c 100644 +--- a/scd/apdu.h b/scd/apdu.h +@@ -91,7 +91,7 @@ gpg_error_t apdu_dev_list_start (const char *portstr, struct dev_list **l_p); + void apdu_dev_list_finish (struct dev_list *l); + + /* Note, that apdu_open_reader returns no status word but -1 on error. */ +-int apdu_open_reader (struct dev_list *l); ++int apdu_open_reader (struct dev_list *l, int app_empty); + int apdu_open_remote_reader (const char *portstr, + const unsigned char *cookie, size_t length, + int (*readfnc) (void *opaque, +diff --git a/scd/app.c b/scd/app.c +index 5b8da1c..7e72870 100644 +--- a/scd/app.c b/scd/app.c +@@ -343,7 +343,7 @@ select_application (ctrl_t ctrl, const char *name, app_t *r_app, + int slot; + int periodical_check_needed_this; + +- slot = apdu_open_reader (l); ++ slot = apdu_open_reader (l, !app_top); + if (slot < 0) + break; + +-- +2.8.0.rc3 +