#!/bin/sh -e patch -p1 < no-fribidi.patch patch -p1 < fix-firefox.patch # Remove configure check for atk-bridge and fribidi. Funny enough, atk-bridge # is not required under wayland and there are ifdefs in place to ensure this. # The build system forces the dependency anyway so we must remove it. sed -e 's/\(ATK_PACKAGES="atk\) atk-bridge-2.0"/\1"/' \ -e 's/fribidi >= 0\.19\.7//g' \ configure > _ mv -f _ configure # Don't build GTK examples/demos/testsuite. sed 's/demos tests testsuite examples//;s/docs \(m4macros\)/\1/' Makefile.in > _ mv -f _ Makefile.in # Build libepoxy for gtk+3's sole use. This is the only package that requires # the library. While the build system supports building this as a subproject, # it is broken so we must do it ourselves. ( cd libepoxy meson \ --prefix=/usr \ --sysconfdir=/etc \ --mandir=/usr/share/man \ -Ddefault_library=static \ -Dhas-dlvsym=false \ -Degl=yes \ -Dtests=false \ -Dglx=no \ -Dx11=false \ . output ninja -C output DESTDIR=$PWD ninja -C output install ) # Point gtk+3 to the vendored libepoxy. export PKG_CONFIG_PATH=$PWD/libepoxy/usr/lib/pkgconfig export CFLAGS="$CFLAGS -L$PWD/libepoxy/usr/lib" export CFLAGS="$CFLAGS -I$PWD/libepoxy/usr/include" # While gtk+3 supports meson, the meson build is strictly speaking broken. # It forces X11 in various places and the usage of -Werror causes various build # failures (which according to upstream should not occur on x86_64). sh ./configure \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --enable-wayland-backend \ --disable-x11-backend \ --disable-schemas-compile \ --disable-cups \ --disable-papi \ --disable-cloudprint \ --disable-glibtest \ --disable-nls \ --disable-installed-tests \ --enable-introspection=no \ --enable-colord=no \ --enable-gtk-doc-html=no make make install # GTK+3 on Wayland requires gsettings-desktop-schemas for gsettings to work # correctly. Under X11 it made use of xsettings but this is no longer the case. ( cd schemas meson \ --prefix=/usr \ -Dintrospection=false \ . output ninja -C output ninja -C output install ) # We don't compile with librsvg which leads to this utility solely causing # compiler errors for some packages. It has no use at all. rm -f "$1/usr/bin/gtk-encode-symbolic-svg" # Remove epoxy references from installed pkg-config files. The build system # should have done this for us as it is statically linked. for f in "$1/usr/lib/pkgconfig/"*.pc; do sed 's/epoxy >= 1.4//' "$f" > _ mv -f _ "$f" done