JPackage Java for FC4

From FedoraNEWS.ORG

Written by Paul Howarth on 2005-06-28

  • Updated 2005-10-06 for Sun Java 1.5.0 update 5
  • Updated 2006-01-16 for Sun Java 1.5.0 update 6
  • Updated 2006-02-09 for official JPackage update 6 release
  • Updated 2006-02-09 for cleaner installation process

Here are step-by-step instructions for building Java packages from jpackage.org for FC4 based on the Java Package Recommendations in the Fedora Core 4 Release Notes (http://fedora.redhat.com/docs/release-notes/fc4/errata/):

6.1.8. Java Package Recommendations

Fedora Core 4 users are advised not to use the Java RPM provided by Sun. It contains Provides that conflict with names used in packages provided as part of Fedora Core 4. Because of this, Sun Java might disappear from an installed system during package upgrade operations. Fedora Core 4 users should use either the RPM from jpackage.org or manually install the Sun Java tarball into /opt. Sun Java 1.5+ is recommended for stability purposes.

Table of contents

Install fedora-rpmdevtools from Extras

[localhost ~]$ sudo yum install fedora-rpmdevtools
Setting up Install Process
Setting up repositories
extras                    100% |=========================| 1.1 kB    00:00
updates-released          100% |=========================|  951 B    00:00
base                      100% |=========================|  951 B    00:00
Reading repository metadata in from local files
Finished
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package fedora-rpmdevtools.noarch 0:1.4-1.fc4 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 fedora-rpmdevtools      noarch     1.4-1.fc4        extras             59 k

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 59 k
Is this ok [y/N]: y
Downloading Packages:
(1/1): fedora-rpmdevtools 100% |=========================|  59 kB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: fedora-rpmdevtools           ######################### [1/1]

Installed: fedora-rpmdevtools.noarch 0:1.4-1.fc4
Complete!
[localhost ~]$

Build rpmbuild tree

[localhost ~]$ fedora-buildrpmtree
[localhost ~]$ ls
Desktop  download  rpmbuild
[localhost ~]

Install jpackage.repo from JPackage

[localhost ~]$ cd /etc/yum.repos.d/
[localhost yum.repos.d]$ sudo wget http://www.jpackage.org/jpackage.repo
--11:38:19--  http://www.jpackage.org/jpackage.repo
           => `jpackage.repo'
Resolving www.jpackage.org... 212.85.153.228
Connecting to www.jpackage.org[212.85.153.228]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 629 [text/plain]

100%[======================================================>] 629           --.--K/s

11:38:20 (1.30 MB/s) - `jpackage.repo' saved [629/629]

[localhost yum.repos.d]$

Download jdk-1_5_0_06-linux-i586.bin from Sun

1) Go to http://java.sun.com/j2se/1.5.0/download.jsp

2) Click on Download JDK 5.0 Update 6

3) Click on Accept License Agreement

4) Download jdk-1_5_0_06-linux-i586.bin by clicking on Linux self-extracting file

Copy jdk-1_5_0_06-linux-i586.bin to SOURCES

You might have a different download directory for your browser.

[localhost ~]$ cd download/
[localhost download]$ ls
jdk-1_5_0_06-linux-i586.bin
[localhost download]$ cp jdk-1_5_0_06-linux-i586.bin ~/rpmbuild/SOURCES/
[localhost download]$

Download java-1.5.0-sun-1.5.0.06-1jpp.nosrc.rpm from JPackage

[localhost ~]$ cd download
[localhost download]$ wget http://mirrors.dotsrc.org/jpackage/1.6/generic/non-free/SRPMS/java-1.5.0-sun-1.5.0.06-1jpp.nosrc.rpm
--16:10:40-- http://mirrors.dotsrc.org/jpackage/1.6/generic/non-free/SRPMS/java-1.5.0-sun-1.5.0.06-1jpp.nosrc.rpm => `java-1.5.0-sun-1.5.0.06-1jpp.nosrc.rpm'
Resolving mirrors.dotsrc.org... 130.225.247.87
Connecting to mirrors.dotsrc.org|130.225.247.87|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 15,849 (15K) [application/x-redhat-package-manager]

