%define name bsh %define Name BeanShell %define version 1.3.0 %define fversion 1.3.0 %define release 5jpp_1fc.1.1 %define section free Name: %{name} Version: %{version} Release: %{release}.1.1 Epoch: 0 Summary: Lightweight Scripting for Java License: LGPL Source0: %{name}-%{fversion}-src.tar.bz2 Patch0: %{name}-build.patch Patch1: %{name}-readline.patch Requires: bsf Requires: jpackage-utils >= 0:1.5 BuildRequires: ant bsf #BuildRequires: libreadline-java Url: http://www.beanshell.org/ Group: Development/Java Buildarch: noarch Buildroot: %{_tmppath}/%{name}-%{version}-buildroot %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 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_ROOT %setup -q -n %{Name} %patch0 -p1 #%patch1 -p1 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 bsf libreadline-java) export CLASSPATH=$(build-classpath bsf) # remove servlet dependency rm -rf src/bsh/servlet ant -Dexclude-servlet='bsh/servlet/*' compile ant -Dexclude-servlet='bsh/servlet/*' jarall ant -Dexclude-servlet='bsh/servlet/*' javadoc ant -Dexclude-servlet='bsh/servlet/*' bshdoc (cd docs/faq && ant) (cd docs/manual && ant) %install # jars install -d -m 755 $RPM_BUILD_ROOT%{_javadir} install -m 644 dist/%{name}-%{fversion}.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 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 %files %defattr(-,root,root) %doc src/Changes.html src/License.txt src/README.txt %attr(0755,root,root) %{_bindir}/%{name} %attr(0755,root,root) %{_bindir}/%{name}doc %{_javadir}/* %dir %{_datadir}/%{name} %files manual %defattr(-,root,root) %doc docs/* %files javadoc %defattr(-,root,root) %{_javadocdir}/%{name}-%{version} %files demo %defattr(-,root,root) %{_datadir}/%{name}/* %changelog * Wed Jul 12 2006 Jesse Keating - 0:1.3.0-5jpp_1fc.1.1.1.1 - rebuild * Fri Dec 09 2005 Jesse Keating - rebuilt * Thu Jun 16 2005 Gary Benson 0:1.3.0-5jpp_1fc - Build into Fedora. * Thu Mar 4 2004 Frank Ch. Eigler 0:1.3.0-5jpp_1rh - RH vacuuming - added bsf build-prereq * Mon Jan 26 2004 David Walluck 0:1.3.0-5jpp - really drop readline patch * Sun Jan 25 2004 David Walluck 0:1.3.0-4jpp - drop readline patch * Wed Jan 21 2004 David Walluck 0:1.3.0-3jpp - port libreadline-java patch to new bsh * Tue Jan 20 2004 David Walluck 0:1.3.0-2jpp - add Distribution tag * Tue Jan 20 2004 David Walluck 0:1.3.0-1jpp - 1.3.0 - remove bsf patch (fixed upstream) - add epoch to demo package Requires * Fri Apr 12 2003 David Walluck 0:1.2-0.b8.4jpp - fix strange permissions * Fri Apr 11 2003 David Walluck 0:1.2-0.b8.3jpp - rebuild for JPackage 1.5 - add bsf patch * Sat Feb 01 2003 David Walluck 1.2-0.b8.2jpp - remove servlet dependency (if anyone wants to add this as a separate package and do the tomcat integration, be my guest) * Thu Jan 23 2003 David Walluck 1.2-0.b8.1jpp - rename to bsh - add manual - add Changes.html to %%doc - add bsh and bshdoc scripts - add %%dir %%{_datadir}/%%{name} to main package - correct test interpreter and make bsh files executable * Mon Jan 21 2002 Guillaume Rousse 1.01-3jpp - really section macro * Sun Jan 20 2002 Guillaume Rousse 1.01-2jpp - additional sources in individual archives - versioned dir for javadoc - no dependencies for javadoc package - stricter dependency for demo package - section macro * Tue Dec 18 2001 Guillaume Rousse 1.01-1jpp - first JPackage release