Request for review : FreeType embedded in OSX packages
Ben Evans
benjamin.john.evans at gmail.com
Wed Oct 17 00:48:19 PDT 2012
Hi Henri,
It seems to me that this is an ideal opportunity for someone
AdoptOpenJDK to help out with the paperwork required.
I'll start a thread over there & keep you copied & see if we can find
someone to help with this aspect of getting this done.
Thanks,
Ben
On Wed, Oct 17, 2012 at 7:00 AM, Henri Gomez <henri.gomez at gmail.com> wrote:
>> Does the JDK still build properly if you installed X11 and do not have your own copy of libfreetype? I think that having the option of building with a non-system-provided libfreetype.dylib is a good idea, but the main nightly builds will continue to use X11 or XQuartz' library for the time being.
>
> On my Lion build system, X11 is still installed but I activate my own
> copy of FreeType (2.4.10) by defining ALT_FREETYPE_LIB_PATH and
> ALT_FREETYPE_INCLUDE in old build, and it's this version who is used
> for build and embedding
>
>> To that end, a few comments. In:
>>
>> +++ jdk/make/common/Defs.gmk 2012-10-16 09:36:11.000000000 +0200
>> @@ -180,7 +180,7 @@
>> ifdef ALT_FREETYPE_LIB_PATH
>> FREETYPE_LIB_PATH = $(ALT_FREETYPE_LIB_PATH)
>> ifeq ($(PLATFORM), macosx)
>> - USING_SYSTEM_FT_LIB=true
>> + USING_SYSTEM_FT_LIB=false
>> endif
>> --------
>>
>> you could just get rid of the entire ifeq block, since USING_SYSTEM_FT_LIB was initialized to false.
>>
>> In jdk/make/sun/font/Makefile:
>> --------
>> - FREETYPE_LIB = $(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX).6
>> + ifeq ($(PLATFORM), macosx)
>> + FREETYPE_LIB = $(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX)
>> + OTHER_LDLIBS += -lfreetype
>> + else
>> + FREETYPE_LIB = $(LIB_LOCATION)/$(LIB_PREFIX)freetype.$(LIBRARY_SUFFIX).6
>> + OTHER_LDLIBS += -L$(FREETYPE_LIB_PATH) -lfreetype
>> + endif
>> endif
>> - OTHER_LDLIBS += -L$(FREETYPE_LIB_PATH) -lfreetype
>> ---------
>
> When we set USING_SYSTEM_FT_LIB to false, provide FreeType lib (or
> dylib for OSX), will be copied and here I just set the correct name
> for freetypelib, ie libfreetype.dylib on OSX. I could eventually also
> be libfreetype.6.dylib but certainly not libfreetype.dylib.6 which is
> more Linux way to handle lib versions.
>
>> I don't think you want to remove '-L$(FREETYPE_LIB_PATH)' in the macosx case. If it was overridden by ALT_FREETYPE_LIB_PATH the build won't be able to find the pre-build libfreetype.dylib. And if you still want to use the system-provided libfreetype you have to give it the path to the X11 libraries.
>
> Are you sure ? It's not found inside build lib like -ljava for example
> which is not deployed on system of course.
> I used install_name_tool in copy block to set @rpath to have
> libfreetype set as expected.
>
>> You need to create a bug at <http://bugreport.sun.com/bugreport/> describing what you want to change, and then attach a new patch. Mike's review plus one other will be enough to get it into JDK 8. JDK 7u will need two reviewers, since I think the Java2D team owns this part of the code. (I cc'd Phil Race).
>
> Nobody ever created such bug ? I remember Phil Race and Mike discussed
> about embedding FreeType in OSX build in May 2012.
> I'm unsure other code/patch reviews for JDK7, 8 or MacOSXPort also
> have a bugreport associated but may be I miss something.
>
> If a bug ticket is absolutely required, I'll fill one.
>
> BTW, my own packages in openjdk-osx-build already use this patch so
> there is no more urgency for me, I provided them here to have them
> included in official repos but I could live with my own set of patches
> as I do for other parts.
More information about the jdk8-dev
mailing list