100%[======================================================================>] 15,849 25.28K/s

16:10:41 (25.26 KB/s) - `java-1.5.0-sun-1.5.0.06-1jpp.nosrc.rpm' saved [15849/15849]
[localhost download]$

Build java-1.5.0-sun-1.5.0.06-1jpp.i586.rpm

[localhost download]$ rpmbuild --rebuild java-1.5.0-sun-1.5.0.06-1jpp.nosrc.rpm
Installing java-1.5.0-sun-1.5.0.06-1jpp.nosrc.rpm
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.55646
+ umask 022
+ cd /home/phowarth/rpmbuild/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ rm -rf /home/phowarth/rpmbuild/BUILD/jdk1.5.0_06
+ export MORE=10000
+ MORE=10000
+ sh /home/phowarth/rpmbuild/SOURCES/jdk-1_5_0_06-linux-i586.bin
...
omitted
...
Wrote: /home/phowarth/rpmbuild/RPMS/i586/java-1.5.0-sun-1.5.0.06-1jpp.i586.rpm
Wrote: /home/phowarth/rpmbuild/RPMS/i586/java-1.5.0-sun-devel-1.5.0.06-1jpp.i586.rpm
Wrote: /home/phowarth/rpmbuild/RPMS/i586/java-1.5.0-sun-src-1.5.0.06-1jpp.i586.rpm
Wrote: /home/phowarth/rpmbuild/RPMS/i586/java-1.5.0-sun-demo-1.5.0.06-1jpp.i586.rpm
Wrote: /home/phowarth/rpmbuild/RPMS/i586/java-1.5.0-sun-plugin-1.5.0.06-1jpp.i586.rpm
Wrote: /home/phowarth/rpmbuild/RPMS/i586/java-1.5.0-sun-fonts-1.5.0.06-1jpp.i586.rpm
Wrote: /home/phowarth/rpmbuild/RPMS/i586/java-1.5.0-sun-alsa-1.5.0.06-1jpp.i586.rpm
Wrote: /home/phowarth/rpmbuild/RPMS/i586/java-1.5.0-sun-jdbc-1.5.0.06-1jpp.i586.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.61162
+ umask 022
+ cd /home/phowarth/rpmbuild/BUILD
+ cd jdk1.5.0_06
+ rm -rf /var/tmp/java-1.5.0-sun-1.5.0.06-1jpp-buildroot
+ exit 0
Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.41321
+ umask 022
+ cd /home/phowarth/rpmbuild/BUILD
+ rm -rf jdk1.5.0_06
+ exit 0
[localhost download]$

Install java packages

[localhost ~]$ cd ~/rpmbuild/RPMS/i586/
[localhost i586]$ ls -1
java-1.5.0-sun-1.5.0.06-1jpp.i586.rpm
java-1.5.0-sun-alsa-1.5.0.06-1jpp.i586.rpm
java-1.5.0-sun-demo-1.5.0.06-1jpp.i586.rpm
java-1.5.0-sun-devel-1.5.0.06-1jpp.i586.rpm
java-1.5.0-sun-fonts-1.5.0.06-1jpp.i586.rpm
java-1.5.0-sun-jdbc-1.5.0.06-1jpp.i586.rpm
java-1.5.0-sun-plugin-1.5.0.06-1jpp.i586.rpm
java-1.5.0-sun-src-1.5.0.06-1jpp.i586.rpm
[localhost i586]$ (echo config gpgcheck 0; echo localinstall java-1.5.0-sun*.rpm; echo run) > yum-cmd
[localhost i586]$ sudo yum shell yum-cmd
Setting up Yum Shell
Setting up Local Package Process
Examining java-1.5.0-sun-1.5.0.06-1jpp.i586.rpm: java-1.5.0-sun - 1.5.0.06-1jpp.i586
Examining java-1.5.0-sun-alsa-1.5.0.06-1jpp.i586.rpm: java-1.5.0-sun-alsa - 1.5.0.06-1jpp.i586
Examining java-1.5.0-sun-demo-1.5.0.06-1jpp.i586.rpm: java-1.5.0-sun-demo - 1.5.0.06-1jpp.i586
Examining java-1.5.0-sun-devel-1.5.0.06-1jpp.i586.rpm: java-1.5.0-sun-devel - 1.5.0.06-1jpp.i586
Examining java-1.5.0-sun-fonts-1.5.0.06-1jpp.i586.rpm: java-1.5.0-sun-fonts - 1.5.0.06-1jpp.i586
Examining java-1.5.0-sun-jdbc-1.5.0.06-1jpp.i586.rpm: java-1.5.0-sun-jdbc - 1.5.0.06-1jpp.i586
Examining java-1.5.0-sun-plugin-1.5.0.06-1jpp.i586.rpm: java-1.5.0-sun-plugin - 1.5.0.06-1jpp.i586
Examining java-1.5.0-sun-src-1.5.0.06-1jpp.i586.rpm: java-1.5.0-sun-src - 1.5.0.06-1jpp.i586
Marking java-1.5.0-sun-1.5.0.06-1jpp.i586.rpm to be installed
Marking java-1.5.0-sun-alsa-1.5.0.06-1jpp.i586.rpm to be installed
Marking java-1.5.0-sun-demo-1.5.0.06-1jpp.i586.rpm to be installed
Marking java-1.5.0-sun-devel-1.5.0.06-1jpp.i586.rpm to be installed
Marking java-1.5.0-sun-fonts-1.5.0.06-1jpp.i586.rpm to be installed
Marking java-1.5.0-sun-jdbc-1.5.0.06-1jpp.i586.rpm to be installed
Marking java-1.5.0-sun-plugin-1.5.0.06-1jpp.i586.rpm to be installed
Marking java-1.5.0-sun-src-1.5.0.06-1jpp.i586.rpm to be installed
--> Populating transaction set with selected packages. Please wait.
---> Package java-1.5.0-sun-fonts.i586 0:1.5.0.06-1jpp set to be updated
---> Package java-1.5.0-sun-alsa.i586 0:1.5.0.06-1jpp set to be updated
---> Package java-1.5.0-sun-devel.i586 0:1.5.0.06-1jpp set to be updated
---> Package java-1.5.0-sun-demo.i586 0:1.5.0.06-1jpp set to be updated
---> Package java-1.5.0-sun.i586 0:1.5.0.06-1jpp set to be updated
---> Package java-1.5.0-sun-plugin.i586 0:1.5.0.06-1jpp set to be updated
---> Package java-1.5.0-sun-src.i586 0:1.5.0.06-1jpp set to be updated
---> Package java-1.5.0-sun-jdbc.i586 0:1.5.0.06-1jpp set to be updated
--> Running transaction check
Setting up repositories
Reading repository metadata in from local files
--> Processing Dependency: /usr/lib/libodbc.so for package: java-1.5.0-sun-jdbc
Importing Additional filelist information for dependency resolution
--> Processing Dependency: /usr/lib/libodbcinst.so for package: java-1.5.0-sun-jdbc
Importing Additional filelist information for dependency resolution
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Package unixODBC.i386 0:2.2.11-3.FC4.1 set to be updated
---> Package unixODBC-devel.i386 0:2.2.11-3.FC4.1 set to be updated
--> Running transaction check

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 java-1.5.0-sun          i586       1.5.0.06-1jpp    java-1.5.0-sun-1.5.0.06-1jpp.i586.rpm   84 M
 java-1.5.0-sun-alsa     i586       1.5.0.06-1jpp    java-1.5.0-sun-alsa-1.5.0.06-1jpp.i586.rpm   64 k
 java-1.5.0-sun-demo     i586       1.5.0.06-1jpp    java-1.5.0-sun-demo-1.5.0.06-1jpp.i586.rpm   14 M
 java-1.5.0-sun-devel    i586       1.5.0.06-1jpp    java-1.5.0-sun-devel-1.5.0.06-1jpp.i586.rpm   12 M
 java-1.5.0-sun-fonts    i586       1.5.0.06-1jpp    java-1.5.0-sun-fonts-1.5.0.06-1jpp.i586.rpm  2.0 M
 java-1.5.0-sun-jdbc     i586       1.5.0.06-1jpp    java-1.5.0-sun-jdbc-1.5.0.06-1jpp.i586.rpm   66 k
 java-1.5.0-sun-plugin   i586       1.5.0.06-1jpp    java-1.5.0-sun-plugin-1.5.0.06-1jpp.i586.rpm  1.9 M
 java-1.5.0-sun-src      i586       1.5.0.06-1jpp    java-1.5.0-sun-src-1.5.0.06-1jpp.i586.rpm   17 M
Installing for dependencies:
 unixODBC                i386       2.2.11-3.FC4.1   updates-released  859 k
 unixODBC-devel          i386       2.2.11-3.FC4.1   updates-released  811 k

Transaction Summary
=============================================================================
Install     10 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 132 M
Is this ok [y/N]: y
Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: java-1.5.0-sun               ####################### [ 1/10]
  Installing: unixODBC                     ####################### [ 2/10]
  Installing: unixODBC-devel               ####################### [ 3/10]
  Installing: java-1.5.0-sun-fonts         ####################### [ 4/10]
  Installing: java-1.5.0-sun-alsa          ####################### [ 5/10]
  Installing: java-1.5.0-sun-devel         ####################### [ 6/10]
  Installing: java-1.5.0-sun-demo          ####################### [ 7/10]
  Installing: java-1.5.0-sun-plugin        ####################### [ 8/10]
  Installing: java-1.5.0-sun-src           ####################### [ 9/10]
  Installing: java-1.5.0-sun-jdbc          ####################### [10/10]

Installed: java-1.5.0-sun.i586 0:1.5.0.06-1jpp java-1.5.0-sun-alsa.i586 0:1.5.0.06-1jpp java-1.5.0-sun-demo.i586 0:1.5.0.06-1jpp java-1.5.0-sun-devel.i586 0:1.5.0.06-1jpp java-1.5.0-sun-fonts.i586 0:1.5.0.06-1jpp java-1.5.0-sun-jdbc.i586 0:1.5.0.06-1jpp java-1.5.0-sun-plugin.i586 0:1.5.0.06-1jpp java-1.5.0-sun-src.i586 0:1.5.0.06-1jpp
Dependency Installed: unixODBC.i386 0:2.2.11-3.FC4.1 unixODBC-devel.i386 0:2.2.11-3.FC4.1
Finished Transaction
Leaving Shell
[localhost i586]$ rm yum-cmd
[localhost i586]$

Check java version

[localhost i586]$ java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
[localhost i586]$

Firefox plugin

If you've installed java-1.5.0-sun-plugin and you want to use it with Firefox or any other mozilla-based browser, you'll need to set up the link manually as there is a small bug in the java-1.5.0-sun-plugin package that causes it not to set up the link properly.

[localhost i586]$ cd /usr/lib/mozilla/plugins
[localhost plugins]$ sudo rm -f libjavaplugin_oji.so
[localhost plugins]$ sudo ln -s  ../../../lib/jvm/java/jre/plugin/i386/ns7/libjavaplugin_oji.so .

Removing any existing libjavaplugin_oji.so link should only be necessary if you've previously installed a different version of java.

Switching between java implementations

The JPackage java RPMs support switching between java implementations using the "alternatives" system.

[localhost ~]$ sudo /usr/sbin/alternatives --config java

There are 3 programs which provide 'java'.

  Selection    Command
-----------------------------------------------
   1           /usr/share/java/libgcj-java-placeholder.sh
   2           /usr/lib/jvm/jre-1.4.2-gcj/bin/java
*+ 3           /usr/lib/jvm/jre-1.5.0-sun/bin/java

Enter to keep the current selection[+], or type selection number: 2
[localhost ~]$ java -version
java version "1.4.2"
gij (GNU libgcj) version 4.0.0 20050519 (Red Hat 4.0.0-8)

Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
[localhost ~]$ sudo /usr/sbin/alternatives --auto java
[localhost ~]$ java -version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)

References:

Personal tools