File jython.spec of Package jython

#
# spec file for package jython (Version 2.2)
#
# Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

# norootforbuild

Name:           jython
BuildRequires:  ant ht2html java2-devel-packages libreadline-java mysql-connector-java oro pyxml servletapi5
%{expand: %%define pyver %(python -c 'import sys;print(sys.version[0:3])')}
%define name		jython
%define version		2.2
%define cpython_version	2.3
%define cpythondir	python%{cpython_version}
%define pyxml_version	0.8.3
%define release		0.a0.2jpp
%define section		free
Version:        2.2
Release:        24
Summary:        Java Source Interpreter
License:        Other uncritical OpenSource License
URL:            http://www.jython.org/
Source0:        %{name}-cvs.tar.bz2
Source1:        python-release22-maint-cvs.tar.bz2
Patch0:         %{name}-cachedir.patch
Requires:       jpackage-utils >= 0:1.5
Requires:       oro
Requires:       servlet
Group:          Development/Libraries/Java
Buildarch:	noarch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
Jython is an implementation of the high-level, dynamic, object-oriented
language Python seamlessly integrated with the Java platform. The
predecessor to Jython, JPython, is certified as 100% Pure Java. Jython
is freely available for both commercial and noncommercial use and is
distributed with source code. Jython is complementary to Java and is
especially suited for the following tasks: Embedded scripting--Java
programmers can add the Jython libraries to their system to allow end
users to write simple or complicated scripts that add functionality to
the application. Interactive experimentation--Jython provides an
interactive interpreter that can be used to interact with Java packages
or with running Java applications. This allows programmers to
experiment and debug any Java system using Jython. Rapid application
development--Python programs are typically 2-10X shorter than the
equivalent Java program. This translates directly to increased
programmer productivity. The seamless interaction between Python and
Java allows developers to freely mix the two languages both during
development and in shipping products.



%package manual
Summary:        Manual for jython
Group:          Development/Libraries/Java

%description manual
This package contains the manual for Jython.

Jython is an implementation of the high-level, dynamic, object-oriented
language Python seamlessly integrated with the Java platform. The
predecessor to Jython, JPython, is certified as 100% Pure Java. Jython
is freely available for both commercial and non-commercial use and is
distributed with source code. Jython is complementary to Java and is
especially suited for the following tasks: Embedded scripting - Java
programmers can add the Jython libraries to their system to allow end
users to write simple or complicated scripts that add functionality to
the application. Interactive experimentation - Jython provides an
interactive interpreter that can be used to interact with Java packages
or with running Java applications. This allows programmers to
experiment and debug any Java system using Jython. Rapid application
development - Python programs are typically 2-10X shorter than the
equivalent Java program. This translates directly to increased
programmer productivity. The seamless interaction between Python and
Java allows developers to freely mix the two languages both during
development and in shipping products.



%package javadoc
PreReq:         coreutils
Summary:        Javadoc for jython
Group:          Development/Libraries/Java

%description javadoc
This package contains the javadoc documentation for jython.

Jython is an implementation of the high-level, dynamic, object-oriented
language Python seamlessly integrated with the Java platform. The
predecessor to Jython, JPython, is certified as 100% Pure Java. Jython
is freely available for both commercial and non-commercial use and is
distributed with source code. Jython is complementary to Java and is
especially suited for the following tasks: Embedded scripting - Java
programmers can add the Jython libraries to their system to allow end
users to write simple or complicated scripts that add functionality to
the application. Interactive experimentation - Jython provides an
interactive interpreter that can be used to interact with Java packages
or with running Java applications. This allows programmers to
experiment and debug any Java system using Jython. Rapid application
development - Python programs are typically 2-10X shorter than the
equivalent Java program. This translates directly to increased
programmer productivity. The seamless interaction between Python and
Java allows developers to freely mix the two languages both during
development and in shipping products.



%package demo
Summary:        Demonstration and samples for jython
Requires:       %{name} = %{version}-%{release}
Group:          Development/Libraries/Java

%description demo
This package contains demonstration and sample files for Jython.

Jython is an implementation of the high-level, dynamic, object-oriented
language Python seamlessly integrated with the Java platform. The
predecessor to Jython, JPython, is certified as 100% Pure Java. Jython
is freely available for both commercial and non-commercial use and is
distributed with source code. Jython is complementary to Java and is
especially suited for the following tasks: Embedded scripting - Java
programmers can add the Jython libraries to their system to allow end
users to write simple or complicated scripts that add functionality to
the application. Interactive experimentation - Jython provides an
interactive interpreter that can be used to interact with Java packages
or with running Java applications. This allows programmers to
experiment and debug any Java system using Jython. Rapid application
development - Python programs are typically 2-10X shorter than the
equivalent Java program. This translates directly to increased
programmer productivity. The seamless interaction between Python and
Java allows developers to freely mix the two languages both during
development and in shipping products.



%prep
%setup -q -n %{name}
%setup -q -n %{name} -T -D -a 1
%patch0 -p1
# remove all binary libs
find . -name "*.jar" -exec rm -f {} \;
# remove all CVS files
for dir in `find . -type d -name CVS`; do rm -rf $dir; done
for file in `find . -type f -name .cvsignore`; do rm -rf $file; done

