Fink:default freetype and pango

From the Fink Wiki
Jump to: navigation, search

Our gnome-related library packages in the unstable trees are being migrated to the latest releases (gnome2.24 and associated dependencies). First, this will obviously involve lots of packages being updated, so if something doesn't build, don't bother reporting it until after selfupdating, but then please check if it's been reported and *do* report if not. But of course don't bother reporting without specific information about the package and the actual full error messages.

I'm working "up the tree" starting at glib2, ft219, and RangerRick bringing along the cairo world and other stuff of his. We're cascading the dependencies to keep users from getting too much of a mixed bag of gnome versions (i.e., the new %v of atk1 will require the latest %v of glib2, not just the minimum glib2 that it claims to accept).

I will test some end packages maintained by others and make adjustments if I find build problems for the new gnome libs, but don't plan to do a full overhaul of the whole distro to cascade the latest dependencies or to remove no-longer-needed flags. In general, the new stuff will reduce the dependency tree, not add new inherited deps as far as I can tell.

One major change is that freetype219 now also makes its headers and other compile-time files available in the "default" locations. If one sets the freetype219* dependencies to be >=2.3.7-4, one can remove the -I, -L, and PKG_CONFIG_PATH settings for %p/lib/freetype219* paths that had previously been required. The install_name and actual location of the lib is the same (buried) in freetype219-shlibs, so there is no foward/backward compatibility problem at runtime. The headers and especially the .la are also still present in the buried location, so previously-built packages that somehow encoded those paths are still okay too (especially .la dependency_libs). Unless we have some other reason to change install_name (and therefore create a new headers package-name), this buried thing will always need to be there for compatibility. At that time, we can cascade dependency changes on it and put the actual things *only* in the default paths.

The old freetype2 (and -hinting) package is completely unused as far as I can tell. I looked at updating it to the latest, now that the new version is it's apparently compatible again), but the cascading became a mess (on the scale of the pangocairo project, involving nearly every package that uses ft, not just the main library set) to avoid mixing & matching the different freetype locations and potentially conflicting package combinations of them. Didn't see the need, since pangocairo got us completely converted to ft219 dependencies.

pango1-xft2-ft219-dev will also (soon, once I make sure we got it "right" in freetype219:) make itself available in the default locations and we can stop using special path flags for it, while retaining its buried files as well for compatibility.

I do not understand fontconfig, so will leave it to RangerRick (its maintainer) and others to figure out whether it can be unburied, or whether there are substantial numbers of packages that are expecting "something else" to be visible in the default paths.

Important dependencies as part of the upgrade:

  • freetype219 (and freetype219-shlibs) >= 2.3.7-4
  • pkgconfig >= 0.23
  • pango1-xft2-ft219-dev (and pango1-xft2-ft219-shlibs and pango1-xft2-ft219) >= 1.22.0-3