Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37569972
en ru br
Репозитории ALT
S:2.7.18-alt11
5.1: 2.5.5-alt0.M51.1
4.1: 2.5.4-alt0.M41.1
4.0: 2.4.5-alt0.M40.1
3.0: 2.4.1-alt5
www.altlinux.org/Changes

Группа :: Разработка/Python
Пакет: python

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

# -*- rpm-spec -*-
# $Id: python24.spec 471 2005-10-03 11:14:29Z cray $

%define real_name               python
Name: %real_name

Version: 2.4.5
Release: alt0.M40.1

%define package_name %real_name
%define weight 1001
%define suffix_ver 2.4
%define require_ver 2.4
%define python_name %real_name%suffix_ver
%define __python_version %suffix_ver
%define __python %_builddir/Python-%version/python
%define nodot_ver 24
# When suffix_ver was removed from real_name
%define noversion_from %suffix_ver-alt1

Summary: An interpreted, interactive object-oriented programming language
License: PSF
Group: Development/Python
URL: http://www.python.org/
Packager: Python Development Team <python at packages.altlinux.org>

Source: ftp://ftp.python.org/pub/python/%version/Python-%version.tar.bz2
Source1: http://www.python.org/ftp/python/doc/%version/info-2.4.4.tar.bz2
Source2: koi8_u.py
Source3: modules-list-%version.tar.gz
Source4: http://rgruet.free.fr/PQR%nodot_ver/PQR%suffix_ver.html.tar.gz
Source5: PQR%{suffix_ver}_classic_a4.pdf

Patch1: python-2.4.4-deb-setup.patch
Patch2: python-2.4.4-deb-distutils-link.patch
Patch3: python-2.4.4-deb-locale-module.patch
Patch4: python-2.4.4-deb-PyLocale_strxfrm.patch

Patch11: Python-2.3-alt-compileall.patch
Patch12: Python-2.4.3-alt-tinfo.patch
Patch13: python-2.4.4-alt-TextTools.patch
#Patch15: python-info-2.4.patch
# x64 patches
Patch16: python-2.3.4-lib64-regex.patch
Patch17: python-2.4.4-alt-lib64.patch
# this seems to be unneeded in 2.4.4, but works fine:
Patch18: python-2.4.1-canonicalize.patch
# theese are taken from FC
Patch19: python-2.4-alt-gen-assert.patch
Patch20: python-2.4-alt-webbrowser.patch
# non-standard /usr/doc dehack
Patch21: python-2.4.4-alt-sharedoc.patch
# use system libexpat library
Patch22: python-2.4.4-alt-expat.patch
# link python extensions with libpython
Patch23: python-2.4.4-svn-linkage.patch
# raise fatal error when extension fails to load
Patch24: python-2.4.4-alt-setup-PyBuildExt-raise.patch
# dbm.so module should be linked with -lgdbm_compat
Patch25: python-2.4.4-alt-dbm-gdbm_compat.patch

# XXX ignore pydoc dependencies for now

%add_findreq_skiplist %_bindir/pydoc*

# this package python = %version-%release requires all standard python modules

# package python = %require_ver is provided by python-strict and python-relaxed
Requires: %name-base = %version-%release
Requires: %name-modules %name-modules-encodings
Requires: %name-modules-curses %name-modules-xml %name-modules-compiler
Requires: %name-modules-email %name-modules-hotshot %name-modules-bsddb
Requires: %name-modules-logging

BuildPreReq: rpm >= 4.0.4-alt36.d8, rpm-build-python >= 0.29-alt3
BuildPreReq: emacs-nox
# Automatically added by buildreq on Sun Apr 08 2007
BuildRequires: bzlib-devel gcc-c++ libdb4-devel libexpat-devel libgdbm-devel libncursesw-devel libreadline-devel libssl-devel tk-devel zlib-devel

%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.

%package strict
Summary: Python with strict conflicts: using other pythons are prohibited
Group: Development/Python
Requires: %name = %version-%release
Provides: %real_name = %require_ver
Provides: %name-strict = %version-%release
Conflicts: %name-relaxed
Conflicts: python22
Conflicts: python = 2.2
Conflicts: python23
Conflicts: python = 2.3
Obsoletes: %python_name-strict <= %noversion_from

