Sophie

Sophie

distrib > Mandriva > 2006.0 > i586 > by-pkgid > a7b080915d3fc020356383c445127c24 > files > 6

bsh2-2.0-0.b1.4jpp.src.rpm

%define name		bsh2
%define orig_name	bsh
%define Name		BeanShell
%define version		2.0
%define fversion	2.0b1
%define frelease	4jpp
%define release		0.b1.%{frelease}
%define section		free

Name:           %{name}
Version:        %{version}
Release:        %{release}
Epoch:		0
Summary:        Lightweight Scripting for Java
License:        LGPL
Url:            http://www.beanshell.org/
Source0:        http://www.beanshell.org/bsh-2.0b1-src.jar
Patch0:		%{name}-build.patch
Patch1:		%{name}-readline.patch
Patch2:		%{name}-asm.patch
Patch3:		%{name}-jedit.patch
Requires:	jpackage-utils >= 0:1.5
BuildRequires:  ant
BuildRequires:	asm
BuildRequires:  bsf
#BuildRequires:  libreadline-java
Group:          Development/Java
Buildarch:      noarch
Buildroot:      %{_tmppath}/%{name}-%{version}-buildroot
Distribution:   JPackage
Vendor:         JPackage Project

%description
BeanShell is a small, free, embeddable, Java source interpreter with
object scripting language features, written in Java. BeanShell executes
standard Java statements and expressions, in addition to obvious
scripting commands and syntax. BeanShell supports scripted objects as
simple method closures like those in Perl and JavaScript(tm).
You can use BeanShell interactively for Java experimentation and
debugging or as a simple scripting engine for your applications. In
short: BeanShell is a dynamically interpreted Java, plus some useful
stuff. Another way to describe it is to say that in many ways BeanShell
is to Java as Tcl/Tk is to C: BeanShell is embeddable - You can call
BeanShell from your Java applications to execute Java code dynamically
at run-time or to provide scripting extensibility for your applications.
Alternatively, you can call your Java applications and objects from
BeanShell; working with Java objects and APIs dynamically. Since
BeanShell is written in Java and runs in the same space as your
application, you can freely pass references to "real live" objects into
scripts and return them as results.

%package bsf
Summary:        BSF support for %{name}
Group:          Development/Java
Requires:	bsf

%description bsf
BSF support for %{name}.

%package classgen
Summary:        ASM support for %{name}
Group:          Development/Java
Requires:	asm

%description classgen
ASM support for %{name}.

%package manual
Summary:        Manual for %{name}
Group:          Development/Java

%description manual
Documentation for %{name}.

%package javadoc
Summary:        Javadoc for %{name}
Group:          Development/Java

%description javadoc
Javadoc for %{name}.

%package demo
Summary:        Demo for %{name}
Group:          Development/Java
AutoReqProv:	no
Requires:       %{name} = %{epoch}:%{version}-%{release}
Requires:	/usr/bin/env

%description demo
Demonstrations and samples for %{name}.

%prep
rm -rf $RPM_BUILD_DIR/META-INF
%setup -n %{Name}
%patch0 -p1
#%patch1 -p1
%patch2 -p1
%patch3 -p1 -b "~"
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
mkdir -p lib
export CLASSPATH=$(build-classpath asm/asm bsf)

# set VERSION
perl -p -i -e 's|VERSION =.*;|VERSION = "%{version}-%{release}";|' src/bsh/Interpreter.java

# remove internal asm code, use JPackage external jar instead
rm -rf src/bsh/org
perl -p -i -e 's|bsh.org.objectweb.asm|org.objectweb.asm|' src/bsh/ClassGeneratorUtil.java

# remove servlet dependency
rm -rf src/bsh/servlet

ant -Dexclude-servlet='bsh/servlet/*' dist javadoc bshdoc
(cd docs/faq && ant)
(cd docs/manual && ant)

%install
rm -rf $RPM_BUILD_ROOT

