Commit Graph

90 Commits

Author SHA1 Message Date
Karolina Surma
a81b91497f CI: Patch httpbin to build it in Rawhide with werkzeug
Related: rhbz#2117571
2022-08-11 13:05:53 +02:00
Karolina Surma
50012935df Don't fail %pyproject_save_files '*' if no modules are present
Users invoking %pyproject_save_files with glob: '*' don't care about the
files in the Python package, hence it shouldn't error when no modules
are detected.
There may be legitimate reasons to create a package without Python
modules in it, hence we shouldn't be blocking this possibility.

Related: rhbz#2117571
2022-08-11 13:05:53 +02:00
Karolina Surma
71dfcb503a Fix typo in License-File
PEP 639 defines License-File field.

Related: rhbz#2117571
2022-08-11 13:05:53 +02:00
Maxwell G
5463b58b32 Preserve mtimes
Note that the mtimes are artificially created by git,
but at least this way they are consistent when a single SRPM is rebuilt.

Related: rhbz#2117571
2022-08-11 13:05:53 +02:00
Maxwell G
6000eccbc6 Use the %pytest macro
This macro is defined in python3-rpm-macros, so there's no problem using
it here. In fact, let's BuildRequire the macros we use.

Related: rhbz#2117571
2022-08-11 13:05:53 +02:00
Maxwell G
6bc995e61a Allign specfile to 16 characters
Related: rhbz#2117571
2022-08-11 13:05:53 +02:00
Miro Hrončok
9899e0fa03 Fix CI tests for setuptools 61+
Related: rhbz#2117571
2022-08-11 13:05:53 +02:00
Miro Hrončok
589556411f %pyproject_buildrequires: Support Package information on ELF objects
When extension modules are built in %pyproject_buildrequires,
we need to create the package note file.

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=2097535

This is tested via python-ldap -- %pyproject_buildrequires -w fails without the fix.

Neither python-markupsafe nor python-mistune can be used as a test
because they only warn when the extension module cannot be built
because they fallback to pure Python.

Related: rhbz#2117571
2022-08-11 13:05:50 +02:00
Benjamin A. Beasley
e9ea68926b %pyproject_build_lib: support setuptools 62.1.0 and later
Related: rhbz#2117571
2022-08-11 13:05:34 +02:00
Miro Hrončok
0207225c97 Fix bogus date in changelog
Related: rhbz#2117571
2022-08-11 12:57:40 +02:00
Owen W. Taylor
681cc65e49 %pyproject_install: pass %{_prefix} explicitly to pip install
This makes things work for %{_prefix} other than user, when combined
with a change in python-rpm-macros to the definition of python3_sitelib/python3_sitearch.

https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/thread/KEQMMNJ4HTTHSQLK6P4DJJTVPA36SS3W/

Related: rhbz#2117571

Co-Authored-By: Miro Hrončok <miro@hroncok.cz>
2022-08-11 12:57:19 +02:00
Miro Hrončok
e082e4a71a CI and docs: Remove Fedora 34 conditionals and mentions
Fedora 34 is end of life.

Related: rhbz#2117571
2022-08-11 12:57:01 +02:00
Miro Hrončok
07598e61d1 Use tomllib from the standard library on Python 3.11+
Related: rhbz#2117571
2022-08-11 12:56:41 +02:00
Miro Hrončok
295b331296 CI: Enable hatchling test for Fedora 35 and EPEL 9
https://bodhi.fedoraproject.org/updates/FEDORA-2022-c0d0bd9fa8
https://bodhi.fedoraproject.org/updates/FEDORA-EPEL-2022-b15c2993fe

Related: rhbz#2117571
2022-08-11 12:56:14 +02:00
Miro Hrončok
1dad31bc81 Markdown: Make the [prepare-metadata-for-build-wheel hook] link work in Pagure
(It works as it in on GitLab.)

Related: rhbz#2060109
2022-05-06 12:48:04 +02:00
Miro Hrončok
235e0c94a6 Allow building wheels in %pyproject_buildrequires to support other build backends
The hook is optional, see https://www.python.org/dev/peps/pep-0517/#prepare-metadata-for-build-wheel

> If a build frontend needs this information and the method is not defined,
> it should call build_wheel and look at the resulting metadata directly.

This is not yet automatically detected because the feature is provisional.
Use `%pyproject_buildrequires -w` to opt-in.

