Opened 11 years ago

Last modified 8 years ago

#20245 assigned enhancement

freetype variant for GNUstep

Reported by: anddam (Andrea D'Amore) Owned by: ryandesign (Ryan Schmidt)
Priority: Normal Milestone:
Component: ports Version: 1.7.1
Keywords: freetype gnustep variant Cc: wolfgang.lux@…, cooljeanius (Eric Gallager)
Port: freetype

Description

In order to build GNUstep core on Tiger and later system there's need for a --without-old-mac-fonts variant, I used:

variant gnustepsafe description {Don't use old mac fonts} {
        configure.args-delete	--with-old-mac-fonts
	configure.args-append --without-old-mac-fonts
}

but every name will do fine as long the macosx platform default is overridden.

Change History (9)

comment:1 Changed 11 years ago by ryandesign (Ryan Schmidt)

I don't really know anything about gnustep... in what way is --with-old-mac-fonts problematic for it? The purpose of the option is simply to let freetype process some additional types of fonts it wouldn't otherwise be able to read.

comment:2 Changed 11 years ago by anddam (Andrea D'Amore)

I was having time trying to build gnustep-gui and there are several similar errors on trac and I couldn't figure what was causing the linker issues until I read this message from discussion-gnustep mailing list.

The point is CoreFoundation dependency on system libobjC, I'm not sure how freetype old-mac-fonts support affects this but I was actually able to update the gnustep core package that has been broken for a while.

Actually I haven't tried to build it with-old-mac-fonts so I'm not sure a new variant is strictly needed in order to build gnustep, still being able to turn it off can definitely come handy.

comment:3 in reply to:  2 Changed 11 years ago by ryandesign (Ryan Schmidt)

Replying to and.damore@…:

Actually I haven't tried to build it with-old-mac-fonts so I'm not sure a new variant is strictly needed in order to build gnustep, still being able to turn it off can definitely come handy.

Could you try again and see whether you really need --with-old-mac-fonts to be removed? I see Wolfgang's message on discuss-gnustep says this is necessary, so if it is, I'm happy to give you a way to turn that feature off.

comment:4 Changed 11 years ago by anddam (Andrea D'Amore)

Cc: wolfgang.lux@… added

I tried and it seems to be fine wmaker runs and I can't see anything wrong in Console.app. Just to be sure have a try a it you too as I'm on PPC, gnustep-make gnustep-base gnustep-gui gnustep-back in this order.

I asked Wolfgang for a comment, let's wait for a reply and we can close this ticket.

comment:5 Changed 11 years ago by anddam (Andrea D'Amore)

I'm pasting a message from Wolfgang:

"According to the freetype configure help message and a quick glance at its sources, --with-old-mac-fonts enables some code that uses (in one or the other way) the Carbon frameworks to access Mac fonts that are saved in the resource fork of a font file. This was common on Mac OS 9 and before, but Apple changed to dfonts in OS X, which save font data in the data fork and thus can be accessed with the normal *nix file system operation. Anyway, linking with the Carbon framework is a no-go for GNUstep since Tiger, as the Carbon frameworks (like virtually any Apple framework) link against CoreFoundation and the latter uses Apple's libobjc since the introduction of Tiger. This leads to programs with two incompatible Objective-C runtimes (the GNU one required by GNUstep and the Apple one brought in via CoreFoundation) that crash when one of the runtimes attempts to initialize the data structures of the other.

I think a better name for the variant configured with --without-old-mac-fonts is puredarwin. This seems to be consistent with other ports that provide (or have provided, its been a while that I've last upgraded my MacPorts tree :-) variants that omit features which are specific to OS X. A slightly better description for the variant would be {remove support for resource-based fonts from classic Mac OS 9}. You may also want to check that this particular variant is installed in the Portfile of gnustep-gui. I seem to recall that the gnustep Portfiles do the same with respect to the nonls variant of aspell, but I can't find at present where this was done exactly.

Incidentally, I feel that support for old style Mac fonts is obsolete and the decision to configure freetype with --with-old-mac-fonts by default is wrong; after all OS X no longer supports Classic since Leopard, and Leopard's font manager does not recognize the old fonts even if they are installed on a machine, but that is probably another story "

This seems to show several points.

Actually I rebuilt the gnustep core using freetype --with-old-mac-fonts option but then I didn't try to build an actual GNUstep application, I just built wmaker that doesn't actually use GNUstep, iirc.

Unless you have a specific reason to use it I suggest to remove the option from macosx variant.

comment:6 Changed 11 years ago by ryandesign (Ryan Schmidt)

Status: newassigned

--with-old-mac-fonts was added to the freetype port in response to a user request because Apple shipped resource-fork-based fonts with Mac OS X 10.4.x and earlier. In Mac OS X 10.5 Apple switched these to data-fork-based fonts so --with-old-mac-fonts was no longer necessary to access system fonts. In addition, using --with-old-mac-fonts caused problems in Mac OS X 10.5.x when using PHP as an Apache module. Therefore, the freetype port only adds --with-old-mac-fonts for Mac OS X 10.4.x and earlier.

I will see about creating a variant to enable you to select (on Mac OS X 10.4.x and earlier) whether you would like old Mac font support or not.

comment:7 Changed 11 years ago by anddam (Andrea D'Amore)

Even though I read the ${os.major} check I didn't really realized the --with-old-mac-fonts only applied to Tiger and previous system. Obviously on my system (Leopard) there was no difference using a +gnustep variant or not because the --with-old-mac-fonts wasn't used anyway.

As of now a +puredarwin variant would benefit people using Tiger and willing to install GNUstep via mp, so I still suggest to add it.

comment:8 Changed 10 years ago by anddam (Andrea D'Amore)

As Tiger is a legacy platform I'd suggest to just remove --with-old-mac-fonts

comment:9 Changed 8 years ago by cooljeanius (Eric Gallager)

Cc: egall@… added

Cc Me!

Note: See TracTickets for help on using tickets.