Blame jansi.spec

Bernhard M. Wiedemann d826e7
#
Bernhard M. Wiedemann d826e7
# spec file for package jansi
Bernhard M. Wiedemann d826e7
#
2e18b5
# Copyright (c) 2023 SUSE LLC
Bernhard M. Wiedemann d826e7
#
Bernhard M. Wiedemann d826e7
# All modifications and additions to the file contributed by third parties
Bernhard M. Wiedemann d826e7
# remain the property of their copyright owners, unless otherwise agreed
Bernhard M. Wiedemann d826e7
# upon. The license for this file, and modifications and additions to the
Bernhard M. Wiedemann d826e7
# file, is the same license as for the pristine package itself (unless the
Bernhard M. Wiedemann d826e7
# license for the pristine package is not an Open Source License, in which
Bernhard M. Wiedemann d826e7
# case the license is the MIT License). An "Open Source License" is a
Bernhard M. Wiedemann d826e7
# license that conforms to the Open Source Definition (Version 1.9)
Bernhard M. Wiedemann d826e7
# published by the Open Source Initiative.
Bernhard M. Wiedemann d826e7
Bernhard M. Wiedemann d826e7
# Please submit bugfixes or comments via https://bugs.opensuse.org/
Bernhard M. Wiedemann d826e7
#
Bernhard M. Wiedemann d826e7
Bernhard M. Wiedemann d826e7
Bernhard M. Wiedemann d826e7
Name:           jansi
bfadad
Version:        2.4.0
Bernhard M. Wiedemann d826e7
Release:        0
Bernhard M. Wiedemann d826e7
Summary:        Java library for generating and interpreting ANSI escape sequences
Bernhard M. Wiedemann d826e7
License:        Apache-2.0
Bernhard M. Wiedemann d826e7
Group:          Development/Libraries/Java
bfadad
URL:            https://fusesource.github.io/jansi/
2e18b5
Source0:        %{name}-%{version}.tar.xz
Bernhard M. Wiedemann d826e7
Source1:        %{name}-build.xml
bfadad
Patch0:         %{name}-jni.patch
Bernhard M. Wiedemann d826e7
BuildRequires:  ant
Bernhard M. Wiedemann d826e7
BuildRequires:  fdupes
bfadad
BuildRequires:  gcc
Bernhard M. Wiedemann d826e7
BuildRequires:  javapackages-local
Bernhard M. Wiedemann d826e7
Bernhard M. Wiedemann d826e7
%description
Bernhard M. Wiedemann d826e7
Jansi is a java library that allows you to use ANSI escape sequences
Bernhard M. Wiedemann d826e7
in your Java console applications. It implements ANSI support on platforms
Bernhard M. Wiedemann d826e7
which don't support it, like Windows, and provides graceful degradation for
Bernhard M. Wiedemann d826e7
when output is being sent to output devices which cannot support ANSI sequences.
Bernhard M. Wiedemann d826e7
Bernhard M. Wiedemann d826e7
%package javadoc
Bernhard M. Wiedemann d826e7
Summary:        Javadocs for %{name}
Bernhard M. Wiedemann d826e7
Group:          Documentation/HTML
bfadad
BuildArch:      noarch
Bernhard M. Wiedemann d826e7
Bernhard M. Wiedemann d826e7
%description javadoc
Bernhard M. Wiedemann d826e7
This package contains the API documentation for %{name}.
Bernhard M. Wiedemann d826e7
Bernhard M. Wiedemann d826e7
%prep
2e18b5
%setup -q
bfadad
cp %{SOURCE1} build.xml
bfadad
bfadad
%pom_remove_parent
Bernhard M. Wiedemann d826e7
bfadad
# We don't need the Fuse JXR skin
Bernhard M. Wiedemann d826e7
%pom_xpath_remove "pom:build/pom:extensions"
Bernhard M. Wiedemann d826e7
bfadad
# Plugins not needed for an RPM build
bfadad
%pom_remove_plugin :maven-gpg-plugin
bfadad
%pom_remove_plugin :maven-javadoc-plugin
bfadad
%pom_remove_plugin :nexus-staging-maven-plugin
bfadad
bfadad
# We don't want GraalVM support in Fedora
bfadad
%pom_remove_plugin :exec-maven-plugin
bfadad
%pom_remove_dep :picocli-codegen
bfadad
bfadad
# Build for JDK 1.8 at a minimum
bfadad
%pom_xpath_set "//pom:properties/pom:jdkTarget" 1.8
Bernhard M. Wiedemann d826e7
2e18b5
# Link the JNI headers
bfadad
ln -s %{java_home}/include/jni.h src/main/native/inc_linux
bfadad
ln -s %{java_home}/include/linux/jni_md.h src/main/native/inc_linux
bfadad
bfadad
# Set the JNI path
bfadad
sed -i 's,@LIBDIR@,%{_libdir},' \
bfadad
    src/main/java/org/fusesource/jansi/internal/JansiLoader.java
