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 (Version 1.5.0.0)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# norootforbuild
# icecream 0
Name: java-1_5_0-gcj-compat
BuildRequires: gcc-gij gcc-java gjdoc python-devel unzip
#!BuildIgnore: antlr
BuildRequires: antlr-bootstrap
%if %{?!suse_version:1}0
%if %{?!mandriva_release:1}0
BuildRequires: chkconfig which
%endif
%else
BuildRequires: update-alternatives
%endif
%if %{undefined _jvmdir}
%define _jvmdir %{_libdir}/jvm
%endif
%if %{undefined _jvmjardir}
%define _jvmjardir %{_libdir}/jvm-exports
%endif
Version: 1.5.0.0
Release: 56
%define section free
%define gccsuffix %{nil}
%define gccbinsuffix -4.3
%define origin gcj%{gccsuffix}
%define priority 1500
%define javaver 1.5.0
%define buildver 0
%define gccver 4.3
%define jgcver 1.0.76
%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
Summary: JPackage Runtime Scripts for GCJ
Group: Development/Languages/Java
License: GPL v2 or later
Url: ftp://sources.redhat.com/pub/rhug/java-gcj-compat
Source0: java-gcj-compat-%{jgcver}.tar.bz2
# Call gij instead of gcj in the "java" wrapper script:
Patch0: gcc43-fixes.patch
Patch1: python_prefix.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# gcc-java should not be required, see Suse Bugzilla bug #151732
# even if it would be required it should have been a PreReq
# because gcj was called in the post install section
# now the gcj related stuff is only done via triggerin
#Requires: gcc%{gccsuffix}-java >= %{gccver}
#PreReq: libgcj%{gccsuffix} >= %{gccver}
#Requires: libgcj%{gccsuffix} >= %{gccver}
PreReq: gcc-gij
%if %{?!suse_version:1}0
%if %{?!mandriva_release:1}0
PreReq: chkconfig which
%endif
%else
PreReq: update-alternatives
%endif
PreReq: coreutils
# Requires: gjdoc
# See java-1_4_2-sun.spec:
Provides: jre-%{javaver}-%{origin} = %{version}-%{release}
Provides: jre-%{origin} = %{version}-%{release}
Provides: jre-%{javaver}, java-%{javaver}, jre = %{javaver}
Provides: java-%{origin} = %{version}-%{release}
Provides: java = %{javaver}
Provides: jndi, jdbc-stdext
Provides: j2re = %{javaver}, j2re
# 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
Provides: jre-%{javaver}-%{origin}-%{bits} = %{version}-%{release}
Provides: jre-%{javaver}-%{origin}-%{bits} = %{version}-%{release}
Provides: jre-%{origin}-%{bits} = %{version}-%{release}
Provides: jre-%{javaver}-%{bits}, java-%{javaver}-%{bits}, jre-%{bits} = %{javaver}
Provides: java-%{origin}-%{bits} = %{version}-%{release}
Provides: java-%{bits} = %{javaver}
Provides: jndi-%{bits}, jdbc-stdext-%{bits}
# See java-1_4_2-sun.spec and Suse Bugzilla bug #148186:
Provides: jre1.1.x jre1.2.x jre1.3.x jre1.4.x jre1.5.x
# See java-1_4_2-sun.spec and Suse Bugzilla bug #160828:
Provides: jndi = %{javaver}, jndi-ldap = %{javaver}
Provides: jndi-cos = %{javaver}, jndi-rmi = %{javaver}
Provides: jndi-dns = %{javaver}
Provides: jaas = %{javaver}
# also provide the java_1_4_2-gcj-compat
# see comment 15 bug #341578
Provides: java-1_4_2-gcj-compat
Obsoletes: java-1_4_2-gcj-compat
# 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
%description
This package contains shell scripts and symbolic links to simulate a
JPackage Java runtime environment with GCJ.
Authors:
--------
Thomas Fitzsimmons <fitzsim@redhat.com>
%package devel
License: GPL v2 or later
Summary: JPackage development scripts for GCJ
Group: Development/Languages/Java
PreReq: update-alternatives
PreReq: coreutils
# See Suse Bugzilla bug #151732 comment #17:
Requires: gcc-java >= %{gccver}
# Similar provides as in java-1_4_2-sun.spec:
Provides: java-sdk-%{javaver}-%{origin} = %{version}
Provides: java-sdk-%{javaver}
Provides: java-sdk-%{origin} = %{version}
Provides: java-sdk = %{javaver}
Provides: java-%{javaver}-devel
Provides: java-devel-%{origin} = %{version}
Provides: java-devel = %{javaver}
Provides: classpath-devel = %{version}
Obsoletes: classpath-devel <= 0.95
Requires: %{name} = %{version}-%{release}
# Why?
Requires: gjdoc
# See java-1_4_2-sun.spec:
Provides: j2sdk = %{javaver}
# Be able to check bytecode version
Requires: unzip
Provides: java-1_4_2-gcj-compat-devel
Obsoletes: java-1_4_2-gcj-compat-devel
%description devel
This package contains shell scripts and symbolic links to simulate a
JPackage Java development environment with GCJ.
Authors:
--------
Thomas Fitzsimmons <fitzsim@redhat.com>
%prep
%setup -q -n java-gcj-compat-%{jgcver}
%patch0 -p1
%patch1
%build
%configure --disable-symlinks --with-gcc-suffix=%{gccbinsuffix} --with-jvm-root-dir=%{_jvmdir} --with-java-home=%{_jvmdir}
make
%install
%makeinstall
install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{cname}-%{version}/jre/lib
# make a link to ecj.jar in the lib dir:
ln -sf %{_javadir}/libgcj%{gccbinsuffix}.jar $RPM_BUILD_ROOT%{_jvmdir}/%{cname}-%{version}/jre/lib/jdtcore.jar
ln -sf %{_javadir}/libgcj%{gccbinsuffix}.jar $RPM_BUILD_ROOT%{_jvmdir}/%{cname}-%{version}/jre/lib/rt.jar
install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{cname}-%{version}/include
mkdir $RPM_BUILD_ROOT%{_jvmdir} || :
pushd $RPM_BUILD_ROOT%{_jvmdir}
ln -s %{jredir} %{jrelnk}
ln -s %{sdkdir} %{sdklnk}
popd
mkdir -p $RPM_BUILD_ROOT/%{jvmjardir}|| :
pushd $RPM_BUILD_ROOT%{_jvmjardir}
ln -s %{sdkdir} %{jrelnk}
ln -s %{sdkdir} %{sdklnk}
popd
mkdir -p $RPM_BUILD_ROOT/%{sdkjardir}|| :
mkdir -p $RPM_BUILD_ROOT/%_bindir
mkdir -p $RPM_BUILD_ROOT/%_libdir
mv $RPM_BUILD_ROOT/usr/local/%_lib/* $RPM_BUILD_ROOT/%_libdir || :
rm -rf $RPM_BUILD_ROOT/usr/local/
# generate file lists
find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type d \
| sed 's|'$RPM_BUILD_ROOT'|%dir |' > %{name}-%{version}-all.files
find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type f -o -type l \
| sed 's|'$RPM_BUILD_ROOT'||' >> %{name}-%{version}-all.files
cat %{name}-%{version}-all.files \
> %{name}-%{version}.files
find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/bin -type f \
| sed "s|^$RPM_BUILD_ROOT||" > %{name}-%{version}-sdk-bin.files
%clean
rm -rf $RPM_BUILD_ROOT
%post
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
update-alternatives \
--install %{_jvmdir}/jre-%{origin} \
jre_%{origin} %{_jvmdir}/%{jrelnk} %{priority} \
--slave %{_jvmjardir}/jre-%{origin} \
jre_%{origin}_exports %{_jvmjardir}/%{jrelnk}
update-alternatives \
--install %{_jvmdir}/jre-%{javaver} \
jre_%{javaver} %{_jvmdir}/%{jrelnk} %{priority} \
--slave %{_jvmjardir}/jre-%{javaver} \
jre_%{javaver}_exports %{_jvmjardir}/%{jrelnk}
# now the gcj related stuff is only done via triggerin
#ln -sf \
# %{_javadir}/libgcj-`gcj%{gccsuffix} --version | head -n 1 | awk '{ print $3 }'`.jar \
# %{_jvmdir}/%{cname}-%{version}/jre/lib/rt.jar
# 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
pushd %{_javadir}/ 1>/dev/null
for file in `ls libgcj-[0-9]*.jar`
do
LIBGCJ_NAME=$file
done
popd 1>/dev/null
else
LIBGCJ_NAME=libgcj.jar
fi
pushd %{jvmjardir} 1>/dev/null
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
popd 1>/dev/null
%post devel
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}/javadoc javadoc %{sdkbindir}/javadoc \
--slave %{_bindir}/javah javah %{sdkbindir}/javah \
--slave %{_bindir}/jar jar %{sdkbindir}/jar \
--slave %{_bindir}/rmic rmic %{sdkbindir}/rmic
update-alternatives \
--install %{_jvmdir}/java-%{origin} \
java_sdk_%{origin} %{_jvmdir}/%{sdklnk} %{priority} \
--slave %{_jvmjardir}/java-%{origin} \
java_sdk_%{origin}_exports %{_jvmjardir}/%{sdklnk}
update-alternatives \
--install %{_jvmdir}/java-%{javaver} \
java_sdk_%{javaver} %{_jvmdir}/%{sdklnk} %{priority} \
--slave %{_jvmjardir}/java-%{javaver} \
java_sdk_%{javaver}_exports %{_jvmjardir}/%{sdklnk}
# now the gcj related stuff is only done via triggerin
#ln -sf \
# `gcj%{gccsuffix} -print-file-name=include/jni.h` \
# %{_jvmdir}/%{cname}-%{version}/include/jni.h
# little work-around if no version-less link to libgcj-x.y.z.jar does not exist
if [ ! -e %{_javadir}/libgcj-tools.jar ] && ls %{_javadir}/libgcj-tools-*.jar 2>/dev/null >&2
then
pushd %{_javadir}/ 1>/dev/null
for file in `ls libgcj-tools-*.jar`
do
LIBGCJTOOLS_NAME=$file
done
popd 1>/dev/null
else
LIBGCJTOOLS_NAME=libgcj-tools.jar
fi
pushd %{sdkjardir} 1>/dev/null
ln -sf %{_javadir}/$LIBGCJTOOLS_NAME tools.jar
popd 1>/dev/null
%postun
if [ $1 -eq 0 ] ; then
rm -rf %{jvmjardir}/*
update-alternatives --remove java %{jrebindir}/java
update-alternatives --remove jre_%{origin} %{_jvmdir}/%{jrelnk}
update-alternatives --remove jre_%{javaver} %{_jvmdir}/%{jrelnk}
fi
%postun devel
if [ $1 -eq 0 ] ; then
update-alternatives --remove javac %{sdkbindir}/javac
update-alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdklnk}
update-alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdklnk}
fi
## gcc-java requires libgcj and provides the gcj we run for the version
## string
## now the gcj related stuff is only done via triggerin
##% triggerin -- gcc% {gccsuffix}-java > % {gccver}
#
#% triggerin -- gcc% {gccsuffix}-java >= % {gccver}
#{
# ln -sf \
# % {_javadir}/libgcj-`gcj% {gccsuffix} --version | head -n 1 | awk '{ print $3 }'`.jar \
# % {_jvmdir}/% {cname}-% {version}/jre/lib/rt.jar
#} || :
## now the gcj related stuff is only done via triggerin
## gcc-java requires libgcj-devel which provides jni.h
## this requirement is no PreReq (i.e. libgcj-devel may be installed after gcc-java
## so that jni.h may be not yet installed when this triggerin script runs)
## nevertheless the symbolic link can be created (even if it is only a broken link
## until libgcj-devel becomes actually installed)
##% triggerin devel -- gcc% {gccsuffix}-java > % {gccver}
#
#% triggerin devel -- gcc% {gccsuffix}-java >= % {gccver}
#{
# ln -sf \
# `gcj% {gccsuffix} -print-file-name=include/jni.h` \
# % {_jvmdir}/% {cname}-% {version}/include/jni.h
#} || :
%files -f %{name}-%{version}.files
%defattr(-,root,root,-)
%doc
%dir %{_jvmdir}
%dir %{_jvmdir}/%{sdkdir}
#%{jvmjardir}/*.jar
%{_bindir}/*
%{_jvmdir}/%{jrelnk}
%{_jvmjardir}/
%exclude %{_jvmjardir}/%{sdklnk}
%{jvmjardir}
%files devel -f %{name}-%{version}-sdk-bin.files
%defattr(-,root,root)
%doc
%{_jvmdir}/%{sdkdir}/include
%{_jvmdir}/%{sdklnk}
%{_jvmjardir}/%{sdklnk}
%py_sitedir/*
%{jvmdir}
%exclude %{jvmdir}/jre
%changelog
* Wed May 07 2008 coolo@suse.de
- mark the update path of classpath
* Wed Apr 09 2008 mvyskocil@suse.cz
- fix a ppc64 build (defino a bits 64 macro for that arch)
* Thu Jan 17 2008 skh@suse.de
- provide a symlink to libgcj-tools-*.jar in -devel
* Fri Dec 14 2007 ro@suse.de
- also provide jta there
* Mon Dec 03 2007 ro@suse.de
- also provide classpath in the main package for now
* Mon Dec 03 2007 ro@suse.de
- fix typo in specfile
* Mon Dec 03 2007 ro@suse.de
- provide/obsolete also for the devel package
* Fri Nov 30 2007 ro@suse.de
- added baselibs.conf
* Fri Nov 30 2007 mvyskocil@suse.cz
- update to java-gcj-compat-1.0.76 [#341578]
- necessary to solve the conflicts and drop some unecessary
java related packages
* Fri Sep 14 2007 bk@suse.de
- fix bash syntax error in %%post: "line 21: [: too many arguments"
* Mon Sep 03 2007 coolo@suse.de
- resolve the cycle for real
* Wed Jun 27 2007 rguenther@suse.de
- do not require libgcj at all. The proper one is required by
gcc-gij.
* Mon Jun 25 2007 adrian@suse.de
- fix last change (gccsuffix is undefined) and require libgcj42 directly
* Mon Jun 25 2007 adrian@suse.de
- make requires to libgcj version dependend and use libgcj42 now
* Thu Jun 21 2007 lrupp@suse.de
- use gccver 4.2
* Wed May 30 2007 dbornkessel@suse.de
- deleted versionless j2sdk provide
- requirement for classpath-devel in devel package
* Mon Apr 30 2007 ro@suse.de
- added unzip to buildreq
* Sun Apr 29 2007 ro@suse.de
- added unzip to Requires for devel package
to be able to check the generated bytecode version
in a brp script
* Wed Apr 25 2007 dbornkessel@suse.de
- patch correct gjdoc version number into Makefile
* Fri Apr 20 2007 dbornkessel@suse.de
- replaced %%{nil} by blank
* Thu Mar 08 2007 dbornkessel@suse.de
- removed jta link .... will be provided by an extra package
* Wed Nov 15 2006 dbornkessel@suse.de
- added missing Requires: classpath
- Changed
PreReq: /usr/sbin/update-alternatives
to
PreReq: update-alternatives
* Mon Nov 13 2006 dbornkessel@suse.de
- added link and Provides of 'jta'
* Thu Nov 02 2006 ro@suse.de
- fix build on x86_64 (create libdir first)
* Thu Oct 05 2006 dbornkessel@suse.de
- make sure glibj is used when compiling
* Mon Oct 02 2006 dbornkessel@suse.de
- added fastjar Require to devel package
* Mon Oct 02 2006 dbornkessel@suse.de
- added gcc-gij to Requires
* Thu Sep 28 2006 ro@suse.de
- added gcc-gij to BuildRequires
* Tue Sep 19 2006 dbornkessel@suse.de
- update to version 1.0.61
* Wed Jun 07 2006 dbornkessel@suse.de
- set JAR variable as package building fails ultimately
* Thu Apr 20 2006 jsmeix@suse.de
- Add Debian wrapper scripts for javac and javah and use their
wrapper for javac by default (see Suse Bugzilla bug #163746).
* Wed Apr 19 2006 jsmeix@suse.de
- Do 'rm -rf %%{jvmjardir}/*' only when the package is removed
(see Suse Bugzilla bug #148502).
* Mon Mar 27 2006 jsmeix@suse.de
- Added and fixed Provides according to Suse Bugzilla bug #160828.
- Added Requirement for gcj-java to the -devel sub-package
(see Suse Bugzilla bug #151732).
* Tue Mar 21 2006 jsmeix@suse.de
- Added "Provides: jre1.1.x jre1.2.x jre1.3.x jre1.4.x jre1.5.x"
(see Suse Bugzilla bug #148186).
* Fri Mar 17 2006 jsmeix@suse.de
- Call gij instead of gcj in java wrapper script
(see Suse Bugzilla bug #155729 and bug #157655).
* Mon Mar 13 2006 dbornkessel@suse.de
- lowered update-alternatives priority to make bea/sun/ibm
the default if both are installed
* Thu Mar 09 2006 jsmeix@suse.de
- Added "1>/dev/null" to pushd and popd in postinstall script
to get it quiet (Suse bug #154105).
* Wed Mar 01 2006 jsmeix@suse.de
- Move the post install stuff regarding gcc-java to
triggerin scripts (Suse bug #154105).
- Pre-require libgcj to make sure it is actually installed
before the post install script runs.
* Fri Feb 17 2006 jsmeix@suse.de
- Do no longer require gcc-java (Suse bug #151732).
* Thu Feb 09 2006 jsmeix@suse.de
- Fixed Suse Bugzilla bug #148502 (many thanks to
dbornkessel@suse.de who actually did most of it).
* Fri Jan 27 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Thu Jan 26 2006 dbornkessel@suse.de
- added provides with -32 / -64 suffix for OOo guys
Bug #144113
* Sat Aug 13 2005 ro@suse.de
- remove noarch for now
* Wed Aug 03 2005 ro@suse.de
- cleanup name/version/release
* Fri Jul 29 2005 jsmeix@suse.de
- Fix for build on x86_64: Add this options to configure:
with-jvm-root-dir=%%{_jvmdir} with-java-home=%%{_jvmdir}
* Wed Jul 27 2005 jsmeix@suse.de
- Adjustments in the spec file.
* Wed Jul 20 2005 jsmeix@suse.de
- Current version 1.4.2.0 from JPackage.org
* Mon Jul 18 2005 jsmeix@suse.de
- Current version 1.4.2.0 from JPackage.org
* Wed May 11 2005 skh@suse.de
- fix requires
* Thu Apr 28 2005 skh@suse.de
- initial package (JPackage 1.6)