[Python-checkins] CVS: python/dist/src/Misc/RPM Python-2.1-expat.patch,NONE,1.1 Python-2.1-pythonpath.patch,NONE,1.1 python-2.2.spec,NONE,1.1 README,1.1,1.2 BeOpen-Python-Setup.patch,1.1,NONE beopen-python.spec,1.2,NONE make-spec.sh,1.1,NONE

Guido van Rossum gvanrossum@users.sourceforge.net
Sat, 05 Jan 2002 19:29:18 -0800


Update of /cvsroot/python/python/dist/src/Misc/RPM
In directory usw-pr-cvs1:/tmp/cvs-serv26830

Modified Files:
	README 
Added Files:
	Python-2.1-expat.patch Python-2.1-pythonpath.patch 
	python-2.2.spec 
Removed Files:
	BeOpen-Python-Setup.patch beopen-python.spec make-spec.sh 
Log Message:
Checked in Sean Reifschneider's RPM spec file and patches.  Bugfix candidate.

--- NEW FILE: Python-2.1-expat.patch ---
--- Modules/pyexpat.c.old	Tue Mar  6 02:30:48 2001
+++ Modules/pyexpat.c	Tue Mar  6 02:31:15 2001
@@ -12,7 +12,7 @@
 #define EXPAT_VERSION 0x015f00
 #endif
 #else /* !defined(HAVE_EXPAT_H) */
-#include "xmlparse.h"
+#include "expat/xmlparse.h"
 /* Assume Expat 1.1 unless told otherwise */
 #ifndef EXPAT_VERSION
 #define EXPAT_VERSION 0x010100
--- setup.py-orig	Fri Feb  2 11:24:25 2001
+++ setup.py	Wed Feb 14 18:13:15 2001
@@ -445,7 +445,7 @@
             # expat.h was found
             expat_defs = [('HAVE_EXPAT_H', 1)]
         else:
-            expat_incs = find_file('xmlparse.h', inc_dirs, [])
+            expat_incs = find_file('expat/xmlparse.h', inc_dirs, [])
 
         if (expat_incs is not None and
             self.compiler.find_library_file(lib_dirs, 'expat')):

--- NEW FILE: Python-2.1-pythonpath.patch ---
diff -ur Python-2.1a1.old/Lib/cgi.py Python-2.1a1/Lib/cgi.py
--- Python-2.1a1.old/Lib/cgi.py	Sat Jan 20 12:54:20 2001
+++ Python-2.1a1/Lib/cgi.py	Fri Jan 26 01:07:57 2001
@@ -1,4 +1,4 @@
-#! /usr/local/bin/python
+#!/usr/bin/env python
 
 """Support module for CGI (Common Gateway Interface) scripts.
 
diff -ur Python-2.1a1.old/Tools/faqwiz/faqw.py Python-2.1a1/Tools/faqwiz/faqw.py
--- Python-2.1a1.old/Tools/faqwiz/faqw.py	Fri Apr  3 15:27:04 1998
+++ Python-2.1a1/Tools/faqwiz/faqw.py	Fri Jan 26 01:08:07 2001
@@ -1,4 +1,4 @@
-#! /usr/local/bin/python
+#!/usr/bin/env python
 
 """FAQ wizard bootstrap."""
 
diff -ur Python-2.1a1.old/Tools/scripts/parseentities.py Python-2.1a1/Tools/scripts/parseentities.py
--- Python-2.1a1.old/Tools/scripts/parseentities.py	Wed Jan 17 01:48:39 2001
+++ Python-2.1a1/Tools/scripts/parseentities.py	Fri Jan 26 01:08:16 2001
@@ -1,4 +1,4 @@
-#!/usr/local/bin/python
+#!/usr/bin/env python
 """ Utility for parsing HTML entity definitions available from:
 
       http://www.w3.org/ as e.g.

--- NEW FILE: python-2.2.spec ---
##########################
#  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

#  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 yes
%define config_pymalloc no

#  Enable IPV6?
#WARNING: Commenting out doesn't work.  Last line is what's used.
%define config_ipv6 yes
%define config_ipv6 no

#################################
#  End of user-modifiable configs
#################################

%define name python
%define version 2.2
%define libvers 2.2
%define release 2
%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)

Summary: An interpreted, interactive, object-oriented programming language.
Name: %{name}%{binsuffix}
Version: %{version}
Release: %{release}
Copyright: Modified CNRI Open Source License
Group: Development/Languages
Source: Python-%{version}.tgz
Source1: html-%{version}.tar.bz2
Source2: info-%{version}.tar.bz2
Patch0: Python-2.1-pythonpath.patch
Patch1: Python-2.1-expat.patch
BuildRoot: /var/tmp/%{name}-%{version}-root
BuildPrereq: expat-devel
BuildPrereq: db1-devel
BuildPrereq: gdbm-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 OS/2, 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.

%package docs
Summary: Python-related documentation.
Group: Development/Documentation

%description docs
Documentation relating to the Python programming language in HTML and info
formats.

%changelog
* 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}
%patch0 -p1
%patch1

########
#  BUILD
########
%build
./configure %{ipv6} %{pymalloc} --prefix=%{__prefix}
make

##########
#  INSTALL
##########
%install
#  set the install path
echo '[install_scripts]' >setup.cfg
echo 'install_dir='"${RPM_BUILD_ROOT}/usr/bin" >>setup.cfg

[ -d "$RPM_BUILD_ROOT" -a "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{__prefix}/lib/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|#!.*|#!/usr/bin/env python'%{binsuffix}'|' \
            pydoc.old >pydoc
      chmod 755 pydoc
      rm -f pydoc.old
   )
fi