%build
export CLASSPATH=$(build-classpath libreadline-java mysql-connector-java oro servlet)
rm -rf org/apache
if ! grep -q "javac.*source=" build.xml ; then
  perl -p -i -e 's|<javac |<javac source=\"1.4\" |' build.xml
  perl -p -i -e 's|<javadoc |<javadoc source=\"1.4\" |' build.xml
fi
if ! grep -q "javac.*source=" dist/build.xml ; then
  perl -p -i -e 's|<javac |<javac source=\"1.4\" |' dist/build.xml
  perl -p -i -e 's|<javadoc |<javadoc source=\"1.4\" |' dist/build.xml
fi
perl -p -i -e 's|execon|apply|g' build.xml
#ant -Dpython.lib=/usr/%_lib/python%pyver -DPyXmlHome=/usr/%_lib/python%pyver copy-dist
ant -Dpython.lib=./python/dist/src/Lib -DPyXmlHome=/usr/%_lib/python%pyver copy-dist
ant -Dpython.home=%{_bindir} -Dht2html.dir=%{_datadir}/ht2html doc
ant javadoc

%install
# jar
install -d -m 755 $RPM_BUILD_ROOT%{_javadir}
install -m 644 dist/%{name}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
(cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}*; do ln -sf ${jar} ${jar/-%{version}/}; done)
# manual
rm -f Doc/Makefile
rm -rf Doc/api
# javadoc
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
cp -pr dist/Doc/javadoc/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
# data
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/%{name}
# these are not supposed to be distributed
find dist/Lib -type d -name test | xargs rm -rf
cp -pr dist/Lib $RPM_BUILD_ROOT%{_datadir}/%{name}
cp -pr dist/Tools $RPM_BUILD_ROOT%{_datadir}/%{name}
cp -pr dist/Demo $RPM_BUILD_ROOT%{_datadir}/%{name}
# registry
install -m 644 registry $RPM_BUILD_ROOT%{_datadir}/%{name}
# scripts
install -d $RPM_BUILD_ROOT%{_bindir}
cat > $RPM_BUILD_ROOT%{_bindir}/%{name} << EOF
#!/bin/sh
#
# %{name} script
# JPackage Project (http://jpackage.sourceforge.net)
# Source functions library
. %{_datadir}/java-utils/java-functions
# Source system prefs
if [ -f %{_sysconfdir}/%{name}.conf ] ; then
  . %{_sysconfdir}/%{name}.conf
fi
# Source user prefs
if [ -f \$HOME/.%{name}rc ] ; then
  . \$HOME/.%{name}rc
fi
# Configuration
MAIN_CLASS=org.python.util.%{name}
BASE_FLAGS=-Dpython.home=%{_datadir}/%{name}
BASE_JARS="%{name} oro servlet"
if [ -f %{_libdir}/libJavaReadline.so ]; then
  BASE_FLAGS="\$BASE_FLAGS -Dpython.console=org.python.util.ReadlineConsole"
  BASE_FLAGS="\$BASE_FLAGS -Djava.library.path=%{_libdir}"
  BASE_FLAGS="\$BASE_FLAGS -Dpython.console.readlinelib=GnuReadline"
  BASE_JARS="\$BASE_JARS libreadline-java"
fi
if [ -f %{_javadir}/mysql-connector-java.jar ]; then
  BASE_JARS="\$BASE_JARS mysql-connector-java"
fi
# Set parameters
set_jvm
set_classpath \$BASE_JARS
set_flags \$BASE_FLAGS
set_options \$BASE_OPTIONS
# Let's start
run "\$@"
EOF
cat > $RPM_BUILD_ROOT%{_bindir}/%{name}c << EOF
#!/bin/sh
#
# %{name}c script
# JPackage Project (http://jpackage.sourceforge.net)
%{_bindir}/%{name} %{_datadir}/%{name}/Tools/%{name}c/%{name}c.py "\$@"
EOF
rm -f $RPM_BUILD_ROOT%{_datadir}/%{name}/Lib/UserDict.py

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root)
%doc ACKNOWLEDGMENTS NEWS LICENSE.txt README.txt
%attr(0755,root,root) %{_bindir}/%{name}
%attr(0755,root,root) %{_bindir}/%{name}c
%{_javadir}/*
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/Lib
%{_datadir}/%{name}/Tools
%{_datadir}/%{name}/registry

%files manual
%defattr(-,root,root)
%doc dist/Doc/*.html dist/Doc/images

%files javadoc
%defattr(-,root,root)
%{_javadocdir}/%{name}-%{version}

%files demo
%defattr(-,root,root)
%{_datadir}/%{name}/Demo

%changelog -n jython
* Sun Sep 17 2006 - ro@suse.de
- set source=1.4 for java
* Wed Jan 25 2006 - mls@suse.de
- converted neededforbuild to BuildRequires
* Sun Sep 11 2005 - ro@suse.de
- remove epoch leftover
* Thu Jul 28 2005 - jsmeix@suse.de
- Adjustments in the spec file.
* Mon Jul 25 2005 - jsmeix@suse.de
- Current version 2.2 from JPackage.org
* Wed Sep 08 2004 - ro@suse.de
- fix lib64 issue
* Thu Sep 02 2004 - skh@suse.de
- Initial package created with version 2.2 (JPackage 1.5)
openSUSE Build Service is sponsored by