File jogl2.spec of Package jogl2

# spec file for package jogl2
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
# 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

%define src_name jogl-v%{version}
Name:           jogl2
Version:        2.3.2
Release:        0
Summary:        Java bindings for the OpenGL API
License:        BSD-2-Clause
Group:          Development/Libraries/Java
Patch0:         %{name}-0000-update-antlr-ant-contrib-jars.patch
Patch1:         %{name}-0001-update-ant-contrib-tasks.patch
Patch2:         jogl2-disable-tests.patch
Patch3:         jogl2-ppc64.patch
Patch4:         jogl2-getPeer.patch
Patch5:         jogl2-nojavah.patch
BuildRequires:  ant >= 1.9.8
BuildRequires:  ant-contrib
BuildRequires:  eclipse-swt
BuildRequires:  gluegen2-devel = %{version}
BuildRequires:  java-devel >= 1.8
BuildRequires:  jpackage-utils
BuildRequires:  libXcursor-devel
BuildRequires:  libXrandr-devel
BuildRequires:  libXrender-devel
BuildRequires:  libXt-devel
BuildRequires:  libXxf86vm-devel
Requires:       gluegen2 = %{version}
Requires:       java
Requires:       jpackage-utils

The JOGL project hosts the development version of the Java Binding for
the OpenGL API, and is designed to provide hardware-supported 3D graphics
to applications written in Java.

JOGL provides full access to the APIs in the OpenGL 1.3 - 3.0, 3.1 - 3.3,
≥ 4.0, ES 1.x and ES 2.x specification as well as nearly all vendor
extensions. OpenGL Evolution & JOGL (UML) gives you a brief overview
of OpenGL, its profiles and how we map them to JOGL.

%setup -q -n %{src_name}

# Remove bundled dependencies
find -name "*.jar" -type f -print -exec rm {} \;
find -name "*.apk" -type f -print -exec rm {} \;
rm -fr make/lib
# Also remove experimantal applets that requires a bundled jar for building
rm -fr src/newt/classes/com/jogamp/newt/util/applet/
rm -fr src/newt/classes/com/jogamp/newt/util/applet/

%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1

# Fix wrong-script-end-of-line-encoding
rm make/scripts/*.bat

# Fix spurious-executable-perm
chmod -x LICENSE.txt

find make/scripts -type f -not -name "*.sh" -print -exec chmod -x {} \;

# Fix non-executable-script
find make/scripts -type f -name "*.sh" -print -exec chmod +x {} \;

# Fix script-without-shebang
find make/scripts -type f -name "*.sh" -print -exec sed -i -e '1i#!/bin/sh' {} \;

# Restore the gluegen2 source code from gluegen2-commons
cp -r %{_datadir}/gluegen2 ../gluegen

# git executable should not be used, use true (to avoid checkout) instead
sed -i 's/executable="git"/executable="true"/' make/build-common.xml

cd make
export CLASSPATH=""
# force cross compilation support to use native root (noop on anything but ARM)
ant \
	-Djavacdebug=true \
    -Djavacdebuglevel=lines,vars,source \
    -Dc.compiler.debug=true \
    -Djava.version=1.6 \
    -Dantlr.jar=$(build-classpath antlr) \
    -Djunit.jar=$(build-classpath junit) \
    -Dant.jar$(build-classpath ant) \
    -Dant-junit.jar=$(build-classpath ant-junit) \
    -Dgluegen.jar=$(build-classpath gluegen2) \
    -Dgluegen-rt.jar=$(build-classpath gluegen2-rt) \
    -Dswt.jar=$(build-classpath swt) \
    -Dcflags_extra.native="%{optflags}" \

mkdir -p %{buildroot}%{_javadir}/%{name} \
    %{buildroot}%{_libdir}/%{name} \

install build/jar/jogl-all.jar %{buildroot}%{_jnidir}/%{name}.jar
ln -s ../../..%{_jnidir}/%{name}.jar %{buildroot}%{_libdir}/%{name}/
install -t %{buildroot}%{_libdir}/%{name}/ build/lib/*.so