X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=python3.spec;h=fa69f316ee2d624217faa9bb5836a04646a4fdfa;hb=04b427b211cb0a2bf7aa210312f1ed1bf94c1be9;hp=f3e99562e25ddc6f66233bdfbae658829051373b;hpb=a98780c25c3ab1c7f68c6a637ae6bf02c01788f8;p=packages%2Fpython3.git diff --git a/python3.spec b/python3.spec index f3e9956..fa69f31 100644 --- a/python3.spec +++ b/python3.spec @@ -1,5 +1,9 @@ +# TODO: +# - fix lib64 and noarch/datadir patches as the 2nd one overrides some +# changes made by the first one; propose patches to python team as they +# seem to be duplicated by fedora as well +# - --with-system-libmpdec when new version released [BR: mpdecimal-devel > 2.3] # - # Conditional build: %bcond_with info # info pages (requires emacs) %bcond_without tkinter # disables tkinter module building @@ -16,8 +20,8 @@ # test_gdb: fails, as the gdb uses old python version %define broken_tests test_httpservers test_distutils test_cmd_line test_pydoc test_telnetlib test_zlib test_gdb test_site -%define py_ver 3.2 -%define py_abi %{py_ver}mu +%define py_ver 3.3 +%define py_abi %{py_ver}m %define py_prefix %{_prefix} %define py_libdir %{py_prefix}/%{_lib}/python%{py_ver} %define py_incdir %{_includedir}/python%{py_abi} @@ -33,18 +37,22 @@ Summary(ru.UTF-8): Язык программирования очень высо Summary(tr.UTF-8): X arayüzlü, yüksek düzeyli, kabuk yorumlayıcı dili Summary(uk.UTF-8): Мова програмування дуже високого рівня з X-інтерфейсом Name: python3 -Version: %{py_ver}.3 +Version: %{py_ver}.4 Release: 2 Epoch: 1 License: PSF Group: Applications Source0: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz -# Source0-md5: 187564726f2c1473d301c586acc24847 +# Source0-md5: 8fb961a20600aafafd249537af3ac637 Patch0: %{name}-pythonpath.patch Patch1: %{name}-ac_fixes.patch Patch2: %{name}-lib64.patch Patch3: %{name}-noarch_to_datadir.patch Patch4: %{name}-no_cmdline_tests.patch +Patch5: %{name}-makefile-location.patch +Patch6: libc-cloexec.patch +Patch7: python-distro.patch +Patch8: %{name}-db.patch URL: http://www.python.org/ BuildRequires: autoconf >= 2.65 BuildRequires: bluez-libs-devel @@ -58,7 +66,7 @@ BuildRequires: gmp-devel >= 4.0 BuildRequires: libffi-devel BuildRequires: libstdc++-devel BuildRequires: ncurses-ext-devel >= 5.2 -BuildRequires: openssl-devel >= 0.9.8 +BuildRequires: openssl-devel >= 0.9.7 BuildRequires: readline-devel >= 5.0 BuildRequires: rpm-pythonprov BuildRequires: sed >= 4.0 @@ -438,6 +446,17 @@ Przykładowe programy w Pythonie. Przykłady te są dla Pythona 2.3.4, nie %{version}. +%package test +Summary: Test modules for Python +Summary(pl.UTF-8): Moduły testowe dla Pythona +Group: Development/Languages/Python + +%description test +Test modules for Python. + +%description test -l pl.UTF-8 +Moduły testowe dla Pythona. + %prep %setup -q -n Python-%{version} %patch0 -p1 @@ -445,30 +464,57 @@ Przykłady te są dla Pythona 2.3.4, nie %{version}. %patch2 -p1 %patch3 -p1 %patch4 -p1 +%patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 + +%{__rm} -r Modules/zlib +%{__rm} -r Modules/expat + +for SUBDIR in darwin libffi libffi_arm_wince libffi_msvc libffi_osx; do + %{__rm} -r Modules/_ctypes/$SUBDIR +done + +files="md5module.c sha1module.c" +%if !0%(pkg-config openssl --atleast-version=0.9.8; echo $?) +files="$files sha256module.c sha512module.c" +%endif +for f in $files; do + %{__rm} Modules/$f +done %build +if ! grep -q "tmpfs" /proc/self/mounts; then + echo "You need to have /dev/shm mounted in order to build this package!" >&2 + echo "(Or any other tmpfs mounted and accessible to the rpmbuild process)" >&2 + exit 1 +fi + %{__autoconf} -CPPFLAGS="-I/usr/include/ncursesw %{rpmcppflags}"; export CPPFLAGS %configure \ + OPT="%{rpmcflags} -fno-caller-saves" \ + CPPFLAGS="%{rpmcppflags}" \ + LDFLAGS="%{rpmldflags}" \ + ac_cv_posix_semaphores_enabled=yes \ + ac_cv_broken_sem_getvalue=no \ + %{?with_debug:--with-pydebug} \ --with-cxx-main="%{__cxx}" \ --enable-shared \ --enable-ipv6 \ --with-dbmliborder=gdbm:bdb \ - --with-wide-unicode \ --with-signal-module \ +%ifarch %{ix86} %{x8664} ppc ppc64 --with-tsc \ +%endif --with-threads \ --with-doc-strings \ --with-fpectl \ + --with-system-expat \ --with-system-ffi \ --with-computed-gotos \ - LINKCC='$(PURIFY) $(CXX)' \ - LDSHARED='$(CC) $(CFLAGS) -shared' \ - BLDSHARED='$(CC) $(CFLAGS) -shared' \ - LDFLAGS="%{rpmcflags} %{rpmldflags}" -%{__make} \ - OPT="%{rpmcflags} -fno-caller-saves" 2>&1 | awk ' +%{__make} 2>&1 | awk ' BEGIN { fail = 0; logmsg = ""; } { if ($0 ~ /\*\*\* WARNING:/) { @@ -501,7 +547,7 @@ install -d $RPM_BUILD_ROOT{%{_bindir},%{_libdir},%{_pkgconfigdir}} \ %if %{with info} %{__make} -C Doc/info -install Doc/info/python*info* $RPM_BUILD_ROOT%{_infodir} +cp -p Doc/info/python*info* $RPM_BUILD_ROOT%{_infodir} %endif install -d $RPM_BUILD_ROOT%{_examplesdir}/%{name}-%{version} @@ -517,10 +563,10 @@ ln -s libpython%{py_abi}.so $RPM_BUILD_ROOT%{_libdir}/libpython3.so # for python devel tools for script in timeit profile pdb pstats; do - echo alias ${script}%{py_ver}.py=\"python%{py_ver} -m ${script}\" + echo "alias ${script}%{py_ver}.py='python%{py_ver} -m ${script}'" done > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh -echo alias pygettext%{py_ver}.py='"pygettext%{py_ver}"' \ +echo "alias pygettext%{py_ver}.py='pygettext%{py_ver}'" \ >> $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-devel.sh sed 's/=/ /' \ @@ -529,7 +575,7 @@ sed 's/=/ /' \ # for python modules for script in smtpd webbrowser; do - echo alias ${script}%{py_ver}.py=\"python%{py_ver} -m ${script}\" + echo "alias ${script}%{py_ver}.py='python%{py_ver} -m ${script}'" done > $RPM_BUILD_ROOT/etc/shrc.d/python%{py_ver}-modules.sh sed 's/=/ /' \ @@ -541,21 +587,9 @@ sed 's/=/ /' \ # we will have two commands: pygettext.py (an alias) and pygettext; # this way there are no import (which is impossible now) conflicts and # pygettext.py is provided for compatibility -install Tools/i18n/pygettext.py $RPM_BUILD_ROOT%{_bindir}/pygettext%{py_ver} +install -p Tools/i18n/pygettext.py $RPM_BUILD_ROOT%{_bindir}/pygettext%{py_ver} # just to cut the noise, as they are not packaged (now) -# first tests (probably could be packaged) -%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/test -%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/ctypes/test -%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/distutils/tests -%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/email/test -%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/importlib/test -%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/lib2to3/tests -%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/sqlite3/test -%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/tkinter/test -%{__rm} -r $RPM_BUILD_ROOT%{py_scriptdir}/unittest/test - -# other files %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/plat-*/regen %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/ctypes/macholib/fetch_macholib* %{__rm} $RPM_BUILD_ROOT%{py_scriptdir}/site-packages/README @@ -591,6 +625,7 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{_bindir}/python%{py_abi} %attr(755,root,root) %{_bindir}/python3 %{_mandir}/man1/python%{py_ver}.1* +%{_mandir}/man1/python3.1* %files libs %defattr(644,root,root,755) @@ -613,12 +648,11 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{py_dyndir}/_struct.cpython-*.so # modules required by python library -%{py_scriptdir}/_abcoll.py +%{py_scriptdir}/_sysconfigdata.py %{py_scriptdir}/_weakrefset.py %{py_scriptdir}/abc.py %{py_scriptdir}/bisect.py %{py_scriptdir}/codecs.py -%{py_scriptdir}/collections.py %{py_scriptdir}/copyreg.py %{py_scriptdir}/functools.py %{py_scriptdir}/genericpath.py @@ -641,12 +675,11 @@ rm -rf $RPM_BUILD_ROOT %{py_scriptdir}/os.py # needed by the dynamic sys.lib patch %{py_scriptdir}/types.py -%{py_scriptdir}/__pycache__/_abcoll.cpython-*.py[co] +%{py_scriptdir}/__pycache__/_sysconfigdata.cpython-*.py[co] %{py_scriptdir}/__pycache__/_weakrefset.cpython-*.py[co] %{py_scriptdir}/__pycache__/abc.cpython-*.py[co] %{py_scriptdir}/__pycache__/bisect.cpython-*.py[co] %{py_scriptdir}/__pycache__/codecs.cpython-*.py[co] -%{py_scriptdir}/__pycache__/collections.cpython-*.py[co] %{py_scriptdir}/__pycache__/copyreg.cpython-*.py[co] %{py_scriptdir}/__pycache__/functools.cpython-*.py[co] %{py_scriptdir}/__pycache__/genericpath.cpython-*.py[co] @@ -669,6 +702,8 @@ rm -rf $RPM_BUILD_ROOT %{py_scriptdir}/__pycache__/os.cpython-*.py[co] %{py_scriptdir}/__pycache__/types.cpython-*.py[co] +%{py_scriptdir}/collections + # encodings required by python library %dir %{py_scriptdir}/encodings %{py_scriptdir}/encodings/__pycache__ @@ -683,11 +718,14 @@ rm -rf $RPM_BUILD_ROOT %files modules %defattr(644,root,root,755) /etc/shrc.d/python*-modules* +%attr(755,root,root) %{_bindir}/pyvenv +%attr(755,root,root) %{_bindir}/pyvenv-3.3 %{py_scriptdir}/__future__.py %{py_scriptdir}/__phello__.foo.py %{py_scriptdir}/_compat_pickle.py %{py_scriptdir}/_dummy_thread.py %{py_scriptdir}/_markupbase.py +%{py_scriptdir}/_osx_support.py %{py_scriptdir}/_pyio.py %{py_scriptdir}/_strptime.py %{py_scriptdir}/_threading_local.py @@ -700,6 +738,7 @@ rm -rf $RPM_BUILD_ROOT %{py_scriptdir}/base64.py %{py_scriptdir}/bdb.py %{py_scriptdir}/binhex.py +%{py_scriptdir}/bz2.py %{py_scriptdir}/cProfile.py %{py_scriptdir}/calendar.py %{py_scriptdir}/cgi.py @@ -713,6 +752,7 @@ rm -rf $RPM_BUILD_ROOT %{py_scriptdir}/configparser.py %{py_scriptdir}/contextlib.py %{py_scriptdir}/copy.py +%{py_scriptdir}/crypt.py %{py_scriptdir}/csv.py %{py_scriptdir}/datetime.py %{py_scriptdir}/decimal.py @@ -735,7 +775,10 @@ rm -rf $RPM_BUILD_ROOT %{py_scriptdir}/hmac.py %{py_scriptdir}/imaplib.py %{py_scriptdir}/imghdr.py +%{py_scriptdir}/imp.py %{py_scriptdir}/inspect.py +%{py_scriptdir}/ipaddress.py +%{py_scriptdir}/lzma.py %{py_scriptdir}/macpath.py %{py_scriptdir}/macurl2path.py %{py_scriptdir}/mailbox.py @@ -801,10 +844,11 @@ rm -rf $RPM_BUILD_ROOT %{py_scriptdir}/xdrlib.py %{py_scriptdir}/zipfile.py %{py_scriptdir}/__pycache__/__future__.cpython-*.py[co] -%{py_scriptdir}/__pycache__/__phello__.foo.cpython-*.py[co] +%{py_scriptdir}/__pycache__/__phello__.cpython-*.py[co] %{py_scriptdir}/__pycache__/_compat_pickle.cpython-*.py[co] %{py_scriptdir}/__pycache__/_dummy_thread.cpython-*.py[co] %{py_scriptdir}/__pycache__/_markupbase.cpython-*.py[co] +%{py_scriptdir}/__pycache__/_osx_support.cpython-*.py[co] %{py_scriptdir}/__pycache__/_pyio.cpython-*.py[co] %{py_scriptdir}/__pycache__/_strptime.cpython-*.py[co] %{py_scriptdir}/__pycache__/_threading_local.cpython-*.py[co] @@ -817,6 +861,7 @@ rm -rf $RPM_BUILD_ROOT %{py_scriptdir}/__pycache__/base64.cpython-*.py[co] %{py_scriptdir}/__pycache__/bdb.cpython-*.py[co] %{py_scriptdir}/__pycache__/binhex.cpython-*.py[co] +%{py_scriptdir}/__pycache__/bz2.cpython-*.py[co] %{py_scriptdir}/__pycache__/cProfile.cpython-*.py[co] %{py_scriptdir}/__pycache__/calendar.cpython-*.py[co] %{py_scriptdir}/__pycache__/cgi.cpython-*.py[co] @@ -830,6 +875,7 @@ rm -rf $RPM_BUILD_ROOT %{py_scriptdir}/__pycache__/configparser.cpython-*.py[co] %{py_scriptdir}/__pycache__/contextlib.cpython-*.py[co] %{py_scriptdir}/__pycache__/copy.cpython-*.py[co] +%{py_scriptdir}/__pycache__/crypt.cpython-*.py[co] %{py_scriptdir}/__pycache__/csv.cpython-*.py[co] %{py_scriptdir}/__pycache__/datetime.cpython-*.py[co] %{py_scriptdir}/__pycache__/decimal.cpython-*.py[co] @@ -852,7 +898,10 @@ rm -rf $RPM_BUILD_ROOT %{py_scriptdir}/__pycache__/hmac.cpython-*.py[co] %{py_scriptdir}/__pycache__/imaplib.cpython-*.py[co] %{py_scriptdir}/__pycache__/imghdr.cpython-*.py[co] +%{py_scriptdir}/__pycache__/imp.cpython-*.py[co] %{py_scriptdir}/__pycache__/inspect.cpython-*.py[co] +%{py_scriptdir}/__pycache__/ipaddress.cpython-*.py[co] +%{py_scriptdir}/__pycache__/lzma.cpython-*.py[co] %{py_scriptdir}/__pycache__/macpath.cpython-*.py[co] %{py_scriptdir}/__pycache__/macurl2path.cpython-*.py[co] %{py_scriptdir}/__pycache__/mailbox.cpython-*.py[co] @@ -917,19 +966,20 @@ rm -rf $RPM_BUILD_ROOT %{py_scriptdir}/__pycache__/webbrowser.cpython-*.py[co] %{py_scriptdir}/__pycache__/xdrlib.cpython-*.py[co] %{py_scriptdir}/__pycache__/zipfile.cpython-*.py[co] -%{py_dyndir}/Python-%{version}-py*.egg-info # # list .so modules to be sure that all of them are built # %attr(755,root,root) %{py_dyndir}/_bisect.cpython-*.so +%attr(755,root,root) %{py_dyndir}/_bz2.cpython-*.so %attr(755,root,root) %{py_dyndir}/_codecs_cn.cpython-*.so %attr(755,root,root) %{py_dyndir}/_codecs_hk.cpython-*.so %attr(755,root,root) %{py_dyndir}/_codecs_iso2022.cpython-*.so %attr(755,root,root) %{py_dyndir}/_codecs_jp.cpython-*.so %attr(755,root,root) %{py_dyndir}/_codecs_kr.cpython-*.so %attr(755,root,root) %{py_dyndir}/_codecs_tw.cpython-*.so +%attr(755,root,root) %{py_dyndir}/_crypt.cpython-*.so %attr(755,root,root) %{py_dyndir}/_csv.cpython-*.so %attr(755,root,root) %{py_dyndir}/_ctypes*.cpython-*.so %attr(755,root,root) %{py_dyndir}/_curses_panel.cpython-*.so @@ -938,12 +988,14 @@ rm -rf $RPM_BUILD_ROOT %ifnarch sparc64 %attr(755,root,root) %{py_dyndir}/_dbm.cpython-*.so %endif +%attr(755,root,root) %{py_dyndir}/_decimal.cpython-*.so %attr(755,root,root) %{py_dyndir}/_elementtree.cpython-*.so %attr(755,root,root) %{py_dyndir}/_gdbm.cpython-*.so %attr(755,root,root) %{py_dyndir}/_hashlib.cpython-*.so %attr(755,root,root) %{py_dyndir}/_heapq.cpython-*.so %attr(755,root,root) %{py_dyndir}/_json.cpython-*.so %attr(755,root,root) %{py_dyndir}/_lsprof.cpython-*.so +%attr(755,root,root) %{py_dyndir}/_lzma.cpython-*.so %attr(755,root,root) %{py_dyndir}/_multibytecodec.cpython-*.so %attr(755,root,root) %{py_dyndir}/_multiprocessing.cpython-*.so %attr(755,root,root) %{py_dyndir}/_pickle.cpython-*.so @@ -951,14 +1003,20 @@ rm -rf $RPM_BUILD_ROOT %attr(755,root,root) %{py_dyndir}/_random.cpython-*.so %attr(755,root,root) %{py_dyndir}/_socket.cpython-*.so %attr(755,root,root) %{py_dyndir}/_ssl.cpython-*.so +%attr(755,root,root) %{py_dyndir}/_testbuffer.cpython-*.so %attr(755,root,root) %{py_dyndir}/_testcapi.cpython-*.so + +# for openssl < 0.9.8 package sha256 and sha512 modules +%if 0%(pkg-config openssl --atleast-version=0.9.8; echo $?) +%attr(755,root,root) %{py_dyndir}/_sha256.cpython-*.so +%attr(755,root,root) %{py_dyndir}/_sha512.cpython-*.so +%endif + %attr(755,root,root) %{py_dyndir}/array.cpython-*.so %attr(755,root,root) %{py_dyndir}/atexit.cpython-*.so %attr(755,root,root) %{py_dyndir}/audioop.cpython-*.so %attr(755,root,root) %{py_dyndir}/binascii.cpython-*.so -%attr(755,root,root) %{py_dyndir}/bz2.cpython-*.so %attr(755,root,root) %{py_dyndir}/cmath.cpython-*.so -%attr(755,root,root) %{py_dyndir}/crypt.cpython-*.so %attr(755,root,root) %{py_dyndir}/fcntl.cpython-*.so %attr(755,root,root) %{py_dyndir}/grp.cpython-*.so %attr(755,root,root) %{py_dyndir}/math.cpython-*.so @@ -1013,6 +1071,7 @@ rm -rf $RPM_BUILD_ROOT %dir %{py_scriptdir}/email/mime %{py_scriptdir}/email/__pycache__ %{py_scriptdir}/email/mime/__pycache__ +%{py_scriptdir}/email/architecture.rst %{py_scriptdir}/email/*.py %{py_scriptdir}/email/mime/*.py @@ -1024,6 +1083,8 @@ rm -rf $RPM_BUILD_ROOT %{py_scriptdir}/http/__pycache__ %{py_scriptdir}/http/*.py +%dir %{py_scriptdir}/idlelib + %dir %{py_scriptdir}/importlib %{py_scriptdir}/importlib/__pycache__ %{py_scriptdir}/importlib/*.py @@ -1044,16 +1105,25 @@ rm -rf $RPM_BUILD_ROOT %{py_scriptdir}/multiprocessing/dummy/*.py %{py_scriptdir}/turtledemo -%{py_scriptdir}/unittest + +%dir %{py_scriptdir}/unittest +%{py_scriptdir}/unittest/__pycache__ +%{py_scriptdir}/unittest/*.py %dir %{py_scriptdir}/urllib %{py_scriptdir}/urllib/__pycache__ %{py_scriptdir}/urllib/*.py +%dir %{py_scriptdir}/venv +%{py_scriptdir}/venv/__pycache__ +%{py_scriptdir}/venv/*.py +%dir %{py_scriptdir}/venv/scripts +%dir %{py_scriptdir}/venv/scripts/posix +%{py_scriptdir}/venv/scripts/posix/activate + %dir %{py_scriptdir}/wsgiref %{py_scriptdir}/wsgiref/__pycache__ %{py_scriptdir}/wsgiref/*.py -%{py_scriptdir}/wsgiref.egg-info %dir %{py_scriptdir}/xml %dir %{py_scriptdir}/xml/dom @@ -1083,7 +1153,7 @@ rm -rf $RPM_BUILD_ROOT %files -n pydoc3 %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/pydoc3 -%attr(755,root,root) %{_bindir}/pydoc3.2 +%attr(755,root,root) %{_bindir}/pydoc3.3 %{py_scriptdir}/pydoc.py %{py_scriptdir}/__pycache__/pydoc.cpython-*.py[co] %dir %{py_scriptdir}/pydoc_data @@ -1094,8 +1164,7 @@ rm -rf $RPM_BUILD_ROOT %files -n idle3 %defattr(644,root,root,755) %attr(755,root,root) %{_bindir}/idle3 -%attr(755,root,root) %{_bindir}/idle3.2 -%dir %{py_scriptdir}/idlelib +%attr(755,root,root) %{_bindir}/idle3.3 %dir %{py_scriptdir}/idlelib/Icons %{py_scriptdir}/idlelib/__pycache__ %{py_scriptdir}/idlelib/*.py @@ -1158,6 +1227,16 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %{_examplesdir}/%{name}-%{version} +%files test +%{py_scriptdir}/idlelib/idle_test +%{py_scriptdir}/test +%{py_scriptdir}/ctypes/test +%{py_scriptdir}/distutils/tests +%{py_scriptdir}/lib2to3/tests +%{py_scriptdir}/sqlite3/test +%{py_scriptdir}/tkinter/test +%{py_scriptdir}/unittest/test + %if %{with info} %files doc-info %defattr(644,root,root,755)