From c60cf8c7da6659c22cb7d69e2e2e7b67632470effa246aadef4f2f692277bd40 Mon Sep 17 00:00:00 2001 From: John Vandenberg Date: Fri, 19 Feb 2021 04:59:03 +0000 Subject: [PATCH] Accepting request 873594 from home:jayvdb:branches:devel:languages:python - Switch to PyPI source - Skip python3.6 on Tumbleweed due to missing python36-clang - Add clang-version.patch to support more clang versions - Update to v2.2.3 * See https://github.com/trolldbois/ctypeslib/compare/2.2.2...2.2.3 OBS-URL: https://build.opensuse.org/request/show/873594 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-ctypeslib2?expand=0&rev=5 --- clang-version.patch | 57 +++++++++++++++++++++++++++++++++++++++ ctypeslib2-2.2.2.tar.gz | 3 --- ctypeslib2-2.2.3.tar.gz | 3 +++ python-ctypeslib2.changes | 9 +++++++ python-ctypeslib2.spec | 34 ++++++++++++++++------- 5 files changed, 94 insertions(+), 12 deletions(-) create mode 100644 clang-version.patch delete mode 100644 ctypeslib2-2.2.2.tar.gz create mode 100644 ctypeslib2-2.2.3.tar.gz diff --git a/clang-version.patch b/clang-version.patch new file mode 100644 index 0000000..9c08b19 --- /dev/null +++ b/clang-version.patch @@ -0,0 +1,57 @@ +From 98060fe704f7195356d754a78c67c6fd4756daa7 Mon Sep 17 00:00:00 2001 +From: Loic Jaquemet +Date: Tue, 16 Feb 2021 18:14:32 -0700 +Subject: [PATCH] add an helpful helper for clang python & .so in -version + +--- + ctypeslib/__init__.py | 8 +++++++- + ctypeslib/clang2py.py | 3 ++- + 2 files changed, 9 insertions(+), 2 deletions(-) + +diff --git a/ctypeslib/__init__.py b/ctypeslib/__init__.py +index a332e9e..c8fabfd 100644 +--- a/ctypeslib/__init__.py ++++ b/ctypeslib/__init__.py +@@ -23,7 +23,10 @@ + try: + from ctypes.util import find_library + # debug for python-haystack travis-ci +- for version in ["libclang", "clang", "clang-11", "clang-5.0", "clang-4.0", "clang-3.9", "clang-3.8", "clang-3.7"]: ++ v1 = ["clang-%d" % _ for _ in range(14, 6, -1)] ++ v2 = ["clang-%f" % _ for _ in range(6, 3, -1)] ++ v_list = v1 + v2 + ["clang-3.9", "clang-3.8", "clang-3.7"] ++ for version in ["libclang", "clang"] + v_list: + if find_library(version) is not None: + from clang import cindex + cindex.Config.set_library_file(find_library(version)) +@@ -33,6 +36,9 @@ + # On darwin, consider that Xcode should be installed in its default path. + from clang import cindex + cindex.Config.set_library_file('/Applications/Xcode.app/Contents/Frameworks/libclang.dylib') ++ ++ def ctypes_version(): ++ return cindex.Config.library_file + except ImportError as e: + print(e) + +diff --git a/ctypeslib/clang2py.py b/ctypeslib/clang2py.py +index 611cc0d..465df84 100755 +--- a/ctypeslib/clang2py.py ++++ b/ctypeslib/clang2py.py +@@ -13,6 +13,7 @@ + from ctypeslib.codegen import typedesc + from ctypeslib.codegen.codegenerator import generate_code + from ctypeslib.library import Library ++from ctypeslib import ctypes_version + + ################################################################ + windows_dll_names = """\ +@@ -175,7 +176,7 @@ def windows_dlls(option, opt, value, parser): + default=False) + parser.add_argument('-V', '--version', + action='version', +- version="%(prog)s version " + version) ++ version="%(prog)s version " + version + " clang: " + ctypes_version()) + + parser.add_argument("-w", + action="store", diff --git a/ctypeslib2-2.2.2.tar.gz b/ctypeslib2-2.2.2.tar.gz deleted file mode 100644 index 6c85914..0000000 --- a/ctypeslib2-2.2.2.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9510aceddc1445f9814510939c59f4e4fa2a9aa02a744ee9fe99afc78ffda3c5 -size 76248 diff --git a/ctypeslib2-2.2.3.tar.gz b/ctypeslib2-2.2.3.tar.gz new file mode 100644 index 0000000..7f24e49 --- /dev/null +++ b/ctypeslib2-2.2.3.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79d021879191d2c63e19e5b9c35b1fc6a8c58a9ba67e8be90c2c40a815d94560 +size 63975 diff --git a/python-ctypeslib2.changes b/python-ctypeslib2.changes index 126c672..b976c23 100644 --- a/python-ctypeslib2.changes +++ b/python-ctypeslib2.changes @@ -1,3 +1,12 @@ +------------------------------------------------------------------- +Fri Feb 19 02:18:14 UTC 2021 - John Vandenberg + +- Switch to PyPI source +- Skip python3.6 on Tumbleweed due to missing python36-clang +- Add clang-version.patch to support more clang versions +- Update to v2.2.3 + * See https://github.com/trolldbois/ctypeslib/compare/2.2.2...2.2.3 + ------------------------------------------------------------------- Wed May 27 13:21:25 UTC 2020 - Petr Gajdos diff --git a/python-ctypeslib2.spec b/python-ctypeslib2.spec index fd2d2ca..f111d0f 100644 --- a/python-ctypeslib2.spec +++ b/python-ctypeslib2.spec @@ -1,7 +1,7 @@ # # spec file for package python-ctypeslib2 # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,6 +18,7 @@ # No python2-clang %define skip_python2 1 +%define skip_python36 1 %define oldpython python %{?!python_module:%define python_module() python-%{**} python3-%{**}} %ifarch %{ix86} x86_64 @@ -26,20 +27,22 @@ %bcond_with test %endif Name: python-ctypeslib2 -Version: 2.2.2 +Version: 2.2.3 Release: 0 Summary: Python FFI toolkit using clang License: MIT Group: Development/Languages/Python URL: https://github.com/trolldbois/ctypeslib -Source: https://github.com/trolldbois/ctypeslib/archive/%{version}.tar.gz#/ctypeslib2-%{version}.tar.gz -BuildRequires: %{python_module clang} +Source: https://files.pythonhosted.org/packages/source/c/ctypeslib2/ctypeslib2-%{version}.tar.gz +Patch0: https://github.com/trolldbois/ctypeslib/commit/98060fe704f7195356d754a78c67c6fd4756daa7.patch#/clang-version.patch BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} BuildRequires: %{python_module testsuite} BuildRequires: fdupes +BuildRequires: gcc BuildRequires: python-rpm-macros -Requires: python-clang +BuildRequires: python3-clang +Requires: python3-clang Requires(post): update-alternatives Requires(postun): update-alternatives BuildArch: noarch @@ -53,13 +56,22 @@ Conflicts: %{oldpython}-ctypeslib Python FFI toolkit using clang. %prep -%setup -q -n ctypeslib-%{version} +%setup -q -n ctypeslib2-%{version} +%patch0 -p1 +sed -i '1{/^#!/d}' ctypeslib/clang2py.py + # https://github.com/trolldbois/ctypeslib/issues/60 -sed -i 's/test_variable/_test_variable/' test/test_clang2py.py +sed -Ei 's/(test_class|test_macro|test_variable)/_\1/' test/test_clang2py.py + +# Skipped on master +# https://github.com/trolldbois/ctypeslib/commit/ef141bb04ef1f9f50774a52195d75a71d55b2749#diff-056c7a7f3e89754296c5f3478ac0ad54630c347a1dc5bf22311ca059cde0ccde sed -i 's/test_unicode_cpp11/_test_unicode_cpp11/' test/test_types_values.py sed -i 's/test_unicode/_test_unicode/' test/test_types_values.py + # https://github.com/trolldbois/ctypeslib/issues/61 sed -i 's/test_extern_function_pointer_multiarg/_test_extern_function_pointer_multiarg/' test/test_types_values.py +sed -i 's/test_callbacks/_test_callbacks/' test/test_callbacks.py + # https://github.com/trolldbois/ctypeslib/issues/62 sed -i 's/test_includes/_test_includes/' test/test_fast_clang.py @@ -73,14 +85,18 @@ sed -i 's/test_includes/_test_includes/' test/test_fast_clang.py %if %{with test} %check +CFLAGS="-Wall -Wextra -Werror -std=c99 -pedantic -fpic" +LDFLAGS="-shared" +gcc $CFLAGS $LDFLAGS -o test/data/test-callbacks.so test/data/test-callbacks.c + export LANG=en_US.UTF-8 +export PYTHONDONTWRITEBYTECODE=1 %{python_expand \ bin_dir=bin-%{$python_version} mkdir $bin_dir ln -s %{buildroot}%{_bindir}/clang2py-%{$python_version} $bin_dir/clang2py export PATH=$PATH:`pwd`/$bin_dir - export PYTHONPATH=:test:./build/lib:%{buildroot}%{$python_sitearch} - export PYTHONDONTWRITEBYTECODE=1 + export PYTHONPATH=:test/:%{buildroot}%{$python_sitelib} $python -m unittest discover -s test/ -v } %endif