image: freebsd packages: - devel/automake - multimedia/ffmpeg - devel/gmake - devel/json-c - devel/libtool - x11/libxkbcommon - textproc/libxslt - x11-toolkits/pango - devel/pkgconf - print/texinfo - x11/xcb-util-image - x11/xcb-util-wm - python36 - py36-setuptools sources: - https://github.com/swaywm/wlroots tasks: - setup: | # Don't build unnecessary stuff echo "OPTIONS_UNSET+= NLS DOCS EXAMPLES LIBWACOM" | sudo tee -a /etc/make.conf # Note: this could probably be set in the FreeBSD base image echo "BATCH=yes" | sudo tee -a /etc/make.conf - ports_tree: | # This is ugly, but fetching and extracting the whole ports tree takes a # really-really long time... # First we need a clean tree, and renaming is faster than deleting. sudo mv /usr/ports /usr/ports.orig sudo mkdir /usr/ports # Fetch only needed ports sudo svnlite export --force https://svn.FreeBSD.org/ports/head/GIDs /usr/ports/GIDs sudo svnlite export --force https://svn.FreeBSD.org/ports/head/Keywords /usr/ports/Keywords sudo svnlite export --force https://svn.FreeBSD.org/ports/head/Makefile /usr/ports/Makefile sudo svnlite export --force https://svn.FreeBSD.org/ports/head/Mk /usr/ports/Mk sudo svnlite export --force https://svn.FreeBSD.org/ports/head/Templates /usr/ports/Templates sudo svnlite export --force https://svn.FreeBSD.org/ports/head/Tools /usr/ports/Tools sudo svnlite export --force https://svn.FreeBSD.org/ports/head/UIDs /usr/ports/UIDs sudo svnlite export --force https://svn.FreeBSD.org/ports/head/devel/libevdev /usr/ports/devel/libevdev sudo svnlite export --force https://svn.FreeBSD.org/ports/head/devel/libmtdev /usr/ports/devel/libmtdev sudo svnlite export --force https://svn.FreeBSD.org/ports/head/devel/libudev-devd /usr/ports/devel/libudev-devd sudo svnlite export --force https://svn.FreeBSD.org/ports/head/devel/meson /usr/ports/devel/meson sudo svnlite export --force https://svn.FreeBSD.org/ports/head/devel/ninja /usr/ports/devel/ninja sudo svnlite export --force https://svn.FreeBSD.org/ports/head/devel/py-evdev /usr/ports/devel/py-evdev sudo svnlite export --force https://svn.FreeBSD.org/ports/head/devel/py-six /usr/ports/devel/py-six sudo svnlite export --force https://svn.FreeBSD.org/ports/head/graphics/wayland-protocols /usr/ports/graphics/wayland-protocols sudo svnlite export --force https://svn.FreeBSD.org/ports/head/graphics/wayland /usr/ports/graphics/wayland sudo svnlite export --force https://svn.FreeBSD.org/ports/head/lang/python27 /usr/ports/lang/python27 sudo svnlite export --force https://svn.FreeBSD.org/ports/head/lang/python36 /usr/ports/lang/python36 - fixup_libinput: | sudo svnlite export https://github.com/FreeBSDDesktop/freebsd-ports/branches/feature/input/devel/libepoll-shim /usr/ports/devel/libepoll-shim sudo svnlite export https://github.com/FreeBSDDesktop/freebsd-ports/branches/feature/input/x11/libinput /usr/ports/x11/libinput sudo svnlite export https://github.com/FreeBSDDesktop/freebsd-ports/branches/feature/input/devel/evdev-proto /usr/ports/devel/evdev-proto sudo svnlite export https://github.com/FreeBSDDesktop/freebsd-ports/branches/feature/input/devel/py-pyudev /usr/ports/devel/py-pyudev - ports_build: | # v4l_compat is a dependency of libinput, but the version in the ports tree # conflicts with the new evdev-proto. It can be safely removed though. sudo pkg remove -fy v4l_compat cd /usr/ports/devel/evdev-proto && sudo make install clean cd /usr/ports/graphics/wayland-protocols/ && sudo make install cd /usr/ports/x11/libinput/ && sudo make install clean - fixup_epoll: | cat << 'EOF' | sudo tee /usr/local/libdata/pkgconfig/epoll-shim.pc prefix=/usr/local exec_prefix=\$\{\$prefix\} libdir=${prefix}/lib sharedlibdir=${prefix}/lib includedir=${prefix}/include/libepoll-shim Name: epoll-shim Description: epoll shim implemented using kevent Version: 0 Requires: Libs: -L${libdir} -L${sharedlibdir} -lepoll-shim -lthr Cflags: -I${includedir} EOF - wlroots: | cd wlroots meson build ninja -C build