#  add the binsuffix
if [ ! -z "%{binsuffix}" ]
then
   ( cd $RPM_BUILD_ROOT%{__prefix}/bin; rm -f python[0-9a-zA-Z]*;
         mv -f python python"%{binsuffix}" )
   ( cd $RPM_BUILD_ROOT%{__prefix}/man/man1; mv python.1 python%{binsuffix}.1 )
   ( cd $RPM_BUILD_ROOT%{__prefix}/bin; mv -f pydoc pydoc"%{binsuffix}" )
fi

########
#  Tools
echo '#!/bin/bash' >${RPM_BUILD_ROOT}%{_bindir}/idle%{binsuffix}
echo 'exec %{_prefix}/bin/python%{binsuffix} /usr/lib/python%{libvers}/Tools/idle/idle.py' >>$RPM_BUILD_ROOT%{_bindir}/idle%{binsuffix}
chmod 755 $RPM_BUILD_ROOT%{_bindir}/idle%{binsuffix}
cp -a Tools $RPM_BUILD_ROOT%{_prefix}/lib/python%{libvers}

#  MAKE FILE LISTS
rm -f mainpkg.files
find "$RPM_BUILD_ROOT""%{__prefix}"/lib/python%{libvers}/lib-dynload -type f |
	sed "s|^${RPM_BUILD_ROOT}|/|" |
	grep -v -e '_tkinter.so$' >mainpkg.files
find "$RPM_BUILD_ROOT""%{__prefix}"/bin -type f |
	sed "s|^${RPM_BUILD_ROOT}|/|" |
	grep -v -e '/bin/idle%{binsuffix}$' >>mainpkg.files

rm -f tools.files
find "$RPM_BUILD_ROOT""%{__prefix}"/lib/python%{libvers}/Tools -type f |
	sed "s|^${RPM_BUILD_ROOT}|/|" >tools.files
echo "%{__prefix}"/bin/idle%{binsuffix} >>tools.files

######
# Docs
mkdir -p "$RPM_BUILD_ROOT"/var/www/html/python
(
   cd "$RPM_BUILD_ROOT"/var/www/html/python
   bunzip2 < %{SOURCE1} | tar x
)
mkdir -p "$RPM_BUILD_ROOT"/usr/share/info
(
   cd "$RPM_BUILD_ROOT"/usr/share/info
   bunzip2 < %{SOURCE2} | tar x
)

########
#  CLEAN
########
%clean
rm -fr $RPM_BUILD_ROOT
rm -f mainpkg.files tools.files

########
#  FILES
########
%files -f mainpkg.files
%defattr(-,root,root)
%doc Misc/README Misc/HYPE Misc/cheatsheet Misc/unicode.txt Misc/Porting
%doc LICENSE Misc/ACKS Misc/BLURB.* Misc/HISTORY Misc/NEWS
%{__prefix}/man/man1/python%{binsuffix}.1.gz

%dir %{__prefix}/include/python%{libvers}
%dir %{__prefix}/lib/python%{libvers}/
%{__prefix}/lib/python%{libvers}/*.txt
%{__prefix}/lib/python%{libvers}/*.py*
%{__prefix}/lib/python%{libvers}/pdb.doc
%{__prefix}/lib/python%{libvers}/profile.doc
%{__prefix}/lib/python%{libvers}/curses
%{__prefix}/lib/python%{libvers}/distutils
%{__prefix}/lib/python%{libvers}/encodings
%dir %{__prefix}/lib/python%{libvers}/lib-old
%{__prefix}/lib/python%{libvers}/plat-linux2
%{__prefix}/lib/python%{libvers}/site-packages
%{__prefix}/lib/python%{libvers}/test
%{__prefix}/lib/python%{libvers}/xml
%{__prefix}/lib/python%{libvers}/email
%{__prefix}/lib/python%{libvers}/compiler

%files devel
%defattr(-,root,root)
%{__prefix}/include/python%{libvers}/*.h
%{__prefix}/lib/python%{libvers}/config

%files -f tools.files tools
%defattr(-,root,root)

%if %{include_tkinter}
%files tkinter
%defattr(-,root,root)
%{__prefix}/lib/python%{libvers}/lib-tk
%{__prefix}/lib/python%{libvers}/lib-dynload/_tkinter.so*
%endif

%files docs
%defattr(-,root,root)
/var/www/html/python
/usr/share/info

Index: README
===================================================================
RCS file: /cvsroot/python/python/dist/src/Misc/RPM/README,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** README	2000/10/16 15:34:52	1.1
--- README	2002/01/06 03:29:16	1.2
***************
*** 1,19 ****
  This directory contains support file used to build RPM releases of
! Python. 
  
! beopen-python.spec: 
!     Template for the spec file used to build Python.  The make-spec.sh
!     program below converts fills in the template with current release
!     information. 
! BeOpen-Python-Setup.patch:
!     This patch modifies Setup.in to include many extension modules
!     that compile cleanly on a generic Linux system.
! make-spec.sh:
!     Copies the .spec and .patch files into /usr/src/redhat/SPECS and
!     SOURCES respectively.  The generated versions of these files have
!     version numbers set from the source tree.
! Tkinter:
!     The files in this directory are used to package the _tkinter
!     extension module with distutils.  The src subdirectory should
!     contain copies of _tkinter.c and tkappinit.c from the Modules
!     directory of the source tree.
--- 1,6 ----
  This directory contains support file used to build RPM releases of
! Python.  Its contents are maintained by Sean Reifschneider
! <jafo@tummy.com>.
  
! Note that the patches say "2.1" in the name -- they didn't need to be
! updated for 2.2.

--- BeOpen-Python-Setup.patch DELETED ---

--- beopen-python.spec DELETED ---

--- make-spec.sh DELETED ---