-
Notifications
You must be signed in to change notification settings - Fork 621
Notes on migration to meson
As Arch Linux, Alpine Linux and msys2 have migrated to the meson port since 2.6.8, we have become confident that the meson port is probably usable for packaging the library -- but of course feedback is still welcomed and some minor issues are expected.
As meson distribution tarballs are similar to source checkouts,
our recommend URL scheme for downloading the source tarball now is
https://github.com/harfbuzz/harfbuzz/archive/$pkgver.tar.gz
(GitHub generated tarballs) or using commit hash of the release like,
git+https://github.com/harfbuzz/harfbuzz#commit=$commit
(used by Arch Linux)
which is much more safe and reliable in terms of knowing which
exact changes has led to the release.
If you are just integrating the library into your software and don't have the cycles to migrate to meson for now, there is also amalgam/unity support, src/harfbuzz.cc. This is a single source file that includes the whole library, provided along the source. However using it requires a minor study of what the build configs (meson or autotools) do with flags and definitions that they pass to the compiler -- thus we recommend use of the regular build system for most cases and specially recommend against the use of the amalgam for *nix packages.
Packagers are advised to enable build optimizations and have things like
--auto-features=enabled --wrap-mode=nodownload
enabled and install any other
needed packages (most distributions build harfbuzz with graphite support which
needs to be enabled separately, -Dgraphite=enabled
),
and follow other best practices of packaging a meson project.
Examples of meson built harfbuzz packages,
- https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/harfbuzz (arch-meson source)
-
https://git.alpinelinux.org/aports/tree/main/harfbuzz
(Note:
gtk_docs
option is renamed todocs
before the first stable release and that isn't reflected on Alpine port yet) (abuild-meson source) - https://github.com/openbsd/ports/blob/master/devel/harfbuzz/Makefile
- https://github.com/msys2/MINGW-packages/blob/master/mingw-w64-harfbuzz/PKGBUILD
- https://github.com/Homebrew/homebrew-core/blob/master/Formula/harfbuzz.rb
- https://github.com/ataraxialinux/ataraxia/blob/master/packages/harfbuzz/KagamiBuild
- https://github.com/KaOSx/main/blob/master/harfbuzz/PKGBUILD
- https://github.com/CarbsLinux/repository/blob/master/extra/harfbuzz-icu/build
- http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/devel/harfbuzz/Makefile?rev=1.125&content-type=text/x-cvsweb-markup&only_with_tag=MAIN
- https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/harfbuzz/harfbuzz-9999.ebuild
- (feel free to add your distribution's source link here)