summaryrefslogtreecommitdiffstats
path: root/abs/extra/openjdk6/PKGBUILD
blob: 22ee813c117ab81fbe7ec7ce62bb9099a60fe45a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# $Id: PKGBUILD 29222 2009-03-06 20:55:45Z andyrtr $
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Jan de Groot <jgc@archlinux.org>

pkgname=openjdk6
pkgver=1.5
_icedteaver=1.5pre
pkgrel=0.1
_date=20090305
pkgdesc='Free Java environment based on OpenJDK 6.0 with IcedTea6 replacing binary plugs.'
url='http://icedtea.classpath.org'
arch=('i686' 'x86_64')
license=('GPL')
_openjdk_version=b14
_openjdk_date=25_nov_2008
_hotspotver=fc6a5ae3fef5 # what it downlopads itself / remove from configure to get it
depends=('gcc-libs' 'xdg-utils' 'hicolor-icon-theme')
makedepends=('alsa-lib' 'libxtst' 'giflib' 'libxp' 'gtk2' 'nspr' 'zlib' 'freetype2' 'libjpeg' 'libx11' 'libcups' 'patch' 'xalan-java' 'xulrunner>=1.9.0.3' 'apache-ant>=1.7.0' 'autoconf' 'unzip' 'rhino' 'mercurial')
conflicts=('java-environment' 'java-runtime')
provides=('java-environment=6' 'java-runtime=6')
options=(!emptydirs)
install=openjdk6.install
source=(http://download.java.net/openjdk/jdk6/promoted/${_openjdk_version}/openjdk-6-src-${_openjdk_version}-${_openjdk_date}.tar.gz
	#http://icedtea.classpath.org/download/source/icedtea6-${_icedteaver}.tar.gz
	ftp://ftp.archlinux.org/other/openjdk6/icedtea6-${_date}.tar.bz2
	http://hg.openjdk.java.net/jdk7/hotspot/hotspot/archive/${_hotspotver}.tar.gz
	fix_jdk_cmds_path.diff
	fix_corba_cmds_path.diff
	gcjwebplugin_xulrunner.diff
	aatext_by_default.diff
	fontconfig-paths.diff
	openjdk6.profile)
noextract=(openjdk-6-src-${_openjdk_version}-${_openjdk_date}.tar.gz ${_hotspotver}.tar.gz)
md5sums=('9f9773a822156dd3d576d83d794364ce'
         'd57bf545dc50d41588b43112393dac26'
         '1c3510387dccdb4907d0fd2f1c58e372'
         '5da3e39fa60985576c4f37d1491efbe2'
         'f7e7a212e50abb56a6ef1a2b1bd27405'
         'ed2e808df2d2fc2ea7dae5139d475192'
         'ef60d567c0d9bad111212851220deafd'
         '104380f0b900c840141e572a7fb70c27'
         'd0703088e10aa957c037644ab88d716d')

