hello friends! new(ish)!
Patches: Difference between revisions
>Galactus (Created page with "A patch is a file that modifies the source code of a given piece of software, in order to alter the behaviour of said program. This page will deal with patches that were not a...") |
>Genteel m (category: terms and software) |
||
(13 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
{{note|try to keep this page up-to-date by updating the status of the patches.}} | |||
{{TOCright}} | |||
A patch is a file that modifies the source code of a given piece of software, in order to alter the behaviour of said program. This page will deal with patches that were not accepted by the upstream due to a myriad of reasons, although most are ideological. | A patch is a file that modifies the source code of a given piece of software, in order to alter the behaviour of said program. This page will deal with patches that were not accepted by the upstream due to a myriad of reasons, although most are ideological. | ||
[[File:Active.png|x14px]] — Development process is active. | |||
[[File:Slow.png|x14px]] — Development process is slow. Software is mature enough to warrant less frequent updates. | |||
[[File:Stalled.png|x14px]] — Software isn't updated regularly. Mostly fine unless it comes with a buggy tag. | |||
Bugs are explicitly stated regardless of the tag. | |||
==Browsers== | ==Browsers== | ||
===Chromium=== | ===Chromium=== | ||
See [[Chromium#Notable_patches|Notable patches]]. | See [[Chromium#Notable_patches|Notable patches]]. | ||
===Firefox=== | |||
See [[Firefox#Notable_patches|Notable patches]]. | |||
==Font rendering== | ==Font rendering== | ||
===Fontconfig-ultimate=== | ===Fontconfig-ultimate [[File:Slow.png|x14px]]=== | ||
The [https://github.com/bohoomil/fontconfig-ultimate fontconfig-ultimate patchset] aims to massively improve font rendering by patching Cairo, Fontconfig, and Freetype, as well as by using the infinality patchset. | The [https://github.com/bohoomil/fontconfig-ultimate fontconfig-ultimate patchset] aims to massively improve font rendering by patching Cairo, Fontconfig, and Freetype, as well as by using the infinality patchset. | ||
Line 24: | Line 38: | ||
*Adds ability to control stem darkening. | *Adds ability to control stem darkening. | ||
===Giddie's Poppler=== | ===Giddie's Poppler Qt4 Cairo backend [[File:Stalled.png|x14px]]=== | ||
The [https://github.com/giddie/poppler-qt4-cairo-backend Poppler-qt4-cairo-backend] patchset enables subpixel rendering of fonts via Cairo in Poppler's Qt4 wrapper (used by Okular, for instance). | The [https://github.com/giddie/poppler-qt4-cairo-backend Poppler-qt4-cairo-backend] patchset enables subpixel rendering of fonts via Cairo in Poppler's Qt4 wrapper (used by Okular, for instance). | ||
Line 35: | Line 49: | ||
=====Bugs===== | =====Bugs===== | ||
*[https://github.com/giddie/poppler-qt4-cairo-backend/issues/7 Overly intense fringes] | *[https://github.com/giddie/poppler-qt4-cairo-backend/issues/7 Overly intense fringes]. | ||
**Solution: patching Cairo with the [https://raw.githubusercontent.com/zhou13/poppler-subpixel/master/cairo/cairo-lcdfilter-make-default-default.patch cairo-make-lcdfilter-default.patch] will fix this. | **Solution: patching Cairo with the [https://raw.githubusercontent.com/zhou13/poppler-subpixel/master/cairo/cairo-lcdfilter-make-default-default.patch cairo-make-lcdfilter-default.patch] will fix this. | ||
*Scaling of raster graphics defaults to nearest-neighbor. | *Scaling of raster graphics defaults to nearest-neighbor. | ||
**Partial solution: [https://github.com/giddie/poppler-qt4-cairo-backend/issues/6 https://github.com/giddie/poppler-qt4-cairo-backend/issues/6]. | **Partial solution: [https://github.com/giddie/poppler-qt4-cairo-backend/issues/6 https://github.com/giddie/poppler-qt4-cairo-backend/issues/6]. | ||
===[https://github.com/zhou13/poppler-subpixel Zhou13's Poppler subpixel support]=== | ===[https://github.com/zhou13/poppler-subpixel Zhou13's Poppler subpixel support [[File:Stalled.png|x14px]]]=== | ||
This patchset patches Evince, Cairo, and Poppler, in order to add subpixel support to non-Qt4 PDF frontends (like Evince) using Cairo's Poppler backend. | This patchset patches Evince, Cairo, and Poppler, in order to add subpixel support to non-Qt4 PDF frontends (like Evince) using Cairo's Poppler backend. | ||
Line 54: | Line 68: | ||
*Removes the FT_LOAD_NO_HINTING when trying to load fonts to the Cairo backend so the frontend can set the hint style; | *Removes the FT_LOAD_NO_HINTING when trying to load fonts to the Cairo backend so the frontend can set the hint style; | ||
*Provides a new function that checks whether a PDF page could be subpixel-rendered. | *Provides a new function that checks whether a PDF page could be subpixel-rendered. | ||
==[[Linux_(kernel)|Linux (kernel)]]== | |||
===Linux-ck [[File:Active.png|x14px]]=== | |||
The ''[http://ck-hack.blogspot.com/ Con Kolivas patchset]'' was once rejected by Linus due to its 'dense, uncommented code', and is known to improve desktop interactivity and responsiveness under any load situation, on normal hardware (typically not with LOTS(!) of threads; other schedulers said to scale better to massive hardware, though this has never been tested before). | |||
Its patches can be applied individually. | |||
Further reading: [http://ck.kolivas.org/patches/bfs/bfs-faq.txt here]. | |||
'''BFS''' | |||
The ''Brain Fuck Scheduler'' is a desktop-oriented CPU scheduler developed by Con Kolivas, known for its low latency, fewer calculations, rigid fairness and nice scalability '''within normal levels'''. | |||
Benchmarks: [http://cbenchsuite.org/2015/02/brain-fuck-scheduler-performance-kernel-version-3-18/ 1], [http://repo-ck.com/bench/cpu_schedulers_compared.pdf 2][https://people.redhat.com/mingo/misc/ 3], [https://lwn.net/Articles/351058/ 4], from most recent to oldest. | |||
'''[http://algo.ing.unimo.it/people/paolo/disk_sched/ BFQ]''' | |||
The ''Budget Fair Queueing'' is a storage-I/O scheduler that is also known for its low latency and improved interactivity, for desktop use. Its throughput especially good on [[Storage_devices#Hard_Disk_Drive|HDD's]] (up to 30% higher), but performs on par with, or ever-so-slightly better than other schedulers on [[Storage_devices#Solid_State_Drive|SSD's]]. | |||
[https://www.phoronix.com/scan.php?page=news_item&px=New-2016-BFQ-Patches-Posted It might replace CFQ in the mainline Linux kernel]. | |||
Benchmarks: [http://algo.ing.unimo.it/people/paolo/disk_sched/results.php 1], [https://www.youtube.com/watch?v=KhZl9LjCKuU 2], from most recent to oldest. | |||
==External links== | |||
*If you're a [[Gentoo#Package_manager|Portage]] user, [https://github.com/perfect7gentleman/pg_overlay this privately maintained Overlay] will most likely have ebuilds with the aforementioned patches, behind USE flags. | |||
[[category:Terms]] | |||
[[category:Software]] |
Latest revision as of 09:58, 2 December 2016
A patch is a file that modifies the source code of a given piece of software, in order to alter the behaviour of said program. This page will deal with patches that were not accepted by the upstream due to a myriad of reasons, although most are ideological.
— Development process is active.
— Development process is slow. Software is mature enough to warrant less frequent updates.
— Software isn't updated regularly. Mostly fine unless it comes with a buggy tag.
Bugs are explicitly stated regardless of the tag.
Browsers
Chromium
See Notable patches.
Firefox
See Notable patches.
Font rendering
Fontconfig-ultimate
The fontconfig-ultimate patchset aims to massively improve font rendering by patching Cairo, Fontconfig, and Freetype, as well as by using the infinality patchset.
It also comes with a myriad of bash scripts that can be used to tune your font rendering further to your liking. You will probably need more fonts.
Cairo
- Changes the default lcdfilter of the FreeType rendering backend of cairo from FT_LCD_FILTER_LEGACY to FT_LCD_FILTER_DEFAULT;
- Forces Cairo to respect fontconfig;
- Adds gradient support;
- Stops Cairo from tessellating empty boxes.
Fontconfig
- Includes the fontconfig-infinality-ultimate patches to configure the infinality compliant directories.
Freetype
- Infinality-ultimate patchset to massively improve font rendering with a finely tuned lcdfilter, heavier fonts, proper subpixel rendering, and more;
- Adds ability to control stem darkening.
Giddie's Poppler Qt4 Cairo backend
The Poppler-qt4-cairo-backend patchset enables subpixel rendering of fonts via Cairo in Poppler's Qt4 wrapper (used by Okular, for instance).
This patchset will:
- Add the Cairo backend to Qt4;
- Set the default Qt4 backend to Cairo;
- Force subpixel rendering in the backend.
To chime in and get the lead developer to merge it upstream, check the official bug report here.
Bugs
- Overly intense fringes.
- Solution: patching Cairo with the cairo-make-lcdfilter-default.patch will fix this.
- Scaling of raster graphics defaults to nearest-neighbor.
- Partial solution: https://github.com/giddie/poppler-qt4-cairo-backend/issues/6.
Zhou13's Poppler subpixel support
This patchset patches Evince, Cairo, and Poppler, in order to add subpixel support to non-Qt4 PDF frontends (like Evince) using Cairo's Poppler backend.
Cairo
- Changes the default lcdfilter of the FreeType rendering backend of cairo from FT_LCD_FILTER_LEGACY to FT_LCD_FILTER_DEFAULT;
- Forces Cairo to respect fontconfig.
Evince
- Checks whether current page supports subpixel rendering and, if it does, enables it in the Poppler backend.
Poppler
- Removes the FT_LOAD_NO_HINTING when trying to load fonts to the Cairo backend so the frontend can set the hint style;
- Provides a new function that checks whether a PDF page could be subpixel-rendered.
Linux (kernel)
Linux-ck
The Con Kolivas patchset was once rejected by Linus due to its 'dense, uncommented code', and is known to improve desktop interactivity and responsiveness under any load situation, on normal hardware (typically not with LOTS(!) of threads; other schedulers said to scale better to massive hardware, though this has never been tested before).
Its patches can be applied individually.
Further reading: here.
BFS
The Brain Fuck Scheduler is a desktop-oriented CPU scheduler developed by Con Kolivas, known for its low latency, fewer calculations, rigid fairness and nice scalability within normal levels.
Benchmarks: 1, 23, 4, from most recent to oldest.
The Budget Fair Queueing is a storage-I/O scheduler that is also known for its low latency and improved interactivity, for desktop use. Its throughput especially good on HDD's (up to 30% higher), but performs on par with, or ever-so-slightly better than other schedulers on SSD's.
It might replace CFQ in the mainline Linux kernel.
Benchmarks: 1, 2, from most recent to oldest.
External links
- If you're a Portage user, this privately maintained Overlay will most likely have ebuilds with the aforementioned patches, behind USE flags.