- Build experimental package python313-nogil with
--disable-gil option. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:Factory/python313?expand=0&rev=45
This commit is contained in:
parent
001d1a2a20
commit
4352698329
@ -1,4 +1,6 @@
|
|||||||
<multibuild>
|
<multibuild>
|
||||||
<package>base</package>
|
<package>base</package>
|
||||||
<package>doc</package>
|
<package>doc</package>
|
||||||
|
<package>nogil</package>
|
||||||
|
<package>nogil-base</package>
|
||||||
</multibuild>
|
</multibuild>
|
||||||
|
@ -452,6 +452,12 @@ Fri Jun 28 06:12:20 UTC 2024 - Matej Cepl <mcepl@cepl.eu>
|
|||||||
- python-3.3.0b1-fix_date_time_compiler.patch
|
- python-3.3.0b1-fix_date_time_compiler.patch
|
||||||
- subprocess-raise-timeout.patch
|
- subprocess-raise-timeout.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jun 6 11:48:20 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
|
||||||
|
|
||||||
|
- Build experimental package python313-base-nogil with
|
||||||
|
--disable-gil option.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Jun 6 09:59:51 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
|
Thu Jun 6 09:59:51 UTC 2024 - Daniel Garcia <daniel.garcia@suse.com>
|
||||||
|
|
||||||
|
113
python313.spec
113
python313.spec
@ -22,18 +22,36 @@
|
|||||||
%bcond_without doc
|
%bcond_without doc
|
||||||
%bcond_with base
|
%bcond_with base
|
||||||
%bcond_with general
|
%bcond_with general
|
||||||
|
%bcond_without GIL
|
||||||
%endif
|
%endif
|
||||||
%if "%{flavor}" == "base"
|
%if "%{flavor}" == "base"
|
||||||
%define psuffix -core
|
%define psuffix -core
|
||||||
%bcond_with doc
|
%bcond_with doc
|
||||||
%bcond_without base
|
%bcond_without base
|
||||||
%bcond_with general
|
%bcond_with general
|
||||||
|
%bcond_without GIL
|
||||||
%endif
|
%endif
|
||||||
%if "%{flavor}" == ""
|
%if "%{flavor}" == ""
|
||||||
%define psuffix %{nil}
|
%define psuffix %{nil}
|
||||||
%bcond_with doc
|
%bcond_with doc
|
||||||
%bcond_with base
|
%bcond_with base
|
||||||
%bcond_without general
|
%bcond_without general
|
||||||
|
%bcond_without GIL
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%if "%{flavor}" == "nogil"
|
||||||
|
%define psuffix %{nil}
|
||||||
|
%bcond_with doc
|
||||||
|
%bcond_with base
|
||||||
|
%bcond_without general
|
||||||
|
%bcond_with GIL
|
||||||
|
%endif
|
||||||
|
%if "%{flavor}" == "nogil-base"
|
||||||
|
%define psuffix -nogil-core
|
||||||
|
%bcond_with doc
|
||||||
|
%bcond_without base
|
||||||
|
%bcond_with general
|
||||||
|
%bcond_with GIL
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if 0%{?do_profiling}
|
%if 0%{?do_profiling}
|
||||||
@ -51,6 +69,11 @@
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%define python_pkg_name python313
|
%define python_pkg_name python313
|
||||||
|
%if %{without GIL}
|
||||||
|
%define python_pkg_name python313-nogil
|
||||||
|
%define base_pkg_name python313
|
||||||
|
%endif
|
||||||
|
|
||||||
%if "%{python_pkg_name}" == "%{primary_python}"
|
%if "%{python_pkg_name}" == "%{primary_python}"
|
||||||
%define primary_interpreter 1
|
%define primary_interpreter 1
|
||||||
%else
|
%else
|
||||||
@ -87,6 +110,10 @@
|
|||||||
%define sitedir %{_libdir}/python%{python_version}
|
%define sitedir %{_libdir}/python%{python_version}
|
||||||
# three possible ABI kinds: m - pymalloc, d - debug build; see PEP 3149
|
# three possible ABI kinds: m - pymalloc, d - debug build; see PEP 3149
|
||||||
%define abi_kind %{nil}
|
%define abi_kind %{nil}
|
||||||
|
%if %{without GIL}
|
||||||
|
%define abi_kind t
|
||||||
|
%define sitedir %{_libdir}/python%{python_version}%{abi_kind}
|
||||||
|
%endif
|
||||||
# python ABI version - used in some file names
|
# python ABI version - used in some file names
|
||||||
%define python_abi %{python_version}%{abi_kind}
|
%define python_abi %{python_version}%{abi_kind}
|
||||||
# soname ABI tag defined in PEP 3149
|
# soname ABI tag defined in PEP 3149
|
||||||
@ -229,6 +256,10 @@ BuildRequires: python3-python-docs-theme >= 2022.1
|
|||||||
BuildRequires: clang => 18
|
BuildRequires: clang => 18
|
||||||
BuildRequires: llvm => 18
|
BuildRequires: llvm => 18
|
||||||
|
|
||||||
|
%if %{without GIL}
|
||||||
|
ExcludeArch: aarch64
|
||||||
|
%endif
|
||||||
|
|
||||||
%if %{with general}
|
%if %{with general}
|
||||||
# required for idle3 (.desktop and .appdata.xml files)
|
# required for idle3 (.desktop and .appdata.xml files)
|
||||||
BuildRequires: appstream-glib
|
BuildRequires: appstream-glib
|
||||||
@ -539,6 +570,9 @@ export CFLAGS="%{optflags} -IVendor/"
|
|||||||
%endif
|
%endif
|
||||||
%if %{with experimental_jit}
|
%if %{with experimental_jit}
|
||||||
--enable-experimental-jit=yes-off \
|
--enable-experimental-jit=yes-off \
|
||||||
|
%endif
|
||||||
|
%if %{without GIL}
|
||||||
|
--disable-gil \
|
||||||
%endif
|
%endif
|
||||||
--enable-loadable-sqlite-extensions
|
--enable-loadable-sqlite-extensions
|
||||||
|
|
||||||
@ -683,12 +717,12 @@ done
|
|||||||
|
|
||||||
# Idle is not packaged in base due to the appstream-glib dependency
|
# Idle is not packaged in base due to the appstream-glib dependency
|
||||||
# move idle config into /etc
|
# move idle config into /etc
|
||||||
install -d -m 755 %{buildroot}%{_sysconfdir}/idle%{python_version}
|
install -d -m 755 %{buildroot}%{_sysconfdir}/idle%{python_abi}
|
||||||
(
|
(
|
||||||
cd %{buildroot}/%{sitedir}/idlelib/
|
cd %{buildroot}/%{sitedir}/idlelib/
|
||||||
for file in *.def ; do
|
for file in *.def ; do
|
||||||
mv $file %{buildroot}%{_sysconfdir}/idle%{python_version}/
|
mv $file %{buildroot}%{_sysconfdir}/idle%{python_abi}/
|
||||||
ln -sf %{_sysconfdir}/idle%{python_version}/$file %{buildroot}/%{sitedir}/idlelib/
|
ln -sf %{_sysconfdir}/idle%{python_abi}/$file %{buildroot}/%{sitedir}/idlelib/
|
||||||
done
|
done
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -696,23 +730,28 @@ install -d -m 755 %{buildroot}%{_sysconfdir}/idle%{python_version}
|
|||||||
ls -l %{buildroot}%{_bindir}/
|
ls -l %{buildroot}%{_bindir}/
|
||||||
rm %{buildroot}%{_bindir}/idle3
|
rm %{buildroot}%{_bindir}/idle3
|
||||||
|
|
||||||
|
# mve idle binary to idle3.13t to avoid conflict
|
||||||
|
%if %{without GIL}
|
||||||
|
mv %{buildroot}%{_bindir}/idle%{python_version} %{buildroot}%{_bindir}/idle%{python_abi}
|
||||||
|
%endif
|
||||||
|
|
||||||
# install idle icons
|
# install idle icons
|
||||||
for size in 16 32 48 ; do
|
for size in 16 32 48 ; do
|
||||||
install -m 644 -D Lib/idlelib/Icons/idle_${size}.png \
|
install -m 644 -D Lib/idlelib/Icons/idle_${size}.png \
|
||||||
%{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/idle%{python_version}.png
|
%{buildroot}%{_datadir}/icons/hicolor/${size}x${size}/apps/idle%{python_abi}.png
|
||||||
done
|
done
|
||||||
|
|
||||||
# install idle desktop file
|
# install idle desktop file
|
||||||
cp %{SOURCE19} idle%{python_version}.desktop
|
cp %{SOURCE19} idle%{python_abi}.desktop
|
||||||
sed -i -e 's:idle3:idle%{python_version}:g' idle%{python_version}.desktop
|
sed -i -e 's:idle3:idle%{python_abi}:g' idle%{python_abi}.desktop
|
||||||
install -m 644 -D -t %{buildroot}%{_datadir}/applications idle%{python_version}.desktop
|
install -m 644 -D -t %{buildroot}%{_datadir}/applications idle%{python_abi}.desktop
|
||||||
|
|
||||||
cp %{SOURCE20} idle%{python_version}.appdata.xml
|
cp %{SOURCE20} idle%{python_abi}.appdata.xml
|
||||||
sed -i -e 's:idle3.desktop:idle%{python_version}.desktop:g' idle%{python_version}.appdata.xml
|
sed -i -e 's:idle3.desktop:idle%{python_abi}.desktop:g' idle%{python_abi}.appdata.xml
|
||||||
install -m 644 -D -t %{buildroot}%{_datadir}/metainfo idle%{python_version}.appdata.xml
|
install -m 644 -D -t %{buildroot}%{_datadir}/metainfo idle%{python_abi}.appdata.xml
|
||||||
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/idle%{python_version}.appdata.xml
|
appstream-util validate-relax --nonet %{buildroot}%{_datadir}/metainfo/idle%{python_abi}.appdata.xml
|
||||||
|
|
||||||
%fdupes %{buildroot}/%{_libdir}/python%{python_version}
|
%fdupes %{buildroot}/%{_libdir}/python%{python_abi}
|
||||||
%endif
|
%endif
|
||||||
%if %{with base}
|
%if %{with base}
|
||||||
%make_install
|
%make_install
|
||||||
@ -724,7 +763,7 @@ find %{buildroot} -name "*.a" -delete
|
|||||||
install -d -m 755 %{buildroot}%{sitedir}/site-packages
|
install -d -m 755 %{buildroot}%{sitedir}/site-packages
|
||||||
install -d -m 755 %{buildroot}%{sitedir}/site-packages/__pycache__
|
install -d -m 755 %{buildroot}%{sitedir}/site-packages/__pycache__
|
||||||
# and their 32bit counterparts explicitly
|
# and their 32bit counterparts explicitly
|
||||||
mkdir -p %{buildroot}%{_prefix}/lib/python%{python_version}/site-packages/__pycache__
|
mkdir -p %{buildroot}%{_prefix}/lib/python%{python_abi}/site-packages/__pycache__
|
||||||
|
|
||||||
# cleanup parts that don't belong
|
# cleanup parts that don't belong
|
||||||
for dir in curses dbm sqlite3 tkinter idlelib; do
|
for dir in curses dbm sqlite3 tkinter idlelib; do
|
||||||
@ -752,7 +791,7 @@ sed -e 's,__PYTHONPREFIX__,%{python_pkg_name},' -e 's,__PYTHON__,python%{python_
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
# link shared library instead of static library that tools expect
|
# link shared library instead of static library that tools expect
|
||||||
ln -s ../../libpython%{python_abi}.so %{buildroot}%{_libdir}/python%{python_version}/config-%{python_abi}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}/libpython%{python_abi}.so
|
ln -s ../../libpython%{python_abi}.so %{buildroot}%{_libdir}/python%{python_abi}/config-%{python_abi}-%{archname}-%{_os}%{?_gnu}%{?armsuffix}/libpython%{python_abi}.so
|
||||||
|
|
||||||
# delete idle3, which has to many packaging dependencies for base
|
# delete idle3, which has to many packaging dependencies for base
|
||||||
rm %{buildroot}%{_bindir}/idle3*
|
rm %{buildroot}%{_bindir}/idle3*
|
||||||
@ -808,6 +847,17 @@ LD_LIBRARY_PATH=. ./python -O -c "from py_compile import compile; compile('$FAIL
|
|||||||
done < %{SOURCE9}
|
done < %{SOURCE9}
|
||||||
)
|
)
|
||||||
echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-import-failed-hooks.pth
|
echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-import-failed-hooks.pth
|
||||||
|
|
||||||
|
# not packaged without GIL
|
||||||
|
%if %{without GIL}
|
||||||
|
rm -rf %{buildroot}%{_libdir}/pkgconfig/python-%{python_version}.pc
|
||||||
|
rm -rf %{buildroot}%{_libdir}/pkgconfig/python-%{python_version}-embed.pc
|
||||||
|
rm %{buildroot}%{_bindir}/python%{python_version}
|
||||||
|
rm %{buildroot}%{_bindir}/pydoc%{python_version}
|
||||||
|
rm %{buildroot}%{_bindir}/python%{python_version}-config
|
||||||
|
rm %{buildroot}%{_mandir}/man1/python%{python_version}.1*
|
||||||
|
%endif
|
||||||
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%if %{with general}
|
%if %{with general}
|
||||||
@ -834,21 +884,22 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
|
|||||||
|
|
||||||
%files -n %{python_pkg_name}-idle
|
%files -n %{python_pkg_name}-idle
|
||||||
%{sitedir}/idlelib
|
%{sitedir}/idlelib
|
||||||
%dir %{_sysconfdir}/idle%{python_version}
|
%dir %{_sysconfdir}/idle%{python_abi}
|
||||||
%config %{_sysconfdir}/idle%{python_version}/*
|
%config %{_sysconfdir}/idle%{python_abi}/*
|
||||||
%doc Lib/idlelib/README.txt
|
%doc Lib/idlelib/README.txt
|
||||||
%doc Lib/idlelib/TODO.txt
|
%doc Lib/idlelib/TODO.txt
|
||||||
%doc Lib/idlelib/extend.txt
|
%doc Lib/idlelib/extend.txt
|
||||||
%doc Lib/idlelib/ChangeLog
|
%doc Lib/idlelib/ChangeLog
|
||||||
%{_bindir}/idle%{python_version}
|
%{_bindir}/idle%{python_abi}
|
||||||
%{_datadir}/applications/idle%{python_version}.desktop
|
%{_datadir}/applications/idle%{python_abi}.desktop
|
||||||
%{_datadir}/metainfo/idle%{python_version}.appdata.xml
|
%{_datadir}/metainfo/idle%{python_abi}.appdata.xml
|
||||||
%{_datadir}/icons/hicolor/*/apps/idle%{python_version}.png
|
%{_datadir}/icons/hicolor/*/apps/idle%{python_abi}.png
|
||||||
%dir %{_datadir}/icons/hicolor
|
%dir %{_datadir}/icons/hicolor
|
||||||
%dir %{_datadir}/icons/hicolor/16x16
|
%dir %{_datadir}/icons/hicolor/16x16
|
||||||
%dir %{_datadir}/icons/hicolor/32x32
|
%dir %{_datadir}/icons/hicolor/32x32
|
||||||
%dir %{_datadir}/icons/hicolor/48x48
|
%dir %{_datadir}/icons/hicolor/48x48
|
||||||
%dir %{_datadir}/icons/hicolor/*/apps
|
%dir %{_datadir}/icons/hicolor/*/apps
|
||||||
|
|
||||||
# endif for if general
|
# endif for if general
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -923,7 +974,11 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
|
|||||||
%if %{primary_interpreter}
|
%if %{primary_interpreter}
|
||||||
%{_mandir}/man1/python3.1%{?ext_man}
|
%{_mandir}/man1/python3.1%{?ext_man}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
%if %{with GIL}
|
||||||
%{_mandir}/man1/python%{python_version}.1%{?ext_man}
|
%{_mandir}/man1/python%{python_version}.1%{?ext_man}
|
||||||
|
%endif
|
||||||
|
|
||||||
%if %{suse_version} > 1550
|
%if %{suse_version} > 1550
|
||||||
# PEP-0668
|
# PEP-0668
|
||||||
%{sitedir}/EXTERNALLY-MANAGED
|
%{sitedir}/EXTERNALLY-MANAGED
|
||||||
@ -934,8 +989,10 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
|
|||||||
%if %{primary_interpreter}
|
%if %{primary_interpreter}
|
||||||
%{_rpmconfigdir}/macros.d/macros.python3
|
%{_rpmconfigdir}/macros.d/macros.python3
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
# binary parts
|
# binary parts
|
||||||
%dir %{sitedir}/lib-dynload
|
%dir %{sitedir}/lib-dynload
|
||||||
|
|
||||||
%{dynlib array}
|
%{dynlib array}
|
||||||
%{dynlib _asyncio}
|
%{dynlib _asyncio}
|
||||||
%{dynlib binascii}
|
%{dynlib binascii}
|
||||||
@ -996,11 +1053,13 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
|
|||||||
%{dynlib _sha1}
|
%{dynlib _sha1}
|
||||||
%{dynlib _sha2}
|
%{dynlib _sha2}
|
||||||
%{dynlib _sha3}
|
%{dynlib _sha3}
|
||||||
# python parts
|
|
||||||
%dir %{_prefix}/lib/python%{python_version}
|
|
||||||
%dir %{_prefix}/lib/python%{python_version}/site-packages
|
|
||||||
%dir %{_prefix}/lib/python%{python_version}/site-packages/__pycache__
|
|
||||||
%dir %{sitedir}
|
%dir %{sitedir}
|
||||||
|
# python parts
|
||||||
|
%dir %{_prefix}/lib/python%{python_abi}
|
||||||
|
%dir %{_prefix}/lib/python%{python_abi}/site-packages
|
||||||
|
%dir %{_prefix}/lib/python%{python_abi}/site-packages/__pycache__
|
||||||
|
|
||||||
%dir %{sitedir}/site-packages
|
%dir %{sitedir}/site-packages
|
||||||
%dir %{sitedir}/site-packages/__pycache__
|
%dir %{sitedir}/site-packages/__pycache__
|
||||||
# %%exclude %%{sitedir}/*/test
|
# %%exclude %%{sitedir}/*/test
|
||||||
@ -1044,9 +1103,11 @@ echo %{sitedir}/_import_failed > %{buildroot}/%{sitedir}/site-packages/zzzz-impo
|
|||||||
%{_bindir}/pydoc3
|
%{_bindir}/pydoc3
|
||||||
%endif
|
%endif
|
||||||
# executables
|
# executables
|
||||||
|
%if %{with GIL}
|
||||||
%attr(755, root, root) %{_bindir}/pydoc%{python_version}
|
%attr(755, root, root) %{_bindir}/pydoc%{python_version}
|
||||||
# %%attr(755, root, root) %%{_bindir}/python%%{python_abi}
|
%endif
|
||||||
%attr(755, root, root) %{_bindir}/python%{python_version}
|
%attr(755, root, root) %{_bindir}/python%{python_abi}
|
||||||
|
|
||||||
# endif for if base
|
# endif for if base
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user