Merged update from upstream sources

This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/jansi.git#3a898d80b1b2302c18c5551da1bcac55fac5af3b
This commit is contained in:
DistroBaker 2021-01-11 23:22:43 +00:00
parent a376b6c4cb
commit f832155f15
4 changed files with 73 additions and 30 deletions

1
.gitignore vendored
View File

@ -8,3 +8,4 @@
/jansi-project-1.17.tar.gz
/jansi-project-1.17.1.tar.gz
/jansi-project-1.18.tar.gz
/jansi-2.1.1.tar.gz

14
jansi-jni.patch Normal file
View File

@ -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

View File

@ -1,20 +1,21 @@
Name: jansi
Version: 1.18
Release: 5%{?dist}
Summary: Jansi is a java library for generating and interpreting ANSI escape sequences
Version: 2.1.1
Release: 1%{?dist}
Summary: Generate and interpret ANSI escape sequences in Java
License: ASL 2.0
URL: http://fusesource.github.io/jansi/
Source0: https://github.com/fusesource/jansi/archive/jansi-%{version}.tar.gz
# Change the location of the native artifact to where Fedora wants it
Patch0: %{name}-jni.patch
Source0: https://github.com/fusesource/jansi/archive/jansi-project-%{version}.tar.gz
BuildArch: noarch
BuildRequires: gcc
BuildRequires: maven-local
BuildRequires: mvn(junit:junit)
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.fusesource.hawtjni:hawtjni-runtime)
BuildRequires: mvn(org.fusesource.jansi:jansi-native)
BuildRequires: mvn(org.junit.jupiter:junit-jupiter-engine)
%description
Jansi is a small java library that allows you to use ANSI escape sequences
@ -29,45 +30,72 @@ Summary: Javadocs for %{name}
This package contains the API documentation for %{name}.
%prep
%setup -q -n jansi-jansi-project-%{version}
%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
popd
# Build for JDK 1.8 at a minimum
%pom_xpath_set "//pom:plugin[pom:artifactId='maven-compiler-plugin']//pom:source" 1.8
%pom_xpath_set "//pom:plugin[pom:artifactId='maven-compiler-plugin']//pom:target" 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
# Unbundle the JNI headers
rm src/main/native/inc_linux/*.h
ln -s %{java_home}/include/jni.h src/main/native/inc_linux
ln -s %{java_home}/include/linux/jni_md.h src/main/native/inc_linux
# Set the JNI path
sed -i 's,@LIBDIR@,%{libdir},' \
src/main/java/org/fusesource/jansi/internal/JansiLoader.java
%build
%mvn_build
# Build the native artifact
CFLAGS="%{build_cflags} -I. -I%{java_home}/include -I%{java_home}/include/linux -fPIC -fvisibility=hidden"
cd src/main/native
gcc $CFLAGS -c jansi.c
gcc $CFLAGS -c jansi_isatty.c
gcc $CFLAGS -c jansi_structs.c
gcc $CFLAGS -c jansi_ttyname.c
gcc $CFLAGS %{build_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}%{_libdir}/%{name}
cp -p src/main/native/libjansi.so %{buildroot}%{_libdir}/%{name}
# Install the Java artifacts
%mvn_install
%files -f .mfiles
%license license.txt
%doc readme.md changelog.md
%{_libdir}/%{name}/
%files javadoc -f .mfiles-javadoc
%license license.txt
%changelog
* 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

View File

@ -1 +1 @@
SHA512 (jansi-project-1.18.tar.gz) = d34f271853250d4b23987c0b4d2eeadd9fdb1211b2f5187258bb43e2741d8263312ee04c9a39812550eb658853668a5e941ff3978682cea47c059c6ba85d3e9d
SHA512 (jansi-2.1.1.tar.gz) = ccdb7b13da6715398b0b1d53bb1272ac445774dea7f643882c7df0182e17350b41dd1c782161f5350028209c82ac3588c22ceaaacd4930ec78645230b335bc4a