File java-1_5_0-gcj-compat.spec of Package java-1_5_0-gcj-compat
#
# spec file for package java-1_5_0-gcj-compat
#
# Copyright (c) 2020 SUSE LLC
#
# 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 https://bugs.opensuse.org/
#
%define section free
%define gccsuffix %(rpm -q --qf "%%{VERSION}" gcc-java | sed 's#\.##g')
%define gccbinsuffix %(rpm -q --qf "-%%{VERSION}" gcc-java)
%define origin gcj
%define priority 1505
%define javaver 1.5.0
%define buildver 0
%define gccver %(rpm -q --qf "%%{VERSION}" gcc-java)
%define jgcver 1.0.80
%define cname java-%{javaver}-%{origin}%{gccbinsuffix}
%define sdklnk java-%{javaver}-%{origin}
%define jrelnk jre-%{javaver}-%{origin}
%define sdkdir %{cname}-%{version}
%define jredir %{sdkdir}/jre
%define sdkbindir %{_jvmdir}/%{sdklnk}/bin
%define jrebindir %{_jvmdir}/%{jrelnk}/bin
%define jvmjardir %{_jvmjardir}/%{cname}-%{version}
# FIXME: this is not a good fix of name issue
%define jvmdir %{_jvmdir}/%{sdklnk}%{gccbinsuffix}-%{version}
%define sdkjardir %{_jvmdir}/%{sdkdir}/lib
# 32-bit versus 64-bit specific provides:
%ifarch %{ix86} ppc s390
%define bits 32
%endif
%ifarch x86_64 ia64 s390x ppc64
%define bits 64
%endif
Name: java-1_5_0-gcj-compat
Version: 1.5.0.0
Release: 0
Summary: JPackage Runtime Scripts for GCJ
License: GPL-2.0-or-later
Group: Development/Languages/Java
URL: ftp://sources.redhat.com/pub/rhug/java-gcj-compat
Source0: ftp://sources.redhat.com/pub/rhug/java-gcj-compat-%{jgcver}.tar.gz
Source1: baselibs.conf
# Call gij instead of gcj in the "java" wrapper script:
Patch0: gcc43-fixes.patch
Patch1: python_prefix.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gcc-gij
BuildRequires: gcc-java
BuildRequires: javapackages-tools
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: unzip
BuildRequires: update-alternatives
Requires: gcc%{gccsuffix}-gij
Requires(post): coreutils
Requires(post): sed
Requires(post): update-alternatives
Requires(pre): sed
# See java-1_4_2-sun.spec:
Provides: j2re = %{javaver}
Provides: java = %{javaver}
Provides: java-%{bits} = %{javaver}
Provides: java-%{javaver}
Provides: java-%{javaver}-%{bits}
Provides: java-%{origin} = %{version}-%{release}
Provides: java-%{origin}-%{bits} = %{version}-%{release}
Provides: jdbc-stdext
Provides: jdbc-stdext-%{bits}
Provides: jndi-%{bits}
Provides: jre = %{javaver}
Provides: jre-%{bits} = %{javaver}
Provides: jre-%{javaver}
Provides: jre-%{javaver}-%{bits}
Provides: jre-%{javaver}-%{origin} = %{version}-%{release}
Provides: jre-%{javaver}-%{origin}-%{bits} = %{version}-%{release}
Provides: jre-%{origin} = %{version}-%{release}
Provides: jre-%{origin}-%{bits} = %{version}-%{release}
# See java-1_4_2-sun.spec and Suse Bugzilla bug #148186:
Provides: jre1.1.x
Provides: jre1.2.x
Provides: jre1.3.x
Provides: jre1.4.x
Provides: jre1.5.x
# See java-1_4_2-sun.spec and Suse Bugzilla bug #160828:
Provides: jaas = %{javaver}
Provides: jndi = %{javaver}
Provides: jndi-cos = %{javaver}
Provides: jndi-dns = %{javaver}
Provides: jndi-ldap = %{javaver}
Provides: jndi-rmi = %{javaver}
# also provide the java_1_4_2-gcj-compat
# see comment 15 bug #341578
Provides: java-1_4_2-gcj-compat = %{version}-%{release}
Obsoletes: java-1_4_2-gcj-compat < %{version}-%{release}
# not required #341578
# Requires: classpath
# let's provide it here for now
Provides: classpath = %{version}
Obsoletes: classpath <= 0.95
Provides: classpath-jta = %{version}
Obsoletes: classpath-jta <= 0.95
Provides: jta
Provides: java-headless = %{version}-%{release}
%if 0%{?suse_version} > 1230
BuildRequires: ca-certificates-mozilla
%else
BuildRequires: openssl-certs
%endif
%description
This package contains shell scripts and symbolic links to simulate a
JPackage Java runtime environment with GCJ.
%package devel
Summary: JPackage development scripts for GCJ
Group: Development/Languages/Java
Requires: %{name} = %{version}-%{release}
Requires: gcc%{gccsuffix}-java >= %{gccver}
# Be able to check bytecode version
Requires: unzip
Requires(post): coreutils
Requires(post): update-alternatives
# Similar provides as in java-1_4_2-sun.spec:
Provides: classpath-devel = %{version}
Provides: java-%{javaver}-devel
Provides: java-devel = %{javaver}
Provides: java-devel-%{origin} = %{version}
Provides: java-sdk = %{javaver}
Provides: java-sdk-%{javaver}
Provides: java-sdk-%{javaver}-%{origin} = %{version}
Provides: java-sdk-%{origin} = %{version}
Obsoletes: classpath-devel <= 0.95
# See java-1_4_2-sun.spec:
Provides: j2sdk = %{javaver}
Provides: java-1_4_2-gcj-compat-devel = %{version}-%{release}
Obsoletes: java-1_4_2-gcj-compat-devel < %{version}-%{release}
%description devel
This package contains shell scripts and symbolic links to simulate a
JPackage Java development environment with GCJ.
%prep
%setup -q -n java-gcj-compat-%{jgcver}
%patch -P 0 -p1
%patch -P 1
# bnc#447342
for key in %{_sysconfdir}/ssl/certs/*.pem; do
# workaround for bnc#546843
(yes | gkeytool%{gccbinsuffix} -import -keystore cacerts -file $key -storepass '' -alias `basename $key`) || :
done
%build
autoreconf -fi
%configure \
--disable-symlinks \
--with-gcc-suffix=%{gccbinsuffix} \
--with-jvm-root-dir=%{_jvmdir} \
--with-java-home=%{_jvmdir}
%ifarch riscv64
make -j1
%else
make %{?_smp_mflags}
%endif
%install
%make_install
install -dm 755 %{buildroot}%{_jvmdir}/%{cname}-%{version}/jre/lib
# make a link to ecj.jar in the lib dir:
ln -sf %{_javadir}/libgcj%{gccbinsuffix}.jar %{buildroot}%{_jvmdir}/%{cname}-%{version}/jre/lib/jdtcore.jar
ln -sf %{_javadir}/libgcj%{gccbinsuffix}.jar %{buildroot}%{_jvmdir}/%{cname}-%{version}/jre/lib/rt.jar
install -dm 755 %{buildroot}%{_jvmdir}/%{cname}-%{version}/include
mkdir %{buildroot}%{_jvmdir} || :
pushd %{buildroot}%{_jvmdir}
ln -s %{jredir} %{jrelnk}
ln -s %{sdkdir} %{sdklnk}
popd
mkdir -p %{buildroot}/%{jvmjardir}|| :
pushd %{buildroot}%{_jvmjardir}
ln -s %{sdkdir} %{jrelnk}
ln -s %{sdkdir} %{sdklnk}
popd
mkdir -p %{buildroot}/%{sdkjardir}|| :
mkdir -p %{buildroot}/%{_bindir}
mkdir -p %{buildroot}/%{_libdir}
mv %{buildroot}%{_prefix}/local/%{_lib}/* %{buildroot}/%{_libdir} || :
rm -rf %{buildroot}%{_prefix}/local/
rm -f %{buildroot}/%{_jvmdir}/%{sdkdir}/bin/javadoc
rm -f %{buildroot}/%{_bindir}/gjdoc
# Create a script that uses the gcj's ecj.jar as java compiler.
# This provides javac that is option-compatible with openjdk
pushd %{buildroot}/%{_jvmdir}/%{sdkdir}/bin/
rm -f javac
JAVAC=`pwd`/javac
ECJJAR=`gcj%{gccbinsuffix} -print-file-name=ecj.jar`
cat <<EOF > $JAVAC
#!/bin/sh
exec gij%{gccbinsuffix} -cp $ECJJAR org.eclipse.jdt.internal.compiler.batch.Main \${1+\$@}
EOF
chmod +x ${JAVAC}
popd
# generate file lists
find %{buildroot}%{_jvmdir}/%{jredir} -type d \
| sed 's|'%{buildroot}'|%dir |' > %{name}-%{version}-all.files
find %{buildroot}%{_jvmdir}/%{jredir} -type f -o -type l \
| sed 's|'%{buildroot}'||' >> %{name}-%{version}-all.files
cat %{name}-%{version}-all.files \
> %{name}-%{version}.files
find %{buildroot}%{_jvmdir}/%{sdkdir}/bin -type f \
| sed "s|^%{buildroot}||" > %{name}-%{version}-sdk-bin.files
# bnc#447342
install -d -m 0755 %{buildroot}/%{_jvmdir}/%{jredir}/lib/security/
install -m 0644 cacerts %{buildroot}/%{_jvmdir}/%{jredir}/lib/security/
# alternatives regular
mkdir -p %{buildroot}%{_sysconfdir}/alternatives/
touch "%{buildroot}%{_sysconfdir}/alternatives/java"
ln -sf %{_sysconfdir}/alternatives/java %{buildroot}%{_bindir}/java
touch "%{buildroot}%{_sysconfdir}/alternatives/jre"
ln -sf %{_sysconfdir}/alternatives/jre %{buildroot}%{_jvmdir}/jre
touch "%{buildroot}%{_sysconfdir}/alternatives/jre_exports"
ln -sf %{_sysconfdir}/alternatives/jre_exports %{buildroot}%{_jvmjardir}/jre
touch "%{buildroot}%{_sysconfdir}/alternatives/rmiregistry"
ln -sf %{_sysconfdir}/alternatives/rmiregistry %{buildroot}%{_bindir}/rmiregistry
touch "%{buildroot}%{_sysconfdir}/alternatives/jre_%{origin}"
ln -sf %{_sysconfdir}/alternatives/jre_%{origin} %{buildroot}%{_jvmdir}/jre-%{origin}
touch "%{buildroot}%{_sysconfdir}/alternatives/jre_%{origin}_exports"
ln -sf %{_sysconfdir}/alternatives/jre_%{origin}_exports %{buildroot}%{_jvmjardir}/jre-%{origin}
touch "%{buildroot}%{_sysconfdir}/alternatives/jre_%{javaver}"
ln -sf %{_sysconfdir}/alternatives/jre_%{javaver} %{buildroot}%{_jvmdir}/jre-%{javaver}
touch "%{buildroot}%{_sysconfdir}/alternatives/jre_%{javaver}_exports"
ln -sf %{_sysconfdir}/alternatives/jre_%{javaver}_exports %{buildroot}%{_jvmjardir}/jre-%{javaver}
# alternatives devel
touch "%{buildroot}%{_sysconfdir}/alternatives/javac"
ln -sf %{_sysconfdir}/alternatives/javac %{buildroot}%{_bindir}/javac
touch "%{buildroot}%{_sysconfdir}/alternatives/java_sdk"
ln -sf %{_sysconfdir}/alternatives/java_sdk %{buildroot}%{_jvmdir}/java
touch "%{buildroot}%{_sysconfdir}/alternatives/java_sdk_exports"
ln -sf %{_sysconfdir}/alternatives/java_sdk_exports %{buildroot}%{_jvmjardir}/java
touch "%{buildroot}%{_sysconfdir}/alternatives/javah"
ln -sf %{_sysconfdir}/alternatives/javah %{buildroot}%{_bindir}/javah
touch "%{buildroot}%{_sysconfdir}/alternatives/jar"
ln -sf %{_sysconfdir}/alternatives/jar %{buildroot}%{_bindir}/jar
touch "%{buildroot}%{_sysconfdir}/alternatives/rmic"
ln -sf %{_sysconfdir}/alternatives/rmic %{buildroot}%{_bindir}/rmic
touch "%{buildroot}%{_sysconfdir}/alternatives/java_sdk_%{origin}"
ln -sf %{_sysconfdir}/alternatives/java_sdk_%{origin} %{buildroot}%{_jvmdir}/java-%{origin}
touch "%{buildroot}%{_sysconfdir}/alternatives/java_sdk_%{origin}_exports"
ln -sf %{_sysconfdir}/alternatives/java_sdk_%{origin}_exports %{buildroot}%{_jvmjardir}/java-%{origin}
touch "%{buildroot}%{_sysconfdir}/alternatives/java_sdk_%{javaver}"
ln -sf %{_sysconfdir}/alternatives/java_sdk_%{javaver} %{buildroot}%{_jvmdir}/java-%{javaver}
touch "%{buildroot}%{_sysconfdir}/alternatives/java_sdk_%{javaver}_exports"
ln -sf %{_sysconfdir}/alternatives/java_sdk_%{javaver}_exports %{buildroot}%{_jvmjardir}/java-%{javaver}
%post
%{_sbindir}/update-alternatives \
--install %{_bindir}/java java %{jrebindir}/java %{priority} \
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jrelnk} \
--slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk} \
--slave %{_bindir}/rmiregistry rmiregistry %{jrebindir}/rmiregistry
%{_sbindir}/update-alternatives \
--install %{_jvmdir}/jre-%{origin} \
jre_%{origin} %{_jvmdir}/%{jrelnk} %{priority} \
--slave %{_jvmjardir}/jre-%{origin} \
jre_%{origin}_exports %{_jvmjardir}/%{jrelnk}
%{_sbindir}/update-alternatives \
--install %{_jvmdir}/jre-%{javaver} \
jre_%{javaver} %{_jvmdir}/%{jrelnk} %{priority} \
--slave %{_jvmjardir}/jre-%{javaver} \
jre_%{javaver}_exports %{_jvmjardir}/%{jrelnk}
# little work-around if no version-less link to libgcj-x.y.z.jar does not exist
if [ ! -e %{_javadir}/libgcj.jar ] && ls %{_javadir}/libgcj-[0-9]*.jar 2>/dev/null >&2
then
cd %{_javadir}
for file in `ls libgcj-[0-9]*.jar`
do
LIBGCJ_NAME=$file
done
cd - >/dev/null
else
LIBGCJ_NAME=libgcj.jar
fi
cd %{jvmjardir}
ln -sf %{_javadir}/$LIBGCJ_NAME jndi-%{version}.jar
ln -sf %{_javadir}/$LIBGCJ_NAME jndi-ldap-%{version}.jar
ln -sf %{_javadir}/$LIBGCJ_NAME jndi-cos-%{version}.jar
ln -sf %{_javadir}/$LIBGCJ_NAME jndi-rmi-%{version}.jar
ln -sf %{_javadir}/$LIBGCJ_NAME jaas-%{version}.jar
ln -sf %{_javadir}/$LIBGCJ_NAME jdbc-stdext-%{version}.jar
ln -sf jdbc-stdext-%{version}.jar jdbc-stdext-3.0.jar
for jar in *-%{version}.jar ; do
ln -fs ${jar} $(echo $jar | sed "s|-%{version}.jar|-%{javaver}.jar|g")
ln -fs ${jar} $(echo $jar | sed "s|-%{version}.jar|.jar|g")
done
cd - >/dev/null
%post devel
%{_sbindir}/update-alternatives \
--install %{_bindir}/javac javac %{sdkbindir}/javac %{priority} \
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdklnk} \
--slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdklnk} \
--slave %{_bindir}/javah javah %{sdkbindir}/javah \
--slave %{_bindir}/jar jar %{sdkbindir}/jar \
--slave %{_bindir}/rmic rmic %{sdkbindir}/rmic
%{_sbindir}/update-alternatives \
--install %{_jvmdir}/java-%{origin} \
java_sdk_%{origin} %{_jvmdir}/%{sdklnk} %{priority} \
--slave %{_jvmjardir}/java-%{origin} \
java_sdk_%{origin}_exports %{_jvmjardir}/%{sdklnk}
%{_sbindir}/update-alternatives \
--install %{_jvmdir}/java-%{javaver} \
java_sdk_%{javaver} %{_jvmdir}/%{sdklnk} %{priority} \
--slave %{_jvmjardir}/java-%{javaver} \
java_sdk_%{javaver}_exports %{_jvmjardir}/%{sdklnk}
for i in gcj/libgcj-config.h jawt.h jawt_md.h jni.h jni_md.h; do
mkdir -p `dirname %{_jvmdir}/%{cname}-%{version}/include/$i`
ln -sf \
`gcj%{gccbinsuffix} -print-file-name=include/$i` \
%{_jvmdir}/%{cname}-%{version}/include/$i
done
# little work-around if no version-less link to libgcj-x.y.z.jar does not exist
if [ ! -e %{_javadir}/libgcj-tool.sjar ] && ls %{_javadir}/libgcj-tools-*.jar 2>/dev/null >&2
then
cd %{_javadir}
for file in `ls libgcj-tools-*.jar`
do
LIBGCJTOOLS_NAME=$file
done
cd - >/dev/null
else
LIBGCJTOOLS_NAME=libgcj-tools.jar
fi
cd %{sdkjardir}
ln -sf %{_javadir}/$LIBGCJTOOLS_NAME tools.jar
cd - >/dev/null
%postun
if [ $1 -eq 0 ] ; then
rm -rf %{jvmjardir}/*
%{_sbindir}/update-alternatives --remove java %{jrebindir}/java
%{_sbindir}/update-alternatives --remove jre_%{origin} %{_jvmdir}/%{jrelnk}
%{_sbindir}/update-alternatives --remove jre_%{javaver} %{_jvmdir}/%{jrelnk}
fi
%postun devel
if [ $1 -eq 0 ] ; then
%{_sbindir}/update-alternatives --remove javac %{sdkbindir}/javac
%{_sbindir}/update-alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdklnk}
%{_sbindir}/update-alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdklnk}
fi
%files -f %{name}-%{version}.files
%ghost %{_sysconfdir}/alternatives/java
%ghost %{_sysconfdir}/alternatives/jre
%ghost %{_sysconfdir}/alternatives/jre_exports
%ghost %{_sysconfdir}/alternatives/rmiregistry
%ghost %{_sysconfdir}/alternatives/jre_%{origin}
%ghost %{_sysconfdir}/alternatives/jre_%{origin}_exports
%ghost %{_sysconfdir}/alternatives/jre_%{javaver}
%ghost %{_sysconfdir}/alternatives/jre_%{javaver}_exports
%{_bindir}/java
%{_jvmdir}/jre
%{_jvmjardir}/jre
%{_bindir}/rmiregistry
%{_jvmdir}/jre-%{origin}
%{_jvmjardir}/jre-%{origin}
%{_jvmdir}/jre-%{javaver}
%{_jvmjardir}/jre-%{javaver}
%dir %{_jvmdir}
%dir %{_jvmdir}/%{sdkdir}
%{_jvmdir}/%{jrelnk}
%{_jvmjardir}/
%exclude %{_jvmjardir}/%{sdklnk}
%exclude %{_jvmjardir}/java-%{javaver}
%exclude %{_jvmjardir}/java-%{origin}
%exclude %{_jvmjardir}/java
%{jvmjardir}
%{_jvmdir}/%{jredir}/lib/security
%{_bindir}/aot-compile
%{_bindir}/aot-compile-rpm
%{_bindir}/rebuild-gcj-db
%files devel -f %{name}-%{version}-sdk-bin.files
%ghost %{_sysconfdir}/alternatives/javac
%ghost %{_sysconfdir}/alternatives/java_sdk
%ghost %{_sysconfdir}/alternatives/java_sdk_exports
%ghost %{_sysconfdir}/alternatives/javah
%ghost %{_sysconfdir}/alternatives/jar
%ghost %{_sysconfdir}/alternatives/rmic
%ghost %{_sysconfdir}/alternatives/java_sdk_%{origin}
%ghost %{_sysconfdir}/alternatives/java_sdk_%{origin}_exports
%ghost %{_sysconfdir}/alternatives/java_sdk_%{javaver}
%ghost %{_sysconfdir}/alternatives/java_sdk_%{javaver}_exports
%{_bindir}/javac
%{_jvmdir}/java
%{_jvmjardir}/java
%{_bindir}/javah
%{_bindir}/jar
%{_bindir}/rmic
%{_jvmdir}/java-%{origin}
%{_jvmjardir}/java-%{origin}
%{_jvmdir}/java-%{javaver}
%{_jvmjardir}/java-%{javaver}
%{_jvmdir}/%{sdkdir}/include
%{_jvmdir}/%{sdklnk}
%{_jvmjardir}/%{sdklnk}
%{python3_sitelib}/*
%{jvmdir}
%exclude %{jvmdir}/jre
%changelog