summaryrefslogtreecommitdiff
path: root/packaging/python.spec
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/python.spec')
-rw-r--r--packaging/python.spec275
1 files changed, 275 insertions, 0 deletions
diff --git a/packaging/python.spec b/packaging/python.spec
new file mode 100644
index 0000000..c78f670
--- /dev/null
+++ b/packaging/python.spec
@@ -0,0 +1,275 @@
+Name: python
+Version: 2.7.3
+Release: 1
+License: Python-2.0
+Summary: Python Interpreter
+Url: http://www.python.org/
+Group: Development/Languages/Python
+%define tarversion %{version}
+%define tarname Python-%{tarversion}
+Source0: %{tarname}.tar.bz2
+Source2: pythonstart
+Source3: python.sh
+Source4: python.csh
+Source1001: %name.manifest
+# !!!!!!!!!!!!!!
+# do not add or edit patches here. please edit python-base.spec
+# instead and run pre_checkin.sh
+# !!!!!!!!!!!!!!
+# COMMON-PATCH-BEGIN
+Patch1: python-2.7-dirs.patch
+Patch2: python-distutils-rpm-8.patch
+Patch3: python-2.7.3rc2-multilib.patch
+Patch4: python-2.5.1-sqlite.patch
+Patch5: python-2.7.3rc2-canonicalize2.patch
+Patch6: python-2.7rc2-configure.patch
+Patch7: python-2.6-gettext-plurals.patch
+Patch8: python-2.6b3-curses-panel.patch
+Patch9: python-2.7.1-distutils_test_path.patch
+Patch12: http://psf.upfronthosting.co.za/roundup/tracker/file19029/python-test_structmembers.patch
+Patch13: python-2.7.2-fix_date_time_compiler.patch
+Patch16: pypirc-secure.diff
+Patch17: remove-static-libpython.diff
+Patch18: python-2.7.3-ssl_ca_path.patch
+# COMMON-PATCH-END
+BuildRequires: automake
+BuildRequires: db4-devel
+BuildRequires: fdupes
+BuildRequires: gmp-devel
+BuildRequires: bzip2-devel
+BuildRequires: openssl-devel
+BuildRequires: ncurses-devel
+BuildRequires: readline-devel
+BuildRequires: sqlite-devel
+%define python_version %(echo %{tarversion} | head -c 3)
+%define idle_name idle
+Requires: python-base = %{version}
+Provides: %{name} = %{python_version}
+Obsoletes: python-elementtree
+Obsoletes: python-nothreads
+Obsoletes: python-sqlite
+
+%description
+Python is an interpreted, object-oriented programming language, and is
+often compared to Tcl, Perl, Scheme, or Java. You can find an overview
+of Python in the documentation and tutorials included in the python-doc
+(HTML) or python-doc-pdf (PDF) packages.
+
+If you want to install third party modules using distutils, you need to
+install python-devel package.
+
+%package curses
+Summary: Python Interface to the (N)Curses Library
+Group: Development/Libraries/Python
+Requires: python-base = %{version}
+Obsoletes: pyth_cur
+Provides: pyth_cur
+
+%description curses
+An easy to use interface to the (n)curses CUI library. CUI stands for
+Console User Interface.
+
+%prep
+%setup -q -n %{tarname}
+# COMMON-PREP-BEGIN
+%patch1 -p1
+%patch2 -p1
+%patch3
+%patch4
+%patch5
+%patch6
+%patch7
+%patch8
+%patch9 -p1
+%patch12
+%patch13
+#skip test_io test for ppc,ppc64 as it broken.
+%patch16 -p1
+%patch17
+%patch18
+# COMMON-PREP-END
+
+# drop Autoconf version requirement
+sed -i 's/^version_required/dnl version_required/' configure.in
+
+# remove newslist.py because of bad license
+rm Demo/scripts/newslist.*
+
+%build
+cp %{S:1001} .
+export OPT=$(echo $RPM_OPT_FLAGS | sed -s "s/--param=ssp-buffer-size=32//g")
+
+autoreconf -f -i . # Modules/_ctypes/libffi
+# prevent make from trying to rebuild asdl stuff, which requires existing
+# python installation
+touch Parser/asdl* Python/Python-ast.c Include/Python-ast.h
+
+%configure \
+ --docdir=%{_docdir}/python \
+ --enable-ipv6 \
+ --with-fpectl \
+ --enable-shared \
+ --enable-unicode=ucs4
+
+make %{?_smp_mflags}
+
+%install
+# replace rest of /usr/local/bin/python or /usr/bin/python2.x with /usr/bin/python
+find . -wholename "./Parser" -prune -o -name '*.py' -type f -print0 | xargs -0 grep -lE '^#! *(/usr/.*bin/(env +)?)?python' | xargs sed -r -i -e '1s@^#![[:space:]]*(/usr/(local/)?bin/(env +)?)?python([0-9]+\.[0-9]+)?@#!/usr/bin/python@'
+# the grep inbetween makes it much faster
+########################################
+# install it
+########################################
+export OPT=$(echo $RPM_OPT_FLAGS | sed -s "s/--param=ssp-buffer-size=32//g")
+%make_install
+########################################
+# some cleanups
+########################################
+# remove hard links and replace them with symlinks
+for dir in bin include %{_lib} ; do
+ rm -f %{buildroot}/%{_prefix}/$dir/python
+ ln -s python%{python_version} %{buildroot}/%{_prefix}/$dir/python
+done
+# kill imageop.so, it's insecure
+rm -f %{buildroot}/%{_libdir}/python%{python_version}/lib-dynload/imageop.so
+#cleanup for -base
+rm %{buildroot}%{_bindir}/python%{python_version}
+rm %{buildroot}%{_bindir}/python2
+rm %{buildroot}%{_bindir}/python
+rm %{buildroot}%{_bindir}/smtpd.py
+rm %{buildroot}%{_bindir}/pydoc
+rm %{buildroot}%{_bindir}/2to3
+rm %{buildroot}%{_mandir}/man1/python*
+rm %{buildroot}%{_libdir}/libpython*.so.*
+rm %{buildroot}%{_libdir}/python
+find %{buildroot}%{_libdir}/python%{python_version} -maxdepth 1 ! \( -name "ssl.py" \) -exec rm {} ";"
+rm %{buildroot}%{_bindir}/python%{python_version}-config
+rm %{buildroot}%{_bindir}/python2-config
+rm %{buildroot}%{_bindir}/python-config
+rm %{buildroot}%{_libdir}/pkgconfig/*
+rm -rf %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/dbm.so
+rm -r %{buildroot}%{_includedir}/python
+rm -r %{buildroot}%{_includedir}/python%{python_version}
+rm -r %{buildroot}%{_libdir}/python%{python_version}/compiler
+rm -r %{buildroot}%{_libdir}/python%{python_version}/config
+rm -r %{buildroot}%{_libdir}/python%{python_version}/ctypes
+rm -r %{buildroot}%{_libdir}/python%{python_version}/distutils
+rm -r %{buildroot}%{_libdir}/python%{python_version}/email
+rm -r %{buildroot}%{_libdir}/python%{python_version}/encodings
+rm -r %{buildroot}%{_libdir}/python%{python_version}/hotshot
+rm -r %{buildroot}%{_libdir}/python%{python_version}/importlib
+rm -r %{buildroot}%{_libdir}/python%{python_version}/json
+rm -r %{buildroot}%{_libdir}/python%{python_version}/lib2to3
+rm -r %{buildroot}%{_libdir}/python%{python_version}/logging
+rm -r %{buildroot}%{_libdir}/python%{python_version}/multiprocessing
+rm -r %{buildroot}%{_libdir}/python%{python_version}/plat-*
+rm -r %{buildroot}%{_libdir}/python%{python_version}/pydoc_data
+rm -r %{buildroot}%{_libdir}/python%{python_version}/test
+rm -r %{buildroot}%{_libdir}/python%{python_version}/unittest
+rm -r %{buildroot}%{_libdir}/python%{python_version}/wsgiref
+rm -r %{buildroot}%{_libdir}/python%{python_version}/xml
+rm %{buildroot}%{_libdir}/libpython%{python_version}.so
+rm %{buildroot}%{_libdir}/python%{python_version}/site-packages/README
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_bisect.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_csv.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_collections.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_ctypes.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_ctypes_test.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_elementtree.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_functools.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_heapq.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_hotshot.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_io.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_json.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_locale.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_lsprof.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_multiprocessing.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_random.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_socket.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_struct.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_testcapi.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/array.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/binascii.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/bz2.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/cPickle.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/cStringIO.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/cmath.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/crypt.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/datetime.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/fcntl.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/future_builtins.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/grp.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/itertools.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/linuxaudiodev.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/math.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/mmap.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/nis.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/operator.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/ossaudiodev.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/parser.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/pyexpat.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/resource.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/select.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/spwd.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/strop.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/syslog.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/termios.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/time.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/unicodedata.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/zlib.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_codecs*.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/_multibytecodec.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/audioop.so
+rm -f %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/dl.so
+rm %{buildroot}%{_libdir}/python%{python_version}/lib-dynload/Python-%{tarversion}-py%{python_version}.egg-info
+# replace duplicate .pyo/.pyc with hardlinks
+%fdupes %{buildroot}/%{_libdir}/python%{python_version}
+########################################
+# documentation
+########################################
+export PDOCS=%{buildroot}%{_docdir}/%{name}
+install -d -m 755 $PDOCS
+install -c -m 644 LICENSE $PDOCS/
+install -c -m 644 README $PDOCS/
+########################################
+# startup script
+########################################
+install -d -m 755 %{buildroot}%{_sysconfdir}/profile.d
+install -m 644 %{SOURCE2} %{buildroot}/etc
+install -m 644 %{SOURCE3} %{SOURCE4} %{buildroot}%{_sysconfdir}/profile.d
+
+rm -rf %{buildroot}%{_bindir}/idle
+rm -rf %{buildroot}%{_libdir}/python%{python_version}/idlelib
+rm -rf %{buildroot}%{_libdir}/python%{python_version}/lib-tk
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+%files curses
+%manifest %name.manifest
+%defattr(644, root, root, 755)
+%{_libdir}/python%{python_version}/curses
+%{_libdir}/python%{python_version}/lib-dynload/_curses.so
+%{_libdir}/python%{python_version}/lib-dynload/_curses_panel.so
+
+%files
+%manifest %name.manifest
+%defattr(644, root, root, 755)
+%dir %{_docdir}/%{name}
+%doc %{_docdir}/%{name}/README
+%doc %{_docdir}/%{name}/LICENSE
+%config %{_sysconfdir}/pythonstart
+%config %{_sysconfdir}/profile.d/python.*
+%dir %{_libdir}/python%{python_version}
+%{_libdir}/python%{python_version}/ssl.py*
+%{_libdir}/python%{python_version}/bsddb
+%{_libdir}/python%{python_version}/sqlite3
+%dir %{_libdir}/python%{python_version}/lib-dynload
+%{_libdir}/python%{python_version}/lib-dynload/_bsddb.so
+%{_libdir}/python%{python_version}/lib-dynload/_hashlib.so
+%{_libdir}/python%{python_version}/lib-dynload/_sqlite3.so
+%{_libdir}/python%{python_version}/lib-dynload/_ssl.so
+%{_libdir}/python%{python_version}/lib-dynload/readline.so
+
+%changelog