Sophie

Sophie

distrib > Mandriva > current > i586 > media > contrib-release-src > by-pkgid > a45217a53fdf323196236ebe91f2a957 > files > 5

kaffe-1.1.8-1mdv2008.1.src.rpm

%define with_ecj        1
%define section         free

%define origin          kaffe
%define originver       1.1.8
%define libver          %{originver}
%define priority        1500
%define javaver         1.5.0
%define buildver        00

%define javaname        java-%{javaver}-%{origin}
%define javaversion     %{javaver}.%{buildver}
%define release         %mkrel 1

%define toplevel_dir    j2sdk%{javaver}_%{buildver}
%define sdklnk          java-%{javaver}-%{origin}
%define jrelnk          jre-%{javaver}-%{origin}
%define sdkdir          %{javaname}-%{javaversion}
%define jredir          %{sdkdir}/jre
%define sdkbindir       %{_jvmdir}/%{sdklnk}/bin
%define jrebindir       %{_jvmdir}/%{jrelnk}/bin
%define jvmjardir       %{_jvmjardir}/%{javaname}-%{javaversion}

# Define target architecture we are building for
%define target_cpu %{_target_cpu}
%ifarch %{ix86}
%define target_cpu i386
%endif
%ifarch amd64
%define target_cpu x86_64
%endif
%ifarch ppc
%define target_cpu powerpc
%endif

%define kaffedir        %{_jvmdir}/%{sdkdir}

Name:           kaffe
Version:        %{originver}
Release:        %mkrel 1
Epoch:          0
Summary:        Free virtual machine for running Java(TM) code
License:        GPL
Group:          Development/Java
Url:            http://www.kaffe.org/
Source0:        ftp://ftp.kaffe.org/pub/kaffe/v1.1.x-development/kaffe-%{version}.tar.bz2
Source1:        ftp://ftp.kaffe.org/pub/kaffe/v1.1.x-development/kaffe-%{version}.tar.bz2.sig
Patch1:         kaffe-20070217-warning-fix.patch
Patch2:         kaffe-20070217-generics.patch
Requires:       classpath
Obsoletes:      %{javaname}        
Provides:       %{javaname} = %{epoch}:%{javaversion}-%{release}
Provides:       jre-%{javaver}-%{origin} = %{epoch}:%{javaversion}-%{release}
Provides:       jre-%{origin} = %{epoch}:%{javaversion}-%{release}
Provides:       jre-%{javaver}, java-%{javaver}, jre = %{epoch}:%{javaver}
Provides:       java-%{origin} = %{epoch}:%{javaversion}-%{release}
Provides:       java = %{epoch}:%{javaver}
Provides:       jndi = %{epoch}:%{javaversion}, jndi-ldap = %{epoch}:%{javaversion}
Provides:       jsse = %{epoch}:%{javaversion}
Provides:       jce = %{epoch}:%{javaversion}
Provides:       jdbc-stdext = %{epoch}:3.0, jdbc-stdext = %{epoch}:%{javaversion}
BuildRequires:  alsa-lib-devel
BuildRequires:  bcel
BuildRequires:  chrpath
BuildRequires:  classpath-devel
BuildRequires:  esound-devel
BuildRequires:  fastjar
BuildRequires:  gmp-devel
BuildRequires:  libjpeg-devel
%if !%{with_ecj}
BuildRequires:  jikes > 0:1.22
%else
BuildRequires:  ecj
%endif
BuildRequires:  jpackage-utils >= 0:1.5
BuildRequires:  gcc-java
BuildRequires:  libungif-devel
BuildRequires:  zip
BuildRequires:  zlib-devel
BuildRequires:  libgdk_pixbuf2.0-devel
BuildRequires:  libgtk+2.0-devel
BuildRequires:  libglib2-devel
BuildRequires:  libxtst-devel
BuildRequires:  libGConf2-devel
ExclusiveArch:  %{ix86} ppc x86_64 amd64 ia64
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root
AutoReq:        no

%description
Kaffe is a free virtual machine designed to execute Java(TM) bytecode. 
Kaffe can be configured in two modes. In the first mode, it operates as 
a pure bytecode interpreter (not unlike Javasoft's machine). In the 
second mode, it performs "Just-In-Time" code conversion from the 
abstract code to the host machine's native code.  The second mode will 
ultimately allow execution of Java code at the same speed as standard 
compiled code, while also maintaining the advantages and flexibility of 
code independence.

Note that Sun's Swing 1.1.1 implementation also works with Kaffe.

Install the kaffe package if you need a Java virtual machine.

%package devel
Summary:        Development package with static libs and headers for kaffe
Group:          Development/Java
Obsoletes:      %{javaname}-devel < 0:%{javaversion}-%{release}
Provides:       %{javaname}-devel = 0:%{javaversion}-%{release}
%if !%{with_ecj}
Requires:       jikes > 0:1.22
%else
Requires:       ecj
%endif
Requires:       %{origin} = %{epoch}:%{originver}-%{release}
Requires:       update-alternatives
Provides:       java-sdk-%{javaver}-%{origin} = %{epoch}:%{javaversion}-%{release}
Provides:       java-sdk-%{origin} = %{epoch}:%{javaversion}-%{release}
Provides:       java-sdk-%{javaver}, java-sdk = %{epoch}:%{javaver}
Provides:       java-devel-%{origin} = %{epoch}:%{javaversion}-%{release}
Provides:       java-%{javaver}-devel, java-devel = %{epoch}:%{javaver}
Requires:       %{javaname} = %{epoch}:%{javaversion}-%{release}

%description devel
This package contains the static libraries, header files and documentation
necessary for development of programs that will use kaffe.

You should install this package if you need to develop programs which
will use kaffe functions.

You'll also need to install kaffe package.

%prep
%setup -q
%patch1 -p1 -b .chdir
%patch2 -p1 -b .generics

%{__perl} -pi -e 's|\@JIKESPROG\@|%{_bindir}/ecj|' kaffe/scripts/compat/javac.in

%build
%ifarch %{ix86}
export CFLAGS="%{optflags} -fno-omit-frame-pointer"
%endif
export CFLAGS="${CFLAGS} `pkg-config --cflags pangoft2`"
export LIBS="${LIBS} `pkg-config --libs pangoft2`"
%{configure2_5x} \
           --prefix=%{kaffedir} \
           --bindir=%{kaffedir}/bin \
           --datadir=%{kaffedir}/share \
           --libdir=%{kaffedir}/lib \
           --includedir=%{kaffedir}/include \
           --mandir=%{kaffedir}/man \
           --disable-rpath \
%if %{with_ecj}
           --with-ecj=%{_bindir}/ecj \
%endif
           --with-glibj-zip=%{_datadir}/classpath/glibj.zip \
           --with-system-classpath \
           --with-classpath-prefix=%{_prefix} \
           --with-classpath-classes=%{_datadir}/classpath/glibj.zip \
           --with-classpath-libdir=%{_libdir}/classpath \
           --with-classpath-includedir=%{_includedir} \
           --enable-gcj \
           --enable-gjdoc \
           --with-bcel=%{_javadir}/bcel.jar \
           --enable-jvmpi \
           --without-kaffe-x-awt \
           --without-kaffe-qt-awt \
           --with-qt-libraries=%{_prefix}/lib/qt3/%{_lib} \
           --with-qt-binaries=%{_prefix}/lib/qt3/bin \
           --with-qtdir=%{_prefix}/lib/qt3 \
           --with-jni-library-path=%{_jnidir} \
           --disable-Werror
%{make} JAVAC="%{_bindir}/ecj -1.5"

%check
%if 0
%{make} check
%endif

%install
%{__rm} -rf %{buildroot}
%{makeinstall_std}

(cd %{buildroot}%{kaffedir}/jre/lib && %{__ln_s} glibj.zip rt.jar)

(cd %{buildroot}%{_jvmdir}/%{sdkdir}/lib && %{__ln_s} %{_jvmdir}/%{jredir}/lib/rt.jar tools.jar)

# extensions handling
install -d -m 755 %{buildroot}%{jvmjardir}
pushd %{buildroot}%{jvmjardir}
   ln -sf %{_jvmdir}/%{jredir}/lib/rt.jar jsse-%{javaversion}.jar
   ln -sf %{_jvmdir}/%{jredir}/lib/rt.jar jce-%{javaversion}.jar
   ln -sf %{_jvmdir}/%{jredir}/lib/rt.jar jndi-%{javaversion}.jar
   ln -sf %{_jvmdir}/%{jredir}/lib/rt.jar jndi-ldap-%{javaversion}.jar
   ln -sf %{_jvmdir}/%{jredir}/lib/rt.jar jdbc-stdext-%{javaversion}.jar
   ln -sf jdbc-stdext-%{javaversion}.jar jdbc-stdext-3.0.jar
   for jar in *-%{javaversion}.jar ; do
      ln -sf ${jar} $(echo $jar | sed "s|-%{javaversion}.jar|-%{javaver}.jar|g")
      ln -sf ${jar} $(echo $jar | sed "s|-%{javaversion}.jar|.jar|g")
   done
popd

# versionless symlinks
pushd %{buildroot}%{_jvmdir}
ln -sf %{jredir} %{jrelnk}
ln -sf %{sdkdir} %{sdklnk}
popd

pushd %{buildroot}%{_jvmjardir}
ln -sf %{sdkdir} %{jrelnk}
ln -sf %{sdkdir} %{sdklnk}
popd

%clean
%{__rm} -rf %{buildroot}

%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 \
--slave %{_bindir}/keytool                 keytool                     %{jrebindir}/gkeytool

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}