Resolves: rhbz#2060109
2022-05-06 12:19:26 +02:00
Miro Hrončok
e92a87dee1 %_pyproject_wheeldir is absolute since 29157c19b0
Related: rhbz#2060109
2022-05-06 12:19:11 +02:00
Miro Hrončok
a02a1ae59f CI: More retrying for dnf, apparently 5 times 20 seconds is not enough
Related: rhbz#2060109
2022-05-06 12:19:08 +02:00
Miro Hrončok
d7bc2a357f %pyproject_save_files: Support nested directories in dist-info
Related: rhbz#2060109
2022-05-06 12:19:08 +02:00
Miro Hrončok
0b9b782c5c CI specs: Never use ! ... as a check
See https://lists.fedoraproject.org/archives/list/packaging@lists.fedoraproject.org/thread/TFQGD7CSTD5WVKVT3WDIGF5D6DID5NK6/

Related: rhbz#2060109
2022-05-06 12:18:50 +02:00
Miro Hrončok
44772c3c74 CI: Install EPEL packages via full URL to support running tests on real RHEL
Resolves: rhbz#2065590
2022-03-23 16:46:15 +01:00
Miro Hrončok
a9aa69f463 CI: Move one %files section to test different order
Related: rhbz#2060109
2022-03-23 15:13:17 +01:00
Miro Hrončok
be050ad171 Prefix paths of intermediate files (such as %{pyproject_files}) with NVRA
Apparently, when you repeatedly run `rpmbuild -ba`, files in %_builddir are not cleaned.
This way, we at least make sure the files are unique between different NVRAs,
so 2 unrelated builds don't share the files between each other.

Keeping files contained in the build subdirectory is the more common way of doing this,
but we cannot technically do that, because we don't know what's it gonna be (before %prep).

Should be backwards compatible, as we only modify underscore-prefixed macros and %{pyproject_files},
where the exact value should not matter to the packagers.

Resolves: rhbz#2060109
2022-03-23 15:13:05 +01:00
Miro Hrončok
797cac8d85 CI: Make most of the tests work on EPEL 9
Resolves: rhbz#2065590
2022-03-18 10:50:33 +01:00
Miro Hrončok
3e4bfeffd8 CI: Skip some tests that would be to useless with reduced dependencies
Resolves: rhbz#2065590
2022-03-18 10:50:33 +01:00
Miro Hrončok
fc08e7cf3e CI: Determine mock chroot for centos-stream+epel, try not to break Fedora
Resolves: rhbz#2065590
2022-03-18 10:50:30 +01:00
Miro Hrončok
76dc49fd1e CI: Enable EPEL Next
The ansible thing that installs packages does that one by one.

Hence, the assumption is that by installing epel-next-release first,
mock should be available next.

Resolves: rhbz#2065590
2022-03-18 10:50:16 +01:00
Miro Hrončok
71c4eaabf4 Release final version 1.0.0
There are no code changes.

Resolves: rhbz#2060109
2022-03-02 18:33:50 +01:00
Lumir Balhar
17cd08d6a0 Updated compatibility with tox4
Related: rhbz#2060109
2022-03-02 18:33:48 +01:00
Miro Hrončok
3c5fe19ca1 CI tests: Workaround python-ldap missing support fro OpenLDAP 2.5+
Related: rhbz#2060109
2022-03-02 18:33:45 +01:00
Miro Hrončok
600c6d59a7 CI tests: Sed ipykernel to declare missing dependency on ipython_genutils
Related: rhbz#2060109
2022-03-02 18:33:25 +01:00
Miro Hrončok
4977b39d62 Disable certain rpminspect inspections not relevant to this package
Related: rhbz#1950291
2022-01-26 12:59:00 +01:00
Miro Hrončok
127a259768 Release version 1.0.0, first release candidate
Related: rhbz#1950291
2022-01-26 12:58:21 +01:00
Miro Hrončok
71dcd3ad74 %pyproject_buildrequires: Generate BuildRequires for this package
This package is already installed -- otherwise the macro would not even exist.

However, since python3-devel has started to Require pyproject-rpm-macros,
it is no longer possible to use `repoquery --whatrequires pyproject-rpm-macros`
to get a reliable list of packages that use the macros.

This was, all packages that use %pyproject_buildrequires will BuildRequire the macros explicitly.

(In the future, we could even include a stub version of %pyproject_buildrequires
in pyproject-srpm-macros (always installed in the buildroot),
that only echoes this package,
so packagers would not need to manually BuildRequire anything at all.)

