IcedTea 1.12.5 windows build errors

Alex Kasko alex.kasko.lists at gmail.com
Sat Jun 22 03:57:12 PDT 2013


On 06/21/2013 06:16 PM, Jacob Wisor wrote:
> Hello there!
>
>> I'm interesting in maintaining windows builds for IcedTea, is it
>> possible to have windows-specific changes upstreamed into IcedTea?
>
> This is great! I have cought up on your progress building IcedTea for/on Windows. I am also very interested in having a supported "official" binary release of IcedTea for Windows. Should you need any help in adjusting or simplifying the build process on Windows, I would be glad to help. Just to avoid any confusion, I am not currently interested in maintaing an IcedTea release for Windows, mainly because I lack the experience and sometimes expertise to do that. I would like to have official binary releases that ordinary users or admins can grab, install and run productively. I would also like to make adjustments to the build process, so that IcedTea can be relatively easily build on Windows with open-source tools (as one of IcedTea project's main goals states), mainly native tools (no dependency on cygwin neither at build nor at run time). Furthermore, I would like to provide an MSI installer for an IcedTea binary release.
About GPL installers - maybe you'll be interested in crossplatform 
installers (non icedtea though - vanilla openjdk) from my github project 
[1]. I also experimented with registry and PATH adjustments in windows 
[2] and, while registry access is non reliable between windows versions, 
automatic PATH adjustment works fine (going to include it in next 
versions). Also, looking at github download statistics, plain JDK images 
are more popular than installers.

About build process and tools - see my notes below.

>
>> Yes, to make clear the whole current process:
>> 1) run "./configure" on debian wheezy amd64
>> 2) run "make" (from the same icedtea dir), wait for all icedtea
>> patches applied, abort build
>> 3) copy "openjdk" dir to windows box
>> 4) apply windows-specific patches, run windows build as a normal
>> openjdk6 control build
>
> As I see it, this build process is far too complicated (still, thank you for doing this aweful work). :) That said, I asume those patches only apply to IcedTea's code, not the build process?
To clarify the build situation:

1) I'm not quite familiar with internals of icedtea 1.x build process. I 
see it as next big steps (not mentioning bootstrap/ecj and non-x86 
platforms):
  1. check environment (usual autotools configure step)
  2. patch openjdk sources and makefiles
  3. run usual openjdk build
  4. install created binaries to /usr/local

2) I have almost working buildfarm for building openjdk using virtualbox 
virtual machines (with minimum build environments). The build process 
looks like:
  1. put openjdk sources tarball next to clean virtualbox images
  2. run build script that will run VMs one by one, copy there build 
environment and sources, run build inside each VM, copy built binaries 
back to host, delete used images
This buildfarm is not finished yet but I want to finish it to 7u40 release.
This should explain my intentions to use only step "2." (patch openjdk 
sources) from icedtea build process. If I get patched tarball from iced 
tea then I can build it as an usual openjdk tarball. And icedtea 
tarballs have obvious benefits in more frequent source releases and 
platform-specific patches on linux.

3) In theory proper cygwin environment may be prepared in windows to 
build icedtea properly using "./configure && make" directly in windows 
(with some changes to autotools config). But it will require huge amount 
of waste work (giving that cygwin is half-working on x64 windows) with 
non obvious gain.

About patches - windows patches, I'm working on now, will be applied to 
openjdk code and makefiles, not icedtea part (though maybe some minor 
changes here also will be required).

> Regarding the build procees, I would even propose to go as far as to convert the build process to an ant-driven project (or provide side-by-side), well-knowing this may sound as heresy to some people and being unsure whether this is possible at all. Well, the benefits of that should be pretty obvious, so will not elaborate on that.
> Anyway, it would be nice to work something out.
Talking about icedtea 1.x on x86 - to my understanding there are two big 
parts of the build:
  1) icedtea part (points "1.", "2." and "4." from above), based on 
autotools, may be changed relatively freely giving that output files 
stay the same
  2) openjdk part (point "3." from above), makefiles for actual 
crossplatform build, should not be touched without proper understanding 
of implications for all build platforms.

Overall I think that any changes for windows builds should be minimized 
as possible to not create additional work for current icedtea downstream 
maintainers.

About cygwin from above question - it is used on windows only as 
unix-like build environment. All native binaries are created using 
native microsoft tools (nmake, cl etc) and have no dependencies on cygwin.

About open-source tools on windows - it's not possible for native MSVC 
builds. openjdk6 on x86_32 even cannot be built using any free (as in 
free beer) microsoft compiler (only MSVS2003 works). Also some microsoft 
shared and static libraries are mandatory for inclusion into openjdk 
distributive. I think this is inevitable for builds on (and for) closed 
platform.

>
> Regards,
> Jacob
>

[1] https://github.com/alexkasko/openjdk-unofficial-builds
[2] https://github.com/alexkasko/openjdk-unofficial-builds/issues/7

-- 
Regards,
Alex Kasko



More information about the distro-pkg-dev mailing list