[MacPorts] #44148: using Bohoomil's Infinality-Ultimate patches
#44148: using Bohoomil's Infinality-Ultimate patches ---------------------------------+----------------------------------------- Reporter: rjvbertin@… | Owner: macports-tickets@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: 2.3.0 Keywords: font rendering | Port: freetype, fontconfig, cairo quality | ---------------------------------+----------------------------------------- As already discussed on MacPorts-Users and XQuartz-dev, I have spent some time trying to use Bohoomil's ultimate version of the Infinality patches for freetype and fontconfig. These are aimed at optimal font rendering, through patches to the freetype code (i.e. the remaining ones which have not yet been incorporated into freetype in recent years) and a mechanism to tweak the rendering on a per-font basis via XML files (a library of which is included). There are also a few patches to cairo. Quoting bohoomil:
There's actually at least one important cairo patch, cairo-respect-fontconfig.patch that's sole purpose is to make applications supporting cairo use fontconfig settings properly. Stock cairo doesn't do this: that's why Gtk+ applications and Firefox don't honor global fontconfig settings.
Other than that, I add a few Ubuntu patches from which most handy might be
pdf-output-avoid-transparency.patch pdf-output-mime-data-embedding.patch server_side_gradients.patch
We've been using them all for ~2 years now successfully, no problems have been reported.
The project's repository is [https://github.com/bohoomil/fontconfig- ultimate here], bohoomil's [http://bohoomil.com site] has examples and (lots of) discussion. I've managed to modify the freetype, fontconfig and cairo Portfiles to add +infinality variants that do the patching and other stuff required, from patchfiles and additional source in the port files directories. I haven't (yet) been able to figure out how to download things (or clone from git) in a variant, and the patchfiles are not directly compatible with MacPorts' patching mechanism, so for now the extra files are to be kept in the local repository. A solution should also be found for the single user-configuration file, infinality-settings.sh (or infinality-settings.csh for [t]csh users). From what I can tell, the port variants install cleanly (also using clang-3.4) after installing the attached port files in the local repository. The only caveat I have concerns the screen density: on my system I have had to set the X11 density to 75dpi instead of the default 96dpi in order for X11 fonts to render at the same effective size as under OS X (echo `Xft.dpi: 75 | xrdb -merge` and a line `Xft.dpi: 75` in ~/.Xresources because KDE will use that information (sic!!)). Note that freetype is used in non-X11 applications too, so it's not impossible that the improved rendering quality will extend to those applications too. I'd be interested in feedback about the gains in perceived rendering quality - or lack thereof. -- Ticket URL: <https://trac.macports.org/ticket/44148> MacPorts <http://www.macports.org/> Ports system for OS X
#44148: using Bohoomil's Infinality-Ultimate patches ----------------------------------------+-------------------------------- Reporter: rjvbertin@… | Owner: macports-tickets@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: haspatch Port: freetype fontconfig cairo | ----------------------------------------+-------------------------------- Changes (by mf2k@…): * keywords: font rendering quality => haspatch * version: 2.3.0 => * port: freetype, fontconfig, cairo => freetype fontconfig cairo -- Ticket URL: <https://trac.macports.org/ticket/44148#comment:1> MacPorts <http://www.macports.org/> Ports system for OS X
#44148: using Bohoomil's Infinality-Ultimate patches ----------------------------------------+-------------------------- Reporter: rjvbertin@… | Owner: ryandesign@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: haspatch Port: freetype fontconfig cairo | ----------------------------------------+-------------------------- Changes (by mf2k@…): * owner: macports-tickets@… => ryandesign@… Comment: In the future, please Cc the port maintainers ({{{port info --maintainers freetype fontconfig cairo}}}). -- Ticket URL: <https://trac.macports.org/ticket/44148#comment:2> MacPorts <http://www.macports.org/> Ports system for OS X
#44148: using Bohoomil's Infinality-Ultimate patches ----------------------------------------+-------------------------- Reporter: rjvbertin@… | Owner: ryandesign@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: haspatch Port: freetype fontconfig cairo | ----------------------------------------+-------------------------- Comment (by ryandesign@…): Can you attach diffs, instead of zip files? I would want to see the diffs of the Portfiles, plus any new or changed patchfiles that are needed. You seem to have included the infinality patches in your archives; I thought we had discussed that they were going to be downloaded from the upstream web site where they're provided. You appear to have added tab characters to some portfiles. Spaces should be used instead. See the modeline. If you're going to modify cairo, you should make the same modifications to cairo-devel. What is the relationship between the variants in the three ports? Must all three be used together? If so, the active_variants 1.1 portgroup may need to be used to ensure that dependencies have the variant selected. -- Ticket URL: <https://trac.macports.org/ticket/44148#comment:3> MacPorts <http://www.macports.org/> Ports system for OS X
#44148: using Bohoomil's Infinality-Ultimate patches ----------------------------------------+-------------------------- Reporter: rjvbertin@… | Owner: ryandesign@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: haspatch Port: freetype fontconfig cairo | ----------------------------------------+-------------------------- Comment (by rjvbertin@…): Honestly, I'd like to see some feedback on the perceived interest of it all before I start to spend more time making lots of diffs. I've explained why I included the infinality patches: I couldn't figure out in a reasonable time how to grab them from the server (i.e. from 2 different branches of a github archive) when the variant is selected AND they'd have to be edited (unless there's a way to have them applied with -p1). Tabs were added by vim; apparently the modeline isn't explicit enough to avoid it from doing so (and I haven't touched these vi settings for too long to see what's missing or even remember how to set vim to using spaces :-/ ). Aesthetic, minor issue that will be corrected if ever these make it to a proposal-to-add. cairo-devel: what's that? The port info is identical as is the version. The actual font rendering improvements are in freetype+infinality. Fontconfig+infinality hooks into that to provide global and per-font rendering configuration options whereas the cairo patch just makes cairo respect those settings. Using either of the last 2 without freetype+infinality probably doesn't make any sense, but I don't think there are hard dependencies. -- Ticket URL: <https://trac.macports.org/ticket/44148#comment:4> MacPorts <http://www.macports.org/> Ports system for OS X
#44148: using Bohoomil's Infinality-Ultimate patches ----------------------------------------+-------------------------- Reporter: rjvbertin@… | Owner: ryandesign@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: haspatch Port: freetype fontconfig cairo | ----------------------------------------+-------------------------- Comment (by rjvbertin@…): I've attached a couple of samples : Oxygen-Sans 11pt, Novarese Bk Bt 11pt and Segoe UI 11pt, all in their regular/normal weight and in bold (semi- bold for Segoe UI). I actually prefer the rendering under X11 with these patches even though at this size things look just a tad fuzzy. Rendering size is not really identical though (despite setting Xft.dpi to 72 instead of the default 96 dpi), which may explain my preference. NB: I observe the same difference in rendering size without the Infinality patches, so they're not to blame for that. Tweaking the fontconfig+infinality settings has effect on rendering in gedit but not in KDE nor in Qt4-Mac, so it seems they either don't use freetype at all for font rendering, or ignore the fontfonfig settings just as stock cairo does. -- Ticket URL: <https://trac.macports.org/ticket/44148#comment:5> MacPorts <http://www.macports.org/> Ports system for OS X
#44148: using Bohoomil's Infinality-Ultimate patches ----------------------------------------+-------------------------- Reporter: rjvbertin@… | Owner: ryandesign@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: haspatch Port: freetype fontconfig cairo | ----------------------------------------+-------------------------- Comment (by rjvbertin@…): As requested, I've just uploaded a diff for the cairo-devel portfile, adding an infinality variant. Cairo and cairo-devel are otherwise identical ports, so the Infinality patchfiles are shared among them. -- Ticket URL: <https://trac.macports.org/ticket/44148#comment:6> MacPorts <http://www.macports.org/> Ports system for OS X
#44148: using Bohoomil's Infinality-Ultimate patches ----------------------------------------+-------------------------- Reporter: rjvbertin@… | Owner: ryandesign@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: haspatch Port: freetype fontconfig cairo | ----------------------------------------+-------------------------- Comment (by rjvbertin@…): Sync with upstream changes, including "official" patches to Freetype 2.5.3 . Again, these patches come from a Linux packaging repository and thus require adaptation to MacPorts procedure, which makes it unfeasible to download them directly from GitHub instead of including them here. -- Ticket URL: <https://trac.macports.org/ticket/44148#comment:7> MacPorts <http://www.macports.org/> Ports system for OS X
#44148: using Bohoomil's Infinality-Ultimate patches ----------------------------------------+-------------------------- Reporter: rjvbertin@… | Owner: ryandesign@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: haspatch Port: freetype fontconfig cairo | ----------------------------------------+-------------------------- Comment (by rjvbertin@…): Sync with upstream 2014.08.08 changes, including "official" patches to Freetype 2.5.3 . -- Ticket URL: <https://trac.macports.org/ticket/44148#comment:8> MacPorts <http://www.macports.org/> Ports system for OS X
#44148: using Bohoomil's Infinality-Ultimate patches ----------------------------------------+-------------------------- Reporter: rjvbertin@… | Owner: ryandesign@… Type: enhancement | Status: new Priority: Normal | Milestone: Component: ports | Version: Resolution: | Keywords: haspatch Port: freetype fontconfig cairo | ----------------------------------------+-------------------------- Comment (by rjvbertin@…): New upstream patches, and a new build helper script for fontconfig+infinality, which collects the various font config/settings files from git. I'm using a release number that represents the upstream commit date; if ever these variants are accepted that can of course change. -- Ticket URL: <https://trac.macports.org/ticket/44148#comment:9> MacPorts <http://www.macports.org/> Ports system for OS X
participants (1)
-
MacPorts