public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/gpaw] rawhide: Use pyproject_install to create bin scripts
@ 2026-08-08  5:14 Marcin Dulak
  0 siblings, 0 replies; only message in thread
From: Marcin Dulak @ 2026-08-08  5:14 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/gpaw
Branch : rawhide
Commit : 3009e2032ebf5399c6703ca54988b1e1aee613bd
Author : Marcin Dulak <marcindulak@fedoraproject.org>
Date   : 2026-08-08T05:14:22+00:00
Stats  : +49/-30 in 2 file(s)
URL    : https://src.fedoraproject.org/rpms/gpaw/c/3009e2032ebf5399c6703ca54988b1e1aee613bd?branch=rawhide

Log:
Use pyproject_install to create bin scripts

---
diff --git a/gpaw b/gpaw
deleted file mode 100755
index 6cc89d2..0000000
--- a/gpaw
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/usr/bin/python3
-
-from gpaw.cli.main import main
-
-main()

diff --git a/gpaw.spec b/gpaw.spec
index 3b6ef31..ce42cfb 100644
--- a/gpaw.spec
+++ b/gpaw.spec
@@ -20,16 +20,13 @@ ExcludeArch: %{ix86}
 
 Name:			gpaw
 Version:		26.7.0
-Release:		2%{?dist}
+Release:		3%{?dist}
 Summary:		A grid-based real-space PAW method DFT code
 
 # Automatically converted from old format: GPLv3+ - review is highly recommended.
 License:		GPL-3.0-or-later
 URL:			https://wiki.fysik.dtu.dk/gpaw/
 Source0:		https://gitlab.com/%{name}/%{name}/-/archive/%{version}/%{name}-%{version}.tar.gz
-# The gpaw script is generated by python setup.py install
-# but this spec does not use install https://gitlab.com/gpaw/gpaw/-/issues/264
-Source1:		gpaw
 
 # https://pagure.io/releng/issue/12359
 BuildRequires:		environment-modules
@@ -134,6 +131,10 @@ sed -i "/^license-files =/d" pyproject.toml
 sed -i  "s|'gpaw-data'||" setup.py
 sed -i  "s|'gpaw-data',||" pyproject.toml
 
+# Remove test failing with pytest-9.1 and higher
+# https://gitlab.com/gpaw/gpaw/-/work_items/1602
+rm -f gpaw/test/test_diagonalizer_backend.py
+
 
 %build
 %set_build_flags
@@ -201,63 +202,83 @@ PYTHON=python3 %dobuild
 %install
 
 # copy python scripts and modules
+# A) bin scripts are generated dynamically by pyproject_install run outside of doinstall
+# See https://gitlab.com/gpaw/gpaw/-/work_items/1605#note_3651215279
+# B) pyproject_install cannot be placed inside of doinstall due to
+# pyproject_extras_subpkg: invalid option -- ','
+# error: Unknown option , in pyproject_extras_subpkg(n:i:f:FaA)
 %global doinstall() \
 mkdir -p $RPM_BUILD_ROOT/$MPI_BIN&& \