# jars
install -d -m 755 $RPM_BUILD_ROOT%{_javadir}/%{name}
rm -f dist/%{orig_name}-%{fversion}.jar
rm -f dist/%{orig_name}-%{fversion}-src.jar
for jar in dist/*.jar; do
  install -m 644 ${jar} $RPM_BUILD_ROOT%{_javadir}/%{name}/`basename ${jar} -%{fversion}.jar`-%{version}.jar
done
(cd $RPM_BUILD_ROOT%{_javadir}/%{name} && for jar in *-%{version}*; do ln -sf ${jar} ${jar/-%{version}/}; done)

# manual
find docs -name ".cvswrappers" -exec rm -f {} \;
find docs -name "*.xml" -exec rm -f {} \;
find docs -name "*.xsl" -exec rm -f {} \;
find docs -name "*.log" -exec rm -f {} \;
(cd docs/manual && mv html/* .)
(cd docs/manual && rm -rf html)
(cd docs/manual && rm -rf xsl)
# javadoc
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
cp -pr javadoc/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
# demo
for i in `find tests -name \*.bsh`; do
  perl -p -i -e 's,^\n?#!(/(usr/)?bin/java bsh\.Interpreter|/bin/sh),#!/usr/bin/env %{_bindir}/%{name},' $i
  if head -1 $i | grep '#!/usr/bin/env %{_bindir}/%{name}' >/dev/null; then
    chmod 755 $i
  fi
done
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/%{name}
cp -pr tests $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=bsh.Interpreter
if [ -n "\$BSH_DEBUG" ]; then
  BASE_FLAGS=-Ddebug=true
fi

BASE_JARS="%{name}.jar"

#if [ -f /usr/lib/libJavaReadline.so ]; then
#  BASE_FLAGS="$BASE_FLAGS -Djava.library.path=/usr/lib"
#  BASE_FLAGS="\$BASE_FLAGS -Dbsh.console.readlinelib=GnuReadline"
#  BASE_JARS="\$BASE_JARS libreadline-java.jar"
#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}doc << EOF
#!/usr/bin/env %{_bindir}/%{name}
EOF
cat scripts/bshdoc.bsh >> $RPM_BUILD_ROOT%{_bindir}/%{name}doc

%clean
rm -rf $RPM_BUILD_ROOT
rm -rf $RPM_BUILD_DIR/META-INF

%files
%defattr(0644,root,root,0755)
%doc bsh20announce.txt CVS_branching KNOWNBUGS Notes TODO src/Changes.html src/License.txt src/README.txt
%attr(0755,root,root) %{_bindir}/%{name}
%attr(0755,root,root) %{_bindir}/%{name}doc
%dir %{_javadir}/%{name}
%{_javadir}/%{name}/%{orig_name}-classpath*.jar
%{_javadir}/%{name}/%{orig_name}-commands*.jar
%{_javadir}/%{name}/%{orig_name}-core*.jar
%{_javadir}/%{name}/%{orig_name}-reflect*.jar
%{_javadir}/%{name}/%{orig_name}-util*.jar
%dir %{_datadir}/%{name}

%files bsf
%defattr(0644,root,root,0755)
%{_javadir}/%{name}/%{orig_name}-bsf*.jar

%files classgen
%defattr(0644,root,root,0755)
%{_javadir}/%{name}/%{orig_name}-classgen*.jar

%files manual
%defattr(0644,root,root,0755)
%doc docs/*

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

%files demo
%defattr(0644,root,root,0755)
%{_datadir}/%{name}/*

%changelog
* Tue Jan 27 2004 David Walluck <david@anti-microsoft.org> 0:2.0-0.b1.4jpp
- new jedit patch

* Mon Jan 26 2004 David Walluck <david@anti-microsoft.org> 0:2.0-0.b1.3jpp
- really drop readline patch
- don't add servlet to build classpath

* Sun Jan 25 2004 David Walluck <david@anti-microsoft.org> 0:2.0-0.b1.2jpp
- drop readline patch
- modularize to split out asm and bsf dependencies

* Thu Jan 22 2004 David Walluck <david@anti-microsoft.org> 0:2.0-0.b1.1jpp
- release