# By default testing is enabled rpm -ba python-2.7.15-1.spec # To avoid testing rpm -ba --nodeps --define 'dotests 0' python-2.7.15-1.spec # All python modules built with "python built with uc2", so going with uc2 instead uc4 # as modules require to rebuild if building python with uc4. %global unicode ucs2 %define gcc_compiler 1 %define gxlc_compiler 0 # ======================== # User-modifiable configs # ======================== # Build tkinter? #WARNING: Commenting out doesn t work. Last line is what s used. %define config_tkinter no %define config_tkinter yes # =============================== # End of user-modifiable configs # =============================== %define name python %define version 2.7.15 %define MAJOR_VERSION 2 %define BASE_VERSION 2.7 %define release 3 # rpm -ba --define 'dotests 0' python-2.7.*-*.spec %{!?dotests:%define DO_TESTS 1} %{?dotests:%define DO_TESTS 0} # kludge to get around rpm define weirdness %define include_tkinter %(if [ "%{config_tkinter}" = yes ]; then echo 1; else echo 0; fi) %define libdir64 %{_prefix}/lib64 # ============================== # Top-level metadata # ============================== Summary: An interpreted, interactive, object-oriented programming language. Name: %{name} Version: %{version} Release: %{release} License: Modified CNRI Open Source License Group: Development/Languages URL: http://www.python.org/ Source0: http://www.python.org/ftp/python/%{version}/Python-%{version}.tar.xz Source1: pyconfig.h Source2: http://www.python.org/ftp/python/doc/%{version}/python-%{version}-docs-text.tar.bz2 #Source3: %{name}-%{version}-%{release}.build.log # 64 bits only Patch0: python-%{version}-64bit.patch # Common patches Patch1: python-%{version}-aix.patch Patch2: python-%{version}-aixsetup.patch Patch3: python-%{version}-termios.patch Patch4: python-%{version}-test.patch Patch9: python-%{version}-README.AIX.patch Patch10: python-%{version}-linkso.patch Patch11: python-%{version}-ldshared.patch Patch13: python-%{version}-pthread-stack-size.patch Patch14: Python-%{version}-xxsubtype.patch Patch15: Python2.7.Lib.ctypes.160928.patch Patch16: python-2.7.15-no_LFS_64bit.patch Provides: python-abi = %{BASE_VERSION} Provides: python(abi) = %{BASE_VERSION} Provides: python2 = %{version} # new module include in 2.7 Provides: python-argparse Provides: python-unittest2 Provides: python-importlib Provides: python-ordereddict BuildRequires: bzip2-devel BuildRequires: bzip2 BuildRequires: expat-devel >= 2.2.4 BuildRequires: gdbm-devel BuildRequires: gmp-devel BuildRequires: libffi-devel BuildRequires: ncurses-devel >= 6.1-2 BuildRequires: readline-devel >= 7.0-5 BuildRequires: sqlite-devel >= 3 BuildRequires: zlib-devel BuildRequires: gettext-devel BuildRequires: make BuildRequires: ncurses BuildRequires: pkg-config BuildRequires: libgcc >= 6.3.0 BuildRequires: libstdc++ >= 6.3.0 Requires: bzip2 Requires: expat >= 2.2.4 Requires: gdbm Requires: libffi Requires: ncurses >= 6.1-2 Requires: readline >= 7.0-5 Requires: sqlite >= 3 Requires: zlib Requires: gettext >= 0.19.7 Requires: libgcc >= 6.3.0 Requires: libstdc++ >= 6.3.0 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root Prefix: %{_prefix} %ifos aix7.2 %define buildhost powerpc-ibm-aix7.2.0.0 %define osplat aix7 %endif %ifos aix7.1 %define buildhost powerpc-ibm-aix7.1.0.0 %define osplat aix7 %endif %ifos aix6.1 %define buildhost powerpc-ibm-aix6.1.0.0 %define osplat aix6 %endif %ifos aix5.3 %define buildhost powerpc-ibm-aix5.3.0.0 %define osplat aix5 %endif %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. Python executables and library are available as 32-bit and 64-bit. %if %{gcc_compiler} == 1 This version has been compiled with GCC. %else This version has been compiled with XLC. %endif %package devel Summary: The libraries and header files needed for Python development. Group: Development/Libraries Requires: %{name} = %{version}-%{release} Conflicts: %{name} < %{version}-%{release} %description devel 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 python-devel 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. %package tools Summary: A collection of development tools included with Python. Group: Development/Tools Requires: %{name} = %{version}-%{release} #Requires: tkinter = %{version}-%{release} %description tools The Python package includes several development tools that are used to build python programs. %if %{include_tkinter} %package tkinter Summary: A graphical user interface for the Python scripting language. Group: Development/Languages Provides: tkinter = %{version}-%{release} Obsoletes: tkinter BuildRequires: tcl-devel BuildRequires: tk-devel Requires: tcl > 8.6.6 Requires: tk > 8.6.6 Requires: %{name} = %{version}-%{release} %description tkinter 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. %endif %package test Summary: The test modules from the main python package Group: Applications/System Requires: %{name} = %{version}-%{release} %description test The test modules from the main python package: %{name} These have been removed to save space, as they are never or almost never used in production. You might want to install the python-test package if you re developing python code that uses more than just unittest and/or test_support.py. %package docs Summary: Documentation for the Python programming language Group: Documentation Requires: %{name} = %{version}-%{release} %description docs The python-docs package contains documentation on the Python programming language and interpreter. Install the python-docs package if you d like to use the documentation for the Python language. # ============================== # Prep # ============================== %prep # Extract python %setup -q -n Python-%{version} # Then patch it %patch1 -p1 -b .aix %patch2 -p1 -b .aixsetup %patch3 -p1 -b .termios %patch4 -p1 -b .test %patch9 -p1 -b .README.AIX %patch10 -p1 -b .linkso %patch11 -p1 -b .ldshared %patch13 -p1 -b .pthread-stack-size %patch14 -p1 -b .xxsubtype %patch15 -p0 # Patch on the fly perl -pi -e "s|yperr_string|(const char*)yperr_string|g;" \ Modules/nismodule.c # Should autoreconf for coherent configures installed and generated version #autoreconf # Duplicate source for 32 & 64 bits rm -rf /tmp/%{name}-%{version}-32bit mkdir /tmp/%{name}-%{version}-32bit mv * /tmp/%{name}-%{version}-32bit mkdir 32bit mv /tmp/%{name}-%{version}-32bit/* 32bit rm -rf /tmp/%{name}-%{version}-32bit mkdir 64bit cp -pr 32bit/* 64bit/ # Specific patch for 64 bit cd 64bit %patch0 -p1 -b .64bit %patch16 -p1 -b .no_LFS ( for f in $(find . -name "*.py"); do # inplace agnostic sed sed "s|\/usr\/bin\/env python|\/usr\/bin\/env python_64|" ${f} > tmpfile.tmp cp -f tmpfile.tmp ${f} done ) cd .. # Extract documentation %setup -q -D -T -a 2 -n Python-%{version} # ============================== # Build # ============================== # from python tracker: issue 7657, set qbitfields=signed for ctypes bitfield # from python: Misc/README.AIX, You can allow up to 2GB of memory for Python by using the value 0x80000000 for maxdata. # from python: Misc/README.AIX, It is a good idea to add the '-qmaxmem=70000' option, otherwise the compiler considers various files too complex to optimize. # from man tzset: Do not use the tzset subroutine when linking with both libc.a and libbsd.a. # hotshot without D_LINUX_SOURCE_COMPAT failed due to AIX malloc # enable LARGE_FILES support for 32bits #================================= %build # setup commun for 32-bit and 64-bit builds export CONFIG_SHELL=%{_prefix}/bin/bash export CONFIGURE_ENV_ARGS=%{_prefix}/bin/bash export AR="/usr/bin/ar -X32_64" export NM="/usr/bin/nm -X32_64" export LIBS="-lXext -lexpat -lffi -lncurses -lsqlite3" export CFLAGS=" -I/usr/include -I%{_prefix}/include -I%{_prefix}/include/ncurses" export CPPFLAGS="-I/usr/include -I%{_prefix}/include -I%{_prefix}/include/ncurses" # Chose GCC or XLC %if %{gcc_compiler} == 1 export CFLAGS="-D_GNU_SOURCE -fPIC -fno-strict-aliasing -fwrapv -D_LINUX_SOURCE_COMPAT -I/usr/include -I%{_prefix}/include -I%{_prefix}/include/ncurses" export CXXFLAGS="-D_GNU_SOURCE -fPIC -fno-strict-aliasing -fwrapv -D_LINUX_SOURCE_COMPAT -I/usr/include -I%{_prefix}/include -I%{_prefix}/include/ncurses" export CPPFLAGS="$(pkg-config --cflags-only-I libffi)" export OPT=" -D_GNU_SOURCE -fPIC -fno-strict-aliasing -fwrapv" if pkg-config openssl ; then export CFLAGS="$CFLAGS $(pkg-config --cflags openssl)" export LDFLAGS="$(pkg-config --libs-only-L openssl)" fi export CC="/usr/bin/gcc" export CXX="/usr/bin/g++" export FLAG32="-maix32" export FLAG64="-maix64" echo "CC Version:" $CC --version %else export CC_FOR_CONFIGURE="$CC -DAIX_GENUINE_CPLUSCPLUS -D_LINUX_SOURCE_COMPAT -bmaxdata:0x80000000 -Wl,-brtl" export CXX_FOR_CONFIGURE="$CXX -DAIX_GENUINE_CPLUSCPLUS -D_LINUX_SOURCE_COMPAT -bmaxdata:0x80000000 -Wl,-brtl" echo "CC Version:" $CC -qversion %endif type $CC type $CXX export CC32="${CC} ${FLAG32} -D_LARGE_FILES" export CXX32="${CXX} ${FLAG32} -D_LARGE_FILES" export CC64="${CC} ${FLAG64}" export CXX64="${CXX} ${FLAG64}" # build 64-bit version export OBJECT_MODE=64 export CC=${CC64} export CXX=${CXX64} export LDFLAGS="-L. -L/usr/lib/threads -L%{libdir64} -L%{_libdir} -L/usr/lib/lib64 -L/usr/lib -Wl,-blibpath:/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib -Wl,-brtl" PV=`python --version | awk '{print($2)}' | awk -F. '{print($1)}'` if [ $PV -ne "2" ] then echo "You have Python 3 installed. Change to Python 2 !!!" exit 1 fi cd 64bit export LIBPATH="`pwd`" export LDFLAGS64="$LDFLAGS" ./configure \ --with-gcc="${CC}" \ --with-cxx-main="${CXX}" \ --srcdir="`pwd`" \ --host=%{buildhost} --target=%{buildhost} --build=%{buildhost} \ --prefix=%{_prefix} \ --libdir=%{libdir64} \ --includedir=%{_includedir} \ --mandir=%{_mandir} \ --enable-shared \ --enable-ipv6 \ --with-threads \ --with-system-ffi \ --with-system-expat \ %if %{gcc_compiler} == 1 --enable-unicode=%{unicode} \ --with-dbmliborder=gdbm:ndbm:bdb %else --without-pymalloc %endif /usr/sbin/slibclean gmake %{?_smp_mflags} lib%{name}%{BASE_VERSION}.a %if %{gcc_compiler} == 0 # Due to ANSI-aliasing issue, build longobject.c without optimization rm -f Objects/longobject.o lib%{name}%* gmake OPT="$OPT -qalias=noansi" Objects/longobject.o gmake %{?_smp_mflags} lib%{name}%{BASE_VERSION}.a %endif CreateExportList -X64 lib%{name}.exp lib%{name}%{BASE_VERSION}.a %if %{gcc_compiler} == 0 # xlc ${CC} -qmkshrobj lib%{name}%{BASE_VERSION}.a -o lib%{name}%{BASE_VERSION}.so -bE:lib%{name}.exp -lm %else # GCC ${CC} -shared lib%{name}%{BASE_VERSION}.a -o lib%{name}%{BASE_VERSION}.so -Wl,-bE:lib%{name}.exp -lm -lpthreads %endif rm -f lib%{name}.exp mv -f lib%{name}%{BASE_VERSION}.a lib%{name}%{BASE_VERSION}.a.old ${AR} -r lib%{name}%{BASE_VERSION}.a lib%{name}%{BASE_VERSION}.so #mv -f lib%{name}%{BASE_VERSION}.so bak_lib%{name}%{BASE_VERSION}.so /usr/sbin/slibclean LDFLAGS="$LDFLAGS -blibpath:/usr/lib/threads:%{libdir64}:%{_libdir}:/usr/lib64:/usr/lib" gmake %{?_smp_mflags} #mv bak_lib%{name}%{BASE_VERSION}.so lib%{name}%{BASE_VERSION}.so if [ "%{DO_TESTS}" == 1 ] then export PYTHONPATH=`pwd`/Modules # Some tests hang when running the whole test_suite, so we need to ignore them first and run them separately later ( ./python Lib/test/regrtest.py -x test_threading -x test_io -x test_signal -x test_socket -x test_subprocess || true ) # ( ./python Lib/test/regrtest.py test_threading test_io test_signal test_socket test_subprocess || true ) #( LDFLAGS="$LDFLAGS -blibpath:/usr/lib/threads:%{libdir64}:%{_libdir}:/usr/lib64:/usr/lib" gmake -k test || true ) #( LDFLAGS="$LDFLAGS -blibpath:/usr/lib/threads:%{libdir64}:%{_libdir}:/usr/lib64:/usr/lib" gmake -k testall || true ) /usr/sbin/slibclean fi cd .. # build 32-bit version export CC=${CC32} export CXX=${CXX32} export OBJECT_MODE=32 cd 32bit export LDFLAGS="-L. -L/usr/lib/threads -L%{_libdir} -L/usr/lib -L/opt/freeware/lib -Wl,-blibpath:/opt/freeware/lib:/usr/lib:/lib -Wl,-bmaxdata:0x80000000 -Wl,-brtl" export LIBPATH="`pwd`" export LDFLAGS32="$LDFLAGS" ./configure \ --with-gcc="${CC}" \ --with-cxx-main="${CXX}" \ --srcdir="`pwd`" \ --host=%{buildhost} --target=%{buildhost} --build=%{buildhost} \ --prefix=%{_prefix} \ --libdir=%{_libdir} \ --includedir=%{_includedir} \ --mandir=%{_mandir} \ --enable-shared \ --enable-ipv6 \ --with-threads \ --with-system-ffi \ --with-system-expat \ %if %{gcc_compiler} == 1 --enable-unicode=%{unicode} \ --with-dbmliborder=gdbm:ndbm:bdb %else --without-pymalloc %endif /usr/sbin/slibclean gmake %{?_smp_mflags} lib%{name}%{BASE_VERSION}.a %if %{gcc_compiler} == 0 # Due to ANSI-aliasing issue, build longobject.c without optimization rm -f Objects/longobject.o lib%{name}%* gmake OPT="$OPT -qalias=noansi" Objects/longobject.o gmake %{?_smp_mflags} lib%{name}%{BASE_VERSION}.a %endif CreateExportList -X32 lib%{name}.exp lib%{name}%{BASE_VERSION}.a %if %{gcc_compiler} == 0 # xlc ${CC} -qmkshrobj lib%{name}%{BASE_VERSION}.a -o lib%{name}%{BASE_VERSION}.so -bE:lib%{name}.exp -lm %else # GCC ${CC} -shared lib%{name}%{BASE_VERSION}.a -o lib%{name}%{BASE_VERSION}.so -Wl,-bE:lib%{name}.exp -lm -lpthreads %endif rm -f lib%{name}.exp mv -f lib%{name}%{BASE_VERSION}.a lib%{name}%{BASE_VERSION}.a.old #mv ../64bit/bak_lib%{name}%{BASE_VERSION}.so ../64bit/lib%{name}%{BASE_VERSION}.so ${AR} -r lib%{name}%{BASE_VERSION}.a lib%{name}%{BASE_VERSION}.so ../64bit/lib%{name}%{BASE_VERSION}.so mv -f lib%{name}%{BASE_VERSION}.so bak_lib%{name}%{BASE_VERSION}.so #mv -f ../64bit/lib%{name}%{BASE_VERSION}.so ../64bit/bak_lib%{name}%{BASE_VERSION}.so /usr/sbin/slibclean #%if %{gcc_compiler} == 1 # gcc does not built it by default ! #./Modules/makexp_aix Modules/python.exp . libpython2.7.a #%endif LDFLAGS="$LDFLAGS -blibpath:/usr/lib/threads:%{_libdir}:/usr/lib" gmake %{?_smp_mflags} #mv bak_lib%{name}%{BASE_VERSION}.so lib%{name}%{BASE_VERSION}.so if [ "%{DO_TESTS}" == 1 ] then export PYTHONPATH=`pwd`/Modules # Some tests hang when running the whole test_suite, so we need to ignore them first and run them separately later ( ./python Lib/test/regrtest.py -x test_threading -x test_io -x test_signal -x test_socket -x test_subprocess || true ) # ( ./python Lib/test/regrtest.py test_threading test_io test_signal test_socket test_subprocess || true ) #( LDFLAGS="$LDFLAGS -blibpath:/usr/lib/threads:%{_libdir}:/usr/lib" gmake -k test || true ) #( LDFLAGS="$LDFLAGS -blibpath:/usr/lib/threads:%{libdir64}:%{_libdir}:/usr/lib64:/usr/lib" gmake -k testall || true ) /usr/sbin/slibclean fi cd .. #================================================================== # Install #================================================================== %install [ -d "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT # install 64-bit version cd 64bit export OBJECT_MODE=64 LIBPATH="`pwd`:/usr/lib/threads:%{libdir64}:%{_libdir}:/usr/lib64:/usr/lib" \ LDFLAGS="$LDFLAGS64 -blibpath:/usr/lib/threads:%{libdir64}:%{_libdir}:/usr/lib64:/usr/lib" \ gmake DESTDIR=${RPM_BUILD_ROOT} install cp ${RPM_BUILD_ROOT}%{_includedir}/%{name}%{BASE_VERSION}/pyconfig.h ${RPM_BUILD_ROOT}%{_includedir}/%{name}%{BASE_VERSION}/pyconfig-ppc64.h ( cd ${RPM_BUILD_ROOT}%{_bindir} find . -type l -exec rm {} \; for f in * ; do mv ${f} ${f}_64 ; done mv smtpd.py_64 smtpd_64.py mv %{name}%{BASE_VERSION}-config_64 %{name}%{BASE_VERSION}_64-config ln -s %{name}%{BASE_VERSION}_64 %{name}%{MAJOR_VERSION}_64 ln -s %{name}%{MAJOR_VERSION}_64 %{name}_64 ln -s %{name}%{BASE_VERSION}_64-config %{name}%{MAJOR_VERSION}_64-config ln -s %{name}%{MAJOR_VERSION}_64-config %{name}_64-config for f in 2to3_64 idle_64 pydoc_64 %{name}%{BASE_VERSION}_64-config smtpd_64.py ; do cat ${f} | sed "s|\/opt\/freeware\/bin\/%{name}%{BASE_VERSION}|\/opt\/freeware\/bin\/%{name}%{BASE_VERSION}_64|" > tmpfile.tmp mv -f tmpfile.tmp ${f} done rm -f tmpfile.tmp cd .. ) cd .. # install 32-bit version cd 32bit export OBJECT_MODE=32 LIBPATH="`pwd`:/usr/lib/threads:%{_libdir}:/usr/lib" \ LDFLAGS="$LDFLAGS32 -blibpath:/usr/lib/threads:%{_libdir}:/usr/lib" \ gmake DESTDIR=${RPM_BUILD_ROOT} install # python header cp ${RPM_BUILD_ROOT}%{_includedir}/%{name}%{BASE_VERSION}/pyconfig.h ${RPM_BUILD_ROOT}%{_includedir}/%{name}%{BASE_VERSION}/pyconfig-ppc32.h cp %{SOURCE1} ${RPM_BUILD_ROOT}%{_includedir}/%{name}%{BASE_VERSION}/pyconfig.h cp %{_builddir}/Python-%{version}/32bit/lib%{name}%{BASE_VERSION}.a ${RPM_BUILD_ROOT}%{_libdir}/lib%{name}%{BASE_VERSION}.a ln -sf ../lib/lib%{name}%{BASE_VERSION}.a ${RPM_BUILD_ROOT}%{libdir64}/lib%{name}%{BASE_VERSION}.a #/usr/bin/strip -X32_64 ${RPM_BUILD_ROOT}%{_bindir}/* || : ( cd ${RPM_BUILD_ROOT} for dir in bin include lib lib64 do mkdir -p usr/$dir cd usr/$dir ln -sf ../..%{_prefix}/$dir/* . cd - done ) cd .. # dynfiles find ${RPM_BUILD_ROOT}%{_libdir}/%{name}%{BASE_VERSION}/lib-dynload -type d | sed "s|${RPM_BUILD_ROOT}|%dir |" > dynfiles find ${RPM_BUILD_ROOT}%{libdir64}/%{name}%{BASE_VERSION}/lib-dynload -type d | sed "s|${RPM_BUILD_ROOT}|%dir |" >> dynfiles find ${RPM_BUILD_ROOT}%{_libdir}/%{name}%{BASE_VERSION}/lib-dynload -type f | \ grep -v "_tkinter.so" | \ grep -v "_ctypes_test.so" | \ grep -v "_testcapi.so" | \ sed "s|${RPM_BUILD_ROOT}||" >> dynfiles find ${RPM_BUILD_ROOT}%{libdir64}/%{name}%{BASE_VERSION}/lib-dynload -type f | \ grep -v "_tkinter.so" | \ grep -v "_ctypes_test.so" | \ grep -v "_testcapi.so" | \ sed "s|${RPM_BUILD_ROOT}||" >> dynfiles # symlink ln -sf ../../lib%{name}%{BASE_VERSION}.a ${RPM_BUILD_ROOT}%{_libdir}/%{name}%{BASE_VERSION}/config/lib%{name}%{BASE_VERSION}.a ln -sf ../../lib%{name}%{BASE_VERSION}.a ${RPM_BUILD_ROOT}%{libdir64}/%{name}%{BASE_VERSION}/config/lib%{name}%{BASE_VERSION}.a # =============================== # Clean # =============================== #%clean #[ "${RPM_BUILD_ROOT}" != "/" ] && rm -rf ${RPM_BUILD_ROOT} # ================================ # File # ================================ %files -f dynfiles %defattr(-,root,system,-) %doc 32bit/LICENSE 32bit/README %{_bindir}/%{name}* %{_bindir}/pydoc* %{_includedir}/* %{_mandir}/man?/* /usr/bin/%{name}* /usr/bin/pydoc* %dir %{_libdir}/%{name}%{BASE_VERSION} %dir %{_libdir}/%{name}%{BASE_VERSION}/bsddb %dir %{_libdir}/%{name}%{BASE_VERSION}/ctypes %dir %{_libdir}/%{name}%{BASE_VERSION}/distutils %dir %{_libdir}/%{name}%{BASE_VERSION}/email %dir %{_libdir}/%{name}%{BASE_VERSION}/json %dir %{_libdir}/%{name}%{BASE_VERSION}/lib2to3 %dir %{_libdir}/%{name}%{BASE_VERSION}/site-packages %dir %{_libdir}/%{name}%{BASE_VERSION}/sqlite3 %dir %{_libdir}/%{name}%{BASE_VERSION}/unittest %dir %{_libdir}/%{name}%{BASE_VERSION}/xml %{_libdir}/%{name}%{BASE_VERSION}/*.doc %{_libdir}/%{name}%{BASE_VERSION}/*.py* %{_libdir}/%{name}%{BASE_VERSION}/LICENSE.txt %{_libdir}/%{name}%{BASE_VERSION}/bsddb/*.py* %{_libdir}/%{name}%{BASE_VERSION}/compiler %{_libdir}/%{name}%{BASE_VERSION}/config %{_libdir}/%{name}%{BASE_VERSION}/ctypes/*.py* %{_libdir}/%{name}%{BASE_VERSION}/ctypes/macholib %{_libdir}/%{name}%{BASE_VERSION}/curses %{_libdir}/%{name}%{BASE_VERSION}/distutils/*.py* %{_libdir}/%{name}%{BASE_VERSION}/distutils/README %{_libdir}/%{name}%{BASE_VERSION}/distutils/command %{_libdir}/%{name}%{BASE_VERSION}/email/*.py* %{_libdir}/%{name}%{BASE_VERSION}/email/mime %{_libdir}/%{name}%{BASE_VERSION}/encodings %{_libdir}/%{name}%{BASE_VERSION}/hotshot %{_libdir}/%{name}%{BASE_VERSION}/idlelib %{_libdir}/%{name}%{BASE_VERSION}/importlib %{_libdir}/%{name}%{BASE_VERSION}/json/*.py* %{_libdir}/%{name}%{BASE_VERSION}/lib2to3/*.py* %{_libdir}/%{name}%{BASE_VERSION}/lib2to3/Grammar* %{_libdir}/%{name}%{BASE_VERSION}/lib2to3/Pattern* %{_libdir}/%{name}%{BASE_VERSION}/lib2to3/fixes %{_libdir}/%{name}%{BASE_VERSION}/lib2to3/pgen2 %{_libdir}/%{name}%{BASE_VERSION}/logging %{_libdir}/%{name}%{BASE_VERSION}/multiprocessing %{_libdir}/%{name}%{BASE_VERSION}/plat-%{osplat} %{_libdir}/%{name}%{BASE_VERSION}/pydoc_data %{_libdir}/%{name}%{BASE_VERSION}/site-packages/README %{_libdir}/%{name}%{BASE_VERSION}/sqlite3/*.py* %{_libdir}/%{name}%{BASE_VERSION}/unittest/*.py* %{_libdir}/%{name}%{BASE_VERSION}/wsgiref* %{_libdir}/%{name}%{BASE_VERSION}/xml/*.py* %{_libdir}/%{name}%{BASE_VERSION}/xml/dom %{_libdir}/%{name}%{BASE_VERSION}/xml/etree %{_libdir}/%{name}%{BASE_VERSION}/xml/parsers %{_libdir}/%{name}%{BASE_VERSION}/xml/sax %{_libdir}/lib%{name}%{BASE_VERSION}.a %{_libdir}/lib%{name}%{BASE_VERSION}.so /usr/lib/lib%{name}%{BASE_VERSION}.a /usr/lib/lib%{name}%{BASE_VERSION}.so %dir %{libdir64}/%{name}%{BASE_VERSION} %dir %{libdir64}/%{name}%{BASE_VERSION}/bsddb %dir %{libdir64}/%{name}%{BASE_VERSION}/ctypes %dir %{libdir64}/%{name}%{BASE_VERSION}/distutils %dir %{libdir64}/%{name}%{BASE_VERSION}/email %dir %{libdir64}/%{name}%{BASE_VERSION}/json %dir %{libdir64}/%{name}%{BASE_VERSION}/lib2to3 %dir %{libdir64}/%{name}%{BASE_VERSION}/site-packages %dir %{libdir64}/%{name}%{BASE_VERSION}/sqlite3 %dir %{libdir64}/%{name}%{BASE_VERSION}/unittest %dir %{libdir64}/%{name}%{BASE_VERSION}/xml %{libdir64}/%{name}%{BASE_VERSION}/*.doc %{libdir64}/%{name}%{BASE_VERSION}/*.py* %{libdir64}/%{name}%{BASE_VERSION}/LICENSE.txt %{libdir64}/%{name}%{BASE_VERSION}/bsddb/*.py* %{libdir64}/%{name}%{BASE_VERSION}/compiler %{libdir64}/%{name}%{BASE_VERSION}/config %{libdir64}/%{name}%{BASE_VERSION}/ctypes/*.py* %{libdir64}/%{name}%{BASE_VERSION}/ctypes/macholib %{libdir64}/%{name}%{BASE_VERSION}/curses %{libdir64}/%{name}%{BASE_VERSION}/distutils/*.py* %{libdir64}/%{name}%{BASE_VERSION}/distutils/README %{libdir64}/%{name}%{BASE_VERSION}/distutils/command %{libdir64}/%{name}%{BASE_VERSION}/email/*.py* %{libdir64}/%{name}%{BASE_VERSION}/email/mime %{libdir64}/%{name}%{BASE_VERSION}/encodings %{libdir64}/%{name}%{BASE_VERSION}/hotshot %{libdir64}/%{name}%{BASE_VERSION}/idlelib %{libdir64}/%{name}%{BASE_VERSION}/importlib %{libdir64}/%{name}%{BASE_VERSION}/json/*.py* %{libdir64}/%{name}%{BASE_VERSION}/lib2to3/*.py* %{libdir64}/%{name}%{BASE_VERSION}/lib2to3/Grammar* %{libdir64}/%{name}%{BASE_VERSION}/lib2to3/Pattern* %{libdir64}/%{name}%{BASE_VERSION}/lib2to3/fixes %{libdir64}/%{name}%{BASE_VERSION}/lib2to3/pgen2 %{libdir64}/%{name}%{BASE_VERSION}/logging %{libdir64}/%{name}%{BASE_VERSION}/multiprocessing %{libdir64}/%{name}%{BASE_VERSION}/plat-%{osplat} %{libdir64}/%{name}%{BASE_VERSION}/pydoc_data %{libdir64}/%{name}%{BASE_VERSION}/site-packages/README %{libdir64}/%{name}%{BASE_VERSION}/sqlite3/*.py* %{libdir64}/%{name}%{BASE_VERSION}/unittest/*.py* %{libdir64}/%{name}%{BASE_VERSION}/wsgiref* %{libdir64}/%{name}%{BASE_VERSION}/xml/*.py* %{libdir64}/%{name}%{BASE_VERSION}/xml/dom %{libdir64}/%{name}%{BASE_VERSION}/xml/etree %{libdir64}/%{name}%{BASE_VERSION}/xml/parsers %{libdir64}/%{name}%{BASE_VERSION}/xml/sax %{libdir64}/lib%{name}%{BASE_VERSION}.a %{libdir64}/lib%{name}%{BASE_VERSION}.so /usr/lib64/lib%{name}%{BASE_VERSION}.a /usr/lib64/lib%{name}%{BASE_VERSION}.so %files devel %defattr(-,root,system,-) %doc 32bit/Misc/README.valgrind 32bit/Misc/valgrind-python.supp %doc 32bit/Misc/gdbinit /usr/include/* %files tools %defattr(-,root,system,-) %{_bindir}/idle* %{_bindir}/smtpd*.py* /usr/bin/idle* /usr/bin/smtpd*.py* %files tkinter %defattr(-,root,system,-) %dir %{_libdir}/%{name}%{BASE_VERSION}/lib-tk %{_libdir}/%{name}%{BASE_VERSION}/lib-tk/*.py* %{_libdir}/%{name}%{BASE_VERSION}/lib-dynload/_tkinter.so %dir %{libdir64}/%{name}%{BASE_VERSION}/lib-tk %{libdir64}/%{name}%{BASE_VERSION}/lib-tk/*.py* %{libdir64}/%{name}%{BASE_VERSION}/lib-dynload/_tkinter.so %files test %defattr(-,root,system,-) %{_libdir}/%{name}%{BASE_VERSION}/bsddb/test %{_libdir}/%{name}%{BASE_VERSION}/ctypes/test %{_libdir}/%{name}%{BASE_VERSION}/distutils/tests %{_libdir}/%{name}%{BASE_VERSION}/email/test %{_libdir}/%{name}%{BASE_VERSION}/json/tests %{_libdir}/%{name}%{BASE_VERSION}/lib-tk/test %{_libdir}/%{name}%{BASE_VERSION}/lib2to3/tests %{_libdir}/%{name}%{BASE_VERSION}/sqlite3/test %{_libdir}/%{name}%{BASE_VERSION}/test %{_libdir}/%{name}%{BASE_VERSION}/unittest/test %{_libdir}/%{name}%{BASE_VERSION}/lib-dynload/_ctypes_test.so %{_libdir}/%{name}%{BASE_VERSION}/lib-dynload/_testcapi.so %{libdir64}/%{name}%{BASE_VERSION}/bsddb/test %{libdir64}/%{name}%{BASE_VERSION}/ctypes/test %{libdir64}/%{name}%{BASE_VERSION}/distutils/tests %{libdir64}/%{name}%{BASE_VERSION}/email/test %{libdir64}/%{name}%{BASE_VERSION}/json/tests %{libdir64}/%{name}%{BASE_VERSION}/lib-tk/test %{libdir64}/%{name}%{BASE_VERSION}/lib2to3/tests %{libdir64}/%{name}%{BASE_VERSION}/sqlite3/test %{libdir64}/%{name}%{BASE_VERSION}/test %{libdir64}/%{name}%{BASE_VERSION}/unittest/test %{libdir64}/%{name}%{BASE_VERSION}/lib-dynload/_ctypes_test.so %{libdir64}/%{name}%{BASE_VERSION}/lib-dynload/_testcapi.so %files docs %defattr(-,root,system,-) %doc python-%{version}-docs-text # =============================== # Changelog # =============================== %changelog * Wed Jan 02 2019 Ayappan P - 2.7.15-3 - No Large file support needed for 64bit build - "2to3" removed from python-tools (now only in python3-tools) * Fri Aug 17 2018 Ravi Hirekurabar - 2.7.15-2 - Removed Requires: gcc >= 6.3.0 - Built with -ldb and added Requires: libgcc >= 6.3.0 - Added Requires: libstdc++ >= 6.3.0 - Renamed tkinter as python-tkinter - Built with large file support * Thu Jun 07 2018 Ravi Hirekurabar - 2.7.15-1 - Updated to 2.7.15 - Built with gcc with -brtl flag adding Requires: gcc >= 6.3.0 * Mon Jul 03 2017 Ravi Hirekurabar - 2.7.13-1 - Updated to 2.7.13 * Tue Jan 31 2017 Tony Reix - 2.7.12-3 - Rebuild it due to /opt/freeware --> /home2/freeware : mess * Tue Aug 18 2016 Tony Reix - 2.7.12-2 - Use gcc compiler. * Tue Aug 11 2016 Tony Reix - 2.7.11-6 - Fix issues with xlc -O2 and ANSI-aliasing - Add gcc * Tue Jul 26 2016 Tony Reix - 2.7.11-2 - Update to version 2.7.11 * Tue Jun 21 2016 Matthieu Sarter - 2.7.10-3 - Improved test handling in spec file * Thu Jun 16 2016 Matthieu Sarter - 2.7.10-2 - Fixed pyconfig.h for 32/64 bits * Thu Aug 06 2015 Tony Reix - 2.7.10-1 - Update to version 2.7.10 * Tue Dec 24 2013 Tristan Delhalle - 2.7.6-1 - regen for 2.7.6 * Tue Sep 13 2013 Tristan Delhalle - 2.7.5-4 - constraint openssl branch 0.9.8 for python_64 -c "import _hashlib;_hashlib.openssl_md5()" coredump issue * Tue Aug 21 2013 Tristan Delhalle - 2.7.5-3 - constraint on openssl for do not used openssl 1.0.1 branch - large file support for 32bits * Tue Jun 10 2013 Tristan Delhalle - 2.7.5-2 - Fix time, hotshot - Installed pure in lib, and platform in lib/lib64 * Tue May 22 2013 Tristan Delhalle - 2.7.5-1 - Fix some AIX and distutils issue - Fix 64bit version * Tue Apr 30 2013 Tristan Delhalle - 2.7.4-1 - Update to version 2.7.4 with new patches * Tue Feb 19 2013 Gerard Visiedo 2.7.3-1 - Update to version 2.7.3 * Thu Feb 02 2012 Gerard Visiedo 2.7.2-3 - Initial port on Aix6.1 * Tue Oct 04 2011 Gerard Visiedo - 2.7.1-4 - rebuild for compatibility with new libiconv.a 1.13.1-2 * Mon Aug 01 2011 Gerard Visiedo 2.7.1-3 - Compilation on 32 and 64 bit * Mon Mar 14 2011 Gerard Visiedo 2.7.1-2 - Adjust osplat for aix6 * Mon Mar 7 2011 Gerard Visiedo 2.7.1 - Update to version 2.7.1 * Tue Feb 01 2011 Gerard Visiedo 2.6-3 - Add patch for aix6.1 * Tue Jan 19 2010 2.6-2 - Update to version 2.6 compile with db-4.8. * Wed Nov 5 2008 2.5.2 - Update to version 2.5.2. * Thu Jul 13 2006 Reza Arbab 2.3.4-3 - Rebuild so tkinter can link to our latest libtk8.4.so. * Mon Aug 08 2005 Philip K. Warren 2.3.4-2 - Include patch for PSF-2005-001. - Build with large files support. * Thu Aug 05 2004 David Clissold 2.3.4-1 - Update to version 2.3.4. * Wed Jul 28 2004 David Clissold 2.3.2-1 - Update to version 2.3.2. (but 2.3.4 is latest). * Mon Feb 17 2003 David Clissold - Build with IBM C++ compiler; --with-threads and --enable-shared - (as per tzy@us.ibm.com). Also added BuildRequires. * Fri Feb 15 2002 David Clissold - Remove the old libpython2.1.a image. * Thu Feb 14 2002 Marc Stephenson - Include compiler, email, and hotshot - Move test to devel * Sun Feb 10 2002 David Clissold - Updated to version 2.2 * Tue Oct 09 2001 David Clissold - Updated to version 2.1.1 * Wed Jun 27 2001 Marc Stephenson - Adapted for AIX Toolbox