%description strict
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).

This is a python with strict conflicts: using other pythons are prohibited.

%package relaxed
Summary: Python with relaxed conflicts: using with python22 are allowed
Group: Development/Python
PreReq: alternatives >= 0.2.0
Requires: %name = %version-%release
Provides: %real_name = %require_ver
Provides: %name-relaxed = %version-%release
Conflicts: %name-strict
Obsoletes: %python_name-relaxed <= %noversion_from

%description relaxed
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).

This is a python with relaxed conflicts: using with python22 are allowed.

%package base
Summary: Base python modules and executables
Group: Development/Python
Provides: /usr/bin/python
Provides: %python_name(os.path)
Provides: %python_name(pwd)
Obsoletes: %python_name-base <= %noversion_from
%description base
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).

This package contains base python modules and executables.

%package modules
Summary: Standard python modules
Group: Development/Python
Requires: %name-base = %version-%release
Obsoletes: %python_name-modules <= %noversion_from

%description modules
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 this package if you want to develop Python extensions.  The
%name package will also need to be installed.  You'll probably also
want to install the python-docs package, which contains Python
documentation.

%package modules-encodings
Summary: Python "encodings" module
Group: Development/Python
Requires: %name-base = %version-%release
Obsoletes: %python_name-modules-encodings <= %noversion_from

%description modules-encodings
Standard Python encoding modules are provided by this package.

Codec modules have names corresponding to normalized encoding
names, e.g. 'utf-8' is implemented by the module 'utf_8.py'.

%package obsolete
Summary: Obsoleted python modules
Group: Development/Python
Requires: %name-base = %version-%release
Obsoletes: %python_name-obsolete  <= %noversion_from

%description obsolete
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).

This package contains obsolete python modules.

%package modules-curses
Summary: Python "curses" module
Group: Development/Python
Requires: %name-base = %version-%release
Obsoletes: %python_name-modules-curses

%description modules-curses
An interface to the curses library, providing portable terminal
handling. The Curses module provides an interface to the curses library, the
de-facto standard for portable advanced terminal handling.
This extension module is designed to match the API of ncurses, an
open-source curses library hosted on Linux and the BSD variants of UNIX.

%package modules-xml
Summary: Core XML support for Python
Group: Development/Python
Requires: %name-base = %version-%release
Obsoletes: %python_name-modules-xml <= %noversion_from

%description modules-xml
This package contains three sub-packages:

dom -- The W3C Document Object Model.  This supports DOM Level 1 +
      Namespaces.

parsers -- Python wrappers for XML parsers (currently only supports Expat).

sax -- The Simple API for XML, developed by XML-Dev, led by David Megginson
      and ported to Python by Lars Marius Garshol.  This supports the SAX 2
      API.

%package modules-compiler
Summary: Package for parsing and compiling Python source code
Group: Development/Python
Requires: %name-base = %version-%release
Obsoletes: %python_name-modules-compiler <= %noversion_from

%description modules-compiler
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).

This is a package for parsing and compiling Python source code.

%package modules-email
Summary: A package for parsing, handling, and generating email messages
Group: Development/Python
Requires: %name-base = %version-%release
Obsoletes: %python_name-modules-email <= %noversion_from

%description modules-email
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).

This is a package for parsing, handling, and generating email messages.

%package modules-hotshot
Summary: High-perfomance logging profiler, mostly written in C
Group: Development/Python
Requires: %name-base = %version-%release
Obsoletes: %python_name-modules-hotshot <= %noversion_from

%description modules-hotshot
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).

This package contains high-perfomance logging profiler.

%package modules-bsddb
Summary: Support for BerkeleyDB 3.2 through 4.2
Group: Development/Python
Requires: %name-base = %version-%release
Obsoletes: %python_name-modules-bsddb <= %noversion_from

%description modules-bsddb
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).

This package contains BerkeleyDB support modules.