bfadad
# Filtering complicated with ant
bfadad
sed -i 's,\${project.version},%{version},' \
bfadad
    src/main/resources/org/fusesource/jansi/jansi.properties
Bernhard M. Wiedemann d826e7
Bernhard M. Wiedemann d826e7
%build
bfadad
# Build the native artifact
bfadad
CFLAGS="$CFLAGS -I. -I%{java_home}/include -I%{java_home}/include/linux -fPIC -fvisibility=hidden"
bfadad
pushd src/main/native
bfadad
%__cc $CFLAGS -c jansi.c
bfadad
%__cc $CFLAGS -c jansi_isatty.c
bfadad
%__cc $CFLAGS -c jansi_structs.c
bfadad
%__cc $CFLAGS -c jansi_ttyname.c
bfadad
%__cc $CFLAGS $LDFLAGS -shared -o libjansi.so *.o -lutil
bfadad
popd
bfadad
bfadad
# Build the Java artifacts
bfadad
%{ant} jar javadoc
Bernhard M. Wiedemann d826e7
Bernhard M. Wiedemann d826e7
%install
bfadad
# Install the native artifact
bfadad
install -dm 0755 %{buildroot}%{_libdir}/%{name}
bfadad
install -pm 0755 src/main/native/libjansi.so %{buildroot}%{_libdir}/%{name}
bfadad
Bernhard M. Wiedemann d826e7
# jar
bfadad
install -dm 0755 %{buildroot}%{_jnidir}/%{name}
bfadad
install -pm 0644 target/%{name}-%{version}.jar %{buildroot}%{_jnidir}/%{name}/%{name}.jar
Bernhard M. Wiedemann d826e7
# pom
Bernhard M. Wiedemann d826e7
install -dm 0755 %{buildroot}%{_mavenpomdir}/%{name}
bfadad
install -pm 0644 pom.xml %{buildroot}%{_mavenpomdir}/%{name}/%{name}.pom
Bernhard M. Wiedemann d826e7
%add_maven_depmap %{name}/%{name}.pom %{name}/%{name}.jar
Bernhard M. Wiedemann d826e7
# javadoc
Bernhard M. Wiedemann d826e7
%fdupes -s %{buildroot}%{_javadocdir}
Bernhard M. Wiedemann d826e7
# javadoc
Bernhard M. Wiedemann d826e7
install -dm 0755 %{buildroot}%{_javadocdir}/%{name}
bfadad
cp -pr target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name}
Bernhard M. Wiedemann d826e7
%fdupes -s %{buildroot}%{_javadocdir}
Bernhard M. Wiedemann d826e7
Bernhard M. Wiedemann d826e7
%files -f .mfiles
Bernhard M. Wiedemann d826e7
%license license.txt
Bernhard M. Wiedemann d826e7
%doc readme.md changelog.md
bfadad
%{_libdir}/%{name}
Bernhard M. Wiedemann d826e7
Bernhard M. Wiedemann d826e7
%files javadoc
Bernhard M. Wiedemann d826e7
%{_javadocdir}/%{name}
Bernhard M. Wiedemann d826e7
Bernhard M. Wiedemann d826e7
%changelog