IcedTeaWeb: using java 9 run args ?
Jiri Vanek
jvanek at redhat.com
Tue Feb 12 12:13:23 UTC 2019
TYVM!
pushed!
On 2/12/19 10:58 AM, Laurent Bourgès wrote:
> Hi Jiri,
>
>
> I had harm your patch a bit.
> I made the location configurable, as I cannot enforce linux distros to have the args file in bin
> folder.
>
> Still I kept the default of yours - bin.
>
> That naturally went to issue with searching for args file outside the distro world. So I added one
> more copy into win/linux static images.
>
> WDYT?
>
>
> I had a quick look (not tested) and it looks good.
>
> I noticed you forgot to replace 1 hard-coded value in windows batch file:
> + set "RUN_ARGS_LOCATION=%ITW_HOME%/bin/launchers-run.args"
> should be
> + set "RUN_ARGS_LOCATION=%ITW_HOME%/bin/itw-modularjdk.args"
>
>
>
>
> IN addition I had renamed the variables to have common root, and properly used variable instead of
> hardcoded filename.
>
> WDYT?
>
>
> OK, except the typo.
> Will test it soon or after you push the patch.
>
> Laurent
>
>
> Thanx for patience. Unless you have much more objections, I will push for you tomorrow. (+rust
> launchers)
>
> J.
> On 2/8/19 4:26 PM, Laurent Bourgès wrote:
> > Hi Jiri,
> > I easily merge with your latest changes and it builds properly.
> > (I noticed build generated the win-deps folder now)
> >
> > Here is the updated patch.
> >
> > Cheers,
> > Laurent
> >
> > Le jeu. 7 févr. 2019 à 18:45, Laurent Bourgès <bourges.laurent at gmail.com
> <mailto:bourges.laurent at gmail.com>
> > <mailto:bourges.laurent at gmail.com <mailto:bourges.laurent at gmail.com>>> a écrit :
> >
> > Jiri,
> >
> > Le jeu. 7 févr. 2019 à 17:12, Jiri Vanek <jvanek at redhat.com <mailto:jvanek at redhat.com>
> <mailto:jvanek at redhat.com <mailto:jvanek at redhat.com>>> a écrit :
> >
> > So the cross-build-bats is pushed.
> >
> >
> > Yes I got the notification, thx.
> >
> >
> > I will elaborate on rest tomorrow.
> > I yu adapt your patch to current head, it will be significant help.But is not necessary.
> >
> >
> > I will try merging tomorrow as I stay at home (flu).
> >
> > Thank you too
> > Laurent
> >
> >
> > TYVM for cooperation!
> > J.
> >
> >
> > On 2/7/19 3:47 PM, Laurent Bourgès wrote:
> > > Hi Jiri,
> > > Good to have your feedback.
> > >
> > >
> > > Le jeu. 7 févr. 2019 à 14:27, Jiri Vanek <jvanek at redhat.com
> <mailto:jvanek at redhat.com> <mailto:jvanek at redhat.com <mailto:jvanek at redhat.com>>
> > <mailto:jvanek at redhat.com <mailto:jvanek at redhat.com> <mailto:jvanek at redhat.com
> <mailto:jvanek at redhat.com>>>> a écrit :
> > >
> > > Hi Laurent!
> > >
> > > How are we with this?
> > >
> > >
> > > I prefer you to do its integration as my patch has conflicts with your changes (am)
> and my
> > changes
> > > are too big so splitting patch is needed, I agree.
> > >
> > >
> > > Can I commit my "crosscompile" bats patch, and will you adapt?
> > > Maybe it woudl be better if you first adapt your patch to my crosscompile patch
> before
> > I push - to
> > > test it abit.
> > > Or do you suggest any other workflow?
> > >
> > >
> > > Ok for me, I will follow and merge. If anything is wrong or missing, I will propose
> > smaller patches,
> > > sorry.
> > >
> > >
> > > After crosscompile patch is in, I 'm most likely +1 for pushing your new
> bat+the work
> > on @arg file
> > > (wiht some tuning on my side before push).
> > >
> > >
> > > Excellent plan.
> > >
> > >
> > > Until now I have not found better solution for jigsaw and other params, so also rust
> > launchers will
> > > do as you do - on jdk9+, will add this @file to java cmd. That will be done as
> > separate changeset
> > > (by me)
> > >
> > >
> > > Sounds good and easier to do in rust.
> > >
> > > Thanks a lot.
> > >
> > > Laurent
> > >
> > >
> > > Thanx!
> > > J.
> > > On 1/30/19 3:46 PM, Laurent Bourgès wrote:
> > > > Hi Jiri,
> > > >
> > > > > I finally finished rewriting / unify windows batch script with linux
> > > > > shell script.
> > > > >
> > > > Taht is bat scripting masterpiece. Congratualtions for gaining eternal
> patience.
> > > >
> > > >
> > > > thanks.
> > > >
> > > >
> > > > > Changes:
> > > > > - Xnofork is no more needed on windows because argument parsing is
> working now
> > > > > - use run-args + fix classpaths (portable itw with deps)
> > > > > - fix CRLF in bat files
> > > >
> > > >
> > > > One remaining difference: windows batch does not parse deployment.properties (to
> > look up JVM)
> > >
> > >
> > > This is ok, I do not intend to add it. If anybody wish, anybody can. And yes,
> > JAVA_HOME can
> > > help a lot.
> > > >
> > > > The crlg hack is necessary only for args file. That really have to be another
> > patch for that.
> > > > (still we can keep the thread, as many was told here already))
> > > >
> > > >
> > > > I think the contrary, only batch files really expect CRLF line endings. if you
> edit
> > using
> > > notepad or
> > > > if you use echo "text" then the line ending is important.
> > > > I suppose jvm arg file are well handled by jvm concerning line endings, so it
> is not
> > required to
> > > > have CRLF in launcher_run.args.
> > > >
> > > > I agree some changes to Makefile.am could be postponed to another patch.
> > > >
> > > >
> > > > >
> > > > > I tested it on windows 7/10 and it works great.
> > > > > I noted windows shortcuts work now, except on JDK12 (maybe related to
> > > > > jigsaw classloader ?)
> > > >
> > > > No idea. Adding Joel. to CC. Maybe you will be able to look into it?
> > > > Alex quite IcedTea recently, so there is no windows guy around. I will try to
> > get help in
> > > RH with
> > > > windows, otherwise windows "support" of itw will depend purely on community.
> > > >
> > > >
> > > > >
> > > > > I have questions about header variables (too many) and why these need
> > > > > to be absolute paths ?
> > > > Because in distribution, they ecan be anywhere.
> > > >
> > > > > it could be relative paths if we add ITW_HOME on the top.
> > > > > Of course, it depends between DIST or BUNDLE modes ... like for
> > > > > dependencies (win/linux_deps folders)
> > > > Yes. Bundle mode will be more happy with a bit different setup. Maybe ITW will
> > once grow
> > > to be more
> > > > standalone then distributions frindly.
> > > >
> > > >
> > > > OK, but it means bundle support needs to re-compute path relative to ITW_HOME on
> > linux & windows.
> > > > In this case, it is not obvious to guess the relative path to a resource from its
> > absolute
> > > path and
> > > > lots of path are hard-coded in windows batch.
> > > > For example:
> > > > set "BINARY_LOCATION=%ITW_HOME%/bin/%PROGRAM_NAME%.bat"
> > > >
> > > > set "SPLASH_LOCATION=%ITW_HOME%/share/icedtea-web/javaws_splash.png"
> > > >
> > > > It is not good, as ITW resource may be moved in Makefile or by installer, so these
> > paths /
> > > variables
> > > > must be maintained if any file is renamed or moved (netx.jar -> javaws.jar
> recently !)
> > > >
> > > > Any idea ? It is possible to provide both absolute path & relative paths but
> it will
> > be too ugly &
> > > > complicated.
> > > >
> > > >
> > > > >
> > > > > Please explain how do you plan to make portable (cross-platform) packages ?
> > > > Nothing like that!
> > > > I will build (and I already am) linux tarablls on linux, and windows
> tarballs on
> > windows.
> > > >
> > > >
> > > > In my tests, I build on linux with batch generated (wrong paths inside) then
> create
> > a zip file
> > > with
> > > > linux/win deps.
> > > > It works on windows using bundle mode (ITW_HOME pointing to the script dir).
> > > > Here is my do-package.sh script (post-build):
> > > > ITW_HOME=./install/
> > > > mkdir -p $ITW_HOME/linux-deps-runtime/
> > > > mkdir -p $ITW_HOME/win-deps-runtime/
> > > >
> > > > # add rhino ?
> > > >
> > > > # linux:
> > > > cp tagsoup-1.2.1.jar $ITW_HOME/linux-deps-runtime/
> > > >
> > > > # windows:
> > > > cp tagsoup-1.2.1.jar $ITW_HOME/win-deps-runtime/
> > > > cp mslinks.jar $ITW_HOME/win-deps-runtime/
> > > >
> > > > zip -r itw-1.8-install.zip $ITW_HOME
> > > >
> > > >
> > > > I had attached my version of crosscompiler bats on linux. Compared to yours,
> > thay are true on
> > > > windows. Not sure how you were handluing this case. Otherwise they loks same
> > asyours. I
> > > wrote them
> > > > in Monday, but then fell down with flue which keeps persisting.
> > > >
> > > >
> > > > Yes it is really close. As I am not an automake expert, I prefer your approach
> (true
> > on windows).
> > > > I will merge your changes and adapt my Makefile patch with less changes
> (LUNCHERS ->
> > LAUNCHERS,
> > > > run-args, fix CRLF in batch files)
> > > >
> > > >
> > > >
> > > > Also i noticed, that *image* as done on linux, with crosscompile on, is
> useless on
> > > windows. Yes,
> > > > you have bats, but windows-deps directory is corrupoted from linux build.
> > > > Whre I wont to keep this state on 1.7, in head, the only possible solution ois
> > to get rid of
> > > > linux/windows*deps*dirs and replace them by singledir deps. WDYT?
> > > >
> > > >
> > > > I can not build on windows, so I am making a cross-platform package on linux (jar
> > files +
> > > resources
> > > > + shell launchers).
> > > > I agree it would be simpler to put dependencies in a single location (jar
> files are
> > > cross-platform).
> > > >
> > > >
> > > > In addition, yours patch contains also the arg file. I probably agree that
> it is
> > way to
> > > go. This
> > > > will do its job for shell launchers. For rust ones, I will need to add the
> > cp/bootcp and
> > > other java
> > > > switches customisation properties into deployment.properties. WDYT?
> > > >
> > > >
> > > > The aim consist in having all ITW jigsaw args (add-reads / add-opens) gathered
> in a
> > single
> > > place and
> > > > minimize the jvm args.
> > > > I wonder if rust launchers could do the same (use @launchers-run.args) and only
> > customize the
> > > > --patch-moduleargs (netx,plugin,js) and of course, bootclasspath + classpath
> > (absolute paths)
> > > >
> > > >
> > > > >
> > > > > PS2: you can have a look @github to see complete shell scripts (not diff):
> > > > > https://github.com/bourgesl/icedtea-web/tree/run-args/shell-launcher
> > > >
> > > > h<t is really splendid work. I\m unable to have nay comment to new bat file,
> > except that
> > > it loosk
> > > > much better then old one, and that it do not looks malicious:)
> > > >
> > > >
> > > > Yes I mimic the linux behaviour (functional blocks); only the JVM lookup (from
> > > deplyoment.properties
> > > > is not handled).
> > > >
> > > >
> > > > I'm for its incorporation to both head and 1.7
> > > >
> > > > Great !
> > > >
> > > >
> > > > Few comments to ther chnegs inline:
> > > > ...
> > > > >
> > > > > patch-run-args-win.2.diff
> > > >
> > > > All refactorings/untypos must go as separate patch. Sorry. Feel free topush
> > them without
> > > any other
> > > > review. They are making reading of this hard.
> > > >
> > > >
> > > > Please be more precise. You mean fixing typos in Makefile.am (luncher ->
> launcher) ?
> > > >
> > > >
> > > > > +if ENABLE_WIN_SHELL_LAUNCHERS
> > > > > +# convert Unix newlines (LF) to DOS format:
> > > > > + line_end_edit_launcher_script=-e "s/\$$/\r/"
> > > > > +else
> > > > > + line_end_edit_launcher_script=
> > > > > +endif
> > > >
> > > > Only for args file path, right?
> > > >
> > > > No, it only fix generated batch files.
> > > >
> > > >
> > > > > +if "%MODULAR_JDK%" == "YES" (
> > > > > + rem warning extra escaping
> > > > > + set "MODULAR_ARGS=--patch-module "java.desktop=%NETX_JAR%;%PLUGIN_JAR%""
> > > >
> > > > why NETX.JAR?
> > > >
> > > >
> > > > %NETX_JAR% means $NETX_JAR ie .../javaws.jar
> > > > It is required to patch jdk.desktop module with ITW code (jigsaw issue as before).
> > > >
> > > >
> > > >
> > > > > +# Support Modular JDK (jigsaw):
> > > > > MODULAR_JDK="NO"
> > > > > -version=`${JAVA} -version 2>&1 | head -n 1 | cut -d'-' -f1 | cut -d'"'
> -f2 |
> > cut -d'.' -f1`
> > > > > +fullversion=`${JAVA} -version 2>&1`
> > > > > +echo "fullversion: $fullversion"
> > > >
> > > > I would skipp the fullversion: string, and printed $fullversion to stderr
> as are
> > people
> > > used from
> > > > jdk/ (?)
> > > >
> > > >
> > > > Not understood. I wanted to avoid calling java -version twice and but show JVM
> > version once.
> > > > What do you propose ?
> > > >
> > > >
> > > > >
> > > > > +#echo "CMD: ${COMMAND[@]}"
> > > >
> > > > The commented echo is weird. One is usually running this in -x subshell to see
> > details.
> > > >
> > > >
> > > > Ok I will remove such debugging lines.
> > > >
> > > > PS: Would it sound possible for you to handle merging & pushing this patch ?
> > > > Anyway I will wait for your changes to Makefiles before merging.
> > > >
> > > > Cheers,
> > > > Laurent
> > >
> > >
> > > --
> > > Jiri Vanek
> > > Senior QE engineer, OpenJDK QE lead, Mgr.
> > > Red Hat Czech
> > > jvanek at redhat.com <mailto:jvanek at redhat.com> <mailto:jvanek at redhat.com
> <mailto:jvanek at redhat.com>> <mailto:jvanek at redhat.com <mailto:jvanek at redhat.com>
> > <mailto:jvanek at redhat.com <mailto:jvanek at redhat.com>>> M: +420775390109
> > >
> >
> >
> > --
> > Jiri Vanek
> > Senior QE engineer, OpenJDK QE lead, Mgr.
> > Red Hat Czech
> > jvanek at redhat.com <mailto:jvanek at redhat.com> <mailto:jvanek at redhat.com
> <mailto:jvanek at redhat.com>> M: +420775390109
> >
> >
> >
> > --
> > --
> > Laurent Bourgès
>
>
> --
> Jiri Vanek
> Senior QE engineer, OpenJDK QE lead, Mgr.
> Red Hat Czech
> jvanek at redhat.com <mailto:jvanek at redhat.com> M: +420775390109
>
>
>
> --
> --
> Laurent Bourgès
--
Jiri Vanek
Senior QE engineer, OpenJDK QE lead, Mgr.
Red Hat Czech
jvanek at redhat.com M: +420775390109
More information about the distro-pkg-dev
mailing list