From owner-freebsd-java@FreeBSD.ORG Thu Nov 4 17:51:52 2010 Return-Path: Delivered-To: freebsd-java@freebsd.org Received: from [127.0.0.1] (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by hub.freebsd.org (Postfix) with ESMTP id 850201065672; Thu, 4 Nov 2010 17:51:51 +0000 (UTC) (envelope-from jkim@FreeBSD.org) From: Jung-uk Kim To: bug-followup@FreeBSD.org, freebsd-java@freebsd.org, Rob Farmer Date: Thu, 4 Nov 2010 13:51:38 -0400 User-Agent: KMail/1.6.2 References: <201011040810.oA48AERY013650@freefall.freebsd.org> In-Reply-To: <201011040810.oA48AERY013650@freefall.freebsd.org> MIME-Version: 1.0 Content-Disposition: inline Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201011041351.42334.jkim@FreeBSD.org> Cc: Subject: Re: ports/151923: [patch] java/openjdk6: free and native openjdk bootstrap X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Nov 2010 17:51:52 -0000 [I am not picking on anyone here. It's just a rant about this issue.] You see this Java bootstrap is a classic chicken-and-egg issue. It's like "you need C compiler to bootstrap GCC". We have C compiler in the base, so it isn't a big deal. Now Java bootstrap is more complicated because we don't have GCJ or something like that in the base. You say we build them from build clusters but how? How do we bootstrap itself without help of another Java compiler such as GCJ? If we are going ahead in this direction, clearly somebody has to maintain the sources, patches, and generated binaries, and we *must* have a way to automate the process *outside* of normal ports build because distributing GPL'd software without knowing how to reproduce it is worse than third-party binary plugs IMHO. Certainly, I won't take it for granted your binaries are "free" to redistribute unless you show me the way to reproduce it. On the other hand, we have ports/java/jbootstrap to work around this issue but it is pretty much dead and non-free. If you really want something like that, you may use ports/java/openjdk6 as master port, make it bootstrap with GCJ or something totally "free" just enough to bootstrap OpenJDK6 and OpenJDK7, and package it with minimal runtime dependency (if there is any). Then, ports/java/openjdk6, ports/java/openjdk7, etc. can use it as a *build* dependency. I believe that is the way to go. Jung-uk Kim