-install -p -m 755 %{SOURCE1} $RPM_BUILD_ROOT/$MPI_BIN/&& \
+cp -av $TMP_BUILDROOT%{_bindir}/* $RPM_BUILD_ROOT/$MPI_BIN/&& \
 mkdir -p $RPM_BUILD_ROOT/$MPI_PYTHON3_SITEARCH&& \
-cp -rpv build$MPI_SUFFIX/lib.*/%{name} $RPM_BUILD_ROOT/$MPI_PYTHON3_SITEARCH/&& \
+cp -av build$MPI_SUFFIX/lib.*/%{name} $RPM_BUILD_ROOT/$MPI_PYTHON3_SITEARCH/&& \
 install -p -m 755 build$MPI_SUFFIX/lib.*/*.so $RPM_BUILD_ROOT/$MPI_PYTHON3_SITEARCH/
 
 # install serial version
-PYTHON=python3 MPI_SUFFIX="_serial" MPI_BIN=%{_bindir} MPI_PYTHON3_SITEARCH=%{python3_sitearch} %doinstall
+%global __buildroot_save %{buildroot}
+%global buildroot %{_builddir}/tmp-buildroot
+rm -rfv %{_builddir}/tmp-buildroot
+%{pyproject_install}
+%global buildroot %{__buildroot_save}
+TMP_BUILDROOT=%{_builddir}/tmp-buildroot PYTHON=python3 MPI_SUFFIX="_serial" MPI_BIN=%{_bindir} MPI_PYTHON3_SITEARCH=%{python3_sitearch} %{doinstall}
 
 # install openmpi version
 %{_openmpi_load}
-PYTHON=python3 %doinstall
+%global __buildroot_save %{buildroot}
+%global buildroot %{_builddir}/tmp-buildroot
+rm -rfv %{_builddir}/tmp-buildroot
+%{pyproject_install}
+%global buildroot %{__buildroot_save}
+TMP_BUILDROOT=%{_builddir}/tmp-buildroot PYTHON=python3 %{doinstall}
 %{_openmpi_unload}
 
 # install mpich version
 %{_mpich_load}
-PYTHON=python3 %doinstall
+%global __buildroot_save %{buildroot}
+%global buildroot %{_builddir}/tmp-buildroot
+rm -rfv %{_builddir}/tmp-buildroot
+%{pyproject_install}
+%global buildroot %{__buildroot_save}
+TMP_BUILDROOT=%{_builddir}/tmp-buildroot PYTHON=python3 %{doinstall}
 %{_mpich_unload}
 
 
 %check
 
-export NPROC_PARALLEL=2 # test on 4 cores (scalapack test needs that)
-
+export NPROC_PARALLEL=2 # or test on 4 cores (scalapack test may need that)
 export TIMEOUT_OPTS='--preserve-status --kill-after 10 1800'
 
+# Remove the source directory to avoid duplicate pytest import error
+# ImportError while loading conftest '/builddir/build/BUILD/gpaw-26.7.0-build/gpaw-26.7.0/gpaw/test/conftest.py'.
+# _pytest.pathlib.ImportPathMismatchError: ('gpaw.test.conftest', '/builddir/build/BUILD/gpaw-26.7.0-build/gpaw-26.7.0/build_openmpi/lib.linux-x86_64-cpython-315/gpaw/test/conftest.py', PosixPath('/builddir/build/BUILD/gpaw-26.7.0-build/gpaw-26.7.0/gpaw/test/conftest.py'))
+rm -rfv gpaw
+
 # To avoid replicated code define a macro
 # https://gitlab.com/gpaw/gpaw/-/issues/612
 %global docheck() \
-GPAW_PLATFORM_GLOB=$($PYTHON -c "from distutils import util, sysconfig; print(util.get_platform()+'-*')")&& \
 . /etc/profile.d/gpaw-*.sh&& \
-export PYTHONPATH=$(echo $(pwd)/build$MPI_SUFFIX/lib.${GPAW_PLATFORM_GLOB}) \
-export GPAW_MPI_BACKEND \
-PATH=$RPM_BUILD_ROOT/$MPI_BIN:${PATH} \
-timeout ${TIMEOUT_OPTS} time $GPAW_EXECUTABLE -m ci -v 2>&1 | tee gpaw-test${NPROC}$MPI_SUFFIX.log || true
+export GPAW_MPI_BACKEND&& \
+export PYTHONPATH=$(echo $(pwd)/build$MPI_SUFFIX/lib.*)&& \
+export PATH=$RPM_BUILD_ROOT/$MPI_BIN:${PATH}&& \
+timeout ${TIMEOUT_OPTS} time $GPAW_EXECUTABLE $(echo $(pwd)/build$MPI_SUFFIX/lib.*)/gpaw 2>&1 | tee gpaw-test${NPROC}$MPI_SUFFIX.log || true
 
 # check serial version
-GPAW_MPI_BACKEND=serial MPI_BIN=%{_bindir} MPI_SUFFIX="_serial" PYTHON="python3" GPAW_EXECUTABLE="pytest" NPROC=1 %docheck
-PATH=$RPM_BUILD_ROOT%{_bindir}:${PATH} gpaw test
-
-# How to run a selection of pytest -m ci in parallel?
-# https://gitlab.com/gpaw/gpaw/-/work_items/1605
+GPAW_MPI_BACKEND=serial MPI_BIN=%{_bindir} MPI_SUFFIX="_serial" PYTHON="python3" GPAW_EXECUTABLE="pytest -m ci -v" NPROC=1 %docheck
+PYTHONPATH=$(echo $(pwd)/build_serial/lib.*) PATH=$RPM_BUILD_ROOT%{_bindir}:${PATH} gpaw test
 
 # check openmpi version
 %{_openmpi_load}
-GPAW_MPI_BACKEND=cgpaw PYTHON="python3" GPAW_EXECUTABLE="mpiexec -np 1 pytest" NPROC=${NPROC_PARALLEL} %docheck
-PATH=$RPM_BUILD_ROOT/$MPI_BIN:${PATH} mpiexec -np ${NPROC_PARALLEL} gpaw test
+GPAW_MPI_BACKEND=cgpaw MPI_BIN=$MPI_BIN MPI_SUFFIX=$MPI_SUFFIX PYTHON="python3" GPAW_EXECUTABLE="mpiexec -np ${NPROC_PARALLEL} gpaw python -m pytest -m ci -v" NPROC=${NPROC_PARALLEL} %docheck
+PYTHONPATH=$(echo $(pwd)/build$MPI_SUFFIX/lib.*) PATH=$RPM_BUILD_ROOT/$MPI_BIN:${PATH} mpiexec -np ${NPROC_PARALLEL} gpaw test
 %{_openmpi_unload}
 
 # check mpich version
 %{_mpich_load}
-GPAW_MPI_BACKEND=cgpaw PYTHON="python3" GPAW_EXECUTABLE="mpiexec -np 1 pytest" NPROC=${NPROC_PARALLEL} %docheck
+GPAW_MPI_BACKEND=cgpaw MPI_BIN=$MPI_BIN MPI_SUFFIX=$MPI_SUFFIX PYTHON="python3" GPAW_EXECUTABLE="mpiexec -np ${NPROC_PARALLEL} gpaw python -m pytest -m ci -v" NPROC=${NPROC_PARALLEL} %docheck
 # Exclude tests on f42 onwards
 # Fatal error in internal_Bcast
 %ifnarch s390x
-PATH=$RPM_BUILD_ROOT/$MPI_BIN:${PATH} mpiexec -np ${NPROC_PARALLEL} gpaw test
+PYTHONPATH=$(echo $(pwd)/build$MPI_SUFFIX/lib.*) PATH=$RPM_BUILD_ROOT/$MPI_BIN:${PATH} mpiexec -np ${NPROC_PARALLEL} gpaw test
 %endif
 %{_mpich_unload}
 
@@ -286,6 +307,9 @@ PATH=$RPM_BUILD_ROOT/$MPI_BIN:${PATH} mpiexec -np ${NPROC_PARALLEL} gpaw test
 
 
 %changelog
+* Thu Aug 06 2026 Marcin Dulak <marcindulak@fedoraproject.org> - 26.7.0-3
+- Use pyproject_install to create bin scripts
+
 * Wed Jul 22 2026 Python Maint <python-maint@redhat.com> - 26.7.0-2
 - Rebuilt for Python 3.15.0b4 ABI change
 

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-08-08  5:14 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-08-08  5:14 [rpms/gpaw] rawhide: Use pyproject_install to create bin scripts Marcin Dulak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox