Compare commits

...

No commits in common. 'i8c-stream-201902' and 'c9' have entirely different histories.

2
.gitignore vendored

@ -1 +1 @@
SOURCES/jansi-project-1.18.tar.gz
SOURCES/jansi-2.3.3.tar.gz

@ -1 +1 @@
9351d9d21aeef3a8db731718dca8a64e79addb63 SOURCES/jansi-project-1.18.tar.gz
8f825fc9e4eafb656d1e0f01c68be9b41a750a1c SOURCES/jansi-2.3.3.tar.gz

@ -0,0 +1,26 @@
From d94c5832e14504d44abeba47866dfa7dac5992b5 Mon Sep 17 00:00:00 2001
From: Guillaume Nodet <gnodet@gmail.com>
Date: Fri, 23 Jul 2021 09:22:19 +0200
Subject: [PATCH] Avoid possible NPE, fixes #214
---
src/main/java/org/fusesource/jansi/AnsiPrintStream.java | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/main/java/org/fusesource/jansi/AnsiPrintStream.java b/src/main/java/org/fusesource/jansi/AnsiPrintStream.java
index e153c43..df6e5a6 100644
--- a/src/main/java/org/fusesource/jansi/AnsiPrintStream.java
+++ b/src/main/java/org/fusesource/jansi/AnsiPrintStream.java
@@ -76,7 +76,11 @@ public void install() throws IOException {
}
public void uninstall() throws IOException {
- getOut().uninstall();
+ // If the system output stream has been closed, out should be null, so avoid a NPE
+ AnsiOutputStream out = getOut();
+ if (out != null) {
+ out.uninstall();
+ }
}
@Override

@ -1,132 +0,0 @@
From 9267e184753020dbe436868ac4c6377f58e4500f Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Tue, 5 Nov 2019 15:41:45 +0100
Subject: [PATCH] Drop dependency on native library
---
.../org/fusesource/jansi/AnsiConsole.java | 64 ++-----------------
1 file changed, 6 insertions(+), 58 deletions(-)
diff --git a/jansi/src/main/java/org/fusesource/jansi/AnsiConsole.java b/jansi/src/main/java/org/fusesource/jansi/AnsiConsole.java
index d7a37b0..6e0d316 100644
--- a/jansi/src/main/java/org/fusesource/jansi/AnsiConsole.java
+++ b/jansi/src/main/java/org/fusesource/jansi/AnsiConsole.java
@@ -15,10 +15,6 @@
*/
package org.fusesource.jansi;
-import static org.fusesource.jansi.internal.CLibrary.STDERR_FILENO;
-import static org.fusesource.jansi.internal.CLibrary.STDOUT_FILENO;
-import static org.fusesource.jansi.internal.CLibrary.isatty;
-
import java.io.FilterOutputStream;
import java.io.IOException;
import java.io.OutputStream;
@@ -75,36 +71,20 @@ public class AnsiConsole {
@Deprecated
public static OutputStream wrapOutputStream(final OutputStream stream) {
- try {
- return wrapOutputStream(stream, STDOUT_FILENO);
- } catch (Throwable ignore) {
- return wrapOutputStream(stream, 1);
- }
+ return wrapOutputStream(stream, 1);
}
public static PrintStream wrapSystemOut(final PrintStream ps) {
- try {
- return wrapPrintStream(ps, STDOUT_FILENO);
- } catch (Throwable ignore) {
- return wrapPrintStream(ps, 1);
- }
+ return wrapPrintStream(ps, 1);
}
@Deprecated
public static OutputStream wrapErrorOutputStream(final OutputStream stream) {
- try {
- return wrapOutputStream(stream, STDERR_FILENO);
- } catch (Throwable ignore) {
- return wrapOutputStream(stream, 2);
- }
+ return wrapOutputStream(stream, 2);
}
public static PrintStream wrapSystemErr(final PrintStream ps) {
- try {
- return wrapPrintStream(ps, STDERR_FILENO);
- } catch (Throwable ignore) {
- return wrapPrintStream(ps, 2);
- }
+ return wrapPrintStream(ps, 2);
}
@Deprecated
@@ -124,22 +104,6 @@ public class AnsiConsole {
return new AnsiOutputStream(stream);
}
- if (IS_WINDOWS && !IS_CYGWIN && !IS_MINGW_XTERM) {
-
- // On windows we know the console does not interpret ANSI codes..
- try {
- jansiOutputType = JansiOutputType.WINDOWS;
- return new WindowsAnsiOutputStream(stream, fileno == STDOUT_FILENO);
- } catch (Throwable ignore) {
- // this happens when JNA is not in the path.. or
- // this happens when the stdout is being redirected to a file.
- }
-
- // Use the ANSIOutputStream to strip out the ANSI escape sequences.
- jansiOutputType = JansiOutputType.STRIP_ANSI;
- return new AnsiOutputStream(stream);
- }
-
// We must be on some Unix variant, including Cygwin or MSYS(2) on Windows...
try {
// If the jansi.force property is set, then we force to output
@@ -147,7 +111,7 @@ public class AnsiConsole {
boolean forceColored = Boolean.getBoolean("jansi.force");
// If we can detect that stdout is not a tty.. then setup
// to strip the ANSI sequences..
- if (!forceColored && isatty(fileno) == 0) {
+ if (!forceColored && System.console() == null) {
jansiOutputType = JansiOutputType.STRIP_ANSI;
return new AnsiOutputStream(stream);
}
@@ -202,22 +166,6 @@ public class AnsiConsole {
return new AnsiPrintStream(ps);
}
- if (IS_WINDOWS && !IS_CYGWIN && !IS_MINGW_XTERM) {
-
- // On windows we know the console does not interpret ANSI codes..
- try {
- jansiOutputType = JansiOutputType.WINDOWS;
- return new WindowsAnsiPrintStream(ps, fileno == STDOUT_FILENO);
- } catch (Throwable ignore) {
- // this happens when JNA is not in the path.. or
- // this happens when the stdout is being redirected to a file.
- }
-
- // Use the AnsiPrintStream to strip out the ANSI escape sequences.
- jansiOutputType = JansiOutputType.STRIP_ANSI;
- return new AnsiPrintStream(ps);
- }
-
// We must be on some Unix variant, including Cygwin or MSYS(2) on Windows...
try {
// If the jansi.force property is set, then we force to output
@@ -225,7 +173,7 @@ public class AnsiConsole {
boolean forceColored = Boolean.getBoolean("jansi.force");
// If we can detect that stdout is not a tty.. then setup
// to strip the ANSI sequences..
- if (!forceColored && isatty(fileno) == 0) {
+ if (!forceColored && System.console() == null) {
jansiOutputType = JansiOutputType.STRIP_ANSI;
return new AnsiPrintStream(ps);
}
--
2.21.0

@ -0,0 +1,20 @@
#!/bin/bash
set -e
name=jansi
version="$(sed -n 's/Version:\s*//p' *.spec)"
# RETRIEVE
wget "https://github.com/fusesource/jansi/archive/jansi-${version}.tar.gz" -O "${name}-${version}.orig.tar.gz"
rm -rf tarball-tmp
mkdir tarball-tmp
pushd tarball-tmp
tar xf "../${name}-${version}.orig.tar.gz"
# CLEAN TARBALL
rm -r */src/main/native/inc_{mac,win}/
tar -czf "../${name}-${version}.tar.gz" *
popd
rm -r tarball-tmp "${name}-${version}.orig.tar.gz"

@ -0,0 +1,14 @@
--- a/src/main/java/org/fusesource/jansi/internal/JansiLoader.java 2020-12-15 03:03:00.000000000 -0700
+++ b/src/main/java/org/fusesource/jansi/internal/JansiLoader.java 2020-12-15 07:57:30.238720226 -0700
@@ -295,6 +295,11 @@ public class JansiLoader {
} else {
triedPaths.add(jansiNativeLibraryPath);
}
+ } else {
+ if (loadNativeLibrary(new File("@LIBDIR@/jansi", jansiNativeLibraryName))) {
+ extracted = true;
+ return;
+ }
}
// Load the os-dependent library from the jar file

@ -1,19 +1,35 @@
%bcond_with bootstrap
Name: jansi
Version: 1.18
Release: 3%{?dist}
Summary: Jansi is a java library for generating and interpreting ANSI escape sequences
Version: 2.3.3
Release: 7%{?dist}
Summary: Generate and interpret ANSI escape sequences in Java
License: ASL 2.0
URL: http://fusesource.github.io/jansi/
BuildArch: noarch
Source0: https://github.com/fusesource/jansi/archive/jansi-project-%{version}.tar.gz
ExclusiveArch: aarch64 ppc64le s390x x86_64
# ./generate-tarball.sh
Source0: %{name}-%{version}.tar.gz
# Remove bundled binaries which cannot be easily verified for licensing
Source1: generate-tarball.sh
# Change the location of the native artifact to where Fedora wants it
Patch0: %{name}-jni.patch
Patch0: 0001-Drop-dependency-on-native-library.patch
Patch1: 0001-Avoid-NPE.patch
BuildRequires: gcc
BuildRequires: maven-local
BuildRequires: mvn(junit:junit)
%if %{with bootstrap}
BuildRequires: javapackages-bootstrap
%else
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-source-plugin)
BuildRequires: mvn(org.apache.maven.surefire:surefire-junit-platform)
BuildRequires: mvn(org.fusesource:fusesource-pom:pom:)
BuildRequires: mvn(org.junit.jupiter:junit-jupiter-engine)
%endif
%description
Jansi is a small java library that allows you to use ANSI escape sequences
@ -21,67 +37,142 @@ in your Java console applications. It implements ANSI support on platforms
which don't support it like Windows and provides graceful degradation for
when output is being sent to output devices which cannot support ANSI sequences.
%{?module_package}
%{?javadoc_package}
%package javadoc
Summary: Javadocs for %{name}
%description javadoc
This package contains the API documentation for %{name}.
%prep
%setup -q -n jansi-jansi-project-%{version}
%patch0 -p1
%autosetup -n jansi-jansi-%{version} -p1
%pom_disable_module example
# We don't need the Fuse JXR skin
%pom_xpath_remove "pom:build/pom:extensions"
%pom_remove_plugin -r :maven-site-plugin
# Plugins not needed for an RPM build
%pom_remove_plugin :maven-gpg-plugin
%pom_remove_plugin :maven-javadoc-plugin
%pom_remove_plugin :nexus-staging-maven-plugin
# No maven-uberize-plugin
%pom_remove_plugin -r :maven-uberize-plugin
# We don't want GraalVM support in Fedora
%pom_remove_plugin :exec-maven-plugin
%pom_remove_dep :picocli-codegen
# Remove unnecessary deps for jansi-native builds
pushd jansi
%pom_remove_dep :jansi-windows32
%pom_remove_dep :jansi-windows64
%pom_remove_dep :jansi-osx
%pom_remove_dep :jansi-freebsd32
%pom_remove_dep :jansi-freebsd64
# it's there only to be bundled in uberjar and we disable uberjar generation
%pom_remove_dep :jansi-linux32
%pom_remove_dep :jansi-linux64
#
%pom_remove_dep :jansi-native
%pom_remove_dep :hawtjni-runtime
popd
# Build for JDK 1.8 at a minimum
%pom_xpath_set "//pom:properties/pom:jdkTarget" 1.8
# javadoc generation fails due to strict doclint in JDK 8
%pom_remove_plugin -r :maven-javadoc-plugin
# Remove prebuilt shared objects
rm -fr src/main/resources/org/fusesource/jansi/internal
rm -f jansi/src/{main,test}/java/org/fusesource/jansi/{WindowsSupport,WindowsAnsiOutputStream,WindowsAnsiPrintStream,WindowsSupportTest,AnsiMain}.java
# Unbundle the JNI headers
rm src/main/native/inc_linux/*.h
ln -s %{_jvmdir}/java-11-openjdk/include/jni.h src/main/native/inc_linux
ln -s %{_jvmdir}/java-11-openjdk/include/linux/jni_md.h src/main/native/inc_linux
# Set the JNI path
sed -i 's,@LIBDIR@,%{_prefix}/lib,' \
src/main/java/org/fusesource/jansi/internal/JansiLoader.java
%build
%mvn_build
%set_build_flags
# Build the native artifact
CFLAGS="$CFLAGS -I. -I%{_jvmdir}/java-11-openjdk/include -I%{_jvmdir}/java-11-openjdk/include/linux -fPIC -fvisibility=hidden"
cd src/main/native
$CC $CFLAGS -c jansi.c
$CC $CFLAGS -c jansi_isatty.c
$CC $CFLAGS -c jansi_structs.c
$CC $CFLAGS -c jansi_ttyname.c
$CC $CFLAGS $LDFLAGS -shared -o libjansi.so *.o -lutil
cd -
# Build the Java artifacts
%mvn_build -- -Dlibrary.jansi.path=$PWD/src/main/native
%install
# Install the native artifact
mkdir -p %{buildroot}%{_prefix}/lib/%{name}
cp -p src/main/native/libjansi.so %{buildroot}%{_prefix}/lib/%{name}
# Install the Java artifacts
%mvn_install
%files -n %{?module_prefix}%{name} -f .mfiles
%files -f .mfiles
%license license.txt
%doc readme.md changelog.md
%{_prefix}/lib/%{name}/
%files javadoc -f .mfiles-javadoc
%license license.txt
%changelog
* Tue May 07 2024 MSVSphere Packaging Team <packager@msvsphere-os.ru> - 1.18-3
- Rebuilt for MSVSphere 8.9
* Wed Nov 20 2024 Marián Konček <mkoncek@redhat.com> - 2.3.3-7
- Rebuild with regenerated Requires on Java
* Mon Jan 30 2023 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.3.3-6
- Rebuild to regenerate auto-requires
* Thu Aug 19 2021 Marian Koncek <mkoncek@redhat.com> - 2.3.3-5
- Install native artifact into a fixed location
- Related: rhbz#1994935
* Wed Aug 18 2021 Marian Koncek <mkoncek@redhat.com> - 2.3.3-4
- Avoid possible NullPointerException
- Resolves: rhbz#1993889
- Load native library from the correct location
- Resolves: rhbz#1994935
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 2.3.3-3
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Wed Jun 23 2021 Jerry James <loganjerry@gmail.com> - 2.3.3-1
- Version 2.3.3
* Fri Jun 18 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.1.1-7
- Clean tarball from content with questionable licensing
- Resolves: rhbz#1973750
* Wed Jun 09 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.1.1-6
- Rebuild to workaround DistroBaker issue
* Tue Jun 08 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.1.1-5
- Bootstrap Maven for CentOS Stream 9
* Mon May 17 2021 Mikolaj Izdebski <mizdebsk@redhat.com> - 2.1.1-4
- Bootstrap build
- Non-bootstrap build
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Thu Jan 14 2021 Timm Bäder <tbaeder@redhat.com> - 2.1.1-2
- Use standard variables when compiling native artifact
* Tue Dec 15 2020 Jerry James <loganjerry@gmail.com> - 2.1.1-1
- Version 2.1.1
- Remove package name from Summary
- Add patch to change the location of the JNI shared object
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.18-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Fri Jul 10 2020 Jiri Vanek <jvanek@redhat.com> - 1.18-4
- Rebuilt for JDK-11, see https://fedoraproject.org/wiki/Changes/Java11
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.18-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Nov 05 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.18-3
- Mass rebuild for javapackages-tools 201902
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.18-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Tue Nov 05 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.18-2
- Remove dependency on jansi-native and hawtjni
* Sat Jun 08 2019 Fabio Valentini <decathorpe@gmail.com> - 1.18-1
- Update to version 1.18.
* Mon Jul 22 2019 Marian Koncek <mkoncek@redhat.com> - 1.18-1
- Update to upstream version 1.18
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.17.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri May 24 2019 Mikolaj Izdebski <mizdebsk@redhat.com> - 1.17.1-2
- Mass rebuild for javapackages-tools 201901
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1.17.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 05 2018 Michael Simacek <msimacek@redhat.com> - 1.17.1-1
- Update to upstream version 1.17.1

Loading…
Cancel
Save