#!/bin/sh set -ex # export RIVERWM_BASE="${RIVERWM_BASE:-$HOME/.local/opt/rivercfg}" export RIVERWM_BASE="${RIVERWM_BASE:-$HOME/.local/opt/river}" codedir="${RIVERWM_BASE}/src" # Override for everything elsedownstream... export CODEDIR="$codedir" # Annoyingly scattered about inside of the prefix... export PKG_CONFIG_PATH="$(echo "$RIVERWM_BASE/lib64/pkgconfig $RIVERWM_BASE/lib/pkgconfig $RIVERWM_BASE/share/pkgconfig /usr/lib64/pkgconfig /usr/lib/pkgconfig" | tr '\n' ':')" _pfx="$RIVERWM_BASE" sudo dnf config-manager --set-enabled crb sudo yum -y install \ gnome-themes-extra \ doxygen \ expat-devel \ libffi-devel \ libxml2-devel \ xmlto \ libxkbcommon-devel \ pixman \ pixman-devel \ libglvnd-devel \ vulkan-loader-devel \ libdrm-devel \ xwayland-devel \ libinput-devel \ hwdata \ hwdata-devel \ libdisplay-info-devel \ cairo-devel \ pipewire-devel \ inih-devel \ scdoc \ libevdev-devel \ mtdev-devel \ gtk3-devel \ lcms2-devel \ xcb-util-devel \ gtkmm30-devel \ flatpak-devel \ fuse3-devel \ gstreamer1-devel \ gstreamer1-plugins-base-devel \ vala \ libpcap-devel \ iniparser-devel \ catch-devel \ sudo yum -y builddep \ systemd \ mesa-vulkan-drivers \ xorg-x11-server-Xwayland \ xwayland-devel \ libdrm \ libinput \ xdg-desktop-portal \ # sudo yum -y install python3-virtualenv python3 -m venv "$codedir/venv" . "$codedir/venv/bin/activate" pip install meson pip install ninja if ! [ -d "$codedir/wayland" ] ; then git clone https://gitlab.freedesktop.org/wayland/wayland \ "$codedir/wayland" fi cd "$codedir/wayland" git checkout 1.24.0 meson setup --wipe -Dprefix="${_pfx}" build/ ninja -C build/ ninja -C build/ install cd - if ! [ -d "$codedir/wl/drm" ] ; then git clone https://gitlab.freedesktop.org/mesa/drm \ "$codedir/wl/drm" fi cd "$codedir/wl/drm" git checkout libdrm-2.4.131 meson setup --wipe -Dprefix="${_pfx}" build/ ninja -C build/ ninja -C build/ install cd - if ! [ -d "$codedir/wl/wayland-protocols" ] ; then git clone https://gitlab.freedesktop.org/wayland/wayland-protocols \ "$codedir/wl/wayland-protocols" fi cd "$codedir/wl/wayland-protocols" git checkout 1.47 meson setup --wipe -Dprefix="${_pfx}" build/ ninja -C build/ ninja -C build/ install cd - if ! [ -d "$codedir/wl/pixman" ] ; then git clone https://gitlab.freedesktop.org/pixman/pixman \ "$codedir/wl/pixman" fi cd "$codedir/wl/pixman" git checkout pixman-0.46.4 meson setup --wipe -Dprefix="${_pfx}" build/ ninja -C build/ ninja -C build/ install cd - if ! [ -d "$codedir/wl/libliftoff" ] ; then git clone https://gitlab.freedesktop.org/emersion/libliftoff \ "$codedir/wl/libliftoff" fi cd "$codedir/wl/libliftoff" git checkout v0.5.0 meson setup --wipe -Dprefix="${_pfx}" build/ ninja -C build/ ninja -C build/ install cd - export LD_LIBRARY_PATH="${RIVERWM_BASE}/lib64:${RIVERWM_BASE}/lib" # https://gitlab.gnome.org/GNOME/glib/ # Needed for xdg-desktop-portal... # Libinput also needs a newer vesion... if ! [ -d "$codedir/glib" ] ; then git clone https://gitlab.gnome.org/GNOME/glib \ "$codedir/glib" fi cd "$codedir/glib" # git checkout 2.87.1 git checkout 2.76.6 git reset --hard HEAD # git clean -fdx . meson setup --includedir "${_pfx}/include" -Dprefix="${_pfx}" build meson compile -C build meson install -C build cd - if ! [ -d "$codedir/libinput" ] ; then git clone https://gitlab.freedesktop.org/libinput/libinput/ \ "$codedir/libinput" fi cd "$codedir/libinput" git checkout 1.30.1 git reset --hard HEAD git clean -fdx . git submodule update meson setup -Ddebug-gui=false -Dprefix="${_pfx}" build/ # _prev_ld_pth="$LD_LIBRARY_PATH" # unset LD_LIBRARY_PATH ninja -C build/ ninja -C build/ install # export LD_LIBRARY_PATH="$_prev_ld_pth" cd - if ! [ -d "$codedir/seatd" ] ; then git clone https://git.sr.ht/~kennylevinsen/seatd \ "$codedir/seatd" fi cd "$codedir/seatd" meson setup --wipe -Dprefix="${_pfx}" build/ ninja -C build/ ninja -C build/ install cd - if ! [ -d "$codedir/wl/wlroots" ] ; then git clone https://gitlab.freedesktop.org/wlroots/wlroots \ "$codedir/wl/wlroots" fi cd "$codedir/wl/wlroots" git checkout 0.19.2 meson setup --includedir "${_pfx}/include" --wipe -Dprefix="${_pfx}" build/ ninja -C build/ ninja -C build/ install cd - if ! [ -d "$codedir/wl/xdg-desktop-portal-wlr" ] ; then git clone https://github.com/emersion/xdg-desktop-portal-wlr \ "$codedir/wl/xdg-desktop-portal-wlr" fi cd "$codedir/wl/xdg-desktop-portal-wlr" git checkout v0.8.1 git checkout HEAD ./src git apply - < #include #include +#include #include "screencast.h" #include "wlr_screencopy.h" EOF meson setup --wipe -Dprefix="${_pfx}" build/ ninja -C build/ ninja -C build/ install cd - if ! [ -d "$codedir/foot" ] ; then git clone https://codeberg.org/dnkl/foot \ "$codedir/foot" fi cd "$codedir/foot" git checkout 1.25.0 git checkout HEAD scripts meson.build # Fix for older python... git apply - <