From 7e13f7ce3a754c38193bce37511d9651b32b9bf71536e13c644896afc3d6e37c Mon Sep 17 00:00:00 2001 From: Dirk Mueller Date: Mon, 29 Sep 2025 16:40:25 +0000 Subject: [PATCH] - update to elease_v2.23: * Allow abstract declarator "static" (GH issue #539) * Add support for Python 3.13 * Add dirent and socket typedefs. * Support for labels with no statement * Accept empty 'case' or 'default' labels * fix: preserve parentheses for statement exprs * fix: hex float types * Explicit error for comments, with README link * showemptyattrs option on Node.show() * Add fake typedefs for GNU Extension 128-bit integers. * Typedef for __kernel_sa_family_t in linux/socket.h - update to elease_v2.22: * Add missing SCHAR limit defines * Use proper SPDX identifier * Add Python 3.11 as a supported version * Fix multi-pragma/single statement blocks * Add an encoding parameter to parse_file * Feature/add pragma support * Set up permissions to ci.yml * _build_tables: Invalidate cache before importing generated modules * Upgrade GitHub Actions * Create a Security Policy * New example to generate AST from scratch * Add support for Python 3.12 * ply: Make generated lextab.py deterministic OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pycparser?expand=0&rev=36 --- .gitattributes | 23 ++++ .gitignore | 1 + pycparser-2.22.tar.gz | 3 + pycparser-2.23.tar.gz | 3 + python-pycparser-rpmlintrc | 1 + python-pycparser.changes | 239 +++++++++++++++++++++++++++++++++++++ python-pycparser.spec | 65 ++++++++++ 7 files changed, 335 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 pycparser-2.22.tar.gz create mode 100644 pycparser-2.23.tar.gz create mode 100644 python-pycparser-rpmlintrc create mode 100644 python-pycparser.changes create mode 100644 python-pycparser.spec diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..57affb6 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.osc diff --git a/pycparser-2.22.tar.gz b/pycparser-2.22.tar.gz new file mode 100644 index 0000000..d9d5b11 --- /dev/null +++ b/pycparser-2.22.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6 +size 172736 diff --git a/pycparser-2.23.tar.gz b/pycparser-2.23.tar.gz new file mode 100644 index 0000000..eb87a89 --- /dev/null +++ b/pycparser-2.23.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:78816d4f24add8f10a06d6f05b4d424ad9e96cfebf68a4ddc99c65c0720d00c2 +size 173734 diff --git a/python-pycparser-rpmlintrc b/python-pycparser-rpmlintrc new file mode 100644 index 0000000..5cb461c --- /dev/null +++ b/python-pycparser-rpmlintrc @@ -0,0 +1 @@ +addFilter("E: devel-file-in-non-devel-package .*site-packages.*fake_libc_include.*") diff --git a/python-pycparser.changes b/python-pycparser.changes new file mode 100644 index 0000000..fc16063 --- /dev/null +++ b/python-pycparser.changes @@ -0,0 +1,239 @@ +------------------------------------------------------------------- +Mon Sep 29 16:39:51 UTC 2025 - Dirk Müller + +- update to elease_v2.23: + * Allow abstract declarator "static" (GH issue #539) + * Add support for Python 3.13 + * Add dirent and socket typedefs. + * Support for labels with no statement + * Accept empty 'case' or 'default' labels + * fix: preserve parentheses for statement exprs + * fix: hex float types + * Explicit error for comments, with README link + * showemptyattrs option on Node.show() + * Add fake typedefs for GNU Extension 128-bit integers. + * Typedef for __kernel_sa_family_t in linux/socket.h +- update to elease_v2.22: + * Add missing SCHAR limit defines + * Use proper SPDX identifier + * Add Python 3.11 as a supported version + * Fix multi-pragma/single statement blocks + * Add an encoding parameter to parse_file + * Feature/add pragma support + * Set up permissions to ci.yml + * _build_tables: Invalidate cache before importing generated + modules + * Upgrade GitHub Actions + * Create a Security Policy + * New example to generate AST from scratch + * Add support for Python 3.12 + * ply: Make generated lextab.py deterministic + +------------------------------------------------------------------- +Wed Jun 4 09:29:45 UTC 2025 - Markéta Machová + +- Convert to pip-based build + +------------------------------------------------------------------- +Sun Apr 21 08:39:27 UTC 2024 - Dirk Müller + +- update to 2.22: + * Add missing SCHAR limit defines + * Use proper SPDX identifier + * Add Python 3.11 as a supported version + * Fix multi-pragma/single statement blocks (#479) + * Add an encoding parameter to parse_file + * Feature/add pragma support + * Set up permissions to ci.yml + * _build_tables: Invalidate cache before importing generated modules + * Upgrade GitHub Actions + * Create a Security Policy + * New example to generate AST from scratch + * Add support for Python 3.12 + * ply: Make generated lextab.py deterministic +- drop fix-lexer-build.patch (upstream) + +------------------------------------------------------------------- +Fri Apr 21 12:30:32 UTC 2023 - Dirk Müller + +- add sle15_python_module_pythons (jsc#PED-68) + +------------------------------------------------------------------- +Thu Apr 13 22:43:36 UTC 2023 - Matej Cepl + +- Make calling of %{sle15modernpython} optional. + +------------------------------------------------------------------- +Mon Nov 29 15:44:31 UTC 2021 - Dirk Müller + +- update to 2.21: + - Much improved support for C11 (multiple PRs) + - Support for parehthesized compount statements (#423) + - Support for modern Python versions (3.9 and 3.10) + - Fix support for structs with nested enums (#387) + - Multiple small bug fixes + +------------------------------------------------------------------- +Mon Mar 9 20:59:13 UTC 2020 - Dirk Mueller + +- update to 2.20: + - #61: Fix slow backtracking when parsing strings. + - #99: Parser for FuncDecl incorrectly sets declname attribute on return type. + - #310: Fix crash when file starts with a semicolon. + - #313: Fix array type generation. + - #314: Fix failed parsing of unnamed function parameters with array dim + qualifiers. + - #315: Fix pointer type generation. + - #324: Fixes for u/l constant integer suffix. + - #346: Fix error transforming an empty switch. + - #350: Recognize integer multicharacter constants like 'ABCD'. + - #363: Fix incorrect AST when parsing offsetof. + +------------------------------------------------------------------- +Wed Jan 9 21:51:00 UTC 2019 - Jonathan Brownell + +- Restrict pattern matching to real files (not symlinks) during packaging + of fake_libc_include to avoid build errors on Red Hat platforms. + * fix-lexer-build.patch + +------------------------------------------------------------------- +Tue Dec 4 12:51:59 UTC 2018 - Matej Cepl + +- Remove superfluous devel dependency for noarch package + +------------------------------------------------------------------- +Mon Sep 24 16:27:58 UTC 2018 - Todd R + +- Update to 2.19 + - PR #277: Fix parsing of floating point literals + - PR #254: Add support for parsing empty structs + - PR #240: Fix enum formatting in generated C code (also #216) + - PR #222: Add support for #pragma in struct declarations +- Rebase fix-lexer-build.patch + +------------------------------------------------------------------- +Wed Jul 12 05:50:39 UTC 2017 - tbechtold@suse.com + +- update to 2.18: + - PR #161 & #184: Update bundled PLY version to 3.10 + - PR #158: Add support for the __int128 type. + - PR #169: Handle more tricky TYPEID in declarators. + - PR #178: Add columns to the coord of each node + +------------------------------------------------------------------- +Fri Mar 24 17:09:01 UTC 2017 - jmatejek@suse.com + +- sort out duplicate rpmlintrc + +------------------------------------------------------------------- +Thu Mar 16 16:15:40 UTC 2017 - jmatejek@suse.com + +- update to 2.17 + - PR #121: Update bundled PLY version to 3.8 + - Issue #117: Fix parsing of extra semi-colons inside structure declarations. + - PR #109: Update c_generator to add {} around nested named initializers. + - PR #101: Added support for parsing pragmas into the AST. + - Additional fake headers and typedefs, manifest fixes (#97, #106, #111). + - Testing with Python 3.5 instead of 3.3 now (3.4 and 3.5 are the 3.x versions + tested). + - PR #145: More complete support for offsetof() + - Issue #116: Fix line numbers recorded for empty and compound statements. + - Minor performance improvement to the invalid string literal regex. +- drop upstreamed 0002-Add-missing-typedef-sa_family_t-from-sys-socket.h.patch +- move source url to pypi + +------------------------------------------------------------------- +Thu Dec 8 16:40:11 UTC 2016 - jmatejek@suse.com + +- update for multipython build +- move fake_libc to site-packages, where it can be found by pkg_resources + * this also prevents file conflict between python2 and python3 +- fix-lexer-build.patch: fix build process to better generate parser/lexer + files + +------------------------------------------------------------------- +Sat Jan 16 14:31:31 UTC 2016 - p.drouand@gmail.com + +- Add python-pycparser-rpmlintrc to sources + +------------------------------------------------------------------- +Thu Jan 7 20:52:41 UTC 2016 - mvyskocil@opensuse.org + +- Tag added patch better + +------------------------------------------------------------------- +Mon Nov 30 12:56:14 UTC 2015 - mvyskocil@opensuse.org + +- Update to version 2.14 + * Added CParser parameter to specify output directory for generated parsing + tables (#84). + * Removed lcc's cpp and its license from the distribution. Using lcc's cpp + is no longer recommended, now that Clang has binary builds available for + Windows. + 2.13: + * Added support for offsetof() the way gcc implements it (special builtin + that takes a type as an argument). + * Added faked va_* macros (these are expected to come from stdarg.h) + * Added a bunch more fake headers and typedefs to support parsing C projects + like Git and SQLite without modifications to pycparser. + * Added support for empty initializer lists (#79). +- Package fake_libc_include + * switch to github release as pypi tarball don't contains all files +- Add 0002-Add-missing-typedef-sa_family_t-from-sys-socket.h.patch + * upstream patch enhancing the fake_libc_include + +------------------------------------------------------------------- +Mon May 11 14:59:40 UTC 2015 - benoit.monin@gmx.fr + +- update to version 2.12: + * This is a fix release for 2.11; the memory optimization with + __slots__ on Coord and AST nodes didn't take weakrefs into + account, which broke cffi and its many dependents (issue #76). + Fixed by adding __weakref__ to __slots__. +- additional changes from version 2.11: + * Add support for C99 6.5.3.7 p7 - qualifiers within array + dimensions in function declarations. Started with issue #21 + (reported with initial patch by Robin Martinjak). + * Issue #27: bug in handling of unified wstring literals. + * Issue #28: fix coord reporting for 'for' loops. + * Added ``examples/using_gcc_E_libc.py`` to demonstrate how ``gcc + -E`` can be used instead of ``cpp`` for preprocessing. + * Pull request #64: support keywords like const, volatile, + restrict and static in dimensions in array declarations. + * Reduce memory usage of AST nodes (issue #72). + * Parsing order of nested pointer declarations fixed (issue #68). +- update project URL +- fix end of line encoding of LICENSE + +------------------------------------------------------------------- +Mon Aug 12 08:45:29 UTC 2013 - speilicke@suse.com + +- Update to version 2.10: + - A number of improvements in the handling of typedef-name ambiguities, + contributed by Sye van der Veen in GitHub issue #1: + * Allow shadowing of types by identifiers in inner scopes. + * Allow struct field names to reside in a separate namespace and have + the same names as types. + * Allow duplicate typedefs in some cases to mimic real compiler behavior. + - c_generator error for ExprList in expression context. + - Assume default int type for functions whose argument or return types were + not specified. + - Relax the lexer a bit w.r.t. some integer suffixes and $ in identifier names + (which is supported by some other compilers). +- Package LICENSE + +------------------------------------------------------------------- +Sat Apr 13 10:11:29 UTC 2013 - toddrme2178@gmail.com + +- Remove pre_checkin.sh since the two packages are not the same + +------------------------------------------------------------------- +Wed Feb 27 15:22:33 UTC 2013 - p.drouand@gmail.com + +- Initial python3 support + +------------------------------------------------------------------- +Sun Feb 10 09:48:07 UTC 2013 - saschpe@suse.de + +- Initial version + diff --git a/python-pycparser.spec b/python-pycparser.spec new file mode 100644 index 0000000..151e2ae --- /dev/null +++ b/python-pycparser.spec @@ -0,0 +1,65 @@ +# +# spec file for package python-pycparser +# +# Copyright (c) 2025 SUSE LLC and contributors +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%{?sle15_python_module_pythons} +Name: python-pycparser +Version: 2.23 +Release: 0 +Summary: C parser in Python +License: BSD-3-Clause +Group: Development/Languages/Python +URL: https://github.com/eliben/pycparser +Source0: https://files.pythonhosted.org/packages/source/p/pycparser/pycparser-%{version}.tar.gz +Source99: %{name}-rpmlintrc +BuildRequires: %{python_module pip} +BuildRequires: %{python_module pytest} +BuildRequires: %{python_module setuptools} +BuildRequires: %{python_module wheel} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +BuildArch: noarch +%python_subpackages + +%description +pycparser is a complete parser of the C language, written in pure Python using +the PLY parsing library. It parses C code into an AST and can serve as a +front-end for C compilers or analysis tools. + +%prep +%setup -q -n pycparser-%{version} +# fix end of line +sed -i 's/\r//' LICENSE + +%build +%pyproject_wheel + +%install +%pyproject_install +%{python_expand %fdupes %{buildroot}%{$python_sitelib}} + +%check +%pytest + +%files %{python_files} +%doc README.rst +%doc examples/ +%license LICENSE +%{python_sitelib}/pycparser +%{python_sitelib}/pycparser-%{version}*-info + +%changelog