From 320d5ea23470b89c0d3af5980bc975619c36d4f7 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Sat, 27 Oct 2018 10:33:18 -0400 Subject: [PATCH] Add FreeBSD build --- .build.yml => .builds/archlinux.yml | 0 .builds/freebsd.yml | 79 +++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) rename .build.yml => .builds/archlinux.yml (100%) create mode 100644 .builds/freebsd.yml diff --git a/.build.yml b/.builds/archlinux.yml similarity index 100% rename from .build.yml rename to .builds/archlinux.yml diff --git a/.builds/freebsd.yml b/.builds/freebsd.yml new file mode 100644 index 00000000..65e9d41d --- /dev/null +++ b/.builds/freebsd.yml @@ -0,0 +1,79 @@ +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: | + cd /usr/ports/graphics/wayland-protocols/ && sudo make install + cd /usr/ports/x11/libinput/ && sudo make install clean + # 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 +- 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