build() {
  # for hg checkout install mercurial and
#  mkdir ${srcdir}/icedtea6-${_date}
#  cd ${srcdir}/icedtea6-${_date}
#  hg clone http://icedtea.classpath.org/hg/icedtea6 || return 1
#  tar -cvjf ../../icedtea6-${_date}.tar.bz2 *
#  return 1

  unset JAVA_HOME
  unset CLASSPATH
  if [ "${CARCH}" = "x86_64" ]; then
    _arch=amd64
  else
    _arch=i586
  fi
  _javaver=1.6.0
  _jvmdir=/usr/lib/jvm/java-${_javaver}-openjdk

  cd ${srcdir}/icedtea6
#  cd ${srcdir}/icedtea6-${_icedteaver}
  ln -s ${srcdir}/openjdk-6-src-${_openjdk_version}-${_openjdk_date}.tar.gz .
  ln -s ${srcdir}/${_hotspotver}.tar.gz .

  # fix xulrunner linking
  patch -Np0 -i ${srcdir}/gcjwebplugin_xulrunner.diff || return 1

  cp ${srcdir}/*.diff ${srcdir}/icedtea6/patches/
#  cp ${srcdir}/*.diff ${srcdir}/icedtea6-${_icedteaver}/patches/
  export DISTRIBUTION_PATCHES="patches/fix_jdk_cmds_path.diff patches/fix_corba_cmds_path.diff patches/aatext_by_default.diff patches/fontconfig-paths.diff"

  ./autogen.sh
  autoreconf # needed due to mercurial build

  export ALT_PARALLEL_COMPILE_JOBS="${MAKEFLAGS/-j}"
  export HOTSPOT_BUILD_JOBS="${ALT_PARALLEL_COMPILE_JOBS}"
  unset MAKEFLAGS

  if [ -x ${_jvmdir}/bin/javac ]; then
    JCONF="--with-openjdk --with-openjdk-home=${_jvmdir}"
  elif [ -x /opt/java/bin/javac ]; then
    JCONF="--with-openjdk --with-openjdk-home=/opt/java"
  elif [ -x /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/bin/javac ]; then
    JCONF="--with-gcj-home=/usr/lib/jvm/java-1.5.0-gcj-1.5.0.0 --with-javac"
  elif [ -x /usr/lib/java-${_javaver}-openjdk/bin/javac ]; then
    JCONF="--with-openjdk --with-openjdk-home=/usr/lib/java-${_javaver}-openjdk" 
    # ^ only fallback to build with broken 1.2-3, can be removed later
  else
    echo "No supported java installation found, install either openjdk6, jdk or java-gcj-compat"
    return 1
  fi

  ./configure --with-parallel-jobs=${HOTSPOT_BUILD_JOBS} \
	--with-xalan2-jar=/usr/share/java/xalan.jar \
	--with-hotspot-src-zip=${_hotspotver}.tar.gz \
	--with-pkgversion=ArchLinux-${pkgver}-${pkgrel}-$CARCH  $JCONF
  LD_PRELOAD="" make || return 1
  
  install -m755 -d ${pkgdir}/${_jvmdir}/jre

  pushd ${srcdir}/icedtea6/openjdk/control/build/linux-${_arch}/j2sdk-image
#  pushd ${srcdir}/icedtea6-${_icedteaver}/openjdk/control/build/linux-${_arch}/j2sdk-image
   # Install main files.
  cp -a bin include lib src.zip ${pkgdir}/${_jvmdir}/ || return 1
  cp -a jre/bin jre/lib ${pkgdir}/${_jvmdir}/jre/ || return 1

  mv ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.Ubuntu.properties.src \
     ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.properties.src || return 1
  mv ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.Ubuntu.bfc \
     ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.bfc || return 1
  rm -f ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.*.bfc
  rm -f ${pkgdir}/${_jvmdir}/jre/lib/fontconfig.*.properties.src

   # Install man pages.
  install -m755 -d ${pkgdir}/usr/share/man/man1
  install -m644 man/man1/*.1 ${pkgdir}/usr/share/man/man1/ || return 1

   # Install demos and samples.
  cp -a demo ${pkgdir}/${_jvmdir}/ || return 1
  install -m755 -d sample/rmi
  mv bin/java-rmi.cgi sample/rmi || return 1
  cp -a sample ${pkgdir}/${_jvmdir}/ || return 1
  popd

  # Install icons and menu entries.
  for s in 16 24 32 48 ; do
    install -m755 -d ${pkgdir}/usr/share/icons/hicolor/${s}x${s}/apps
    install -m644 openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
      ${pkgdir}/usr/share/icons/hicolor/${s}x${s}/apps/java.png || return 1
  done

  # Install desktop files.
  install -m755 -d ${pkgdir}/usr/share/{applications,pixmaps}
  install -m644 javaws.png ${pkgdir}/usr/share/pixmaps || return 1
  install -m644 {javaws,jconsole,policytool}.desktop ${pkgdir}/usr/share/applications || return 1

  # link the mozilla-plugin
  install -m755 -d ${pkgdir}/usr/lib/mozilla/plugins/
  ln -sf ${_jvmdir}/jre/lib/${_arch/i586/i386}/IcedTeaPlugin.so ${pkgdir}/usr/lib/mozilla/plugins/ || return 1

  # link binaries into /usr/bin
  install -m755 -d ${pkgdir}/usr/bin
  pushd ${pkgdir}/${_jvmdir}/bin
  for file in *; do
    ln -sf ${_jvmdir}/bin/${file} \
      ${pkgdir}/usr/bin || return 1
  done
  popd
 
  # set some variables
  install -m755 -d ${pkgdir}/etc/profile.d
  install -m755 ${srcdir}/openjdk6.profile ${pkgdir}/etc/profile.d/openjdk6.sh || return 1
}