%package modules-logging
Summary: Logging package for Python
Group: Development/Python
Requires: %name-base = %version-%release
Obsoletes: %python_name-modules-logging <= %noversion_from

%description modules-logging
Logging package for Python. Based on PEP 282 and comments thereto in
comp.lang.python, and influenced by Apache's log4j system.

%package dev
Summary: The libraries and header files needed for Python development
Group: Development/Python
Requires: %name = %version-%release
Provides: %real_name-devel = %require_ver
Obsoletes: %python_name-modules-dev <= %noversion_from

%description dev
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 this package if you want to develop Python extensions.  The
%name package will also need to be installed.  You'll probably also
want to install the python-docs package, which contains Python
documentation.

%package test
Summary: Test suite for standard python modules
Group: Development/Python
Requires: %name-base = %version-%release
AutoReqProv: yes, nopython
Obsoletes: %python_name-test <= %noversion_from

%description test
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).

This package contains test suite for standard python modules.

%package tools-i18n
Summary: Scripts to provide i18n support for developers
Group: Development/Python
Obsoletes: %python_name-tools-i18n <= %noversion_from

%description tools-i18n
Package provide pygettext and pymsgfmt scripts.
pygettext uses Python's standard tokenize module to scan
Python source code, generating .pot files identical to what GNU xgettext
generates for C and C++ code.

%package tools-webchecker
Summary: This is a simple web tree checker
Group: Development/Python
Obsoletes: %python_name-tools-webchecker <= %noversion_from

%description tools-webchecker
This is a simple web tree checker, useful to find bad links in a web
tree.  It currently checks links pointing within the same subweb for
validity.  The main program is "webchecker.py".  Invoke it with the
option "-?") for more defails.

%package tools-modulator
Summary: The modulator script
Group: Development/Python
Obsoletes: %python_name-tools-modulator <= %noversion_from

%description tools-modulator
The modulator script provides a simple graphical user interface for declaring the
functions and objects which a module should implement, and can generate a
template which can be filled in.

%package tools-pynche
Summary: The PYthonically Natural Color and Hue Editor
Group: Development/Python

Obsoletes: %python_name-tools-pynche <= %noversion_from

%description tools-pynche
Pynche is a color editor based largely on a similar program that I
originally wrote back in 1987 for the Sunview window system.  That editor
was called ICE, the Interactive Color Editor.  I'd always wanted to port
this program to X but didn't feel like hacking X and C code to do it.  Fast
forward many years, to where Python + Tkinter provides such a nice
programming environment, with enough power, that I finally buckled down and
re-implemented it.  I changed the name because these days, too many other
systems have the acronym CE'.

%package tools-idle
Summary: An Integrated Development Environment for Python
Group: Development/Python

Obsoletes: %python_name-tools-idle <= %noversion_from

%description tools-idle
IDLE is a basic editor and interpreter environment that ships with the
standard distribution of Python.  Good for beginners, it also serves as
clear example code for those wanting to implement a moderately
sophisticated, multi-platform GUI application.

%package tools-scripts
Summary: A collection of executable Python scripts from main distribution
Group: Development/Python

Obsoletes: %python_name-scripts-idle <= %noversion_from

%description tools-scripts
This package contains a collection of executable Python scripts that
are useful while building, extending or managing Python.  Some (e.g.,
dutree or lll) are also generally useful UNIX tools.

%package modules-tkinter
Summary: A graphical user interface for the Python scripting language
Group: Development/Python
Requires: %name-base = %version-%release
Requires: tk
PreReq: alternatives >= 0.2.0
Provides: tkinter = %require_ver

Obsoletes: %python_name-modules-tkinter <= %noversion_from

%description modules-tkinter
The Tkinter (Tk interface) program is an graphical user interface for
the Python scripting language.

You should install this package if you'd like to use a graphical
user interface for Python programming.

%package info
Summary: Info documentation for the Python scripting language
Group: Development/Python

Obsoletes: %python_name-info <= %noversion_from