%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}/appletviewer             appletviewer                %{sdkbindir}/gappletviewer \
--slave %{_bindir}/jar                      jar                         %{sdkbindir}/jar \
--slave %{_bindir}/jarsigner                jarsigner                   %{sdkbindir}/gjarsigner \
--slave %{_bindir}/javadoc                  javadoc                     %{sdkbindir}/javadoc \
--slave %{_bindir}/javah                    javah                       %{sdkbindir}/javah \
--slave %{_bindir}/javap                    javap                       %{sdkbindir}/javap \
--slave %{_bindir}/jdb                      jdb                         %{sdkbindir}/jdb \
--slave %{_bindir}/native2ascii             native2ascii                %{sdkbindir}/native2ascii \
--slave %{_bindir}/rmic                     rmic                        %{sdkbindir}/rmic \
--slave %{_bindir}/serialver                serialver                   %{sdkbindir}/serialver

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}

%postun
if [ $1 -eq 0 ]; then
  update-alternatives --remove java %{jrebindir}/java
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

%files
%defattr(-,root,root)
%doc AUTHORS license* README RELEASE-NOTES THIRDPARTY TODO WHATSNEW
%dir %{kaffedir}
%dir %{kaffedir}/bin
%{kaffedir}/bin/java
%{kaffedir}/bin/kaffe
%{kaffedir}/jre
%{kaffedir}/lib
%{kaffedir}/man
%{kaffedir}/share
%{_jvmdir}/%{jrelnk}
%{_jvmjardir}/%{jrelnk}
%{jvmjardir}/*.jar

%files devel
%defattr(-,root,root)
%doc ABOUT-NLS BUILD_ENVIRONMENT ChangeLog.* developers FAQ
%{kaffedir}/bin/install-jar
%{kaffedir}/bin/jar
%{kaffedir}/bin/javadoc
%{kaffedir}/bin/javac
%{kaffedir}/bin/javah
%{kaffedir}/bin/javap
%{kaffedir}/bin/jdb
%{kaffedir}/bin/kaffeh
%{kaffedir}/bin/native2ascii
%{kaffedir}/bin/rmic
%{kaffedir}/bin/rmiregistry
%{kaffedir}/bin/serialver
%{kaffedir}/include
%{_jvmdir}/%{sdklnk}
%{_jvmjardir}/%{sdklnk}


%changelog
* Tue Oct 16 2007 David Walluck <walluck@mandriva.org> 1.1.8-1mdv2008.1
+ Revision: 99115
- BuildRequires: fastjar
- remove MIN_VALUE hack
- 1.1.8

  + Anssi Hannula <anssi@mandriva.org>
    - use disable-Werror, build gets further
    - move keytool from devel to main package

  + Thierry Vignaud <tvignaud@mandriva.com>
    - kill file require on update-alternatives


* Mon Feb 19 2007 Christiaan Welvaart <cjw@daneel.dyndns.org>
+ 2007-02-19 13:57:10 (122764)
- add BuildRequires: libjpeg-devel libungif-devel
- new cvs snapshot from 20070217
- patch1: fix compile problem
- use glibj.zip from classpath package
- patch2: improve generics/jdk1.5 compatibility a bit
- drop patch0: kaffe should respond correctly to -version etc.

* Mon Oct 16 2006 Nicolas Lécureuil <neoclust@mandriva.org> 1.1.8-0.20060723.4mdv2007.1
+ 2006-10-15 04:34:09 (64818)
- Add BuildRequires
- Add BuildRequires: libxtst-devel
- Rebuild
- import kaffe-1.1.8-0.20060723.1mdv2007.0

* Mon Jul 24 2006 David Walluck <walluck@mandriva.org> 0:1.1.8-0.20060723.1mdv2007.0
- CVS 20060723

* Thu Mar 30 2006 David Walluck <walluck@mandriva.org> 0:1.1.7-1mdk
- 1.1.7
- alternative priority no longer matches jpackage spec

* Sat Mar 04 2006 Giuseppe Ghibò <ghibo@mandriva.com>  0:1.1.7-0.rc1.6mdk
- Fix alternative priority value to 30 instead of 1420.

* Sat Feb 04 2006 David Walluck <walluck@mandriva.org> 0:1.1.7-0.rc1.5mdk
- CVS (20060204)

* Wed Jan 25 2006 David Walluck <walluck@mandriva.org> 0:1.1.7-0.rc1.4mdk
- fix rt.jar symlink

* Thu Jan 19 2006 David Walluck <walluck@mandriva.org> 0:1.1.7-0.rc1.3mdk
- BuildRequires: libgdk_pixbuf2.0-devel

* Wed Jan 18 2006 David Walluck <walluck@mandriva.org> 0:1.1.7-0.rc1.2mdk
- javac requires jikes for now

* Sat Jan 14 2006 David Walluck <walluck@mandriva.org> 0:1.1.7-0.rc1.1mdk
- 1.1.7-rc1

* Fri Jan 13 2006 David Walluck <walluck@mandriva.org> 0:1.1.6-6mdk
- 1.1.7-pre (CVS 20050113)

* Sat Dec 24 2005 Nicolas Lécureuil <neoclust@mandriva.org> 1.1.6-5mdk
- Add BuildRequires

* Fri Dec 23 2005 Nicolas Lécureuil <neoclust@mandriva.org> 0:1.1.6-4mdk
- Fix BuildRequires

* Wed Nov 30 2005 David Walluck <walluck@mandriva.org> 0:1.1.6-3mdk
- CVS (20051130)
- package name is now of the form kaffe-1.1.8
- back to using jikes for build
- reenable libxmlj
- enable bcel for build
- no longer requires (external) antlr for gjdoc
- build on x86_64

* Sat Sep 10 2005 David Walluck <walluck@mandriva.org> 0:1.4.2.00-2mdk
- CVS (20050910)
- use ecj instead of jikes
- disable libxmlj (too experimental)
- disable bcel until it is in main
- disable gjdoc until antlr is in main

* Mon May 16 2005 David Walluck <walluck@mandriva.org> 0:1.4.2.00-1mdk
- release

* Wed Apr 06 2005 David Walluck <david@jpackage.org> 0:1.4.2.00-1jpp
- release