diff options
author | James Meyer <james.meyer@operamail.com> | 2009-07-09 20:08:45 (GMT) |
---|---|---|
committer | James Meyer <james.meyer@operamail.com> | 2009-07-09 20:08:45 (GMT) |
commit | 510f73d6026771c088f2b7e2bfcc8b4a8296f8d6 (patch) | |
tree | 86ebf2201393bf024ffb451714b1b908acf786a7 /abs | |
parent | 1e2be322f3cc9a44db7fa888189e384afb9196e9 (diff) | |
parent | 4edbece1bc1196306c0dd3f27f6d085038d67db7 (diff) | |
download | linhes_pkgbuild-510f73d6026771c088f2b7e2bfcc8b4a8296f8d6.zip linhes_pkgbuild-510f73d6026771c088f2b7e2bfcc8b4a8296f8d6.tar.gz linhes_pkgbuild-510f73d6026771c088f2b7e2bfcc8b4a8296f8d6.tar.bz2 |
Merge branch 'HEAD' of ssh://jams@knoppmyth.net/mount/repository/LinHES-PKGBUILD
Diffstat (limited to 'abs')
-rw-r--r-- | abs/core-testing/LinHES-timezone/PKGBUILD | 4 | ||||
-rw-r--r-- | abs/core-testing/LinHES-timezone/linhes_timezone.c | 364 | ||||
-rw-r--r-- | abs/core-testing/mythtv/stable/mythtv/PKGBUILD | 2 | ||||
-rw-r--r-- | abs/extra-testing/community/jre/PKGBUILD | 73 | ||||
-rw-r--r-- | abs/extra-testing/community/jre/construct.sh | 282 | ||||
-rw-r--r-- | abs/extra-testing/community/jre/jre.install | 7 |
6 files changed, 334 insertions, 398 deletions
diff --git a/abs/core-testing/LinHES-timezone/PKGBUILD b/abs/core-testing/LinHES-timezone/PKGBUILD index ffad3a9..0b0d2ad 100644 --- a/abs/core-testing/LinHES-timezone/PKGBUILD +++ b/abs/core-testing/LinHES-timezone/PKGBUILD @@ -2,7 +2,7 @@ # Maintainer: Greg Frost <gregfrost1@bigpond.com> pkgname=LinHES-timezone pkgver=1 -pkgrel=5 +pkgrel=6 pkgdesc="GUI timezone selector used by LinHES-config." arch=i686 depends=() @@ -27,4 +27,4 @@ md5sums=('53976e51e938c555f84b43c933339051' '0d9e51af5f650dd329edce4531c42a58' 'c01e2335603d8395004e32bae9060fde' 'b20bd68272644f607fbfe7d50e7be42a' - 'b35602b7330c32a472223b22d95a1d6c') + '448ffca8f38b2dcd989e599ff2057399') diff --git a/abs/core-testing/LinHES-timezone/linhes_timezone.c b/abs/core-testing/LinHES-timezone/linhes_timezone.c index 024560f..ff75549 100644 --- a/abs/core-testing/LinHES-timezone/linhes_timezone.c +++ b/abs/core-testing/LinHES-timezone/linhes_timezone.c @@ -2,6 +2,8 @@ #include <math.h> #include <stdlib.h> #include <stdio.h> +#define _GNU_SOURCE +#include <string.h> #include <strings.h> #include <X11/Xlib.h> #include <X11/Intrinsic.h> @@ -49,6 +51,41 @@ double lat_rotate[2] = {1, 0}; double acceleration = 0.01; char input_keys[200]; +int guessing_timezone = FALSE; + +void select_place (int place) +{ + target_lon = atan2 (zone_data[selected_zone].place_info[place].v.y, + zone_data[selected_zone].place_info[place].v.x); + target_lat = acos (zone_data[selected_zone].place_info[place].v.z /2); + + selected_place = place; +} + +void default_zone (char *arg_zone) +{ + int found_zone = FALSE; + + for (int zone = 0; zone < NUM_ZONES; zone++) + { + for (int place = 0; place < zone_data[zone].num_places; place++) + { + if (strstr (zone_data[zone].place_info[place].zonename, + arg_zone[0] ? arg_zone : "Los_Angeles")) + { + selected_zone = zone; + select_place (place); + found_zone = TRUE; + } + } + } + + if (!found_zone) + { + default_zone (""); + } +} + int translate_point (vect_type *v, XPoint *p) { vect_type v2; @@ -259,53 +296,53 @@ void redraw_map () for (int zone = 0; zone < NUM_ZONES - 1; zone++) draw_zone (pixmap, zone, 0, 0); - draw_zone (pixmap, selected_zone, 1, 1); - XSetForeground (display, gc, selected_border.pixel); - draw_zone (pixmap, selected_zone, 0, 1); - - for (int place = 0; place < zone_data[selected_zone].num_places; place++) + if (guessing_timezone) { - XPoint point; + char *s = "Guessing Timezone"; + int text_width = XTextWidth (font, s, strlen (s)); + draw_string (width/2 - text_width/2, height/2, s, name_colour.pixel); + } + else + { + draw_zone (pixmap, selected_zone, 1, 1); + XSetForeground (display, gc, selected_border.pixel); + draw_zone (pixmap, selected_zone, 0, 1); - translate_point (&zone_data[selected_zone].place_info[place].v, &point); + for (int place = 0; place < zone_data[selected_zone].num_places; place++) + { + XPoint point; + + translate_point (&zone_data[selected_zone].place_info[place].v, &point); - draw_point (point, NULL); + draw_point (point, NULL); - if (place == selected_place) - { - char *underscore; - selected_point = point; - strcpy (selected_name, strchr (zone_data[selected_zone].place_info[place].zonename, '/') + 1); - while (underscore = strchr (selected_name, '_')) - underscore[0] = ' '; + if ((place == selected_place) && (!guessing_timezone)) + { + char *underscore; + selected_point = point; + strcpy (selected_name, strchr (zone_data[selected_zone].place_info[place].zonename, '/') + 1); + while (underscore = strchr (selected_name, '_')) + underscore[0] = ' '; + } } - } - draw_point (selected_point, selected_name); + draw_point (selected_point, selected_name); - { - char zone_offset[100]; - sprintf (zone_offset, "UTC%s", zone_data[selected_zone].offset); - draw_string ( - ((width * 0.95 - XTextWidth (font, zone_offset, strlen (zone_offset))) + - ((width / 2) + radius / sqrt (2))) / 2, - ((lrint (height * 0.05) + font->ascent) + - (height / 2 - radius / sqrt (2))) / 2, - zone_offset, name_colour.pixel); + { + char zone_offset[100]; + sprintf (zone_offset, "UTC%s", zone_data[selected_zone].offset); + draw_string ( + ((width * 0.95 - XTextWidth (font, zone_offset, strlen (zone_offset))) + + ((width / 2) + radius / sqrt (2))) / 2, + ((lrint (height * 0.05) + font->ascent) + + (height / 2 - radius / sqrt (2))) / 2, + zone_offset, name_colour.pixel); + } } XCopyArea (display, pixmap, window, gc, 0, 0, width, height, 0, 0); } -void select_place (int place) -{ - target_lon = atan2 (zone_data[selected_zone].place_info[place].v.y, - zone_data[selected_zone].place_info[place].v.x); - target_lat = acos (zone_data[selected_zone].place_info[place].v.z /2); - - selected_place = place; -} - int nearest_z (double near_z) { double min_delta = @@ -417,31 +454,37 @@ void next_view () double lat_error = target_lat - displayed_lat; double lon_error = target_lon - displayed_lon; - lat_error = atan2 (sin (lat_error), cos( lat_error)); - lon_error = atan2 (sin (lon_error), cos (lon_error)); - - error_total = sqrt (lat_error * lat_error + lon_error * lon_error); - - if (error_total < acceleration) + if (guessing_timezone) { - displayed_lat = target_lat; - displayed_lon = target_lon; + displayed_lon += 1 / 180.0 * M_PI; } else { - if (error_total > (step_size + acceleration) * - (step_size + acceleration) / acceleration / 2) - step_size += acceleration; + lat_error = atan2 (sin (lat_error), cos( lat_error)); + lon_error = atan2 (sin (lon_error), cos (lon_error)); + + error_total = sqrt (lat_error * lat_error + lon_error * lon_error); + + if (error_total < acceleration) + { + displayed_lat = target_lat; + displayed_lon = target_lon; + } else - step_size -= acceleration; + { + if (error_total > (step_size + acceleration) * + (step_size + acceleration) / acceleration / 2) + step_size += acceleration; + else + step_size -= acceleration; - if (step_size < acceleration) - step_size = acceleration; + if (step_size < acceleration) + step_size = acceleration; - displayed_lat += step_size * (lat_error / error_total); - displayed_lon += step_size * (lon_error / error_total); + displayed_lat += step_size * (lat_error / error_total); + displayed_lon += step_size * (lon_error / error_total); + } } - } void *lirc_thread (void *unused) @@ -493,6 +536,176 @@ void *lirc_thread (void *unused) } } +void get_value (FILE *input, char*output, int out_len) +{ + const char *value_pattern = "value=\""; + char *value; + + output[0] = 0; + fgets (output, out_len, input); + + if (value = strcasestr (output, value_pattern)) + { + memmove (output, value + strlen (value_pattern), + strlen (value + strlen (value_pattern)) + 1); + } + + if (value = strchr (output, '"')) + value[0] = 0; +} + +void *timezone_guess (void *unused) +{ + const double invalid = 99999; + FILE *guess_data; + char line_in[1000]; + double guess_latitude = invalid; + double guess_longitude = invalid; + char guess_zone[1000] = {0}; + char *timezone_info_command; + + if (getenv ("FAKE_GEOBYTES")) + { + timezone_info_command = + "sleep 2 ; " + "echo Latitude ; " + "echo \" <td value=\\\"-34.993\\\"\" ;" + "echo Longitude ; " + "echo \" <td value=\\\"138.6\\\"\" ;" + "echo TimeZone ; " + "echo \" <td value=\\\"+09:30\\\"\""; + } + else + { + timezone_info_command = + "wget http://www.geobytes.com/IpLocator.htm -O - 2> /dev/null |" + "grep \"^ <td \" |" + "grep -i -E -A1 \"Latitude|Longitude|TimeZone\" | grep -v \"^--$\""; + } + + guess_data = popen (timezone_info_command, "r"); + + if (!guess_data) + { + fprintf (stderr, "error parsing web page for timezone guess\n"); + guessing_timezone = FALSE; + return NULL; + } + + while (fgets (line_in, sizeof (line_in), guess_data)) + { + // Look for the entries in the guess data and then the next line + // will hold the value. + + if (strcasestr (line_in, "latitude")) + { + get_value (guess_data, line_in, sizeof (line_in)); + sscanf (line_in, "%lf", &guess_latitude); + } + else if (strcasestr (line_in, "longitude")) + { + get_value (guess_data, line_in, sizeof (line_in)); + sscanf (line_in, "%lf", &guess_longitude); + } + else if (strcasestr (line_in, "timezone")) + { + get_value (guess_data, line_in, sizeof (line_in)); + + // The geobytes timezone data is of the form "+09:30" whereas the + // map timezone data is of the form "+6" or "+9.5". Convert + // to the map timezone data format so we can find the timezone. + + if (strcmp (&line_in[3], ":30") == 0) + sprintf (&line_in[3], ".5"); + else + line_in[3] = 0; + + if (line_in[1] == '0') + memmove (&line_in[1], &line_in[2], strlen (&line_in[2]) + 1); + + strncpy (guess_zone, line_in, sizeof (guess_zone)); + } + } + + pclose (guess_data); + + if ((guess_latitude != invalid) && + (guess_longitude != invalid) && + guess_zone[0] != 0) + { + int zone; + + fprintf (stderr, "guessed lat lon %f %f %s\n", + guess_latitude, guess_longitude, guess_zone); + + // Look for the guessed zone in the zone_data structure. + for (zone = 0; zone < NUM_ZONES; zone++) + { + if (strcmp (guess_zone, zone_data[zone].offset) == 0) + break; + } + + if (zone == NUM_ZONES) + { + fprintf (stderr, "couldnt find zone %s\n", guess_zone); + default_zone (""); + } + else + { + double x,y,z; + double min_dist_squared; + int closest_place; + + // Look for the location in the zone nearest to the guess lat/lon. + + // Convert the guessed lat/lon to x,y,z. + + guess_latitude *= M_PI / 180.0; + guess_longitude *= M_PI / 180.0; + + x = cos (guess_longitude) * cos (guess_latitude); + y = sin (guess_longitude) * cos (guess_latitude); + z = sin (guess_latitude); + + min_dist_squared = + pow (x - zone_data[zone].place_info[0].v.x, 2) + + pow (y - zone_data[zone].place_info[0].v.y, 2) + + pow (z - zone_data[zone].place_info[0].v.z, 2); + closest_place = 0; + + for (int place = 1; place < zone_data[zone].num_places; place++) + { + double dist_squared; + + dist_squared = + pow (x - zone_data[zone].place_info[place].v.x, 2) + + pow (y - zone_data[zone].place_info[place].v.y, 2) + + pow (z - zone_data[zone].place_info[place].v.z, 2); + + if (dist_squared < min_dist_squared) + { + closest_place = place; + min_dist_squared = dist_squared; + } + } + + fprintf (stderr, "Guess=%s %s\n", + zone_data[zone].place_info[closest_place].zonename, + zone_data[zone].offset); + + selected_zone = zone; + select_place (closest_place); + } + } + else + { + default_zone (""); + } + + guessing_timezone = FALSE; + return NULL; +} + void remove_titlebar_and_borders () { XClassHint* classHint; @@ -547,7 +760,7 @@ int main (int argc, char *argv[]) int arg_width = -1; int arg_height = -1; char arg_zone[100] = {0}; - + if (getenv ("ACCEL")) acceleration = atof (getenv ("ACCEL")); @@ -557,6 +770,13 @@ int main (int argc, char *argv[]) { case 'z': strncpy (arg_zone, optarg, sizeof (arg_zone) - 1); + + if (strcasecmp (arg_zone, "guess") == 0) + { + guessing_timezone = TRUE; + arg_zone[0]=0; + } + break; case 'w': @@ -574,14 +794,16 @@ int main (int argc, char *argv[]) case '?': printf ("usage: %s [-a accelleration] [-z timezone] " "[-w width] [-h height]\n" - "e.g. linhes_timezone -w 1920 -h 1090 -z Australia/Adelaide\n", + "e.g. linhes_timezone -w 1920 -h 1090 -z Australia/Adelaide\n" + "specify a timezone of 'guess' to determine the initial " + "timezone from\n" + "your ip address using geocache.\n", argv[0]); exit (0); break; } } - pthread_create (&tid, NULL, lirc_thread, NULL); /* Connect to the X server. */ @@ -636,7 +858,6 @@ int main (int argc, char *argv[]) remove_titlebar_and_borders (); - if (!window) { fprintf (stderr, "cannot open window\n"); @@ -726,21 +947,21 @@ int main (int argc, char *argv[]) if (XAllocColor (display, cmap, &location_dot) == 0) printf ("Cant allocate color\n"); - // Find LA and make that the selected zone and place. - - for (int zone = 0; zone < NUM_ZONES; zone++) + // Find the selected timezone (or LA if a timezone was not selected) and + // make that the selected zone and place. + + default_zone (arg_zone); + + if (guessing_timezone) { - for (int place = 0; place < zone_data[zone].num_places; place++) - { - if (strstr (zone_data[zone].place_info[place].zonename, - arg_zone[0] ? arg_zone : "Los_Angeles")) - { - selected_zone = zone; - select_place (place); - displayed_lat = target_lat; - displayed_lon = target_lon; - } - } + pthread_create (&tid, NULL, timezone_guess, NULL); + displayed_lat = M_PI/2; + displayed_lon = 0; + } + else + { + displayed_lat = target_lat; + displayed_lon = target_lon; } /* ask for exposure event and keyboard events */ @@ -753,7 +974,8 @@ int main (int argc, char *argv[]) while (1) { - if ((displayed_lat != target_lat) || (displayed_lon != target_lon)) + if ((displayed_lat != target_lat) || (displayed_lon != target_lon) || + guessing_timezone) { next_view (); redraw_map (); diff --git a/abs/core-testing/mythtv/stable/mythtv/PKGBUILD b/abs/core-testing/mythtv/stable/mythtv/PKGBUILD index ebefddb..9b4d4d9 100644 --- a/abs/core-testing/mythtv/stable/mythtv/PKGBUILD +++ b/abs/core-testing/mythtv/stable/mythtv/PKGBUILD @@ -1,6 +1,6 @@ pkgname=mythtv pkgver=0.21 -pkgrel=71 +pkgrel=72 pkgdesc="A Homebrew PVR project" arch=('i686' 'x86_64') depends=('bash' 'mysql-clients>=5.0' 'qt3' 'lame' 'lirc-utils' 'ffmpeg' \ diff --git a/abs/extra-testing/community/jre/PKGBUILD b/abs/extra-testing/community/jre/PKGBUILD index ca22f01..cd9a932 100644 --- a/abs/extra-testing/community/jre/PKGBUILD +++ b/abs/extra-testing/community/jre/PKGBUILD @@ -1,55 +1,58 @@ -# Based on official Arch package by Jason Chu <jason@archlinux.org> +# $Id: PKGBUILD,v 1.6 2009/06/01 19:10:05 wonder Exp $ +# Maintainer: Jason Chu <jason@archlinux.org> + pkgname=jre -pkgver=6u12 +pkgver=6u14 pkgrel=1 pkgdesc="Sun's java runtime environment" -arch=(i686 x86_64) -[ "$CARCH" = "i686" ] && _arch=i586 -[ "$CARCH" = "x86_64" ] && _arch=amd64 +arch=('i686' 'x86_64') + [ "$CARCH" = "i686" ] && _arch=i586 + [ "$CARCH" = "x86_64" ] && _arch=amd64 url="http://java.sun.com" -depends=('glibc' 'libstdc++5') +depends=('glibc' 'libxtst') install="jre.install" source=(http://download.java.net/dlj/binaries/jdk-$pkgver-dlj-linux-$_arch.bin -https://jdk-distros.dev.java.net/source/browse/*checkout*/jdk-distros/trunk/utils/construct.sh -jre.profile) -[ "$CARCH" = "i686" ] && md5sums=('560a51cfeecc4918d01ca29abc858d52' -'94065b612df0046d9ae758943f9f6a75' -'50b4f5ac4129097461d246645d73a622') -[ "$CARCH" = "x86_64" ] && md5sums=('9dce878be77b4a93337fa85b40b29069' -'94065b612df0046d9ae758943f9f6a75' -'50b4f5ac4129097461d246645d73a622') + https://jdk-distros.dev.java.net/source/browse/*checkout*/jdk-distros/trunk/utils/construct.sh + jre.profile) +[ "$CARCH" = "i686" ] && md5sums=('299c445e4b14bfbb2a05323734d89c0c' + '94065b612df0046d9ae758943f9f6a75' + '50b4f5ac4129097461d246645d73a622') +[ "$CARCH" = "x86_64" ] && md5sums=('6e866db04748296fc34ed83a92420403' + '94065b612df0046d9ae758943f9f6a75' + '50b4f5ac4129097461d246645d73a622') + + replaces=('j2re') conflicts=('j2re' 'java-runtime') -provides=('j2re' 'java-runtime') +provides=('j2re' 'java-runtime=6') license=('custom') build() { - cd $startdir/src + cd $startdir/src + + mkdir unbundle-jdk + cd unbundle-jdk - mkdir unbundle-jdk - cd unbundle-jdk + sh ../jdk-$pkgver-dlj-linux-$_arch.bin --accept-license - sh ../jdk-$pkgver-dlj-linux-$_arch.bin --accept-license + cd .. - cd .. + sh construct.sh unbundle-jdk linux-jdk linux-jre - sh construct.sh unbundle-jdk linux-jdk linux-jre + mkdir -p $startdir/pkg/opt/java + mv linux-jdk/jre $startdir/pkg/opt/java - mkdir -p $startdir/pkg/opt/java - mv linux-jdk/jre $startdir/pkg/opt/java + install -D -m755 $startdir/src/${pkgname}.profile $startdir/pkg/etc/profile.d/${pkgname}.sh - install -D -m755 $startdir/src/${pkgname}.profile $startdir/pkg/etc/profile.d/${pkgname}.sh + mkdir -p $startdir/pkg/usr/lib/mozilla/plugins - if [ "$CARCH" = "i686" ]; then - mkdir -p $startdir/pkg/usr/lib/mozilla/plugins - ln -s /opt/java/jre/plugin/i386/ns7/libjavaplugin_oji.so $startdir/pkg/usr/lib/mozilla/plugins - elif [ "$CARCH" = "x86_64" ]; then - mkdir -p $startdir/pkg/usr/lib/mozilla/plugins - ln -s /opt/java/jre/lib/amd64/libnpjp2.so $startdir/pkg/usr/lib/mozilla/plugins - fi + if [ "$CARCH" = "i686" ]; then + ln -s /opt/java/jre/lib/i386/libnpjp2.so $startdir/pkg/usr/lib/mozilla/plugins + else ln -s /opt/java/jre/lib/amd64/libnpjp2.so $startdir/pkg/usr/lib/mozilla/plugins + fi - mkdir -p $startdir/pkg/usr/share/licenses/jre - cp $startdir/pkg/opt/java/jre/COPYRIGHT $startdir/pkg/usr/share/licenses/jre - cp $startdir/pkg/opt/java/jre/LICENSE $startdir/pkg/usr/share/licenses/jre - cp $startdir/pkg/opt/java/jre/THIRDPARTYLICENSEREADME.txt $startdir/pkg/usr/share/licenses/jre + mkdir -p $startdir/pkg/usr/share/licenses/jre + cp $startdir/pkg/opt/java/jre/COPYRIGHT $startdir/pkg/usr/share/licenses/jre + cp $startdir/pkg/opt/java/jre/LICENSE $startdir/pkg/usr/share/licenses/jre + cp $startdir/pkg/opt/java/jre/THIRDPARTYLICENSEREADME.txt $startdir/pkg/usr/share/licenses/jre } diff --git a/abs/extra-testing/community/jre/construct.sh b/abs/extra-testing/community/jre/construct.sh deleted file mode 100644 index 5f6ff7f..0000000 --- a/abs/extra-testing/community/jre/construct.sh +++ /dev/null @@ -1,282 +0,0 @@ -#!/bin/bash -# construct.sh -# example construction of JRE and JDK directories from the DLJ bundles -# -# Copyright © 2006 Sun Microsystems, Inc. -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be -# included in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Sun, Sun Microsystems, the Sun logo and Java, Java HotSpot, -# and JVM trademarks or registered trademarks of Sun Microsystems, -# Inc. in the U.S. and other countries. - - -program=`basename $0` - -usage () { - echo "usage: ${program} path/to/unbundle-jdk path/to/linux-jdk path/to/linux-jre" -} - -getargs() { - undir=$1 - jdkdir=$2 - jredir=$3 - if [ ! -d $undir ]; then - echo "${program}: unbundle directory not found: $undir" - exit 2 - fi - # make sure javahome is the JDK - javahome=`echo $undir/*/demo` - if [ ! -d $javahome ]; then - echo "${program}: unbundle directory incorrect: $undir" - echo " expecting $undir/jdk1.5.0_xx" - exit 2 - else - javahome=`dirname $javahome` - fi - # verify JDK dir - jdkdirp=`dirname $jdkdir` - jdkbase=`basename $jdkdir` - if [ ! -d $jdkdirp ]; then - echo "${program}: parent directory for JDK does not exist: $jdkdirp" - exit 2 - fi - savedir=`pwd` - cd $jdkdirp - jdkdirp=`pwd` - cd $savedir - jdkdir=$jdkdirp/$jdkbase - # verify JRE dir - jredirp=`dirname $jredir` - jrebase=`basename $jredir` - if [ ! -d $jredirp ]; then - echo "${program}: parent directory for JRE does not exist: $jredirp" - exit 2 - fi - savedir=`pwd` - cd $jredirp - jredirp=`pwd` - cd $savedir - jredir=$jredirp/$jrebase -} - -checkfiles() { - if [ -r $jdkdir ]; then - echo "${program}: directory for JDK already exists: $jdkdir" - exit 2 - fi - if [ -r $jredir ]; then - echo "${program}: directory for JRE already exists: $jredir" - exit 2 - fi -} - -copytree() { - echo "copying over the JDK tree..." - cp -a $javahome $jdkdir -} - -linkrel() { - target=$1 - link=$2 - # make a softlink from the $link to the $target - # make this a relative link - targetb=(`echo $target | tr '/' ' '`) - linkb=(`echo $link | tr '/' ' '`) - (( n = ${#targetb[*]} )) - (( m = ${#linkb[*]} )) - c=$n # common length - if [ $m -lt $c ]; then - (( c = m )) - fi - for (( i = 0 ; i < c ; i++ )); do - if [ ${targetb[$i]} != ${linkb[$i]} ]; then - # echo components differ, stopping - break - fi - done - rel="" - for (( j = i + 1; j < m ; j++ )); do - if [ -z $rel ]; then - rel=".." - else - rel="$rel/.." - fi - done - for (( j = i; j < n ; j++ )); do - if [ -z $rel ]; then - rel=${targetb[$j]} - else - rel="$rel/${targetb[$j]}" - fi - done - ln -s $rel $link -} - -createjre() { - echo "creating JRE directory..." - # absolute link - # ln -s $jdkdir/jre $jredir - # relative link - linkrel $jdkdir/jre $jredir -} - -unpackjars() { - echo "unpacking jars..." - unpack200=$jdkdir/bin/unpack200 - if [ ! -x $unpack200 ]; then - echo "${program}: file missing $unpack200" - exit 1 - fi - cd $jdkdir - PACKED_JARS=`find . -name '*.pack'` - for i in $PACKED_JARS; do - # echo $i - jdir=`dirname $i` - jbase=`basename $i .pack` - if ! $unpack200 $jdkdir/$jdir/$jbase.pack $jdkdir/$jdir/$jbase.jar; then - echo "${program}: error unpacking $jdkdir/$jdir/$jbase.jar" - fi - if [ ! -r $jdkdir/$jdir/$jbase.jar ]; then - echo "${program}: missing $jdkdir/$jdir/$jbase.jar" - else - echo " $jdir/$jbase.jar" - # remove pack file - rm $jdkdir/$jdir/$jbase.pack - fi - done -} - -preparecds() { - # if this is a client installation... - compiler="`$jdkdir/bin/java -client -version 2>&1 | tail -n +3 | cut -d' ' -f1-4`" - if [ "X$compiler" = "XJava HotSpot(TM) Client VM" ]; then - # create the CDS archive - echo "creating the class data sharing archive..." - if ! $jdkdir/bin/java -client -Xshare:dump > /dev/null 2>&1; then - echo "returned error code $?" - fi - fi -} - -jreman () { - echo "setting up the JRE man pages..." - # note this list is slightly different for OpenSolaris bundles - jreman=/tmp/jre.man.txt -cat <<EOF > $jreman -man/ja_JP.eucJP/man1/java.1 -man/ja_JP.eucJP/man1/javaws.1 -man/ja_JP.eucJP/man1/keytool.1 -man/ja_JP.eucJP/man1/kinit.1 -man/ja_JP.eucJP/man1/klist.1 -man/ja_JP.eucJP/man1/ktab.1 -man/ja_JP.eucJP/man1/orbd.1 -man/ja_JP.eucJP/man1/pack200.1 -man/ja_JP.eucJP/man1/policytool.1 -man/ja_JP.eucJP/man1/rmid.1 -man/ja_JP.eucJP/man1/rmiregistry.1 -man/ja_JP.eucJP/man1/servertool.1 -man/ja_JP.eucJP/man1/tnameserv.1 -man/ja_JP.eucJP/man1/unpack200.1 -man/man1/java.1 -man/man1/javaws.1 -man/man1/keytool.1 -man/man1/kinit.1 -man/man1/klist.1 -man/man1/ktab.1 -man/man1/orbd.1 -man/man1/pack200.1 -man/man1/policytool.1 -man/man1/rmid.1 -man/man1/rmiregistry.1 -man/man1/servertool.1 -man/man1/tnameserv.1 -man/man1/unpack200.1 -EOF - # create jre/man directory - # mkdir $jdkdir/jre/man - # move the real JRE man pages to jre/man - # link the JDK JRE man pages to jre/man - # real JDK man pages stay where they are - for m in `cat $jreman`; do - manpath=`dirname $jdkdir/jre/$m` - mkdir -p $manpath - mv $jdkdir/$m $jdkdir/jre/$m - linkrel $jdkdir/jre/$m $jdkdir/$m - done - # link in Japanese man pages - ln -s ja_JP.eucJP $jdkdir/jre/man/ja - rm $jreman -} - -elimdups() { - echo "eliminating duplication between the JDK and JDK/jre..." - jdkcomm=/tmp/jdk.bin.comm.txt -cat <<EOF > $jdkcomm -bin/ControlPanel -bin/java -bin/javaws -bin/keytool -bin/kinit -bin/klist -bin/ktab -bin/orbd -bin/pack200 -bin/policytool -bin/rmid -bin/rmiregistry -bin/servertool -bin/tnameserv -bin/unpack200 -EOF - # note there is little point in linking these common files - # COPYRIGHT - # LICENSE - # THIRDPARTYLICENSEREADME.txt - # And this file is unique to the JDK - # README.html - # And these files are unique to the JDK/jre/ - # CHANGES - # README - # Welcome.html - for p in `cat $jdkcomm`; do - rm $jdkdir/$p - # this is a relative link - ln -s ../jre/$p $jdkdir/$p - done - rm $jdkcomm -} - -if [ $# -eq 3 ] ; then - getargs $1 $2 $3 - checkfiles - copytree - createjre - unpackjars - preparecds - jreman - elimdups -else - usage - exit 1 -fi - -exit 0 - diff --git a/abs/extra-testing/community/jre/jre.install b/abs/extra-testing/community/jre/jre.install index 778a5fd..4e557a7 100644 --- a/abs/extra-testing/community/jre/jre.install +++ b/abs/extra-testing/community/jre/jre.install @@ -10,13 +10,6 @@ post_install() { sed -e '/application\/x-java-jnlp-file/d' -i /etc/mailcap fi echo 'application/x-java-jnlp-file;/opt/java/jre/bin/javaws %s' >>/etc/mailcap -cat << _EOF - -==> In order to have java applets support in firefox you should install -==> libxtst (pacman -S libxtst). - -_EOF - } post_remove() { |