%description info
This archive contains the standard Python documentation in GNU info
format.  Thanks go to Milan Zamazal <pdm at zamazal.org> for providing this
conversion to the info format.

Questions and comments on these documents should be directed to
docs at python.org.

%package devel-static
Summary: Static python library for products with embeded python
Group: Development/Python

Obsoletes: %python_name-devel-static <= %noversion_from

%description devel-static
Python provides two kind of python-library to build application with
embedded-python capability. Using of shared library is preffered and
static library is obsoleted. This package are content static library and
intend only for some stupid application (configure scripts?) that can't
be linked with shared library.

%prep
%setup -q -n Python-%version
%undefine _python_compile_skip_x
mkdir info
tar -C info -xf %SOURCE1
tar -xf %SOURCE3

cp %SOURCE5 PQR%suffix_ver.pdf

mkdir PQR%suffix_ver
tar -C PQR%suffix_ver -xf %SOURCE4

%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1

%patch11 -p1
%patch12 -p1
%patch13 -p1
#patch -p1 -dinfo <%PATCH15

%patch18 -p1
%patch19 -p0
%patch20 -p0
%patch21 -p1
%patch22 -p1
rm -r Modules/expat
%patch23 -p1
%patch24 -p1
%patch25 -p1

%ifarch x86_64
%patch16 -p1
%patch17 -p1
%endif

find -type f \( -name \*~ -o -name \*.orig \) -print0 |
xargs -r0 rm -f --

find -type f -print0 |
   xargs -r0 grep -FZl -- /usr/local/bin/python |
   xargs -r0 sed -i 's at /usr/local/bin/python at /usr/bin/python at ' --

%build
%add_optflags %optflags_shared -D_GNU_SOURCE
export OPT="$RPM_OPT_FLAGS"
libtoolize --copy --force
autoconf
%configure --with-threads --with-cycle-gc --with-libdb --enable-shared

%make_build LDFLAGS=-L$PWD
%if_with test
make test
%endif
bzip2 info/python*info*
cat > info/python%nodot_ver.dir <<EOF
INFO-DIR-SECTION Development/Python
START-INFO-DIR-ENTRY
EOF
cat info/python.dir >> info/python%nodot_ver.dir
cat >> info/python%nodot_ver.dir <<EOF
END-INFO-DIR-ENTRY
EOF

%install
%__mkdir_p %buildroot%_mandir
%__mkdir_p %buildroot%_infodir
%__mkdir_p %buildroot%prefix/lib/%python_name/site-packages
install info/python*bz2 info/python%nodot_ver.dir %buildroot%_infodir

#  set the install path

echo '[install_scripts]' >setup.cfg
echo 'install_dir='"%buildroot%_bindir" >>setup.cfg

export LD_LIBRARY_PATH=%buildroot%_libexecdir:$LD_LIBRARY_PATH
%makeinstall MANDIR=%buildroot%_mandir INCLUDEDIR=%buildroot%_includedir
install %SOURCE2 %buildroot%_libdir/%python_name/encodings

# cray : hack for hotshot

rm %buildroot%_libdir/%python_name/hotshot/stones.py*
# cray : hack for distutils
rm %buildroot%_libdir/%python_name/distutils/mwerkscompiler.py*

# hack for pydoc

mv %buildroot%_bindir/pydoc %buildroot%_bindir/pydoc%suffix_ver

# emacs, I use it, I want it

