Import rpm: 5f944eba9d9ac4db71edc33d64af6f08e1aea7ad
This commit is contained in:
commit
8662f9559f
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
SOURCES/python-yubico-1.3.2.tar.gz
|
||||
66
0001-literal-comparison.patch
Normal file
66
0001-literal-comparison.patch
Normal file
@ -0,0 +1,66 @@
|
||||
From b4a53389c3e6ad41c836aa82998149f427fe1ad8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Tibor=20Dudl=C3=A1k?= <tdudlak@redhat.com>
|
||||
Date: Tue, 10 Sep 2019 19:12:19 +0200
|
||||
Subject: [PATCH] Do not use comparision with "is" for literals
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
There is a warning with python 3.8 at fedora rawhide about
|
||||
comparision with "is" while running ipa-server install.
|
||||
See: https://bugs.python.org/issue34850
|
||||
|
||||
Signed-off-by: Tibor Dudlák <tdudlak@redhat.com>
|
||||
---
|
||||
yubico/yubikey_config.py | 4 ++--
|
||||
yubico/yubikey_usb_hid.py | 6 +++---
|
||||
2 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/yubico/yubikey_config.py b/yubico/yubikey_config.py
|
||||
index b5a30c4..caeed02 100644
|
||||
--- a/yubico/yubikey_config.py
|
||||
+++ b/yubico/yubikey_config.py
|
||||
@@ -475,12 +475,12 @@ def to_frame(self, slot=1):
|
||||
"""
|
||||
data = self.to_string()
|
||||
payload = data.ljust(64, yubico_util.chr_byte(0x0))
|
||||
- if slot is 1:
|
||||
+ if slot == 1:
|
||||
if self._update_config:
|
||||
command = SLOT.UPDATE1
|
||||
else:
|
||||
command = SLOT.CONFIG
|
||||
- elif slot is 2:
|
||||
+ elif slot == 2:
|
||||
if self._update_config:
|
||||
command = SLOT.UPDATE2
|
||||
else:
|
||||
diff --git a/yubico/yubikey_usb_hid.py b/yubico/yubikey_usb_hid.py
|
||||
index c07dcaa..b87ff3c 100644
|
||||
--- a/yubico/yubikey_usb_hid.py
|
||||
+++ b/yubico/yubikey_usb_hid.py
|
||||
@@ -285,13 +285,13 @@ def _waitfor(self, mode, mask, may_block, timeout=2):
|
||||
seconds_left = min(20, seconds_left)
|
||||
wait_num = (seconds_left * 2) - 1 + 6
|
||||
|
||||
- if mode is 'nand':
|
||||
+ if mode == 'nand':
|
||||
if not flags & mask == mask:
|
||||
finished = True
|
||||
else:
|
||||
self._debug("Status %s (0x%x) has not cleared bits %s (0x%x)\n"
|
||||
% (bin(flags), flags, bin(mask), mask))
|
||||
- elif mode is 'and':
|
||||
+ elif mode == 'and':
|
||||
if flags & mask == mask:
|
||||
finished = True
|
||||
else:
|
||||
@@ -303,7 +303,7 @@ def _waitfor(self, mode, mask, may_block, timeout=2):
|
||||
if not finished:
|
||||
wait_num -= 1
|
||||
if wait_num == 0:
|
||||
- if mode is 'nand':
|
||||
+ if mode == 'nand':
|
||||
reason = 'Timed out waiting for YubiKey to clear status 0x%x' % mask
|
||||
else:
|
||||
reason = 'Timed out waiting for YubiKey to set status 0x%x' % mask
|
||||
7
gating.yaml
Normal file
7
gating.yaml
Normal file
@ -0,0 +1,7 @@
|
||||
# recipients: abokovoy, frenaud, kaleem, ftrivino, cheimes
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-9
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
||||
22
python-yubico-py3.patch
Normal file
22
python-yubico-py3.patch
Normal file
@ -0,0 +1,22 @@
|
||||
From 7e6e424ed579c53a0767ba71eb47345ae1e472ca Mon Sep 17 00:00:00 2001
|
||||
From: minus <github@mnus.de>
|
||||
Date: Sat, 12 Mar 2016 12:18:44 +0100
|
||||
Subject: [PATCH] fixed Python 3 compatibility for Yubikey 4
|
||||
|
||||
---
|
||||
yubico/yubikey_4_usb_hid.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/yubico/yubikey_4_usb_hid.py b/yubico/yubikey_4_usb_hid.py
|
||||
index 31c6f5d..b44bb90 100644
|
||||
--- a/yubico/yubikey_4_usb_hid.py
|
||||
+++ b/yubico/yubikey_4_usb_hid.py
|
||||
@@ -104,7 +104,7 @@ def _read_capabilities(self):
|
||||
frame = yubikey_frame.YubiKeyFrame(command=SLOT.YK4_CAPABILITIES)
|
||||
self._device._write(frame)
|
||||
response = self._device._read_response()
|
||||
- r_len = ord(response[0])
|
||||
+ r_len = yubico_util.ord_byte(response[0])
|
||||
|
||||
# 1 byte length, 2 byte CRC.
|
||||
if not yubico_util.validate_crc16(response[:r_len+3]):
|
||||
157
python-yubico.spec
Normal file
157
python-yubico.spec
Normal file
@ -0,0 +1,157 @@
|
||||
%{!?_licensedir:%global license %%doc}
|
||||
|
||||
%global srcname yubico
|
||||
|
||||
%if 0%{?rhel} > 7
|
||||
# Disable python2 build by default
|
||||
%bcond_with python2
|
||||
%else
|
||||
%bcond_without python2
|
||||
%endif
|
||||
|
||||
Name: python-%{srcname}
|
||||
Version: 1.3.2
|
||||
Release: 9%{?dist}
|
||||
Summary: Pure-python library for interacting with Yubikeys
|
||||
|
||||
License: BSD
|
||||
URL: https://github.com/Yubico/%{name}
|
||||
Source0: https://github.com/Yubico/%{name}/archive/%{name}-%{version}.tar.gz
|
||||
Patch0: python-yubico-py3.patch
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
%if %{with python2}
|
||||
BuildRequires: python2-devel
|
||||
BuildRequires: python2-setuptools
|
||||
BuildRequires: python2-nose
|
||||
BuildRequires: python2-pyusb
|
||||
%endif # with python2
|
||||
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-setuptools
|
||||
BuildRequires: python3-nose
|
||||
BuildRequires: python3-pyusb
|
||||
|
||||
%description
|
||||
Pure-python library for interacting with Yubikeys
|
||||
|
||||
%if %{with python2}
|
||||
%package -n python2-%{srcname}
|
||||
Summary: Pure-python library for interacting with Yubikeys
|
||||
Requires: pyusb
|
||||
Obsoletes: python-yubico < %{version}-%{release}
|
||||
|
||||
%{?python_provide:%python_provide python2-%{srcname}}
|
||||
|
||||
%description -n python2-%{srcname}
|
||||
Pure-python library for interacting with Yubikeys. For Python 2.
|
||||
%endif # with python2
|
||||
|
||||
%package -n python3-%{srcname}
|
||||
Summary: Pure-python library for interacting with Yubikeys
|
||||
Requires: python3-pyusb
|
||||
|
||||
%{?python_provide:%python_provide python3-%{srcname}}
|
||||
|
||||
%description -n python3-%{srcname}
|
||||
Pure-python library for interacting with Yubikeys. For Python 3.
|
||||
|
||||
|
||||
%prep
|
||||
%autosetup -n %{name}-%{name}-%{version} -p1
|
||||
|
||||
|
||||
%build
|
||||
%if %{with python2}
|
||||
%py2_build
|
||||
%endif # with python2
|
||||
%py3_build
|
||||
|
||||
|
||||
%install
|
||||
%if %{with python2}
|
||||
%py2_install
|
||||
%endif # with python2
|
||||
%py3_install
|
||||
|
||||
|
||||
%check
|
||||
%if %{with python2}
|
||||
nosetests-%{python2_version} -e test_challenge_response -e test_serial -e test_status
|
||||
%endif # with python2
|
||||
nosetests-%{python3_version} -e test_challenge_response -e test_serial -e test_status
|
||||
|
||||
%if %{with python2}
|
||||
%files -n python2-%{srcname}
|
||||
%license COPYING
|
||||
%doc NEWS README
|
||||
%{python2_sitelib}/*
|
||||
%endif # with python2
|
||||
|
||||
%files -n python3-%{srcname}
|
||||
%license COPYING
|
||||
%doc NEWS README
|
||||
%{python3_sitelib}/*
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Jun 19 2018 Charalampos Stratakis <cstratak@redhat.com> - 1.3.2-9
|
||||
- Conditionalize the python2 subpackage
|
||||
|
||||
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2-8
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
|
||||
|
||||
* Thu Aug 24 2017 Nathaniel McCallum <npmccallum@redhat.com> - 1.3.2-7
|
||||
- Backport an upstream python3 fix (#1484862)
|
||||
|
||||
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
|
||||
|
||||
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.3.2-5
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
|
||||
|
||||
* Mon Dec 19 2016 Miro Hrončok <mhroncok@redhat.com> - 1.3.2-4
|
||||
- Rebuild for Python 3.6
|
||||
|
||||
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.3.2-3
|
||||
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
|
||||
|
||||
* Wed May 11 2016 Nathaniel McCallum <npmccallum@redhat.com> - 1.3.2-2
|
||||
- Add missing provide for python-yubico
|
||||
- Add missing obsoletes for python-yubico
|
||||
|
||||
* Tue May 10 2016 Nathaniel McCallum <npmccallum@redhat.com> - 1.3.2-1
|
||||
- Cleanup obsolete conditions (like RHEL 6)
|
||||
- Update to v1.3.2
|
||||
|
||||
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.2.3-6
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
|
||||
|
||||
* Mon Jan 11 2016 Will Thompson <will@willthompson.co.uk> - 1.2.3-5
|
||||
- Add python3-pyusb dependency to python3 subpackage (#1278210)
|
||||
|
||||
* Mon Jan 11 2016 Ville Skyttä <ville.skytta@iki.fi>
|
||||
- Ship COPYING as %%license where applicable
|
||||
|
||||
* Tue Nov 10 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2.3-4
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Changes/python3.5
|
||||
|
||||
* Mon Jul 20 2015 Miro Hrončok <mhroncok@redhat.com> - 1.2.3-3
|
||||
- Add Python 3 subpackage (#1244237)
|
||||
|
||||
* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.2.3-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
|
||||
|
||||
* Mon Mar 23 2015 Nathaniel McCallum <npmccallum@redhat.com> - 1.2.3-1
|
||||
- Upstream 1.2.3
|
||||
- Require pyusb during building when running tests
|
||||
|
||||
* Mon Jun 23 2014 Nathaniel McCallum <npmccallum@redhat.com> - 1.2.1-3
|
||||
- Enable build on EL6.
|
||||
|
||||
* Sat Jun 21 2014 Nathaniel McCallum <npmccallum@redhat.com> - 1.2.1-2
|
||||
- Run upstream tests during build.
|
||||
|
||||
* Thu Jun 19 2014 Nathaniel McCallum <npmccallum@redhat.com> - 1.2.1-1
|
||||
- Initial release.
|
||||
1
sources
Normal file
1
sources
Normal file
@ -0,0 +1 @@
|
||||
SHA1 (python-yubico-1.3.2.tar.gz) = ce26775893e3d25c33e226b376d92dfe1ae114d6
|
||||
8
tests/sanity.sh
Normal file
8
tests/sanity.sh
Normal file
@ -0,0 +1,8 @@
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||
|
||||
dnf install -y python3-yubico
|
||||
|
||||
exec ${DIR}/test_ipa_yubikey.py
|
||||
28
tests/test_ipa_yubikey.py
Executable file
28
tests/test_ipa_yubikey.py
Executable file
@ -0,0 +1,28 @@
|
||||
#!/usr/bin/python3
|
||||
"""Simple test for APIs used by IPA's otptoken plugin
|
||||
"""
|
||||
import logging
|
||||
|
||||
import yubico
|
||||
import usb.core
|
||||
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
log = logging.getLogger()
|
||||
|
||||
|
||||
def main():
|
||||
try:
|
||||
yk = yubico.find_yubikey()
|
||||
except usb.core.USBError as e:
|
||||
log.info(e)
|
||||
except yubico.yubikey.YubiKeyError as e:
|
||||
log.info(e)
|
||||
else:
|
||||
assert yk.version_num()
|
||||
log.info(yk.status())
|
||||
log.info(yk.status().valid_configs())
|
||||
log.info("PASS")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
13
tests/tests.yml
Normal file
13
tests/tests.yml
Normal file
@ -0,0 +1,13 @@
|
||||
---
|
||||
- hosts: localhost
|
||||
tags:
|
||||
- classic
|
||||
roles:
|
||||
- role: standard-test-source
|
||||
- role: standard-test-basic
|
||||
required_packages:
|
||||
- python3-yubico
|
||||
tests:
|
||||
- test_ipa_yubikey:
|
||||
dir: "tests"
|
||||
run: ./test_ipa_yubikey.py
|
||||
Loading…
Reference in New Issue
Block a user