mirror of https://github.com/python/cpython
merge 3.3
This commit is contained in:
commit
76e37b1b8a
|
@ -21,7 +21,6 @@ README The file you're reading now
|
|||
README.AIX Information about using Python on AIX
|
||||
README.coverity Information about running Coverity's Prevent on Python
|
||||
README.valgrind Information for Valgrind users, see valgrind-python.supp
|
||||
RPM (Old) tools to build RPMs
|
||||
SpecialBuilds.txt Describes extra symbols you can set for debug builds
|
||||
svnmap.txt Map of old SVN revs and branches to hg changeset ids
|
||||
valgrind-python.supp Valgrind suppression file, see README.valgrind
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
This directory contains support file used to build RPM releases of
|
||||
Python. Its contents are maintained by Sean Reifschneider
|
||||
<jafo@tummy.com>.
|
||||
|
||||
If you wish to build RPMs from the base Python release tar-file, note
|
||||
that you will have to download the
|
||||
"doc/<version>/html-<version>.tar.bz2"
|
||||
file from python.org and place it into your "SOURCES" directory for
|
||||
the build to complete. This is the same directory that you place the
|
||||
Python-2.3.1 release tar-file in. You can then use the ".spec" file in
|
||||
this directory to build RPMs.
|
||||
|
||||
You may also wish to pursue RPMs provided by distribution makers to see if
|
||||
they have one suitable for your uses. If, for example, you just want a
|
||||
slightly newer version of Python than what the distro provides, you could
|
||||
pick up the closest SRPM your distro provides, and then modify it to
|
||||
the newer version, and build that. It may be as simple as just changing
|
||||
the "version" information in the spec file (or it may require fixing
|
||||
patches).
|
||||
|
||||
NOTE: I am *NOT* recommending just using the binary RPM, and never do an
|
||||
install with "--force" or "--nodeps".
|
||||
|
||||
Also worth pursuing may be newer versions provided by similar distros. For
|
||||
example, a Python 3 SRPM from Fedora may be a good baseline to try building
|
||||
on CentOS.
|
||||
|
||||
Many newer SRPMs won't install on older distros because of format changes.
|
||||
You can manually extract these SRPMS with:
|
||||
|
||||
mkdir foo
|
||||
cd foo
|
||||
rpm2cpio <../python3-*.src.rpm | cpio -ivd
|
|
@ -1,389 +0,0 @@
|
|||
##########################
|
||||
# User-modifiable configs
|
||||
##########################
|
||||
|
||||
# Is the resulting package and the installed binary named "python" or
|
||||
# "python2"?
|
||||
#WARNING: Commenting out doesn't work. Last line is what's used.
|
||||
%define config_binsuffix none
|
||||
%define config_binsuffix 2.6
|
||||
|
||||
# Build tkinter? "auto" enables it if /usr/bin/wish exists.
|
||||
#WARNING: Commenting out doesn't work. Last line is what's used.
|
||||
%define config_tkinter no
|
||||
%define config_tkinter yes
|
||||
%define config_tkinter auto
|
||||
|
||||
# Use pymalloc? The last line (commented or not) determines wether
|
||||
# pymalloc is used.
|
||||
#WARNING: Commenting out doesn't work. Last line is what's used.
|
||||
%define config_pymalloc no
|
||||
%define config_pymalloc yes
|
||||
|
||||
# Enable IPV6?
|
||||
#WARNING: Commenting out doesn't work. Last line is what's used.
|
||||
%define config_ipv6 yes
|
||||
%define config_ipv6 no
|
||||
|
||||
# Build shared libraries or .a library?
|
||||
#WARNING: Commenting out doesn't work. Last line is what's used.
|
||||
%define config_sharedlib no
|
||||
%define config_sharedlib yes
|
||||
|
||||
# Location of the HTML directory.
|
||||
%define config_htmldir /var/www/html/python
|
||||
|
||||
#################################
|
||||
# End of user-modifiable configs
|
||||
#################################
|
||||
|
||||
%define name python
|
||||
#--start constants--
|
||||
%define version 3.4.3rc1
|
||||
%define libvers 3.4
|
||||
#--end constants--
|
||||
%define release 1pydotorg
|
||||
%define __prefix /usr
|
||||
|
||||
# kludge to get around rpm <percent>define weirdness
|
||||
%define ipv6 %(if [ "%{config_ipv6}" = yes ]; then echo --enable-ipv6; else echo --disable-ipv6; fi)
|
||||
%define pymalloc %(if [ "%{config_pymalloc}" = yes ]; then echo --with-pymalloc; else echo --without-pymalloc; fi)
|
||||
%define binsuffix %(if [ "%{config_binsuffix}" = none ]; then echo ; else echo "%{config_binsuffix}"; fi)
|
||||
%define include_tkinter %(if [ \\( "%{config_tkinter}" = auto -a -f /usr/bin/wish \\) -o "%{config_tkinter}" = yes ]; then echo 1; else echo 0; fi)
|
||||
%define libdirname %(( uname -m | egrep -q '_64$' && [ -d /usr/lib64 ] && echo lib64 ) || echo lib)
|
||||
%define sharedlib %(if [ "%{config_sharedlib}" = yes ]; then echo --enable-shared; else echo ; fi)
|
||||
%define include_sharedlib %(if [ "%{config_sharedlib}" = yes ]; then echo 1; else echo 0; fi)
|
||||
|
||||
# detect if documentation is available
|
||||
%define include_docs %(if [ -f "%{_sourcedir}/html-%{version}.tar.bz2" ]; then echo 1; else echo 0; fi)
|
||||
|
||||
Summary: An interpreted, interactive, object-oriented programming language.
|
||||
Name: %{name}%{binsuffix}
|
||||
Version: %{version}
|
||||
Release: %{release}
|
||||
License: PSF
|
||||
Group: Development/Languages
|
||||
Source: Python-%{version}.tar.bz2
|
||||
%if %{include_docs}
|
||||
Source1: html-%{version}.tar.bz2
|
||||
%endif
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-root
|
||||
BuildPrereq: expat-devel
|
||||
BuildPrereq: db4-devel
|
||||
BuildPrereq: gdbm-devel
|
||||
BuildPrereq: sqlite-devel
|
||||
Prefix: %{__prefix}
|
||||
Packager: Sean Reifschneider <jafo-rpms@tummy.com>
|
||||
|
||||
%description
|
||||
Python is an interpreted, interactive, object-oriented programming
|
||||
language. It incorporates modules, exceptions, dynamic typing, very high
|
||||
level dynamic data types, and classes. Python combines remarkable power
|
||||
with very clear syntax. It has interfaces to many system calls and
|
||||
libraries, as well as to various window systems, and is extensible in C or
|
||||
C++. It is also usable as an extension language for applications that need
|
||||
a programmable interface. Finally, Python is portable: it runs on many
|
||||
brands of UNIX, on PCs under Windows, MS-DOS, and on the Mac.
|
||||
|
||||
%package devel
|
||||
Summary: The libraries and header files needed for Python extension development.
|
||||
Prereq: python%{binsuffix} = %{PACKAGE_VERSION}
|
||||
Group: Development/Libraries
|
||||
|
||||
%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.
|
||||
|
||||
%if %{include_tkinter}
|
||||
%package tkinter
|
||||
Summary: A graphical user interface for the Python scripting language.
|
||||
Group: Development/Languages
|
||||
Prereq: python%{binsuffix} = %{PACKAGE_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 tools
|
||||
Summary: A collection of development tools included with Python.
|
||||
Group: Development/Tools
|
||||
Prereq: python%{binsuffix} = %{PACKAGE_VERSION}-%{release}
|
||||
|
||||
%description tools
|
||||
The Python package includes several development tools that are used
|
||||
to build python programs. This package contains a selection of those
|
||||
tools, including the IDLE Python IDE.
|
||||
|
||||
Install python-tools if you want to use these tools to develop
|
||||
Python programs. You will also need to install the python and
|
||||
tkinter packages.
|
||||
|
||||
%if %{include_docs}
|
||||
%package docs
|
||||
Summary: Python-related documentation.
|
||||
Group: Development/Documentation
|
||||
|
||||
%description docs
|
||||
Documentation relating to the Python programming language in HTML and info
|
||||
formats.
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Mon Dec 20 2004 Sean Reifschneider <jafo-rpms@tummy.com> [2.4-2pydotorg]
|
||||
- Changing the idle wrapper so that it passes arguments to idle.
|
||||
|
||||
* Tue Oct 19 2004 Sean Reifschneider <jafo-rpms@tummy.com> [2.4b1-1pydotorg]
|
||||
- Updating to 2.4.
|
||||
|
||||
* Thu Jul 22 2004 Sean Reifschneider <jafo-rpms@tummy.com> [2.3.4-3pydotorg]
|
||||
- Paul Tiemann fixes for %{prefix}.
|
||||
- Adding permission changes for directory as suggested by reimeika.ca
|
||||
- Adding code to detect when it should be using lib64.
|
||||
- Adding a define for the location of /var/www/html for docs.
|
||||
|
||||
* Thu May 27 2004 Sean Reifschneider <jafo-rpms@tummy.com> [2.3.4-2pydotorg]
|
||||
- Including changes from Ian Holsman to build under Red Hat 7.3.
|
||||
- Fixing some problems with the /usr/local path change.
|
||||
|
||||
* Sat Mar 27 2004 Sean Reifschneider <jafo-rpms@tummy.com> [2.3.2-3pydotorg]
|
||||
- Being more agressive about finding the paths to fix for
|
||||
#!/usr/local/bin/python.
|
||||
|
||||
* Sat Feb 07 2004 Sean Reifschneider <jafo-rpms@tummy.com> [2.3.3-2pydotorg]
|
||||
- Adding code to remove "#!/usr/local/bin/python" from particular files and
|
||||
causing the RPM build to terminate if there are any unexpected files
|
||||
which have that line in them.
|
||||
|
||||
* Mon Oct 13 2003 Sean Reifschneider <jafo-rpms@tummy.com> [2.3.2-1pydotorg]
|
||||
- Adding code to detect wether documentation is available to build.
|
||||
|
||||
* Fri Sep 19 2003 Sean Reifschneider <jafo-rpms@tummy.com> [2.3.1-1pydotorg]
|
||||
- Updating to the 2.3.1 release.
|
||||
|
||||
* Mon Feb 24 2003 Sean Reifschneider <jafo-rpms@tummy.com> [2.3b1-1pydotorg]
|
||||
- Updating to 2.3b1 release.
|
||||
|
||||
* Mon Feb 17 2003 Sean Reifschneider <jafo-rpms@tummy.com> [2.3a1-1]
|
||||
- Updating to 2.3 release.
|
||||
|
||||
* Sun Dec 23 2001 Sean Reifschneider <jafo-rpms@tummy.com>
|
||||
[Release 2.2-2]
|
||||
- Added -docs package.
|
||||
- Added "auto" config_tkinter setting which only enables tk if
|
||||
/usr/bin/wish exists.
|
||||
|
||||
* Sat Dec 22 2001 Sean Reifschneider <jafo-rpms@tummy.com>
|
||||
[Release 2.2-1]
|
||||
- Updated to 2.2.
|
||||
- Changed the extension to "2" from "2.2".
|
||||
|
||||
* Tue Nov 18 2001 Sean Reifschneider <jafo-rpms@tummy.com>
|
||||
[Release 2.2c1-1]
|
||||
- Updated to 2.2c1.
|
||||
|
||||
* Thu Nov 1 2001 Sean Reifschneider <jafo-rpms@tummy.com>
|
||||
[Release 2.2b1-3]
|
||||
- Changed the way the sed for fixing the #! in pydoc works.
|
||||
|
||||
* Wed Oct 24 2001 Sean Reifschneider <jafo-rpms@tummy.com>
|
||||
[Release 2.2b1-2]
|
||||
- Fixed missing "email" package, thanks to anonymous report on sourceforge.
|
||||
- Fixed missing "compiler" package.
|
||||
|
||||
* Mon Oct 22 2001 Sean Reifschneider <jafo-rpms@tummy.com>
|
||||
[Release 2.2b1-1]
|
||||
- Updated to 2.2b1.
|
||||
|
||||
* Mon Oct 9 2001 Sean Reifschneider <jafo-rpms@tummy.com>
|
||||
[Release 2.2a4-4]
|
||||
- otto@balinor.mat.unimi.it mentioned that the license file is missing.
|
||||
|
||||
* Sun Sep 30 2001 Sean Reifschneider <jafo-rpms@tummy.com>
|
||||
[Release 2.2a4-3]
|
||||
- Ignacio Vazquez-Abrams pointed out that I had a spruious double-quote in
|
||||
the spec files. Thanks.
|
||||
|
||||
* Wed Jul 25 2001 Sean Reifschneider <jafo-rpms@tummy.com>
|
||||
[Release 2.2a1-1]
|
||||
- Updated to 2.2a1 release.
|
||||
- Changed idle and pydoc to use binsuffix macro
|
||||
|
||||
#######
|
||||
# PREP
|
||||
#######
|
||||
%prep
|
||||
%setup -n Python-%{version}
|
||||
|
||||
########
|
||||
# BUILD
|
||||
########
|
||||
%build
|
||||
echo "Setting for ipv6: %{ipv6}"
|
||||
echo "Setting for pymalloc: %{pymalloc}"
|
||||
echo "Setting for binsuffix: %{binsuffix}"
|
||||
echo "Setting for include_tkinter: %{include_tkinter}"
|
||||
echo "Setting for libdirname: %{libdirname}"
|
||||
echo "Setting for sharedlib: %{sharedlib}"
|
||||
echo "Setting for include_sharedlib: %{include_sharedlib}"
|
||||
./configure --enable-unicode=ucs4 %{sharedlib} %{ipv6} %{pymalloc} --prefix=%{__prefix}
|
||||
make
|
||||
|
||||
##########
|
||||
# INSTALL
|
||||
##########
|
||||
%install
|
||||
# set the install path
|
||||
echo '[install_scripts]' >setup.cfg
|
||||
echo 'install_dir='"${RPM_BUILD_ROOT}%{__prefix}/bin" >>setup.cfg
|
||||
|
||||
[ -d "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
|
||||
mkdir -p $RPM_BUILD_ROOT%{__prefix}/%{libdirname}/python%{libvers}/lib-dynload
|
||||
make prefix=$RPM_BUILD_ROOT%{__prefix} install
|
||||
|
||||
# REPLACE PATH IN PYDOC
|
||||
if [ ! -z "%{binsuffix}" ]
|
||||
then
|
||||
(
|
||||
cd $RPM_BUILD_ROOT%{__prefix}/bin
|
||||
mv pydoc pydoc.old
|
||||
sed 's|#!.*|#!%{__prefix}/bin/env python'%{binsuffix}'|' \
|
||||
pydoc.old >pydoc
|
||||
chmod 755 pydoc
|
||||
rm -f pydoc.old
|
||||
)
|
||||
fi
|
||||
|
||||
# add the binsuffix
|
||||
if [ ! -z "%{binsuffix}" ]
|
||||
then
|
||||
rm -f $RPM_BUILD_ROOT%{__prefix}/bin/python[0-9a-zA-Z]*
|
||||
( cd $RPM_BUILD_ROOT%{__prefix}/bin;
|
||||
for file in *; do mv "$file" "$file"%{binsuffix}; done )
|
||||
( cd $RPM_BUILD_ROOT%{_mandir}/man1; mv python.1 python%{binsuffix}.1 )
|
||||
fi
|
||||
|
||||
########
|
||||
# Tools
|
||||
echo '#!%{__prefix}/bin/env python%{binsuffix}' >${RPM_BUILD_ROOT}%{__prefix}/bin/idle%{binsuffix}
|
||||
echo 'import os, sys' >>${RPM_BUILD_ROOT}%{__prefix}/bin/idle%{binsuffix}
|
||||
echo 'os.execvp("%{__prefix}/bin/python%{binsuffix}", ["%{__prefix}/bin/python%{binsuffix}", "%{__prefix}/lib/python%{libvers}/idlelib/idle.py"] + sys.argv[1:])' >>${RPM_BUILD_ROOT}%{__prefix}/bin/idle%{binsuffix}
|
||||
echo 'print "Failed to exec Idle"' >>${RPM_BUILD_ROOT}%{__prefix}/bin/idle%{binsuffix}
|
||||
echo 'sys.exit(1)' >>${RPM_BUILD_ROOT}%{__prefix}/bin/idle%{binsuffix}
|
||||
chmod 755 $RPM_BUILD_ROOT%{__prefix}/bin/idle%{binsuffix}
|
||||
cp -a Tools $RPM_BUILD_ROOT%{__prefix}/%{libdirname}/python%{libvers}
|
||||
|
||||
# MAKE FILE LISTS
|
||||
rm -f mainpkg.files
|
||||
find "$RPM_BUILD_ROOT""%{__prefix}"/%{libdirname}/python%{libvers} -type f |
|
||||
sed "s|^${RPM_BUILD_ROOT}|/|" |
|
||||
grep -v -e '/python%{libvers}/config$' -e '_tkinter.so$' >mainpkg.files
|
||||
find "$RPM_BUILD_ROOT""%{__prefix}"/bin -type f -o -type l |
|
||||
sed "s|^${RPM_BUILD_ROOT}|/|" |
|
||||
grep -v -e '/bin/2to3%{binsuffix}$' |
|
||||
grep -v -e '/bin/pydoc%{binsuffix}$' |
|
||||
grep -v -e '/bin/smtpd.py%{binsuffix}$' |
|
||||
grep -v -e '/bin/idle%{binsuffix}$' >>mainpkg.files
|
||||
|
||||
rm -f tools.files
|
||||
find "$RPM_BUILD_ROOT""%{__prefix}"/%{libdirname}/python%{libvers}/idlelib \
|
||||
"$RPM_BUILD_ROOT""%{__prefix}"/%{libdirname}/python%{libvers}/Tools -type f |
|
||||
sed "s|^${RPM_BUILD_ROOT}|/|" >tools.files
|
||||
echo "%{__prefix}"/bin/2to3%{binsuffix} >>tools.files
|
||||
echo "%{__prefix}"/bin/pydoc%{binsuffix} >>tools.files
|
||||
echo "%{__prefix}"/bin/smtpd.py%{binsuffix} >>tools.files
|
||||
echo "%{__prefix}"/bin/idle%{binsuffix} >>tools.files
|
||||
|
||||
######
|
||||
# Docs
|
||||
%if %{include_docs}
|
||||
mkdir -p "$RPM_BUILD_ROOT"%{config_htmldir}
|
||||
(
|
||||
cd "$RPM_BUILD_ROOT"%{config_htmldir}
|
||||
bunzip2 < %{SOURCE1} | tar x
|
||||
)
|
||||
%endif
|
||||
|
||||
# fix the #! line in installed files
|
||||
find "$RPM_BUILD_ROOT" -type f -print0 |
|
||||
xargs -0 grep -l /usr/local/bin/python | while read file
|
||||
do
|
||||
FIXFILE="$file"
|
||||
sed 's|^#!.*python|#!%{__prefix}/bin/env python'"%{binsuffix}"'|' \
|
||||
"$FIXFILE" >/tmp/fix-python-path.$$
|
||||
cat /tmp/fix-python-path.$$ >"$FIXFILE"
|
||||
rm -f /tmp/fix-python-path.$$
|
||||
done
|
||||
|
||||
# check to see if there are any straggling #! lines
|
||||
find "$RPM_BUILD_ROOT" -type f | xargs egrep -n '^#! */usr/local/bin/python' \
|
||||
| grep ':1:#!' >/tmp/python-rpm-files.$$ || true
|
||||
if [ -s /tmp/python-rpm-files.$$ ]
|
||||
then
|
||||
echo '*****************************************************'
|
||||
cat /tmp/python-rpm-files.$$
|
||||
cat <<@EOF
|
||||
*****************************************************
|
||||
There are still files referencing /usr/local/bin/python in the
|
||||
install directory. They are listed above. Please fix the .spec
|
||||
file and try again. If you are an end-user, you probably want
|
||||
to report this to jafo-rpms@tummy.com as well.
|
||||
*****************************************************
|
||||
@EOF
|
||||
rm -f /tmp/python-rpm-files.$$
|
||||
exit 1
|
||||
fi
|
||||
rm -f /tmp/python-rpm-files.$$
|
||||
|
||||
########
|
||||
# CLEAN
|
||||
########
|
||||
%clean
|
||||
[ -n "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != / ] && rm -rf $RPM_BUILD_ROOT
|
||||
rm -f mainpkg.files tools.files
|
||||
|
||||
########
|
||||
# FILES
|
||||
########
|
||||
%files -f mainpkg.files
|
||||
%defattr(-,root,root)
|
||||
%doc Misc/README Misc/cheatsheet Misc/Porting
|
||||
%doc LICENSE Misc/ACKS Misc/HISTORY Misc/NEWS
|
||||
%{_mandir}/man1/python%{binsuffix}.1*
|
||||
|
||||
%attr(755,root,root) %dir %{__prefix}/include/python%{libvers}
|
||||
%attr(755,root,root) %dir %{__prefix}/%{libdirname}/python%{libvers}/
|
||||
%if %{include_sharedlib}
|
||||
%{__prefix}/%{libdirname}/libpython*
|
||||
%endif
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root)
|
||||
%{__prefix}/include/python%{libvers}/*.h
|
||||
%{__prefix}/%{libdirname}/python%{libvers}/config
|
||||
|
||||
%files -f tools.files tools
|
||||
%defattr(-,root,root)
|
||||
|
||||
%if %{include_tkinter}
|
||||
%files tkinter
|
||||
%defattr(-,root,root)
|
||||
%{__prefix}/%{libdirname}/python%{libvers}/tkinter
|
||||
%{__prefix}/%{libdirname}/python%{libvers}/lib-dynload/_tkinter.so*
|
||||
%endif
|
||||
|
||||
%if %{include_docs}
|
||||
%files docs
|
||||
%defattr(-,root,root)
|
||||
%{config_htmldir}/*
|
||||
%endif
|
Loading…
Reference in New Issue