install -pD -m644 Misc/python-mode.el %buildroot%_emacslispdir/python-mode%suffix_ver.el
emacs -batch --no-site-file -f batch-byte-compile %buildroot%_emacslispdir/python-mode%suffix_ver.el
%__mkdir_p %buildroot%_sysconfdir/emacs/site-start.d
cat <<EOF >%buildroot%_sysconfdir/emacs/site-start.d/python.el-%suffix_ver
(setq auto-mode-alist (cons '("\\\\.py$" . python-mode) auto-mode-alist))
(autoload 'python-mode "python-mode%suffix_ver" "Mode for python files." t)
EOF

# idle

cat <<EOF >%buildroot%python_libdir/idlelib/idle - %buildroot%python_libdir/idlelib/idle.py
#! /usr/bin/%python_name
EOF

ln -sf %python_libdir/idlelib/idle %buildroot%_bindir/idle%suffix_ver
chmod +x %buildroot%python_libdir/idlelib/idle

%__mkdir_p %buildroot%python_tooldir
# modulator
cp -r Tools/modulator %buildroot%_libdir/%python_name/tools/
ln -sf %_libdir/%python_name/tools/modulator/modulator.py %buildroot%_bindir/modulator%suffix_ver

# pynche

rm -f Tools/pynche/*.pyw
cp -r Tools/pynche %buildroot%_libdir/%python_name/tools/
ln -sf %_libdir/%python_name/tools/pynche/pynche %buildroot%_bindir/pynche%suffix_ver

cp Tools/i18n/*.py %buildroot%_libdir/%python_name/tools/
ln -sf %_libdir/%python_name/tools/pygettext.py %buildroot%_bindir/pygettext
ln -sf %_libdir/%python_name/tools/msgfmt.py %buildroot%_bindir/pymsgfmt

cp -r Tools/webchecker/ %buildroot%_libdir/%python_name/tools/
for item in wcgui.py webchecker.py  websucker.py  wsgui.py; do
  ln -sf %_libdir/%python_name/tools/webchecker/$item %buildroot%_bindir/$(basename $item .py) #%%dirver
done

ln -f Tools/modulator/README Tools/modulator/README.modulator
ln -f Tools/pynche/README Tools/pynche/README.pynche

# Tools/scripts

install -m 755 Tools/scripts/*.py %buildroot%_libdir/%python_name/tools/
( cd Tools/scripts; ls *.py ) | sed 's at ^ at %_libdir/%python_name/tools/ at ;p;s/$/o/p;s/o$/c/' > .TOOLS_SCRIPTS

rm -f modules-list.full
for n in %buildroot%_libdir/%python_name/*; do
 [ -d "$n" ] || echo "$n"
done >> modules-list.full

echo >modules-exclude
for list in modules-list/*-list modules-list/base-list; do
   name=$(basename $list).tmp
   cat $list >$name
   grep "py$" $list|sed -e "s|.*|&c|g" >>$name
   grep "py$" $list|sed -e "s|.*|&o|g" >>$name
   sed <$name -e "s|^|%_libdir/%python_name/|g"|tee $(basename $list)
done | sort  > modules-exclude

for mod in %buildroot%_libdir/%python_name/lib-dynload/*; do
 [ `basename $mod` = _tkinter.so ] || echo "$mod"
done >> modules-list.full
sed -e "s|%buildroot||g" <modules-list.full |sort|comm -23 - modules-exclude >other-list

# menu support

%__mkdir_p %buildroot%_menudir
cat > %buildroot%_menudir/idle%version << EOF
#?package(%real_name): needs=text section="Applications/Development/Interpreters" title=Python command=python
#?package(%name-tools-idle): needs="gnome" section="Applications/Development/Development environments" title="IDLE" \
longtitle="IDE for Python %version" command="NO_XALF %_bindir/idle" icon="development_section.xpm"
?package(%name-tools-idle): needs=x11 section="Applications/Development/Development environments" title="IDLE" \
longtitle="IDE for Python %version" command="%_bindir/idle" icon="development_section.xpm"
EOF

#alternatives support

install -d %buildroot%_altdir
#main package
cat > %buildroot%_altdir/%python_name <<EOF
%_bindir/%real_name %_bindir/%python_name %weight
%_bindir/pydoc %_bindir/pydoc%suffix_ver %_bindir/%python_name
%_sysconfdir/emacs/site-start.d/python.el %_sysconfdir/emacs/site-start.d/python.el-%suffix_ver %_bindir/%python_name
EOF

#tkinter package

>%buildroot%_altdir/%python_name-modules-tkinter
for n in idle modulator pynche
do
cat <<EOF
%_bindir/$n %_bindir/${n}%suffix_ver %weight
EOF
done > %buildroot%_altdir/%python_name-modules-tkinter

chmod -x %buildroot%_libdir/%python_name/test/*.py*

find %buildroot -type f -print0 |
xargs -r0 %__grep -FZl -- %buildroot |
xargs -r0 %__subst -- "s|%buildroot||g"

%__mkdir_p %buildroot%_sysconfdir/buildreqs/packages/substitute.d
echo %real_name >%buildroot%_sysconfdir/buildreqs/packages/substitute.d/%name
echo %real_name-devel >%buildroot%_sysconfdir/buildreqs/packages/substitute.d/%name-devel
echo %real_name-devel >%buildroot%_sysconfdir/buildreqs/packages/substitute.d/%name-dev
echo tkinter >%buildroot%_sysconfdir/buildreqs/packages/substitute.d/%python_name-modules-tkinter
chmod 644 %buildroot%_sysconfdir/buildreqs/packages/substitute.d/*

%__mkdir_p %buildroot%_sysconfdir/buildreqs/files/ignore.d
cat > %buildroot%_sysconfdir/buildreqs/files/ignore.d/%name << EOF
^%_libdir/python[^/]*/site-packages(/.+\.pth)?$
EOF

cat >> python.sh <<EOF
#! /bin/bash
export LD_LIBRARY_PATH=%_builddir/Python-%version
%_builddir/Python-%version/python "\$ at "
EOF
chmod +x python.sh

%define __python %_builddir/Python-%version/python.sh
%define _python_lib_path %(RPM_BUILD_ROOT=%buildroot LD_LIBRARY_PATH=%buildroot%_libdir %buildroot%_bindir/python -c "import sys,os; path=os.path.normpath(os.environ['RPM_BUILD_ROOT']) ; print ' '.join([ x[len(path):] for x in [ os.path.normpath(x) for x in sys.path] if x[0:len(path)]==path])")
%add_python_req_skip bundlebuilder
mv %buildroot{%_libdir/%python_name/config/lib%python_name.a,%_libdir/lib%python_name.a}
mv %buildroot{%_mandir/man1/python.1,%_mandir/man1/%python_name.1}

%post base
[ -e /usr/bin/python ] || ln -snf %python_name /usr/bin/python
[ -e /usr/bin/pydoc ] || ln -snf pydoc%suffix_ver /usr/bin/pydoc

%post strict
ln -sf %python_name /usr/bin/python
ln -sf pydoc%suffix_ver /usr/bin/pydoc
ln -sf python.el-%suffix_ver %_sysconfdir/emacs/site-start.d/python.el

%post relaxed
%register_alternatives %python_name -- python pydoc

%triggerpostun strict -- python22, python23, python-relaxed, %python_name-relaxed, python2.3, python2.3-relaxed
ln -sf pydoc%suffix_ver /usr/bin/pydoc
ln -sf %python_name /usr/bin/python
ln -sf python.el-%suffix_ver %_sysconfdir/emacs/site-start.d/python.el
for n in idle modulator pynche; do
 ln -sf ${n}%suffix_ver %_bindir/$n
done

%preun relaxed
%unregister_alternatives %python_name

%post modules-tkinter
%register_alternatives %python_name-modules-tkinter -- idle modulator pynche

%post tools-idle
%update_menus

%preun modules-tkinter
%unregister_alternatives %python_name-modules-tkinter

%postun tools-idle
%clean_menus

%postun relaxed
%post info
/usr/sbin/install_info python%nodot_ver.dir

%preun info
/usr/sbin/uninstall_info python-dist
/usr/sbin/uninstall_info python-api
/usr/sbin/uninstall_info python-ext
/usr/sbin/uninstall_info python-lib
/usr/sbin/uninstall_info python-mac
/usr/sbin/uninstall_info python-ref
/usr/sbin/uninstall_info python-tut
/usr/sbin/uninstall_info python-whatsnew%nodot_ver

%files

%files strict

%files relaxed
# should not provide /usr/bin/python
%add_findprov_skiplist %_altdir/%python_name
%_altdir/%python_name

%files base -f base-list
%_emacslispdir/python-mode%suffix_ver.el*
%config(noreplace) %_sysconfdir/emacs/site-start.d/python.el-%suffix_ver
%_mandir/man?/*
%config %_sysconfdir/buildreqs/packages/substitute.d/%name
%config %_sysconfdir/buildreqs/files/ignore.d/%name
%_bindir/%python_name
%_bindir/pydoc%suffix_ver
%dir %_libdir/%python_name
%dir %_libdir/%python_name/lib-dynload
%dir %_libdir/%python_name/site-packages
%_libdir/lib%python_name.so.*
%doc LICENSE
%doc Misc/{HISTORY,NEWS,cheatsheet}
%if "lib" != "%_lib"
%prefix/lib/%python_name
%endif


%files modules -f other-list
%_libdir/%python_name/plat-linux2

%files modules-curses -f modules-curses-list
%_libdir/%python_name/curses

%files modules-xml -f modules-xml-list
%_libdir/%python_name/xml

%files modules-compiler -f modules-compiler-list
%_libdir/%python_name/compiler

%files modules-email -f modules-email-list
%dir %_libdir/%python_name/email
%_libdir/%python_name/email/*py
%_libdir/%python_name/email/*pyc
%_libdir/%python_name/email/*pyo

%files modules-hotshot -f modules-hotshot-list
%_libdir/%python_name/hotshot

%files modules-bsddb -f modules-bsddb-list
%dir %_libdir/%python_name/bsddb
%_libdir/%python_name/bsddb/*py
%_libdir/%python_name/bsddb/*pyc
%_libdir/%python_name/bsddb/*pyo

%files modules-logging -f modules-logging-list
%_libdir/%python_name/logging

%files modules-encodings -f modules-encodings-list
%_libdir/%python_name/encodings

%files obsolete
%_libdir/%python_name/lib-old

%files tools-idle
%_libdir/%python_name/idlelib
%_bindir/idle%suffix_ver
%doc Lib/idlelib/README.txt Lib/idlelib/NEWS.txt Lib/idlelib/HISTORY.txt Lib/idlelib/CREDITS.txt
%_menudir/idle%version

%files tools-pynche
%_libdir/%python_name/tools/pynche
%_bindir/pynche%suffix_ver
%doc Tools/pynche/README

%files tools-modulator
%_libdir/%python_name/tools/modulator
%_bindir/modulator%suffix_ver
%doc Tools/modulator/README Tools/modulator/EXAMPLE.py

%files tools-i18n
%_libdir/%python_name/tools/pygettext.py
%_libdir/%python_name/tools/msgfmt.py
%_bindir/pygettext
%_bindir/pymsgfmt

%files tools-webchecker
%_libdir/%python_name/tools/webchecker/*.py*
%_bindir/wcgui
%_bindir/webchecker
%_bindir/websucker
%_bindir/wsgui
%doc Tools/webchecker/README

%files tools-scripts -f .TOOLS_SCRIPTS
%doc Tools/scripts/README Tools/scripts/dutree.doc

%files dev
%config %_sysconfdir/buildreqs/packages/substitute.d/%name-devel
%config %_sysconfdir/buildreqs/packages/substitute.d/%name-dev
%_includedir/%python_name
%_libdir/%python_name/config
%_libdir/%python_name/distutils
%exclude %_libdir/%python_name/distutils/tests
%_libdir/lib%python_name.so

%files test
%_libdir/%python_name/test
%_libdir/%python_name/email/test
%_libdir/%python_name/bsddb/test
%_libdir/%python_name/distutils/tests

%files info
/usr/share/info/*
%doc Lib/*.doc
%doc PQR%suffix_ver.pdf PQR%suffix_ver/*

%files devel-static
%_libdir/lib%python_name.a

%files modules-tkinter
%config %_sysconfdir/buildreqs/packages/substitute.d/%python_name-modules-tkinter
%_altdir/%python_name-modules-tkinter
%_libdir/%python_name/lib-tk
%_libdir/%python_name/lib-dynload/_tkinter.so

%changelog

Полный changelog можно просмотреть здесь

 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin