diff --git a/.gitignore b/.gitignore
index 112da74..ef8d6e7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
bsh-1.3.0-src.tar.bz2
/2.0b6.tar.gz
+/bsh-2.0-b6.tar.gz
+/bsh-2.1.0.tar.gz
diff --git a/0000-source-target-1.8.patch b/0000-source-target-1.8.patch
new file mode 100644
index 0000000..5fb7dfd
--- /dev/null
+++ b/0000-source-target-1.8.patch
@@ -0,0 +1,57 @@
+diff --git a/build.xml b/build.xml
+index 8542245..6179cfa 100644
+--- a/build.xml
++++ b/build.xml
+@@ -16,8 +16,8 @@
+
+
+
+-
+-
++
++
+
+
+
+@@ -178,8 +178,8 @@
+ debug="on"
+ includes="**/*.java"
+ excludes="${excludes},**/bak/**"
+- source="1.6"
+- target="1.6"
++ source="1.8"
++ target="1.8"
+ >
+
+
+@@ -213,8 +213,8 @@
+ debug="on"
+ includes="**/*.java"
+ excludes="${excludes},**/bak/**"
+- source="1.6"
+- target="1.6"
++ source="1.8"
++ target="1.8"
+ >
+
+
+@@ -255,7 +255,7 @@
+ destdir="${javadoc-dir}"
+ author="true"
+ version="true"
+- source="1.6"
++ source="1.8"
+ use="true"
+ windowtitle="BeanShell ${version}"
+ doctitle="<h1>BeanShell ${version}<h1>"
+@@ -680,8 +680,8 @@
+ destdir="${build-dir}"
+ debug="on"
+ debuglevel="lines,vars,source"
+- source="1.6"
+- target="1.6"
++ source="1.8"
++ target="1.8"
+ >
+
+
diff --git a/0001-java-11-compatibility.patch b/0001-java-11-compatibility.patch
new file mode 100644
index 0000000..36271b8
--- /dev/null
+++ b/0001-java-11-compatibility.patch
@@ -0,0 +1,27 @@
+From 9b83372c64f30f44bd56696ae6adcbe6a83e1e2f Mon Sep 17 00:00:00 2001
+From: Fabio Valentini
+Date: Mon, 20 Jul 2020 21:28:13 +0200
+Subject: [PATCH 1/1] java 11 compatibility
+
+---
+ src/bsh/util/AWTConsole.java | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/bsh/util/AWTConsole.java b/src/bsh/util/AWTConsole.java
+index e88fbff..fbb237b 100644
+--- a/src/bsh/util/AWTConsole.java
++++ b/src/bsh/util/AWTConsole.java
+@@ -214,8 +214,8 @@ public class AWTConsole extends TextArea
+ Great. What a piece of crap.
+ */
+ public void setCaretPosition( int pos ) {
+- ((java.awt.peer.TextComponentPeer)getPeer()).setCaretPosition(
+- pos + countNLs() );
++ //((java.awt.peer.TextComponentPeer)getPeer()).setCaretPosition(
++ // pos + countNLs() );
+ }
+
+ /*
+--
+2.26.2
+
diff --git a/bsh-desktop.desktop b/bsh-desktop.desktop
deleted file mode 100644
index da0f1ed..0000000
--- a/bsh-desktop.desktop
+++ /dev/null
@@ -1,9 +0,0 @@
-[Desktop Entry]
-Name=BeanShell Desktop
-Exec=bsh-desktop
-Icon=bsh
-Terminal=false
-Type=Application
-StartupWMClass=bsh-Console
-Categories=Development;Java;
-Version=1.0
diff --git a/bsh.spec b/bsh.spec
index 80cb965..6f60e19 100644
--- a/bsh.spec
+++ b/bsh.spec
@@ -28,36 +28,45 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
-%global reltag b6
-%bcond_without desktop
-
Name: bsh
-Version: 2.0
-Release: 9.%{reltag}%{?dist}
+Version: 2.1.0
+Release: 17%{?dist}
Epoch: 0
Summary: Lightweight Scripting for Java
-URL: http://www.beanshell.org/
+URL: https://beanshell.github.io/
# bundled asm is BSD
# bsf/src/bsh/util/BeanShellBSFEngine.java is public-domain
-License: ASL 2.0 and BSD and Public Domain
+License: Apache-2.0 AND BSD-3-Clause AND LicenseRef-Fedora-Public-Domain
+
+# ./generate-tarball.sh
+Source0: %{name}-%{version}.tar.gz
+# Remove bundled jars which cannot be easily verified for licensing
+# Remove code marked as SUN PROPRIETARY/CONFIDENTAIL
+Source2: generate-tarball.sh
+
+# compatibility with Java 11:
+# - set javac / javadoc source and target values to 1.8
+Patch0: 0000-source-target-1.8.patch
+# - remove references to invisible symbols and methods
+Patch1: 0001-java-11-compatibility.patch
+
BuildArch: noarch
-Source0: https://github.com/beanshell/beanshell/archive/%{version}%{reltag}.tar.gz
-Source1: %{name}-desktop.desktop
+ExclusiveArch: %{java_arches} noarch
-BuildRequires: javapackages-local
-BuildRequires: ant
+BuildRequires: ant-openjdk25
BuildRequires: bsf
-BuildRequires: junit
-BuildRequires: javacc
BuildRequires: glassfish-servlet-api
-%if %{with desktop}
-BuildRequires: ImageMagick
-BuildRequires: desktop-file-utils
-%endif
+BuildRequires: javacc
+BuildRequires: javapackages-local-openjdk25
+BuildRequires: junit
-Requires: java-headless
Requires: bsf
-Requires: jline
+Requires: java-25-headless
+Requires: jline2
+
+# Explicit javapackages-tools requires since scripts use
+# /usr/share/java-utils/java-functions
+Requires: javapackages-tools
Provides: %{name}-utils = %{epoch}:%{version}-%{release}
Obsoletes: %{name}-utils < 0:2.0
@@ -100,14 +109,9 @@ Summary: API documentation for %{name}
This package provides %{summary}.
%prep
-%setup -q -n beanshell-%{version}%{reltag}
-
-rm -r lib
-find -name '*.jar' -delete
-find -name '*.class' -delete
-
-# those are now included in JDK itself
-rm -r engine/javax-src
+%setup -q -n beanshell-%{version}
+%patch 0 -p1
+%patch 1 -p1
sed -i 's,org.apache.xalan.xslt.extensions.Redirect,http://xml.apache.org/xalan/redirect,' docs/manual/xsl/*.xsl
@@ -122,19 +126,10 @@ build-jar-repository lib bsf javacc junit glassfish-servlet-api
ant test dist
%install
-%mvn_artifact pom.xml dist/%{name}-%{version}%{reltag}.jar
+%mvn_artifact pom.xml dist/%{name}-%{version}.jar
%mvn_install -J javadoc
-%if %{with desktop}
-# menu entry
-desktop-file-install --mode=644 \
- --dir=%{buildroot}%{_datadir}/applications %{SOURCE1}
-install -d -m 755 %{buildroot}%{_datadir}/pixmaps
-convert src/bsh/util/lib/icon.gif \
- %{buildroot}%{_datadir}/pixmaps/bsh.png
-%endif
-
install -d -m 755 %{buildroot}%{_datadir}/%{name}
install -d -m 755 %{buildroot}%{_datadir}/%{name}/webapps
install -m 644 dist/bshservlet.war %{buildroot}%{_datadir}/%{name}/webapps
@@ -143,7 +138,7 @@ install -m 644 dist/bshservlet-wbsh.war %{buildroot}%{_datadir}/%{name}/webapps
# scripts
install -d %{buildroot}%{_bindir}
-%jpackage_script bsh.Interpreter "\${BSH_DEBUG:+-Ddebug=true}" jline.console.internal.ConsoleRunner %{name}:jline %{name} true
+%jpackage_script bsh.Interpreter "\${BSH_DEBUG:+-Ddebug=true}" jline.console.internal.ConsoleRunner %{name}:jline2/jline %{name} true
%jpackage_script bsh.Console "\${BSH_DEBUG:+-Ddebug=true}" "" bsh bsh-console true
echo '#!%{_bindir}/bsh' > %{buildroot}%{_bindir}/bshdoc
@@ -152,12 +147,9 @@ cat scripts/bshdoc.bsh >> %{buildroot}%{_bindir}/bshdoc
%files -f .mfiles
%license LICENSE NOTICE
%doc README.md src/Changes.html src/CodeMap.html docs/faq/faq.html
+
%attr(0755,root,root) %{_bindir}/%{name}*
-%if %{with desktop}
-%{_datadir}/applications/%{name}-desktop.desktop
-%{_datadir}/pixmaps/%{name}.png
-%endif
-%{_datadir}/%{name}
+%{_datadir}/%{name}/
%files manual
%doc docs/manual/html
@@ -169,6 +161,97 @@ cat scripts/bshdoc.bsh >> %{buildroot}%{_bindir}/bshdoc
%license LICENSE NOTICE
%changelog
+* Mon Jul 28 2025 jiri vanek - 0:2.1.0-17
+- Rebuilt for java-25-openjdk as preffered jdk
+
+* Wed Jul 23 2025 Fedora Release Engineering - 0:2.1.0-16
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
+
+* Thu Jan 16 2025 Fedora Release Engineering - 0:2.1.0-15
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
+
+* Wed Jul 17 2024 Fedora Release Engineering - 0:2.1.0-14
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
+
+* Wed May 22 2024 Marian Koncek - 0:2.1.0-13
+- Fix license field
+
+* Tue Feb 27 2024 Jiri Vanek - 0:2.1.0-12
+- Rebuilt for java-21-openjdk as system jdk
+
+* Tue Jan 23 2024 Fedora Release Engineering - 0:2.1.0-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Fri Jan 19 2024 Fedora Release Engineering - 0:2.1.0-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
+* Wed Jul 19 2023 Fedora Release Engineering - 0:2.1.0-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
+
+* Wed Jan 18 2023 Fedora Release Engineering - 0:2.1.0-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+
+* Wed Jul 20 2022 Fedora Release Engineering - 0:2.1.0-7
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
+* Fri Jul 08 2022 Jiri Vanek - 0:2.1.0-6
+- Rebuilt for Drop i686 JDKs
+
+* Sat Feb 05 2022 Jiri Vanek - 0:2.1.0-5
+- Rebuilt for java-17-openjdk as system jdk
+
+* Wed Jan 19 2022 Fedora Release Engineering - 0:2.1.0-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
+* Thu Dec 2 2021 Hans de Goede - 0:2.1.0-3
+- Fix building with Java 17
+
+* Wed Jul 21 2021 Fedora Release Engineering - 0:2.1.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
+
+* Mon Feb 01 2021 Fabio Valentini - 0:2.1.0-1
+- Update to version 2.1.0.
+
+* Wed Jan 27 2021 Tomas Popela - 0:2.0-22.b6
+- Don't build the desktop support on RHEL 8+ as ImageMagick isn't available there.
+
+* Tue Jan 26 2021 Fedora Release Engineering - 0:2.0-21.b6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
+
+* Mon Dec 14 2020 Jerry James - 0:2.0-20.b6
+- Change jline Requires to jline2
+
+* Mon Jul 27 2020 Fedora Release Engineering - 0:2.0-19.b6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
+
+* Mon Jul 20 2020 Fabio Valentini - 0:2.0-18.b6
+- Make adjustments for Java 11 compatibility.
+
+* Fri Jul 10 2020 Jiri Vanek - 0:2.0-17.b6
+- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
+
+* Tue Jan 28 2020 Fedora Release Engineering - 0:2.0-16.b6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
+
+* Wed Jul 24 2019 Fedora Release Engineering - 0:2.0-15.b6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
+
+* Thu Jan 31 2019 Fedora Release Engineering - 0:2.0-14.b6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
+
+* Fri Aug 03 2018 Michael Simacek - 0:2.0-13.b6
+- Remove proprietary files from tarball
+
+* Mon Jul 30 2018 Severin Gehwolf - 0:2.0-12.b6
+- Add requirement on javapackages-tools for script's usage of
+ java-functions.
+
+* Mon Jul 30 2018 Michael Simacek - 0:2.0-11.b6
+- Repack the tarball without binaries
+
+* Thu Jul 12 2018 Fedora Release Engineering - 0:2.0-10.b6
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
* Wed Feb 07 2018 Fedora Release Engineering - 0:2.0-9.b6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
diff --git a/generate-tarball.sh b/generate-tarball.sh
new file mode 100755
index 0000000..4f222cc
--- /dev/null
+++ b/generate-tarball.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+set -e
+
+name=bsh
+version="$(sed -n 's/Version:\s*//p' *.spec)"
+
+# RETRIEVE
+wget "https://github.com/beanshell/beanshell/archive/${version}.tar.gz" -O "${name}-${version}.orig.tar.gz"
+
+rm -rf tarball-tmp
+mkdir tarball-tmp
+cd tarball-tmp
+tar xf "../${name}-${version}.orig.tar.gz"
+
+# CLEAN TARBALL
+rm -r */lib
+find -name '*.jar' -print -delete
+find -name '*.class' -print -delete
+# Files marked as SUN PROPRIETARY/CONFIDENTAIL
+rm -rv */engine/javax-src
+
+tar cf "../${name}-${version}.tar.gz" *
+cd ..
+rm -r tarball-tmp "${name}-${version}.orig.tar.gz"
diff --git a/sources b/sources
index b47a7ec..49df674 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-b2cc737a850d49c2eb94567de33135cc 2.0b6.tar.gz
+SHA512 (bsh-2.1.0.tar.gz) = 4cee4ffc97e0214b0ef3fbfbfacc3ec55e8bbf7b26c36e51fd03f087c9317501e4d975f4b1c4b1d04afd0a9120789c45f8ea9390598e19802bc063d367bd247e