2016-02-04 17:12:52 +03:00
|
|
|
%define docver 3.5.1
|
|
|
|
%define dirver 3.5
|
2012-02-01 19:19:07 +04:00
|
|
|
%define familyver 3
|
|
|
|
|
2014-06-25 19:24:49 +04:00
|
|
|
%define lib_major %{dirver}
|
|
|
|
%define lib_name_orig libpython%{familyver}
|
|
|
|
%define lib_name %mklibname python %{lib_major}
|
|
|
|
%define develname %mklibname python3 -d
|
2012-02-01 19:19:07 +04:00
|
|
|
|
|
|
|
%ifarch %{ix86} x86_64 ppc
|
2014-06-25 19:24:49 +04:00
|
|
|
%bcond_without valgrind
|
2012-02-01 19:19:07 +04:00
|
|
|
%else
|
2014-06-25 19:24:49 +04:00
|
|
|
%bcond_with valgrind
|
2012-02-01 19:19:07 +04:00
|
|
|
%endif
|
2014-06-25 19:24:49 +04:00
|
|
|
|
2015-08-25 19:42:12 +03:00
|
|
|
%bcond_without rewheel
|
2014-06-25 19:24:49 +04:00
|
|
|
|
|
|
|
# We want to byte-compile the .py files within the packages using the new
|
|
|
|
# python3 binary.
|
|
|
|
#
|
|
|
|
# Unfortunately, rpmbuild's infrastructure requires us to jump through some
|
|
|
|
# hoops to avoid byte-compiling with the system python 2 version:
|
2016-02-04 17:12:52 +03:00
|
|
|
# /usr/lib/rpm/mandriva/macros sets up build policy that (amongst other things)
|
2014-06-25 19:24:49 +04:00
|
|
|
# defines __os_install_post. In particular, "brp-python-bytecompile" is
|
|
|
|
# invoked without an argument thus using the wrong version of python
|
|
|
|
# (/usr/bin/python, rather than the freshly built python), thus leading to
|
|
|
|
# numerous syntax errors, and incorrect magic numbers in the .pyc files. We
|
|
|
|
# thus remove the invocation of brp-python-bytecompile, whilst keeping the
|
|
|
|
# invocation of brp-python-hardlink (since this should still work for python3
|
|
|
|
# pyc/pyo files)
|
|
|
|
%define _python_bytecompile_build 0
|
|
|
|
|
|
|
|
|
|
|
|
Summary: An interpreted, interactive object-oriented programming language
|
|
|
|
Name: python3
|
2016-02-04 17:12:52 +03:00
|
|
|
Version: 3.5.1
|
2016-03-23 11:09:23 +03:00
|
|
|
Release: 2
|
2014-06-25 19:24:49 +04:00
|
|
|
License: Modified CNRI Open Source License
|
|
|
|
Group: Development/Python
|
|
|
|
|
|
|
|
Source: https://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz
|
|
|
|
Source1: https://docs.python.org/3/archives/python-%{docver}-docs-html.tar.bz2
|
|
|
|
Source2: python3.macros
|
|
|
|
Source3: pybytecompile.macros
|
2013-03-05 17:31:30 +04:00
|
|
|
Source100: %{name}.rpmlintrc
|
2014-06-25 19:24:49 +04:00
|
|
|
|
2016-02-04 17:12:52 +03:00
|
|
|
Patch0: python3-3.5.0-module-linkage.patch
|
|
|
|
Patch1: python3-3.5.0-fdr-lib64.patch
|
|
|
|
Patch2: python3-3.5.0-fdr-lib64-fix-for-test_install.patch
|
|
|
|
Patch3: python3-3.5.0-no-static-lib.patch
|
2014-06-25 19:24:49 +04:00
|
|
|
Patch4: python3-3.4.0-more-configuration-flags.patch
|
|
|
|
Patch5: python3-3.4.0-disable-tests-in-test_io.patch
|
2016-02-04 17:12:52 +03:00
|
|
|
Patch6: python3-3.5.0-add-rpmbuild-hooks-to-unittest.patch
|
2015-02-26 22:40:55 +04:00
|
|
|
Patch7: python3-3.4.3-skip-distutils-tests-that-fail-in-rpmbuild.patch
|
2014-06-25 19:24:49 +04:00
|
|
|
Patch8: python3-3.4.0-hashlib-fips.patch
|
2015-02-26 22:40:55 +04:00
|
|
|
Patch9: python3-3.4.3-fix-test_gdb-noise.patch
|
2014-06-25 19:24:49 +04:00
|
|
|
Patch10: python3-3.4.0-uid-gid-overflows.patch
|
|
|
|
Patch11: python3-3.4.0-disable-test_fs_holes-in-rpm-build.patch
|
|
|
|
Patch12: python3-3.4.0-disable-parts-of-test_socket-in-rpm-build.patch
|
|
|
|
Patch13: python3-3.4.0-dont-duplicate-flags-in-sysconfig.patch
|
|
|
|
Patch14: python3-3.4.0-ctypes-should-build-with-libffi-multilib-wrapper.patch
|
|
|
|
Patch15: python3-3.4.0-dont-raise-from-py_compile.patch
|
2014-06-26 11:33:27 +04:00
|
|
|
%if %{with rewheel}
|
2014-06-25 19:24:49 +04:00
|
|
|
Patch16: python3-3.4.0-add-rewheel-module.patch
|
|
|
|
%endif
|
|
|
|
Patch18: python3-3.4.0-disable-tests-in-test_urllib2_localnet.patch
|
|
|
|
Patch19: Python-nis-requires-tirpc.patch
|
|
|
|
Patch20: Python-select-requires-libm.patch
|
2016-02-04 17:12:52 +03:00
|
|
|
Patch21: python3-3.4.2-distutils-init.patch
|
|
|
|
Patch22: python3-3.5.0-make-libpl-respect-lib64.patch
|
2014-06-25 19:24:49 +04:00
|
|
|
|
|
|
|
URL: http://www.python.org/
|
|
|
|
Conflicts: tkinter3 < %{version}
|
|
|
|
Conflicts: %{lib_name}-devel < 3.4
|
|
|
|
Conflicts: %{develname} < 3.4
|
|
|
|
Requires: %{lib_name} = %{version}
|
|
|
|
BuildRequires: automake
|
|
|
|
BuildRequires: gcc-c++
|
|
|
|
BuildRequires: blt
|
|
|
|
BuildRequires: db-devel
|
|
|
|
BuildRequires: expat-devel
|
|
|
|
BuildRequires: gdbm-devel
|
|
|
|
BuildRequires: gmp-devel
|
|
|
|
BuildRequires: ffi-devel
|
2015-04-08 16:31:44 +03:00
|
|
|
BuildRequires: pkgconfig(ncursesw)
|
2014-06-25 19:24:49 +04:00
|
|
|
BuildRequires: openssl-devel
|
|
|
|
BuildRequires: readline-devel
|
|
|
|
BuildRequires: tcl tcl-devel
|
|
|
|
BuildRequires: tk tk-devel
|
|
|
|
BuildRequires: autoconf
|
|
|
|
BuildRequires: bzip2-devel
|
|
|
|
BuildRequires: sqlite3-devel
|
2012-02-01 19:19:07 +04:00
|
|
|
# uncomment once the emacs part no longer conflict with python 2.X
|
2014-06-25 19:24:49 +04:00
|
|
|
#BuildRequires: emacs
|
|
|
|
#BuildRequires: emacs-bin
|
2012-02-01 19:19:07 +04:00
|
|
|
%if %{with valgrind}
|
2014-06-25 19:24:49 +04:00
|
|
|
BuildRequires: valgrind-devel
|
2012-02-01 19:19:07 +04:00
|
|
|
%endif
|
2014-06-26 11:33:27 +04:00
|
|
|
%if %{with rewheel}
|
2014-06-25 19:24:49 +04:00
|
|
|
BuildRequires: python3-setuptools
|
|
|
|
BuildRequires: python3-pip
|
|
|
|
%endif
|
|
|
|
Provides: python(abi) = %{dirver}
|
|
|
|
Provides: /usr/bin/python%{dirver}m
|
|
|
|
Provides: /usr/bin/python%{dirver}
|
2012-02-01 19:19:07 +04:00
|
|
|
|
|
|
|
%description
|
|
|
|
Python is an interpreted, interactive, object-oriented programming
|
|
|
|
language often compared to Tcl, Perl, Scheme or Java. Python includes
|
|
|
|
modules, classes, exceptions, very high level dynamic data types and
|
|
|
|
dynamic typing. Python supports interfaces to many system calls and
|
|
|
|
libraries, as well as to various windowing systems (X11, Motif, Tk,
|
|
|
|
Mac and MFC).
|
|
|
|
|
|
|
|
Programmers can write new built-in modules for Python in C or C++.
|
|
|
|
Python can be used as an extension language for applications that
|
|
|
|
need a programmable interface. This package contains most of the
|
|
|
|
standard Python modules, as well as modules for interfacing to the
|
|
|
|
Tix widget set for Tk and RPM.
|
|
|
|
|
|
|
|
Note that documentation for Python is provided in the python-docs
|
|
|
|
package.
|
|
|
|
|
2016-03-23 11:09:23 +03:00
|
|
|
%files
|
|
|
|
%doc README.urpmi
|
|
|
|
%{_sysconfdir}/rpm/macros.d/*.macros
|
|
|
|
%{_includedir}/python*/pyconfig.h
|
|
|
|
%multiarch_includedir/python*/pyconfig.h
|
|
|
|
%{_libdir}/python*/config*/Makefile
|
|
|
|
%exclude %{_libdir}/python*/site-packages/pynche
|
|
|
|
%exclude %{_libdir}/python*/lib-dynload/_tkinter.*.so
|
|
|
|
|
|
|
|
%dir %{_libdir}/python*
|
|
|
|
%{_libdir}/python*/LICENSE.txt
|
|
|
|
%{_libdir}/python%{dirver}/*.py
|
|
|
|
%{_libdir}/python%{dirver}/__pycache__
|
|
|
|
%{_libdir}/python%{dirver}/collections
|
|
|
|
%{_libdir}/python%{dirver}/concurrent
|
|
|
|
%{_libdir}/python%{dirver}/ctypes
|
|
|
|
%{_libdir}/python%{dirver}/curses
|
|
|
|
%{_libdir}/python%{dirver}/dbm
|
|
|
|
%{_libdir}/python%{dirver}/distutils
|
|
|
|
%{_libdir}/python%{dirver}/email
|
|
|
|
%{_libdir}/python%{dirver}/encodings
|
|
|
|
%{_libdir}/python%{dirver}/html
|
|
|
|
%{_libdir}/python%{dirver}/http
|
|
|
|
%{_libdir}/python%{dirver}/importlib
|
|
|
|
%{_libdir}/python%{dirver}/json
|
|
|
|
%{_libdir}/python%{dirver}/lib-dynload
|
|
|
|
%{_libdir}/python%{dirver}/lib2to3
|
|
|
|
%{_libdir}/python%{dirver}/logging
|
|
|
|
%{_libdir}/python%{dirver}/multiprocessing
|
|
|
|
%{_libdir}/python%{dirver}/plat-linux
|
|
|
|
%{_libdir}/python%{dirver}/pydoc_data
|
|
|
|
%{_libdir}/python%{dirver}/site-packages
|
|
|
|
%{_libdir}/python%{dirver}/sqlite3
|
|
|
|
%{_libdir}/python%{dirver}/turtledemo
|
|
|
|
%{_libdir}/python%{dirver}/unittest
|
|
|
|
%{_libdir}/python%{dirver}/urllib
|
|
|
|
%{_libdir}/python%{dirver}/venv
|
|
|
|
%{_libdir}/python%{dirver}/wsgiref*
|
|
|
|
%{_libdir}/python%{dirver}/xml
|
|
|
|
%{_libdir}/python%{dirver}/xmlrpc
|
|
|
|
%{_libdir}/python%{dirver}/asyncio
|
|
|
|
%{_libdir}/python%{dirver}/ensurepip
|
|
|
|
# %exclude %{_libdir}/python%{dirver}/ensurepip/_bundled
|
|
|
|
%{_bindir}/pydoc3*
|
|
|
|
%{_bindir}/python3*
|
|
|
|
%{_bindir}/pyvenv*
|
|
|
|
%{_bindir}/2to3-%{dirver}
|
|
|
|
%exclude %{_bindir}/python*config
|
|
|
|
#%{_datadir}/emacs/site-lisp/*
|
|
|
|
%{_mandir}/man*/*
|
|
|
|
%if %{with valgrind}
|
|
|
|
%{_libdir}/valgrind/valgrind-python3.supp
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
|
2014-06-25 19:24:49 +04:00
|
|
|
%package -n %{lib_name}
|
|
|
|
Summary: Shared libraries for Python %{version}
|
|
|
|
Group: System/Libraries
|
2012-02-01 19:19:07 +04:00
|
|
|
|
2014-06-25 19:24:49 +04:00
|
|
|
%description -n %{lib_name}
|
2012-02-01 19:19:07 +04:00
|
|
|
This packages contains Python shared object library. Python is an
|
|
|
|
interpreted, interactive, object-oriented programming language often
|
|
|
|
compared to Tcl, Perl, Scheme or Java.
|
|
|
|
|
2016-03-23 11:09:23 +03:00
|
|
|
%files -n %{lib_name}
|
|
|
|
%{_libdir}/libpython*.so.1*
|
|
|
|
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
|
2014-06-25 19:24:49 +04:00
|
|
|
%package -n %{develname}
|
|
|
|
Summary: The libraries and header files needed for Python development
|
|
|
|
Group: Development/Python
|
|
|
|
Requires: %{name} = %{version}
|
|
|
|
Requires: %{lib_name} = %{version}
|
|
|
|
Provides: %{name}-devel = %{version}-%{release}
|
|
|
|
Provides: %{lib_name_orig}-devel = %{version}-%{release}
|
|
|
|
Obsoletes: %{_lib}python3.1-devel < %{version}
|
|
|
|
Obsoletes: %{_lib}python3.2-devel < %{version}-%{release}
|
|
|
|
|
|
|
|
%description -n %{develname}
|
2012-02-01 19:19:07 +04:00
|
|
|
The Python programming language's interpreter can be extended with
|
|
|
|
dynamically loaded extensions and can be embedded in other programs.
|
|
|
|
This package contains the header files and libraries needed to do
|
|
|
|
these types of tasks.
|
|
|
|
|
|
|
|
Install %{develname} if you want to develop Python extensions. The
|
|
|
|
python package will also need to be installed. You'll probably also
|
|
|
|
want to install the python-docs package, which contains Python
|
|
|
|
documentation.
|
|
|
|
|
2016-03-23 11:09:23 +03:00
|
|
|
%files -n %{develname}
|
|
|
|
%{_libdir}/libpython*.so
|
|
|
|
%{_includedir}/python*
|
|
|
|
%{_libdir}/python*/config-%{dirver}*
|
|
|
|
%{_libdir}/python*/test/
|
|
|
|
%{_bindir}/python%{dirver}*-config
|
|
|
|
%{_bindir}/python%{familyver}-config
|
|
|
|
%{_libdir}/pkgconfig/python*.pc
|
|
|
|
%exclude %{_includedir}/python*/pyconfig.h
|
|
|
|
%exclude %{_libdir}/python*/config*/Makefile
|
|
|
|
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
|
2014-06-25 19:24:49 +04:00
|
|
|
%package docs
|
|
|
|
Summary: Documentation for the Python programming language
|
|
|
|
Requires: %{name} = %{version}
|
|
|
|
Requires: xdg-utils
|
|
|
|
Group: Development/Python
|
|
|
|
BuildArch: noarch
|
2012-02-01 19:19:07 +04:00
|
|
|
|
2014-06-25 19:24:49 +04:00
|
|
|
%description docs
|
2012-02-01 19:19:07 +04:00
|
|
|
The python-docs package contains documentation on the Python
|
|
|
|
programming language and interpreter. The documentation is provided
|
|
|
|
in ASCII text files and in LaTeX source files.
|
|
|
|
|
|
|
|
Install the python-docs package if you'd like to use the documentation
|
|
|
|
for the Python language.
|
|
|
|
|
2016-03-23 11:09:23 +03:00
|
|
|
%files docs
|
|
|
|
%doc html/*/*
|
|
|
|
%{_datadir}/applications/rosa-%{name}-docs.desktop
|
|
|
|
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
|
2014-06-25 19:24:49 +04:00
|
|
|
%package -n tkinter3
|
|
|
|
Summary: A graphical user interface for the Python scripting language
|
|
|
|
Group: Development/Python
|
|
|
|
Requires: %{name} = %{version}
|
|
|
|
Requires: tcl tk
|
|
|
|
Provides: python3-tkinter
|
2016-03-23 11:09:23 +03:00
|
|
|
Obsoletes: tkinter3-apps < %{EVRD}
|
2012-02-01 19:19:07 +04:00
|
|
|
|
2014-06-25 19:24:49 +04:00
|
|
|
%description -n tkinter3
|
2012-02-01 19:19:07 +04:00
|
|
|
The Tkinter (Tk interface) program is an graphical user interface for
|
|
|
|
the Python scripting language.
|
|
|
|
|
|
|
|
You should install the tkinter package if you'd like to use a graphical
|
|
|
|
user interface for Python programming.
|
|
|
|
|
2016-03-23 11:09:23 +03:00
|
|
|
%files -n tkinter3
|
|
|
|
%{_libdir}/python*/tkinter/
|
|
|
|
%{_libdir}/python*/lib-dynload/_tkinter.*.so
|
|
|
|
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
%package -n idle3
|
|
|
|
Summary: Python3 IDE
|
|
|
|
Group: Development/Python
|
|
|
|
Requires: tkinter3
|
|
|
|
Conflicts: tkinter3-apps < %{EVRD}
|
|
|
|
|
|
|
|
%description -n idle3
|
|
|
|
Python3 IDE.
|
|
|
|
|
|
|
|
%files -n idle3
|
|
|
|
%{_bindir}/idle3*
|
|
|
|
%{_datadir}/applications/idle3.desktop
|
|
|
|
%{_libdir}/python*/idlelib
|
|
|
|
|
|
|
|
#----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
%package -n pynche3
|
|
|
|
Summary: Color and Hue editor
|
2014-06-25 19:24:49 +04:00
|
|
|
Group: Development/Python
|
|
|
|
Requires: tkinter3
|
2016-03-23 11:09:23 +03:00
|
|
|
Conflicts: tkinter3-apps < %{EVRD}
|
|
|
|
|
|
|
|
%description -n pynche3
|
|
|
|
Color and Hue editor.
|
2012-02-01 19:19:07 +04:00
|
|
|
|
2016-03-23 11:09:23 +03:00
|
|
|
%files -n pynche3
|
|
|
|
%{_bindir}/pynche3
|
2016-03-23 11:22:16 +03:00
|
|
|
%{_datadir}/applications/pynche3.desktop
|
2016-03-23 11:09:23 +03:00
|
|
|
%{_libdir}/python*/site-packages/pynche
|
2012-02-01 19:19:07 +04:00
|
|
|
|
2016-03-23 11:09:23 +03:00
|
|
|
#----------------------------------------------------------------------------
|
2014-06-25 19:24:49 +04:00
|
|
|
|
2012-02-01 19:19:07 +04:00
|
|
|
%prep
|
|
|
|
%setup -qn Python-%{version}
|
2014-06-25 19:24:49 +04:00
|
|
|
%patch0 -p0 -b .link
|
2012-02-01 19:19:07 +04:00
|
|
|
|
2012-10-06 00:39:08 +11:00
|
|
|
%if "%{_lib}" == "lib64"
|
2014-06-25 19:24:49 +04:00
|
|
|
%patch1 -p1 -b .lib64
|
|
|
|
%patch2 -p1
|
|
|
|
%endif
|
|
|
|
|
|
|
|
%patch3 -p1
|
|
|
|
%patch4 -p1
|
|
|
|
%patch5 -p1
|
|
|
|
%patch6 -p1
|
|
|
|
%patch7 -p1
|
|
|
|
%patch8 -p1
|
2015-02-26 22:40:55 +04:00
|
|
|
%patch9 -p1
|
2014-06-25 19:24:49 +04:00
|
|
|
%patch10 -p1
|
|
|
|
%patch11 -p1
|
|
|
|
%patch12 -p1
|
|
|
|
%patch13 -p1
|
|
|
|
%patch14 -p1
|
|
|
|
%patch15 -p1
|
|
|
|
|
2014-06-26 11:33:27 +04:00
|
|
|
%if %{with rewheel}
|
2014-06-25 19:24:49 +04:00
|
|
|
%patch16 -p1
|
2012-10-06 00:39:08 +11:00
|
|
|
%endif
|
2014-06-25 19:24:49 +04:00
|
|
|
|
|
|
|
%patch18 -p0
|
|
|
|
%patch19 -p1 -b .tirpc~
|
|
|
|
%patch20 -p1 -b .lm~
|
2016-02-04 17:12:52 +03:00
|
|
|
%patch21 -p1
|
|
|
|
%patch22 -p1
|
2014-06-25 19:24:49 +04:00
|
|
|
|
|
|
|
# drop Autoconf version requirement
|
|
|
|
sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac
|
2012-02-01 19:19:07 +04:00
|
|
|
|
|
|
|
# docs
|
|
|
|
mkdir html
|
|
|
|
bzcat %{SOURCE1} | tar x -C html
|
|
|
|
|
|
|
|
find . -type f -print0 | xargs -0 perl -p -i -e 's@/usr/local/bin/python@/usr/bin/python3@'
|
|
|
|
|
2014-06-26 11:33:27 +04:00
|
|
|
cat > README.urpmi << EOF
|
|
|
|
Python interpreter support readline completion by default.
|
|
|
|
This is only used with the interpreter. In order to remove it,
|
|
|
|
you can :
|
|
|
|
1) unset PYTHONSTARTUP when you login
|
|
|
|
2) create a empty file \$HOME/.pythonrc.py
|
|
|
|
3) change %{_sysconfdir}/pythonrc.py
|
|
|
|
EOF
|
|
|
|
|
|
|
|
|
2012-02-01 19:19:07 +04:00
|
|
|
%build
|
|
|
|
rm -f Modules/Setup.local
|
|
|
|
|
2012-10-06 00:39:08 +11:00
|
|
|
export OPT="%{optflags} -g"
|
|
|
|
|
|
|
|
# to fix curses module build
|
|
|
|
export CFLAGS="%{optflags} -I/usr/include/ncursesw"
|
|
|
|
export CPPFLAGS="%{optflags} -I/usr/include/ncursesw"
|
|
|
|
|
|
|
|
autoreconf -vfi
|
2016-02-04 17:12:52 +03:00
|
|
|
# Remove -Wl,--no-undefined
|
2014-06-25 19:24:49 +04:00
|
|
|
%define _disable_ld_no_undefined 1
|
|
|
|
%configure2_5x --with-threads \
|
|
|
|
--enable-ipv6 \
|
|
|
|
--with-dbmliborder=gdbm \
|
|
|
|
--with-system-expat \
|
|
|
|
--with-system-ffi \
|
|
|
|
--enable-shared \
|
|
|
|
--without-ensurepip \
|
2012-02-01 19:19:07 +04:00
|
|
|
%if %{with valgrind}
|
2014-06-25 19:24:49 +04:00
|
|
|
--with-valgrind
|
2012-02-01 19:19:07 +04:00
|
|
|
%endif
|
|
|
|
|
2016-02-04 17:12:52 +03:00
|
|
|
|
2012-02-01 19:19:07 +04:00
|
|
|
# fix build
|
|
|
|
#perl -pi -e 's/^(LDFLAGS=.*)/$1 -lstdc++/' Makefile
|
|
|
|
# (misc) if the home is nfs mounted, rmdir fails due to delay
|
|
|
|
export TMP="/tmp" TMPDIR="/tmp"
|
2014-06-25 19:24:49 +04:00
|
|
|
#%make LN="ln -sf"
|
|
|
|
make EXTRA_CFLAGS="$CFLAGS" LN="ln -sf"
|
2012-02-01 19:19:07 +04:00
|
|
|
|
|
|
|
%install
|
2012-10-06 00:39:08 +11:00
|
|
|
mkdir -p %{buildroot}%{_prefix}/lib/python%{dirver}
|
2012-02-01 19:19:07 +04:00
|
|
|
|
|
|
|
# fix Makefile to get rid of reference to distcc
|
|
|
|
perl -pi -e "/^CC=/ and s/distcc/gcc/" Makefile
|
|
|
|
|
|
|
|
# set the install path
|
|
|
|
echo '[install_scripts]' >setup.cfg
|
2014-06-25 19:24:49 +04:00
|
|
|
echo 'install_dir='"${RPM_BUILD_ROOT}/usr/bin" >>setup.cfg
|
2012-02-01 19:19:07 +04:00
|
|
|
|
|
|
|
# python is not GNU and does not know fsstd
|
2012-10-06 00:39:08 +11:00
|
|
|
mkdir -p %{buildroot}%{_mandir}
|
2012-02-01 19:19:07 +04:00
|
|
|
%makeinstall_std LN="ln -sf"
|
|
|
|
|
2014-06-25 19:24:49 +04:00
|
|
|
# overwrite the copied binary with a link
|
|
|
|
pushd %{buildroot}%{_bindir}
|
|
|
|
ln -sf python%{dirver}m python%{dirver}
|
|
|
|
ln -sf python%{dirver} python%{familyver}
|
|
|
|
popd
|
|
|
|
|
2012-10-06 00:39:08 +11:00
|
|
|
(cd %{buildroot}%{_libdir}; ln -sf `ls libpython%{lib_major}*.so.*` libpython%{lib_major}.so)
|
2012-02-01 19:19:07 +04:00
|
|
|
|
|
|
|
# fix files conflicting with python2.6
|
2014-06-25 19:24:49 +04:00
|
|
|
mv %{buildroot}/%{_bindir}/2to3 %{buildroot}/%{_bindir}/python3-2to3
|
2012-02-01 19:19:07 +04:00
|
|
|
|
|
|
|
|
|
|
|
# install pynche as pynche3
|
2012-10-06 00:39:08 +11:00
|
|
|
cat << EOF > %{buildroot}%{_bindir}/pynche3
|
2012-02-01 19:19:07 +04:00
|
|
|
#!/bin/bash
|
|
|
|
exec %{_libdir}/python%{dirver}/site-packages/pynche/pynche
|
|
|
|
EOF
|
|
|
|
rm -f Tools/pynche/*.pyw
|
2012-10-06 00:39:08 +11:00
|
|
|
cp -r Tools/pynche %{buildroot}%{_libdir}/python%{dirver}/site-packages/
|
2012-02-01 19:19:07 +04:00
|
|
|
|
2012-10-06 00:39:08 +11:00
|
|
|
chmod 755 %{buildroot}%{_bindir}/{idle3,pynche3}
|
2012-02-01 19:19:07 +04:00
|
|
|
|
|
|
|
ln -f Tools/pynche/README Tools/pynche/README.pynche
|
|
|
|
|
|
|
|
%if %{with valgrind}
|
2012-10-06 00:39:08 +11:00
|
|
|
install Misc/valgrind-python.supp -D %{buildroot}%{_libdir}/valgrind/valgrind-python3.supp
|
2012-02-01 19:19:07 +04:00
|
|
|
%endif
|
|
|
|
|
2012-10-06 00:39:08 +11:00
|
|
|
mkdir -p %{buildroot}%{_datadir}/applications
|
2016-03-23 11:09:23 +03:00
|
|
|
cat > %{buildroot}%{_datadir}/applications/idle3.desktop << EOF
|
2012-02-01 19:19:07 +04:00
|
|
|
[Desktop Entry]
|
|
|
|
Name=IDLE
|
2014-06-26 11:33:27 +04:00
|
|
|
Name[ru]=IDLE
|
2012-02-01 19:19:07 +04:00
|
|
|
Comment=IDE for Python3
|
2014-06-26 11:33:27 +04:00
|
|
|
Comment[ru]=IDE для Python3
|
2012-02-01 19:19:07 +04:00
|
|
|
Exec=%{_bindir}/idle3
|
|
|
|
Icon=development_environment_section
|
|
|
|
Terminal=false
|
|
|
|
Type=Application
|
|
|
|
Categories=Development;IDE;
|
|
|
|
EOF
|
|
|
|
|
2016-03-23 11:09:23 +03:00
|
|
|
cat > %{buildroot}%{_datadir}/applications/pynche3.desktop << EOF
|
|
|
|
[Desktop Entry]
|
|
|
|
Name=Pynche
|
|
|
|
Name[ru]=Pynche
|
|
|
|
Comment=Color and Hue editor
|
|
|
|
Comment[ru]=Редактор цветов
|
|
|
|
Exec=%{_bindir}/pynche3
|
|
|
|
Icon=development_environment_section
|
|
|
|
Terminal=false
|
|
|
|
Type=Application
|
|
|
|
Categories=Development;
|
|
|
|
EOF
|
2012-02-01 19:19:07 +04:00
|
|
|
|
2014-06-24 11:56:37 +04:00
|
|
|
cat > %{buildroot}%{_datadir}/applications/rosa-%{name}-docs.desktop << EOF
|
2012-02-01 19:19:07 +04:00
|
|
|
[Desktop Entry]
|
|
|
|
Name=Python documentation
|
2014-06-26 11:33:27 +04:00
|
|
|
Name[ru]=Документация Python
|
2012-02-01 19:19:07 +04:00
|
|
|
Comment=Python complete reference
|
2014-06-26 11:33:27 +04:00
|
|
|
Comment[ru]=Полное руководство по языку Python
|
2014-06-26 12:09:44 +04:00
|
|
|
Exec=%{_bindir}/xdg-open %{_defaultdocdir}/%{name}-docs/index.html
|
2012-02-01 19:19:07 +04:00
|
|
|
Icon=documentation_section
|
|
|
|
Terminal=false
|
|
|
|
Type=Application
|
|
|
|
Categories=Documentation;
|
|
|
|
EOF
|
|
|
|
|
2014-06-26 11:55:29 +04:00
|
|
|
# fix non real scripts
|
|
|
|
#chmod 644 %{buildroot}%{_libdir}/python*/test/test_{binascii,grp,htmlparser}.py*
|
|
|
|
find %{buildroot} -type f \( -name "test_binascii.py*" -o -name "test_grp.py*" -o -name "test_htmlparser.py*" \) -exec chmod 644 {} \;
|
|
|
|
# fix python library not stripped
|
|
|
|
chmod u+w %{buildroot}%{_libdir}/libpython%{lib_major}*.so.1.0 %{buildroot}%{_libdir}/libpython3.so
|
|
|
|
|
|
|
|
|
2012-10-06 00:39:08 +11:00
|
|
|
%multiarch_includes %{buildroot}/usr/include/python*/pyconfig.h
|
2012-02-01 19:19:07 +04:00
|
|
|
|
2012-10-06 00:39:08 +11:00
|
|
|
mkdir -p %{buildroot}%{_sysconfdir}/rpm/macros.d
|
|
|
|
install -m644 %{SOURCE2} %{buildroot}%{_sysconfdir}/rpm/macros.d/
|
2014-06-25 19:24:49 +04:00
|
|
|
install -m 644 %{SOURCE3} %{buildroot}/%{_sysconfdir}/rpm/macros.d/
|
|
|
|
|
|
|
|
%check
|
|
|
|
# (misc) if the home is nfs mounted, rmdir fails
|
|
|
|
export TMP="/tmp" TMPDIR="/tmp"
|
2012-02-01 19:19:07 +04:00
|
|
|
|
2014-06-25 19:24:49 +04:00
|
|
|
# all tests must pass
|
|
|
|
# but we disable network on BS
|
|
|
|
#WITHIN_PYTHON_RPM_BUILD= make test TESTOPTS="-u none -x $EXCLUDE"
|
|
|
|
# consider use network on local build
|
|
|
|
#WITHIN_PYTHON_RPM_BUILD= make test TESTOPTS="-u network -x $EXCLUDE"
|
2014-01-16 06:40:02 -05:00
|
|
|
|