bsh2/bsh2.spec

212 lines
6.3 KiB
RPMSpec

#
# spec file for package bsh2
#
# Copyright (c) 2024 SUSE LLC
# Copyright (c) 2000-2008, JPackage Project
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%define orig_name bsh
Name: bsh2
Version: 2.1.1
Release: 0
Summary: Scripting for Java (BeanShell Version 2.x)
License: LGPL-2.0-or-later OR SPL-1.0
Group: Development/Libraries/Java
URL: http://www.beanshell.org/
Source0: beanshell-%{version}.tar.xz
#PATCH-FIX-OPENSUSE: use html output and JVM's built-in xmlns:redirect
Patch3: bsh-2.0b5-docs.patch
Patch1001: reproducible.patch
Patch1002: 0000-source-target-1.8.patch
BuildRequires: ant
BuildRequires: bsf
BuildRequires: bsf-javadoc
BuildRequires: fdupes
BuildRequires: glassfish-servlet-api
BuildRequires: java-devel >= 1.8
BuildRequires: javacc
BuildRequires: javapackages-local >= 6
Requires: bsf
Requires: javapackages-tools
BuildArch: noarch
%description
BeanShell is an 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. BeanShell
can be used interactively for Java experimentation and debugging or
as a scripting engine for applications.
%package bsf
Summary: BSF support for bsh2
Group: Development/Libraries/Java
Requires: bsf
%description bsf
Scripting for Java (BeanShell Version 2.x) (BSF support).
%package classgen
Summary: ASM support for bsh2
Group: Development/Libraries/Java
%description classgen
Scripting for Java (BeanShell Version 2.x) (ASM support).
%package manual
Summary: Documentation for bsh2
Group: Documentation/HTML
%description manual
Scripting for Java (BeanShell Version 2.x) (Manual).
%package javadoc
Summary: Javadoc for bsh2
Group: Documentation/HTML
%description javadoc
Scripting for Java (BeanShell Version 2.x) (Java Documentation).
%package demo
Summary: Demonstrations and samples for bsh2
Group: Development/Libraries/Java
Requires: %{name} = %{version}-%{release}
%description demo
Scripting for Java (BeanShell Version 2.x) (demo and samples).
%prep
%setup -q -n beanshell-%{version}
%patch -P 3 -p1
%patch -P 1001 -p1
%patch -P 1002 -p1
sed -i 's,org.apache.xalan.xslt.extensions.Redirect,http://xml.apache.org/xalan/redirect,' docs/manual/xsl/*.xsl
%build
build-jar-repository -s -p lib bsf javacc glassfish-servlet-api
ant dist
%install
# jars
mkdir -p %{buildroot}%{_javadir}/%{name}
rm -f dist/%{orig_name}-%{version}-src.jar
rm -f dist/%{orig_name}-%{version}-sources.jar
for jar in dist/*.jar; do
install -m 644 ${jar} %{buildroot}%{_javadir}/%{name}/`basename ${jar} -%{version}.jar`.jar
done
# poms
install -d -m 755 %{buildroot}%{_mavenpomdir}
%{mvn_install_pom} pom.xml \
%{buildroot}%{_mavenpomdir}/JPP.%{name}-bsh.pom
%add_maven_depmap JPP.%{name}-bsh.pom %{name}/bsh.jar -a org.beanshell:%{name},bsh:bsh,bsh:bsh-bsf,org.beanshell:bsh
# manual
find docs "(" -name ".cvswrappers" -o -name "*.xml" -o -name "*.xsl" -o -name "*.log" ")" -delete
(cd docs/manual && mv -f html/* . && rm -Rf html xsl)
# javadoc
mkdir -p %{buildroot}%{_javadocdir}/%{name}
cp -a javadoc/* %{buildroot}%{_javadocdir}/%{name}
# demo
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}
cp -a 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
# bshservlet
mkdir -p %{buildroot}%{_datadir}/%{name}/bshservlet
(cd %{buildroot}%{_datadir}/%{name}/bshservlet
jar xf $RPM_BUILD_DIR/beanshell-%{version}/dist/bshservlet.war
)
# scripts
mkdir -p %{buildroot}%{_bindir}
cat > %{buildroot}%{_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"
# 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
%fdupes -s %{buildroot}
%fdupes docs/
%files -f .mfiles
%{_javadir}/%{name}/%{orig_name}.jar
%{_javadir}/%{name}/%{orig_name}-classpath*.jar
%{_javadir}/%{name}/%{orig_name}-commands*.jar
%{_javadir}/%{name}/%{orig_name}-core*.jar
%{_javadir}/%{name}/%{orig_name}-engine*.jar
%{_javadir}/%{name}/%{orig_name}-reflect*.jar
%{_javadir}/%{name}/%{orig_name}-util*.jar
%attr(0755,root,root) %{_bindir}/%{name}
%attr(0755,root,root) %{_bindir}/%{name}doc
%license LICENSE
%dir %{_datadir}/%{name}
%{_datadir}/%{name}/bshservlet
%files bsf
%{_javadir}/%{name}/%{orig_name}-bsf*.jar
%files classgen
%{_javadir}/%{name}/%{orig_name}-classgen*.jar
%files manual
%doc docs/*
%files javadoc
%dir %{_javadocdir}/%{name}
%{_javadocdir}/%{name}
%files demo -f %{name}-demo-%{version}.files
%changelog