Name: bsh2 Version: 2.0b5 Release: %mkrel 6 Summary: Lightweight Scripting for Java (BeanShell Version 2.x) Group: Development/Java License: LGPL Url: http://www.beanshell.org/ Source0: http://www.beanshell.org/bsh-2.0b5-src.tar.bz2 Source1: beanshell-2.0b5.pom Source2: bsh-classpath-2.0b5.pom Source3: bsh-commands-2.0b5.pom Source4: bsh-core-2.0b5.pom Source5: bsh-reflect-2.0b5.pom Source6: bsh-util-2.0b5.pom Source7: bsh-bsf-2.0b5.pom Source8: bsh-classgen-2.0b5.pom Source9: bsh-engine-2.0b5.pom Source10: beanshell-icon.png Patch0: bsh2-2.0b5-ClassGeneratorUtil.patch Patch1: bsh2-2.0b5-asm.patch Patch2: bsh2-2.0b5-TestBshScriptEngine.patch Patch3: bsh2-2.0b5-BshScriptEngine.patch BuildRequires: ant BuildRequires: asm BuildRequires: asm-javadoc BuildRequires: bsf BuildRequires: bsf-javadoc BuildRequires: desktop-file-utils BuildRequires: fdupes BuildRequires: imagemagick BuildRequires: javacc3 BuildRequires: java-javadoc BuildRequires: tomcat5-servlet-2.4-api BuildRequires: xalan-j2 BuildRequires: xalan-j2-xsltc BuildRequires: java-devel >= 0:1.6.0 Requires: asm Requires: bsf Requires: jpackage-utils BuildArch: noarch %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. With version 2.0 BeanShell becomes a fully Java compatible scripting language. BeanShell is now capable of interpreting ordinary Java source and loading .java source files from the class path. BeanShell scripted classes are fully typed and appear to outside Java code and via reflective inspection as ordinary classes. However their implementation is fully dynamic and they may include arbitrary BeanShell scripts in their bodies, methods, and constructors. Users may now freely mix loose, unstructured BeanShell scripts, method closures, and full scripted classes. %package bsf Group: Development/Java Summary: BSF support for %{name} Requires: bsf Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} %description bsf BeanShell - Lightweight Scripting for Java. This package contains BSF support for %{name}. %package classgen Group: Development/Java Summary: ASM support for %{name} Requires: asm Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} %description classgen BeanShell - Lightweight Scripting for Java. This package contains ASM support for %{name}. %package demo Group: Development/Java Summary: Examples for %{name} Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} %description demo BeanShell - Lightweight Scripting for Java. This package contains demonstrations and samples for %{name}. %package javadoc Group: Development/Java Summary: Javadoc for %{name} Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} %description javadoc BeanShell - Lightweight Scripting for Java. This package contains Javadoc for %{name}. %package manual Group: Development/Java Summary: Manual for %{name} Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} %description manual BeanShell - Lightweight Scripting for Java. This package contains documentation for %{name}. %package console Group: Development/Other Summary: %{name} console Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} %description console BeanShell - Lightweight Scripting for Java. This package contains a menu entry for %{name}. %if 0 %package src Group: Development/Java Summary: Lightweight Scripting for Java (BeanShell Version 2.x) (demo and samples) %description src BeanShell - Lightweight Scripting for Java. This package contains source code of beanshell used for build of jEdit. %endif %prep %setup -q -n BeanShell-%{version} %patch0 -p0 %patch1 -p0 %patch2 -p0 %patch3 -p0 #mv tests/test-scripts/Data/addedCommand.jar tests/test-scripts/Data/addedCommand.jar.no #mv tests/test-scripts/Data/addclass.jar tests/test-scripts/Data/addclass.jar.no for j in $(find . -name "*.jar"); do rm -rf $j done for j in $(find . -name "CVS"); do rm -rf $j done for j in $(find . -name ".cvsignore"); do rm -rf $j done find engine/javax-src/javax/script/ -maxdepth 1 -type 'f' | xargs rm #mv tests/test-scripts/Data/addedCommand.jar.no tests/test-scripts/Data/addedCommand.jar #mv tests/test-scripts/Data/addclass.jar.no tests/test-scripts/Data/addclass.jar mkdir -p bsh-bsf/classes mkdir -p lib %build pushd lib ln -sf $(build-classpath asm/asm) . ln -sf $(build-classpath bsf) bsf.jar ln -sf $(build-classpath javacc3) javacc.jar ln -sf $(build-classpath servletapi5) servlet.jar popd pushd tests/test-scripts/Data javac $(find . -name "*.java") jar cf addclass.jar $(find . -name "*.class") jar cf addedCommand.jar $(find . -name "addedCommand.bsh") popd pushd engine/javax-src/ export CLASSPATH=$(build-classpath servletapi5) javac $(find . -name "*.java") jar cf ../../lib/javaxscript.jar $(find . -name "*.class" -o -name "*.html") popd %{__perl} -p -i -e 's|VERSION =.*;|VERSION = "%{version}-%{release}";|' src/bsh/Interpreter.java # remove internal asm code rm -rf src/bsh/org %{__perl} -p -i -e 's|bsh.org.objectweb.asm|org.objectweb.asm|' src/bsh/ClassGeneratorUtil.java export JAVA_HOME=%{java_home} # remove servlet dependency # rm -rf src/bsh/servlet # -Dexclude-servlet='bsh/servlet/*' \ export CLASSPATH=$(build-classpath asm/asm bsf servletapi5 ant) ant \ -Dasm.javadoc=%{_javadocdir}/asm \ -Dbsf.javadoc=%{_javadocdir}/bsf \ -Djava.javadoc=%{_javadocdir}/java \ -Djava.awt.headless=false \ dist test export CLASSPATH=$CLASSPATH:$(build-classpath xalan-j2-serializer xalan-j2 xsltc ant/ant-trax) ( cd docs/faq ant ) ( cd docs/manual ant ) fdupes -s docs/ export CLASSPATH=$CLASSPATH:dist/bsh-%{version}.jar javac -d bsh-bsf/classes $(find bsf/src -name "*.java") rm -rf bsh-bsf/classes/TestBshBSF.class jar uf dist/bsh-bsf-%{version}.jar -C bsh-bsf/classes . jar uf dist/bsh-%{version}.jar -C bsh-bsf/classes . %install [ %{buildroot} != / ] && rm -rf %{buildroot} mkdir -p %{buildroot}%{_javadir}/%{name} rm -f dist/bsh-%{version}-src.jar pushd dist install -m 644 bsh-%{version}.jar \ %{buildroot}%{_javadir}/%{name}/bsh.jar install -m 644 bsh-bsf-%{version}.jar \ %{buildroot}%{_javadir}/%{name}/bsh-bsf.jar install -m 644 bsh-classgen-%{version}.jar \ %{buildroot}%{_javadir}/%{name}/bsh-classgen.jar install -m 644 bsh-classpath-%{version}.jar \ %{buildroot}%{_javadir}/%{name}/bsh-classpath.jar install -m 644 bsh-commands-%{version}.jar \ %{buildroot}%{_javadir}/%{name}/bsh-commands.jar install -m 644 bsh-core-%{version}.jar \ %{buildroot}%{_javadir}/%{name}/bsh-core.jar install -m 644 bsh-engine-%{version}.jar \ %{buildroot}%{_javadir}/%{name}/bsh-engine.jar install -m 644 bsh-reflect-%{version}.jar \ %{buildroot}%{_javadir}/%{name}/bsh-reflect.jar install -m 644 bsh-util-%{version}.jar \ %{buildroot}%{_javadir}/%{name}/bsh-util.jar popd #mkdir -p %{buildroot}%{_sourcedir} #cp -pr dist/bsh-%{version}-src.zip %{buildroot}%{_sourcedir} mkdir -p %{buildroot}%{_mavenpomdir} install -m 644 %{SOURCE1} \ %{buildroot}%{_mavenpomdir}/JPP.%{name}-bsh.pom install -m 644 %{SOURCE2} \ %{buildroot}%{_mavenpomdir}/JPP.%{name}-bsh-classpath.pom install -m 644 %{SOURCE3} \ %{buildroot}%{_mavenpomdir}/JPP.%{name}-bsh-commands.pom install -m 644 %{SOURCE4} \ %{buildroot}%{_mavenpomdir}/JPP.%{name}-bsh-core.pom install -m 644 %{SOURCE5} \ %{buildroot}%{_mavenpomdir}/JPP.%{name}-bsh-reflect.pom install -m 644 %{SOURCE6} \ %{buildroot}%{_mavenpomdir}/JPP.%{name}-bsh-util.pom install -m 644 %{SOURCE7} \ %{buildroot}%{_mavenpomdir}/JPP.%{name}-bsh-bsf.pom install -m 644 %{SOURCE8} \ %{buildroot}%{_mavenpomdir}/JPP.%{name}-bsh-classgen.pom install -m 644 %{SOURCE9} \ %{buildroot}%{_mavenpomdir}/JPP.%{name}-bsh-engine.pom %add_maven_depmap JPP.%{name}-bsh.pom %add_maven_depmap JPP.%{name}-bsh-bsf.pom %{name}/bsh-bsf.jar %add_maven_depmap JPP.%{name}-bsh-classgen.pom %{name}/bsh-classgen.jar %add_maven_depmap JPP.%{name}-bsh-classpath.pom %{name}/bsh-classpath.jar %add_maven_depmap JPP.%{name}-bsh-commands.pom %{name}/bsh-commands.jar %add_maven_depmap JPP.%{name}-bsh-core.pom %{name}/bsh-core.jar %add_maven_depmap JPP.%{name}-bsh-engine.pom %{name}/bsh-engine.jar %add_maven_depmap JPP.%{name}-bsh-reflect.pom %{name}/bsh-reflect.jar %add_maven_depmap JPP.%{name}-bsh-util.pom %{name}/bsh-util.jar 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 ) mkdir -p %{buildroot}%{_javadocdir}/%{name} cp -pr javadoc/* %{buildroot}%{_javadocdir}/%{name} for i in `find tests -name "*.bsh"`; do %{__perl} -p -i -e 's,^\n?#!(/(usr/)?bin/java bsh\.Interpreter|/bin/sh),#!%{_bindir}/%{name},' $i done mkdir -p %{buildroot}%{_datadir}/%{name}/{bshservlet,bshservlet-wbsh} #install -m 644 dist/bshservlet.war %{buildroot}%{_datadir}/bsh/webapps #install -m 644 dist/bshservlet-wbsh.war %{buildroot}%{_datadir}/bsh/webapps ( cd %{buildroot}%{_datadir}/%{name}/bshservlet jar xf %{_builddir}/BeanShell-%{version}/dist/bshservlet.war ) ( cd %{buildroot}%{_datadir}/%{name}/bshservlet-wbsh jar xf %{_builddir}/BeanShell-%{version}/dist/bshservlet-wbsh.war rm -rf bsh-%{version}.jar ) ln -sf ../../java/%{name}/bsh.jar %{buildroot}%{_datadir}/bsh2/bshservlet-wbsh/bsh-%{version}.jar cp -pr tests %{buildroot}%{_datadir}/%{name} find %{buildroot}%{_datadir}%{name} -type d \ | sed 's|'%{buildroot}'|%dir |' > %{name}-demo-%{version}.files find %{buildroot}%{_datadir}/%{name} -type f -name "*.bsh" \ | sed 's|'%{buildroot}'|%attr(0755,root,root) |' >> %{name}-demo-%{version}.files find %{buildroot}%{_datadir}/%{name} -type f ! -name "*.bsh" \ | sed 's|'%{buildroot}'|%attr(0644,root,root) |' >> %{name}-demo-%{version}.files mkdir -p %{buildroot}%{_bindir} cat > %{buildroot}%{_bindir}/%{name} << EOF #!/bin/sh # # bsh2 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="bsh2/bsh" #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 mkdir -p %{buildroot}%{_datadir}/applications cat > %{name}-console.desktop << EOF [Desktop Entry] Version=1.0 Name=BeanShell Console (%{version}) GenericName=BeanShell Console Comment=Lightweight Scripting for Java Exec=%{name}-console Icon=%{name} Terminal=false Type=Application Categories=Development;Java; EOF desktop-file-install --mode=644 --dir=%{buildroot}%{_datadir}/applications %{name}-console.desktop for s in 16x16 32x32 64x64 ;do mkdir -p %{buildroot}%{_datadir}/icons/hicolor/$s/apps convert -resize $s %{SOURCE10} %{buildroot}%{_datadir}/icons/hicolor/$s/apps/%{name}.png done mkdir -p %{buildroot}%{_datadir}/pixmaps cp -pr %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/%{name}.png %{buildroot}%{_datadir}/pixmaps/%{name}.png cat > %{buildroot}%{_bindir}/%{name}-console << EOF #!/bin/sh # # bsh2 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.Console if [ -n "\$BSH_DEBUG" ]; then BASE_FLAGS=-Ddebug=true fi BASE_JARS="bsh2/bsh" #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 > %{buildroot}%{_bindir}/%{name}doc << EOF #!/usr/bin/env %{_bindir}/%{name} EOF cat scripts/bshdoc.bsh >> %{buildroot}%{_bindir}/%{name}doc %post %update_maven_depmap %postun %update_maven_depmap %files %attr(0755,root,root) %{_bindir}/%{name} %attr(0755,root,root) %{_bindir}/%{name}doc %dir %{_javadir}/%{name} %{_javadir}/%{name}/bsh.jar %{_javadir}/%{name}/bsh-classpath.jar %{_javadir}/%{name}/bsh-commands.jar %{_javadir}/%{name}/bsh-core.jar %{_javadir}/%{name}/bsh-engine.jar %{_javadir}/%{name}/bsh-reflect.jar %{_javadir}/%{name}/bsh-util.jar %dir %{_datadir}/%{name} %{_datadir}/%{name}/bshservlet %{_datadir}/%{name}/bshservlet-wbsh %{_mavenpomdir}/JPP.%{name}-bsh.pom %{_mavenpomdir}/JPP.%{name}-bsh-classpath.pom %{_mavenpomdir}/JPP.%{name}-bsh-commands.pom %{_mavenpomdir}/JPP.%{name}-bsh-core.pom %{_mavenpomdir}/JPP.%{name}-bsh-engine.pom %{_mavenpomdir}/JPP.%{name}-bsh-reflect.pom %{_mavenpomdir}/JPP.%{name}-bsh-util.pom %{_mavendepmapfragdir}/%{name} %doc src/*.html src/*.txt %post console update-desktop-database %{_datadir}/applications &> /dev/null || : touch --no-create %{_datadir}/icons/hicolor if [ -x %{_bindir}/gtk-update-icon-cache ] ; then %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor fi %postun console update-desktop-database %{_datadir}/applications &> /dev/null || : touch --no-create %{_datadir}/icons/hicolor if [ -x %{_bindir}/gtk-update-icon-cache ] ; then %{_bindir}/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor fi %files console %attr(0755,root,root) %{_bindir}/%{name}-console %{_datadir}/applications/%{name}-console.desktop %{_datadir}/icons/hicolor/*x*/apps/%{name}.png %{_datadir}/pixmaps/%{name}.png %files bsf %{_javadir}/%{name}/bsh-bsf.jar %{_mavenpomdir}/JPP.%{name}-bsh-bsf.pom %files classgen %{_javadir}/%{name}/bsh-classgen.jar %{_mavenpomdir}/JPP.%{name}-bsh-classgen.pom %files demo -f %{name}-demo-%{version}.files %pre javadoc [ $1 -gt 1 ] && [ -L %{_javadocdir}/%{name} ] && \ rm -rf $(readlink -f %{_javadocdir}/%{name}) %{_javadocdir}/%{name} || : %files javadoc %{_javadocdir}/%{name} %files manual %doc docs/* %if 0 %files src %{_sourcedir}/bsh-%{version}-src.zip %endif %changelog * Fri Jan 11 2013 umeabot <umeabot> 2.0b5-6.mga3 + Revision: 347208 - Mass Rebuild - https://wiki.mageia.org/en/Feature:Mageia3MassRebuild * Sat Dec 08 2012 dmorgan <dmorgan> 2.0b5-5.mga3 + Revision: 328479 - Build with java7 * Thu Jan 12 2012 gil <gil> 2.0b5-4.mga2 + Revision: 195401 - added unversion javadoc dir - added unversion javadoc dir - used %%{_mavenpomdir} - edit poms, changes groupId bsf in org.apache.bsf - edit spec file used new %%add_maven_depmap macro + dmorgan <dmorgan> - Fix pom files install - Do not install files in /home/ - Clean spec file * Fri Jun 10 2011 gil <gil> 2.0b5-0.mga2 + Revision: 102799 - imported package bsh2