From aae717dd566f4149c56fab79a23458c76ea1f33b Mon Sep 17 00:00:00 2001 From: Jordan Borean Date: Tue, 16 Aug 2022 05:41:15 +1000 Subject: [PATCH] Bump version to 1.8.1 with Python 3.7 requires This update bumps the `python_requires` to be `>=3.7` as the sdist build requires PEP 517 support that is somewhat only guaranteed with the pip that was shipped with Python 3.7 or greater. Since 3.6 has been end of life since December 2021 and the remaining Linux distributions that still use it have system provided packages this shouldn't be a surprise. Also use CentOS 9 Stream in the CI tests to test this on an actual RHEL-ish host on the version of Python actually supported. Signed-off-by: Jordan Borean --- .github/workflows/ci.yml | 15 +++-------- README.txt | 5 ++-- ci/lib.sh | 57 ++++++++++++++++++++++++++++++---------- setup.py | 5 ++-- 4 files changed, 51 insertions(+), 31 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 04e2e281..730ac21f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -57,8 +57,6 @@ jobs: version: cp38-macosx_arm64 - os: macOS-12 version: cp37-macosx_x86_64 - - os: macOS-12 - version: cp36-macosx_x86_64 - os: windows-2022 version: cp310-win_amd64 @@ -76,10 +74,6 @@ jobs: version: cp37-win_amd64 - os: windows-2022 version: cp37-win32 - - os: windows-2022 - version: cp36-win_amd64 - - os: windows-2022 - version: cp36-win32 steps: - name: Set up environment @@ -136,7 +130,7 @@ jobs: name: - debian-stable - debian-heimdal - - centos-stream-8 + - centos-stream-9 - fedora-latest include: - name: debian-stable @@ -144,8 +138,8 @@ jobs: - name: debian-heimdal distro: debian:stable krb5_ver: heimdal - - name: centos-stream-8 - distro: quay.io/centos/centos:stream8 + - name: centos-stream-9 + distro: quay.io/centos/centos:stream9 - name: fedora-latest distro: fedora:latest flake: 'yes' @@ -181,7 +175,6 @@ jobs: - win-py-3.9 - win-py-3.8 - win-py-3.7 - - win-py-3.6 arch: - x64 - x86 @@ -194,8 +187,6 @@ jobs: pyenv: '3.8' - name: win-py-3.7 pyenv: '3.7' - - name: win-py-3.6 - pyenv: '3.6' steps: - name: Check out code diff --git a/README.txt b/README.txt index 69a34f90..5077840e 100644 --- a/README.txt +++ b/README.txt @@ -36,14 +36,15 @@ Basic * a C compiler (such as GCC) -* Python 3.6+ (older releases support older versions, but are unsupported) +* Python 3.7+ (older releases support older versions, but are unsupported) * the `decorator` python package Compiling from Scratch ---------------------- -To compile from scratch, you will need Cython >= 0.21.1. +To compile from scratch, you will need Cython >= 0.29.29 which is automatically +installed by pip in an isolated build virtual environment. For Running the Tests --------------------- diff --git a/ci/lib.sh b/ci/lib.sh index 07408c8a..338434d7 100755 --- a/ci/lib.sh +++ b/ci/lib.sh @@ -16,34 +16,64 @@ lib::setup::debian_install() { export GSSAPI_KRB5_MAIN_LIB="/usr/lib/x86_64-linux-gnu/libkrb5.so" fi - apt-get -y install gcc virtualenv python3-{venv,dev} + apt-get -y install gcc python3-{venv,dev} - virtualenv -p $(which python3) .venv + python3 -m venv .venv source ./.venv/bin/activate } -lib::setup::rh_yuminst() { - # yum has no update-only verb. Also: modularity just makes this slower. - yum -y --nogpgcheck --disablerepo=\*modul\* install $@ +lib::setup::rh_dnfinst() { + # dnf has no update-only verb. Also: modularity just makes this slower. + dnf -y --nogpgcheck --disablerepo=\*modul\* install $@ } lib::setup::centos_install() { - lib::setup::rh_yuminst python3-{virtualenv,devel} - virtualenv -p $(which python3) .venv + lib::setup::rh_dnfinst python3-devel + python3 -m venv .venv source ./.venv/bin/activate } lib::setup::fedora_install() { # path to binary here in case Rawhide changes it - lib::setup::rh_yuminst redhat-rpm-config \ - /usr/bin/virtualenv python3-{virtualenv,devel} - virtualenv -p $(which python3) .venv + lib::setup::rh_dnfinst redhat-rpm-config \ + python3-devel + python3 -m venv .venv source ./.venv/bin/activate } +lib::setup::gssntlmssp_install() { + lib::setup::rh_dnfinst dnf-plugins-core + dnf config-manager --set-enabled crb + + lib::setup::rh_dnfinst autoconf automake gettext libtool \ + libunistring-devel openssl-devel zlib-devel + + curl -L -s https://github.com/gssapi/gss-ntlmssp/releases/download/v1.1.0/gssntlmssp-1.1.0.tar.gz --output /tmp/gssntlmssp.tar.gz + tar xf /tmp/gssntlmssp.tar.gz -C /tmp + + pushd /tmp/gssntlmssp-1.1.0 + + autoreconf -f -i + ./configure --with-wbclient=no --with-manpages=no + make + make install + + popd + + echo "gssntlmssp_v1 1.3.6.1.4.1.311.2.2.10 /usr/local/lib/gssntlmssp/gssntlmssp.so" > /etc/gss/mech.d/gssntlmssp.conf +} + lib::setup::rh_install() { - lib::setup::rh_yuminst krb5-{devel,libs,server,workstation} \ - which gcc findutils gssntlmssp + lib::setup::rh_dnfinst krb5-{devel,libs,server,workstation} \ + which gcc findutils + + if grep -q 'release 9' /etc/redhat-release; then + # CentOS 9 Stream doesn't have a dnf package for gssntlmssp + lib::setup::gssntlmssp_install + else + lib::setup::rh_dnfinst gssntlmssp + fi + export GSSAPI_KRB5_MAIN_LIB="/usr/lib64/libkrb5.so" if [ -f /etc/fedora-release ]; then @@ -54,8 +84,7 @@ lib::setup::rh_install() { } lib::setup::macos_install() { - sudo pip3 install virtualenv - python3 -m virtualenv -p $(which python3) .venv + python3 -m venv .venv source .venv/bin/activate export GSSAPI_KRB5_MAIN_LIB="/System/Library/PrivateFrameworks/Heimdal.framework/Heimdal" diff --git a/setup.py b/setup.py index 75e71fc9..1c70f4a6 100755 --- a/setup.py +++ b/setup.py @@ -274,7 +274,7 @@ def gssapi_modules(lst): setup( name='gssapi', - version='1.8.0', + version='1.8.1', author='The Python GSSAPI Team', author_email='jborean93@gmail.com', packages=['gssapi', 'gssapi.raw', 'gssapi.raw._enum_extensions', @@ -287,12 +287,11 @@ def gssapi_modules(lst): long_description=long_desc, license='LICENSE.txt', url="https://github.com/pythongssapi/python-gssapi", - python_requires=">=3.6", + python_requires=">=3.7", classifiers=[ 'Development Status :: 5 - Production/Stable', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9',