Related: rhbz#1950291
2022-01-26 11:44:53 +01:00
Karolina Surma
2be56ab379 Include compressed manpages correctly in the RPM package
Compressed manpages have different extension than those listed in the RECORD file,
so they were not recognized when %%pyproject_save_files '+auto' flag
was provided.
To enable the path recognition, if the manpage extension matches the one
listed in brp-compres, the extension is removed, and an asterisk is now added
to the manpages filenames.
Source: https://docs.fedoraproject.org/en-US/packaging-guidelines/#_manpages

Related: rhbz#1950291
2022-01-26 11:44:41 +01:00
Miro Hrončok
93cf48f615 %pyproject_buildrequires: Make -r (include runtime) the default, use -R to opt-out
See the proposal:
https://lists.fedoraproject.org/archives/list/python-devel@lists.fedoraproject.org/thread/2R6NKELTHAWE6PI3CCZBVW5PMGO5VPDG/

 - -N now implies -R
 - the macro still guards against -Nr and now also against -Rr

Related: rhbz#1950291
2022-01-26 11:41:43 +01:00
Hunor Csomortáni
3f5f8e46c1 docs: Don't BuildRequire these macros in Fedora and EPEL 9
`python3-devel` already requires `pyproject-rpm-macros` in Fedora and
EPEL 9. Update the usage docs to reflect this.

Related: rhbz#1950291

Signed-off-by: Hunor Csomortáni <csomh@redhat.com>
2022-01-26 11:40:43 +01:00
Gordon Messmer
2abd0036ea Handle legacy version specifiers that would previously raise exceptions.
Related: rhbz#1950291
2022-01-26 11:36:40 +01:00
Miro Hrončok
5513c410bf Define provisional %pyproject_build_lib
Related: rhbz#1950291
2022-01-26 11:35:49 +01:00
Miro Hrončok
f768e230c1 Require sed, as we use it
Related: rhbz#1950291
2022-01-26 11:34:03 +01:00
Miro Hrončok
93fa18572e CI tests: Update setuptools_scm to fix FTBFS on rawhide
Related: rhbz#1950291
2022-01-26 11:33:32 +01:00
Miro Hrončok
67d567b8c6 CI tests: Remove Fedora 33 compatibility shims, as F33 reaches EOL
Related: rhbz#1950291
2022-01-26 11:32:53 +01:00
Gordon Messmer
f8c2fede5b Sync dependency conversion with upstream pyreq2rpm.
Improve handling of > operator, preventing post-release from satisfying most rpm requirements.
Improve handling of < operator, preventing pre-release from satisfying rpm requirement.
Improve handling of != operator with prefix matching, preventing pre-release from satisfying rpm requirements.

Related: rhbz#1950291
2022-01-26 11:32:17 +01:00
Karolina Surma
d427052f40 Introduce %%pyproject_check_import
%%pyproject_save_files newly saves also a list of importable modules.
The list is used by %%pyproject_check_import to invoke the import test
on each module name.
%%pyproject_check_import accepts two options:
-t: filter only top-level modules
-e: exclude module names matching the given glob from the import check

Related: rhbz#1950291
2022-01-26 11:31:17 +01:00
Miro Hrončok
655f6dda0e %pyproject_buildrequires: Accept installed pre-releases for all requirements
Related: rhbz#1950291
2022-01-26 11:27:08 +01:00
Miro Hrončok
3b7d5da2b4 CI: Update the dns-lexiocn package so it also builds on Fedora 36+
Related: rhbz#1950291
2022-01-26 11:19:37 +01:00
Miro Hrončok
0d8d5ecd2e %pyproject_save_files: Add a workaround error for spaces and [brackets]
See the added links for details.
We cannot fix this for now,
so we error out early instead of producing a broken filelist.
Related: rhbz#1950291
2022-01-26 11:18:45 +01:00
Miro Hrončok
41fc715cc4 %pyproject_save_files: Expand the namespace error message, also display it with /
Related: rhbz#1950291
2022-01-26 11:11:52 +01:00
Miro Hrončok
e269f4d6e9 Fedora CI: Update pytest so it still builds on Fedora 36 with pluggy 1.0
Related: rhbz#1950291
2022-01-26 11:09:14 +01:00
Lukas Zachar
59e1f5b06a Gate rhel-9 on STI tests 2021-08-24 11:38:01 +00:00