FreeType & GSoC

The FreeType project participates in Google Summer of Code 2024. Here is our list of possible projects – if you have more ideas, please write to our mailing list so that we can discuss your suggestions, eventually adding them to this page.

If you are interested to participate as a student, please also contact us via the mailing list. It's probably best if you subscribe to it.

Note that there are half-time and full-time projects. Most of our projects are modular, more or less, allowing students to propose a subset of the mentioned targets if this appears appropriate.

Before contacting us, however, you should get really acquainted with the topic you would like to start with – in particular, search the mailing list archive and/or do some googling! We don't want to answer questions like “I'm interested in your project, I want to contribute, please tell me what to do!” again and again…

Update FreeType's build systems

Due to historical reasons, FreeType's build systems are strange to newcomers. The default one is based on GNU make, also integrating autoconf support. Alternatives are generic build files for cmake and meson, together with special support files for MS Visual Studio, OpenVMS, and some even more exotic, old platforms.

This project is intended to update the build systems. Here is a preliminary list of tasks.

  • Investigate which build systems should be retained, modified, added, removed, etc., approaching the project with a conservative point of view. This needs intensive contact with the mailing list(s) to identify the needs of users and the preferences of developers. Right now, we tend to move to meson.
  • Check software distributions for different platforms and analyze how FreeType's build systems are modified for integration. This might give further hints on necessary changes or adaptations.
  • Especially for cmake support, there are some issues in Freetype's bug tracker that should be taken care of.
  • Modernize and update the build system based on the outcome of the previous items. This might also include changes in the directory structure of the source files if necessary and useful.

Difficulty: medium. Size: 175h/350h. Requirements: Various Unix and Windows build tools, in particular GNU make, cmake, and meson. Potential mentors: Werner Lemberg, Alexei Podtelezhnikov, Toshiya Suzuki (FreeType).

Integrate ftbench into FreeType's build structure(s)

The ftbench demo program (source code) is a small tool that benchmarks the performance of various FreeType library functions. The aim of this project is to integrate it into FreeType's build system(s) so that the timings of a baseline (for example, a released version) can be easily compared with the timings of the current git version. Eventually, the results should be integrated into FreeType's CI as provided by gitlab.

There are many approaches possible to accomplish the project. For example, the raw results emitted by ftbench could be post-processed by a script to produce a nice-looking HTML page. Another possibility is to modify the ftbench program directly to emit HTML code.

Difficulty: medium. Size: 175h/350h. Requirements: C, Unix build tools, HTML. Potential mentors: Werner Lemberg, Alexei Podtelezhnikov, Toshiya Suzuki (FreeType).

Integrate VFlib's TeX font support into FreeType

A GSoC 2018 project was a first try to integrate VFlib into FreeType. This library contains mature support for TeX's bitmap formats (in particular GF and PK fonts, together with TFM metric files and VF virtual fonts).

The project would be as follows.

  • Evaluate the existing code to find out whether it can be used as a starting point to complete the begun task, this is, to merge VFlib's source code into FreeType, thus providing new modules to handle TeX bitmap fonts.
  • Evaluate different routes if necessary. For example, it might be easier to provide simple and small wrapper modules that call VFlib functions. In other words, this wouldn't integrate the code of VFlib but have it as an external dependency.
  • Create modules.

The canonic references for the PK, GF, TFM, and VF font formats are the source code of the TeX tools gftopk (for PK), gftype (for GF), tftopl (for TFM), and vftovp (for VF).

Difficulty: medium (high for VF support). Size: 175h/350h. Requirements: C, Unix build tools, knowledge of TeX infrastructure (using TeXLive is recommended). Potential mentor: Werner Lemberg (FreeType).

Do you have more ideas? Please write to our mailing list so that we can discuss your suggestions, eventually adding them to the list!

Last update: 03-Mar-2024