IcedTea 1.12.5 windows build errors
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
. I also experimented with registry and PATH adjustments in windows
 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
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
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
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
More information about the distro-pkg-dev