From ece12e39d219f76cdf8b6f71239cf7f3d663401a Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Thu, 30 Jan 2014 10:49:16 +0100 Subject: Updated docs/scripts .. icedtea-web build scripts --- .gitignore | 3 ++ Android.txt | 28 +++++++++++++ doc/README.JEP161.txt | 11 +++++ doc/README.JWeb.txt | 93 +++++++++++++++++++++++++++++++++++++++++ scripts/make.icedtea-web3.sh | 4 ++ scripts/make.jep161-openjdk8.sh | 4 +- 6 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 Android.txt create mode 100644 doc/README.JWeb.txt create mode 100644 scripts/make.icedtea-web3.sh diff --git a/.gitignore b/.gitignore index 5504873..5fc57a8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ jdk8/* jigsaw/* +icedtea-web +icedtea-web-1.3/* +icedtea-web-hg/* diff --git a/Android.txt b/Android.txt new file mode 100644 index 0000000..a15e044 --- /dev/null +++ b/Android.txt @@ -0,0 +1,28 @@ +(11:41:10 PM) xranby_ac100: hg clone http://hg.mozilla.org/mozilla-central/ +(11:43:58 PM) xranby_ac100: Current Firefox and Gecko development. Releases branch off of this repository. Also known as "Trunk" +(11:45:53 PM) xranby_ac100: https://wiki.mozilla.org/Mobile/Fennec/Android +(11:46:28 PM) xranby_ac100: https://wiki.mozilla.org/Mobile/Fennec/Android#Hacking +(11:50:02 PM) xranby_ac100: sgothel: acquiteNativeWindow returns a ANPNativeWindow +(11:50:20 PM) xranby_ac100: https://mxr.mozilla.org/mozilla-central/ident?i=acquireNativeWindow +(11:57:11 PM) xranby_ac100: hg clone http://icedtea.classpath.org/hg/icedtea-web +(12/17/2013 12:00:19 AM) Day changed to 17 Dec 2013 +(12:01:34 AM) xranby_ac100: so in order to write a npapi plugin for android the icedtea-web code needs to get updated to use the android_npapi.h https://mxr.mozilla.org/mozilla-central/source/dom/plugins/base/android/android_npapi.h +(12:27:02 AM) sgothel: hmm +(12:28:21 AM) xranby_ac100: https://mxr.mozilla.org/mozilla-central/source/dom/plugins/base/npapi.h <- 471 typedef struct _NPWindow 472 { 473 void* window; /* Platform specific window handle */ +(12:28:22 AM) sgothel: for native window parenting ok .. just thinking loud about whether to use dalvik or jdk8 .. +(12:28:57 AM) sgothel: and this interface does not solve mouse/keyboard input handling .. or does it ? +(12:29:57 AM) sgothel: however the details are: we have 2 options: dalvik or jdk8 +(12:30:32 AM) sgothel: jdk8 = jamvm+ .. I guess +(12:31:08 AM) xranby_ac100: if we can statically link and bundle eglibc with jdk8 and jamvm then it should run on andorid +(12:31:14 AM) sgothel: ok .. that API incl. even input events +(12:31:45 AM) xranby_ac100: easier than porting jdk8 and jamvm to bionic +(12:31:45 AM) sgothel: 'eglibc' ? +(12:31:58 AM) sgothel: really ? +(12:32:08 AM) xranby_ac100: the flavour of glibc used by all recent gnu linux distributions +(12:32:09 AM) sgothel: but then, why not simply using Dalvik +(12:33:04 AM) xranby_ac100: you can run classes +(12:33:12 AM) xranby_ac100: instead of dex +(12:33:14 AM) sgothel: sure .. users would need to provide APKs besides JAR files .. or we would need to add the JAR->APK handling +(12:34:14 AM) sgothel: performance is probably better w/ Dalvik that w/ JamVM .. but we will see how all that goes +(12:34:42 AM) sgothel: *than* +(12:34:49 AM) xranby_ac100: i leave the benchmark numbers to the benchmarks to decide diff --git a/doc/README.JEP161.txt b/doc/README.JEP161.txt index 187e9a6..ac38957 100644 --- a/doc/README.JEP161.txt +++ b/doc/README.JEP161.txt @@ -21,3 +21,14 @@ sh configure --enable-openjdk-only \ sh configure make profiles images docs # make test TEST=jdk_jigsaw + +bash ../scripts/export.jep161-openjdk8.sh build/linux-x86_64-normal-server-release/images ~/openjdk8-linux-x86_64 /usr/bin/strip + ++++ + +(11:10:18 AM) sgothel: the compact works w/ JOGL, have to separate the AWT out of the NEWT only unit tests .. a bit better +(11:10:55 AM) sgothel: i.e. some good ClassNotFound exceptions happend regarding n/a AWT stuff from AWTRobot .. nice +(11:11:09 AM) sgothel: -> compact1 profile that is +(11:11:59 AM) sgothel: Thx Xerxes - so I guess the modularization step is already answered for now! +(11:12:13 AM) sgothel: For me .. next will be JWeb .. (browser plugin) +(11:12:43 AM) sgothel: We would need to add recipes for building JPE161 for all other platforms ofc .. diff --git a/doc/README.JWeb.txt b/doc/README.JWeb.txt new file mode 100644 index 0000000..01fec8c --- /dev/null +++ b/doc/README.JWeb.txt @@ -0,0 +1,93 @@ +Source, config, compile: + hg clone http://icedtea.classpath.org/hg/icedtea-web + cd icedtea-web + ./autogen.sh + ./configure --prefix=/home/sven/icedtea-web --with-jdk-home=/usr/lib/jvm/java-7-openjdk-amd64 --with-jre-home=/usr/lib/jvm/java-7-openjdk-amd64/jre --with-firefox=/home/sven/firefox/firefox + ./configure --prefix=/home/sven/icedtea-web3 --with-jdk-home=/usr/lib/jvm/java-7-openjdk-amd64 --with-jre-home=/usr/lib/jvm/java-7-openjdk-amd64/jre --with-firefox=/home/sven/firefox/firefox + make + make install + +(11:20:42 AM) sgothel: yes Sir ! :) +(11:21:07 AM) sgothel: Yesterday I was reading about the issues of 'fake security' as they like to put it (and I do agree) .. +(11:21:15 AM) sgothel: i.e. message boxes .. and all of that +(11:21:52 AM) sgothel: while being able to abstract out things .. (AWT) and create a NEWT alternative impl. the issue would be chicken-and-egg regarding UI. +(11:22:11 AM) sgothel: i.e. the super fast straight fwd would be either to drop all UI messages .. +(11:22:13 AM) xranby: when you test icedtea-web create a link from ~/.mozilla/plugins/IcedTeaPlugin.so pointing to the plugin in /opt/icedtea-web/lib/IcedTeaPlugin.so +(11:22:39 AM) sgothel: (still in the thinking process) +(11:23:09 AM) sgothel: or (UI messages): (1) use html itself via broser, (2) use full JOGL/Graph +(11:23:29 AM) sgothel: if using the latter (2), the plugin would be a JogAmp only plugin +(11:23:44 AM) sgothel: at least w/ the NEWT plugin-plugin :) +(11:24:13 AM) sgothel: [general-plugin] - [UI-plugin] - [user-app] +(11:24:29 AM) sgothel: yup .. makes sense ?! +(11:24:51 AM) sgothel: p1: general-plugin +(11:24:57 AM) sgothel: p2: UI-plugin +(11:25:03 AM) sgothel: p3: user-app +(11:25:18 AM) sgothel: p1 loads p2, which must be signed - no UI can happen while doing so +(11:25:40 AM) sgothel: p1+p2: will make a complete plugin, i.e. operable +(11:25:59 AM) sgothel: then p3 can be loaded and run as usual +(11:26:16 AM) sgothel: the 'only' issue is .. loading/installing p2 w/o any UI avail +(11:26:18 AM) xranby: p3 == /opt/icedtea-web/bin/itweb-settings ? +(11:26:38 AM) sgothel: I thought p3 is the user applet itself +(11:26:44 AM) xranby: p4: webstart == /opt/icedtea-web/bin/javaws +(11:27:02 AM) xranby: (optional?) +(11:27:09 AM) sgothel: in current JWeb design .. I would drop JNLP/Webstart completly +(11:27:23 AM) sgothel: why ? b/c orig JNLP implies even more UIs +(11:27:34 AM) xranby: i see +(11:27:39 AM) sgothel: lots of dialogue boxes (never really used) .. for files etc +(11:27:57 AM) sgothel: p1 -> part-1 +(11:27:59 AM) sgothel: etc +(11:28:19 AM) sgothel: again: loading p2 from an external source w/o UI avail .. might be an isue +(11:28:22 AM) sgothel: *issue* +(11:28:34 AM) sgothel: (the usual .. do you agree thingy) +(11:29:01 AM) sgothel: so if this IS an issue, we could only deploy a product w/ p1+p2 -> a JOGL/NEWT'ish plugin +(11:29:03 AM) xranby: you also mentioned idea yesterday of p5: browser extension that rewrite plugin ont available -> get ji gong +(11:29:18 AM) sgothel: p1-3 .. only refers here for the applet loading +(11:29:40 AM) sgothel: yes .. writing an extension which installs all .. would be sweet +(11:29:59 AM) sgothel: best to find somebody who did write an extension already installing something .. hmm +(11:30:12 AM) xranby: ok so p3 == the actual deployed end user app +(11:30:23 AM) sgothel: yup +(11:30:29 AM) xranby: p6 == /opt/icedtea-web/bin/itweb-settings to configure the plugin itself +(11:30:55 AM) xranby: hopefully not required +(11:31:12 AM) xranby: but maybe some people like to have a way to flush cache & uninstall applications +(11:31:13 AM) sgothel: (do not hijack my namespace :) - the source code could keep the abstraction p1/p2 alive, while we would deploy a plugin w/ p1+p2 +(11:31:31 AM) sgothel: dunno what /opt/icedtea-web/bin/itweb-settings is .. +(11:31:40 AM) xranby: hehe ok sorry for hijacking your p*: namespace ;) +(11:31:52 AM) xranby: run it and you will be enlightened! +(11:32:37 AM) sgothel: the control panel .. :) +(11:33:18 AM) xranby: yup.. this one will need to be converted to newt + graph +(11:33:24 AM) xranby: if we want to use it +(11:33:51 AM) sgothel: .. on the very bottom of my thoughts right now :) +(11:34:03 AM) sgothel: surely it could also simply still use AWT .. +(11:34:11 AM) sgothel: i.e. we do not compete w/ current stuff +(11:34:29 AM) sgothel: or a browser app .. something, from within extension +(11:34:44 AM) sgothel: the latter might be most suitable +(11:38:02 AM) xranby: icedtea-web configure got one important option --with-jre-home this one should point to the Ji Gong JRT install directory +(11:38:17 AM) xranby: it will enable icedtea-web to actually locate the JRT +(11:38:25 AM) xranby: on the mobile device +(11:38:34 AM) xranby: by default it picks the location of the JDK used to build it +(11:38:57 AM) sgothel: I was thinking of bundling JRT+plugin to one genuine thingy iff installed this way +(11:38:58 AM) xranby: which naturally is not found on the end user device +(11:39:34 AM) sgothel: or lets say it shall not matter .. if JRE is found good, if not, install JRT - treated as equals +(11:39:34 AM) xranby: sgothel: then icedtea-web needs to know the install location on forehand +(11:40:06 AM) xranby: because the path gets hardcoded into some of the icedtea-web tools and plugin +(11:40:09 AM) sgothel: compile time ? then we surely need to change that - make it flexible/parametrize .. +(11:40:13 AM) xranby: sure +(11:40:32 AM) sgothel: java.home or something .. already exist +(11:42:16 AM) xranby: that env variable is not used by the plugin.. for security reasons i think +(11:42:27 AM) xranby: prevents the app from switching to a diff JRT +(11:42:43 AM) sgothel: it's the java property set by the JVM itself AFAIK +(11:43:19 AM) xranby: http://icedtea.classpath.org/hg/icedtea-web/log?rev=JAVA_HOME CVE-2010-3860 +(11:43:44 AM) sgothel: not JAVA_HOME, but 'java.home' :) +(11:44:10 AM) sgothel: i.e. trad. plugin looks up deployment.properties listed JREs .. etc +(11:44:17 AM) xranby: well. the java.home is not known by the plugin +(11:44:22 AM) xranby: since its native code +(11:44:35 AM) xranby: the plugin needs to find the jre java +(11:44:39 AM) xranby: or libjvm.so +(11:45:07 AM) sgothel: so we can install the plugin's library within the JRE/JRT +(11:45:14 AM) xranby: sure +(11:45:18 AM) xranby: relative path +(11:45:22 AM) sgothel: this is how traditional plugin finds 'it's' JVM +(11:45:56 AM) xranby: place a relative path to the --with-jre-home +(11:45:58 AM) sgothel: so all this will boil down to migrating the plugin to JRT - simple +(11:46:07 AM) xranby: shoudl fix it +(11:46:13 AM) sgothel: great! diff --git a/scripts/make.icedtea-web3.sh b/scripts/make.icedtea-web3.sh new file mode 100644 index 0000000..d05d48a --- /dev/null +++ b/scripts/make.icedtea-web3.sh @@ -0,0 +1,4 @@ +./autogen.sh +./configure --prefix=/home/sven/icedtea-web3 --with-jdk-home=/usr/lib/jvm/java-7-openjdk-amd64 --with-jre-home=/usr/lib/jvm/java-7-openjdk-amd64/jre --with-firefox=/home/sven/firefox/firefox +make +make install diff --git a/scripts/make.jep161-openjdk8.sh b/scripts/make.jep161-openjdk8.sh index 85f5da0..3b82db5 100644 --- a/scripts/make.jep161-openjdk8.sh +++ b/scripts/make.jep161-openjdk8.sh @@ -6,7 +6,9 @@ build_it() { sh configure --enable-openjdk-only \ --disable-zip-debug-info --disable-debug-symbols \ --with-debug-level=release \ - && make profiles images docs + && make clean profiles images docs + +# && LOG=debug make clean profiles images docs } build_it 2>&1 | tee -a $logfile -- cgit v1.2.3