From 815347f708937afd307efb1a47ea2a7e76b65093 Mon Sep 17 00:00:00 2001 From: Gwenhael Le Moine Date: Wed, 21 Feb 2024 13:15:44 +0100 Subject: [PATCH] [wayland/labwc] Added (?) --- wayland/labwc/SlackBuild | 253 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100755 wayland/labwc/SlackBuild diff --git a/wayland/labwc/SlackBuild b/wayland/labwc/SlackBuild new file mode 100755 index 00000000..3aa21de4 --- /dev/null +++ b/wayland/labwc/SlackBuild @@ -0,0 +1,253 @@ +#!/bin/bash + +# variables +GITHUB_REPO=labwc/labwc +VERSION=${VERSION:-"latest"} +BUILD=12 + +TAG=gwh +OUTPUT=/tmp +TMP=/tmp/$TAG +CWD=$(pwd) + +PRGNAM=$(basename "$CWD") +PKG=$TMP/pkg-$PRGNAM + +ARCH=$(uname -m) + +REPOSITORY=/home/installs/SlackBuilds/_repositories/$PRGNAM + +PREFIX=/usr +MESONFLAGS="" + +# nettoyage préalable +rm -fr "$PKG" "${TMP:?}/$PRGNAM" + +mkdir -p "$PKG" + +# mise en place +[ ! -e "$REPOSITORY" ] && git clone https://github.com/${GITHUB_REPO} "$REPOSITORY" +cd "$REPOSITORY" || exit 1 +git reset --hard HEAD +git pull --all + +cp -R "$REPOSITORY" $TMP/ + +cd "$TMP/$PRGNAM/" || exit 1 +case $VERSION in + trunk) + # PKGVERSION="git_r$(git log -1 --format=%h_%ad --date=format:%Y.%m.%d)" + PKGVERSION="r$(git rev-list --count HEAD)_$(git log -1 --format=%h)" + ;; + latest) + PKGVERSION=$(git tag --sort=-taggerdate | head -n1) + git checkout "$PKGVERSION" + ;; + *) + PKGVERSION=$VERSION + MESONFLAGS="-Dc_args=\"-Wno-error=switch\"" + git checkout "$PKGVERSION" + ;; +esac +PKGNAM=${PRGNAM} + +###################### +# EMBED DEPENDENCIES # +###################### +# # wlroots +# EMBED_WLROOTS=${EMBED_WLROOTS:-"yes"} +# if [ "$EMBED_WLROOTS" = "yes" ]; then +# WLROOTS_VERSION=${WLROOTS_VERSION:-$VERSION} +# WLROOTS_REPOSITORY=/home/installs/SlackBuilds/_repositories/wlroots +# [ ! -e "$WLROOTS_REPOSITORY" ] && git clone https://gitlab.freedesktop.org/wlroots/wlroots.git "$WLROOTS_REPOSITORY" +# cd "$WLROOTS_REPOSITORY" || exit 1 +# git reset --hard HEAD +# git pull --all + +# mkdir -p "$TMP/$PRGNAM"/subprojects/ +# cp -a "$WLROOTS_REPOSITORY" "$TMP/$PRGNAM"/subprojects/wlroots +# cd "$TMP/$PRGNAM"/subprojects/wlroots || exit 1 +# case $WLROOTS_VERSION in +# trunk) +# # WLROOTS_VERSION="git_r$(git log -1 --format=%h_%ad --date=format:%Y.%m.%d)" +# WLROOTS_VERSION="r$(git rev-list --count HEAD)_$(git log -1 --format=%h)" +# ;; +# latest) +# WLROOTS_VERSION=$(git tag --sort=-taggerdate | head -n1) +# git checkout "$WLROOTS_VERSION" +# ;; +# *) +# git checkout "$WLROOTS_VERSION" +# ;; +# esac +# PKGNAM="${PKGNAM}+wlroots" +# PKGVERSION="${PKGVERSION}+${WLROOTS_VERSION}" +# fi + +# libliftoff +EMBED_LIBLIFTOFF=${EMBED_LIBLIFTOFF:-"yes"} +if [ "$EMBED_LIBLIFTOFF" = "yes" ]; then + LIBLIFTOFF_VERSION=${LIBLIFTOFF_VERSION:-$VERSION} + LIBLIFTOFF_REPOSITORY=/home/installs/SlackBuilds/_repositories/libliftoff + [ ! -e "$LIBLIFTOFF_REPOSITORY" ] && git clone https://gitlab.freedesktop.org/emersion/libliftoff.git "$LIBLIFTOFF_REPOSITORY" + cd "$LIBLIFTOFF_REPOSITORY" || exit 1 + git reset --hard HEAD + git pull --all + + mkdir -p "$TMP/$PRGNAM"/subprojects/ + cp -a "$LIBLIFTOFF_REPOSITORY" "$TMP/$PRGNAM"/subprojects/libliftoff + cd "$TMP/$PRGNAM"/subprojects/libliftoff || exit 1 + case $LIBLIFTOFF_VERSION in + trunk) + # LIBLIFTOFF_VERSION="git_r$(git log -1 --format=%h_%ad --date=format:%Y.%m.%d)" + LIBLIFTOFF_VERSION="r$(git rev-list --count HEAD)_$(git log -1 --format=%h)" + ;; + latest) + LIBLIFTOFF_VERSION=$(git tag --sort=-taggerdate | head -n1) + git checkout "$LIBLIFTOFF_VERSION" + ;; + *) + git checkout "$LIBLIFTOFF_VERSION" + ;; + esac + PKGNAM="${PKGNAM}+libliftoff" + PKGVERSION="${PKGVERSION}+${LIBLIFTOFF_VERSION}" +fi + +# libdisplay-info +EMBED_LIBDISPLAYINFO=${EMBED_LIBDISPLAYINFO:-"yes"} +if [ "$EMBED_LIBDISPLAYINFO" = "yes" ]; then + LIBDISPLAYINFO_VERSION=${LIBDISPLAYINFO_VERSION:-$VERSION} + LIBDISPLAYINFO_REPOSITORY=/home/installs/SlackBuilds/_repositories/libdisplay-info + [ ! -e "$LIBDISPLAYINFO_REPOSITORY" ] && git clone https://gitlab.freedesktop.org/emersion/libdisplay-info.git "$LIBDISPLAYINFO_REPOSITORY" + cd "$LIBDISPLAYINFO_REPOSITORY" || exit 1 + git reset --hard HEAD + git pull --all + + mkdir -p "$TMP/$PRGNAM"/subprojects/ + cp -a "$LIBDISPLAYINFO_REPOSITORY" "$TMP/$PRGNAM"/subprojects/libdisplay-info + cd "$TMP/$PRGNAM"/subprojects/libdisplay-info || exit 1 + case $LIBDISPLAYINFO_VERSION in + trunk) + # LIBDISPLAYINFO_VERSION="git_r$(git log -1 --format=%h_%ad --date=format:%Y.%m.%d)" + LIBDISPLAYINFO_VERSION="r$(git rev-list --count HEAD)_$(git log -1 --format=%h)" + ;; + latest) + LIBDISPLAYINFO_VERSION=$(git tag --sort=-taggerdate | head -n1) + git checkout "$LIBDISPLAYINFO_VERSION" + ;; + *) + git checkout "$LIBDISPLAYINFO_VERSION" + ;; + esac + PKGNAM="${PKGNAM}+libdisplay_info" + PKGVERSION="${PKGVERSION}+${LIBDISPLAYINFO_VERSION}" +fi + + +# Back to compiling… +cd "$TMP/$PRGNAM/" || exit 1 + +meson setup \ + --prefix /usr \ + --mandir /usr/man/ \ + --force-fallback-for=wlroots \ + "$MESONFLAGS" \ + build/ + +ninja -C build/ + +meson install --destdir="$PKG" -C build/ # --skip-subprojects + +mkdir -p "$PKG$PREFIX/doc/$PRGNAM" +cp LICENSE ./*.md "$PKG$PREFIX/doc/$PRGNAM/" + +cat < "$PKG$PREFIX/bin/start_labwc.sh" +#!/bin/bash + +#set -e + +LOGFILE=~/.wsession-errors +true > \$LOGFILE +exec &> \$LOGFILE + +set -x +echo "labwc Starting: \$( date )" + +# Uncomment if mouse pointer is invisible +#export WLR_NO_HARDWARE_CURSORS=1 + +unset QT_QPA_PLATFORM + +export WLR_RENDERER=vulkan +export CLUTTER_BACKEND=wayland +export SDL_VIDEODRIVER=wayland +export XDG_SESSION_DESKTOP=labwc +export XDG_SESSION_TYPE=wayland +export QT_PLATFORMTHEME=qt5ct +export QT_PLATFORM_PLUGIN=qt5ct + +export QT_QPA_PLATFORMTHEME=qt5ct +export MOZ_ENABLE_WAYLAND=1 +export XDG_CURRENT_DESKTOP=labwc +export XDG_PICTURES_DIR=~/.wallpapers + +export XDG_RUNTIME_DIR=/tmp/xdg-runtime-\$(id -u) + +mkdir -p \$XDG_RUNTIME_DIR +chmod 0700 \$XDG_RUNTIME_DIR + +# avoid wlr error +unset DISPLAY + +killall daemon + +exec dbus-run-session /usr/bin/labwc +#dbus-launch --sh-syntax --exit-with-session /usr/bin/labwc +#exec /usr/bin/labwc +EOF +chmod +x "$PKG$PREFIX/bin/start_labwc.sh" +sed -i 's|Exec=labwc|Exec=/usr/bin/start_labwc.sh|' "$PKG$PREFIX/share/wayland-sessions/labwc.desktop" + +############### +# corrections # +############### +cd "$PKG" || exit 1 +chown -R root:root ./* +[ -d "$PKG$PREFIX/man" ] && find "$PKG$PREFIX/man" -name "*.?" -type f -exec gzip -9 {} \; + +# Don't package wlroots includes or .so link as we don't want to interfere with SBo's wlroots +find "$PKG$PREFIX/lib$(uname -m | grep -o 64)/" -type l -exec rm {} \; +rm -r "$PKG$PREFIX/lib$(uname -m | grep -o 64)/pkgconfig/" +rm -r "$PKG$PREFIX/include/" + +#################### +# Actual packaging # +#################### +mkdir -p "$PKG/install" + +cat < "$PKG/install/slack-desc" +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. Line +# up the first '|' above the ':' following the base package name, and the '|' +# on the right side marks the last column you can put a character in. You must +# make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':'. + + |-----handy-ruler------------------------------------------------------| +$PRGNAM: $PRGNAM (A Wayland window-stacking compositor) +$PRGNAM: +$PRGNAM: Labwc is a wlroots-based window-stacking compositor for wayland, +$PRGNAM: inspired by openbox. +$PRGNAM: +$PRGNAM: +$PRGNAM: +$PRGNAM: +$PRGNAM: +$PRGNAM: +$PRGNAM: https://github.com/${GITHUB_REPO} +EOF + +# empaquetage +rm -f "$PKG/{,usr/}lib$(uname -m | grep -o 64)/*.la" +/sbin/makepkg --linkadd y --chown n --prepend "$OUTPUT/${PKGNAM}-$(echo "$PKGVERSION" | tr - _)-$ARCH-$BUILD$TAG.txz"