mirror of
https://github.com/JaKooLit/Debian-Hyprland.git
synced 2025-12-21 18:20:13 +01:00
Have to build libxkbcommon from source
Debian version too old On branch hl-521 Your branch is up to date with 'origin/hl-521'. Changes to be committed: modified: install-scripts/dotfiles-branch.sh new file: install-scripts/libxkbcommon.sh modified: install-scripts/wayland-protocols-src.sh
This commit is contained in:
parent
7af127d93b
commit
5cec50bdc4
0
install-scripts/dotfiles-branch.sh
Normal file → Executable file
0
install-scripts/dotfiles-branch.sh
Normal file → Executable file
110
install-scripts/libxkbcommon.sh
Executable file
110
install-scripts/libxkbcommon.sh
Executable file
@ -0,0 +1,110 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
# 💫 https://github.com/JaKooLit 💫 #
|
||||||
|
# libxkbcommon - Required for Hyprland 0.52.1+ #
|
||||||
|
|
||||||
|
xkbcommon_deps=(
|
||||||
|
meson
|
||||||
|
bison
|
||||||
|
libwayland-dev
|
||||||
|
libxml2-dev
|
||||||
|
xutils-dev
|
||||||
|
doxygen
|
||||||
|
)
|
||||||
|
|
||||||
|
#specific branch or release
|
||||||
|
tag="xkbcommon-1.13.0"
|
||||||
|
# Allow environment override
|
||||||
|
if [ -n "${LIBXKBCOMMON_TAG:-}" ]; then tag="$LIBXKBCOMMON_TAG"; fi
|
||||||
|
|
||||||
|
# Dry-run support
|
||||||
|
DO_INSTALL=1
|
||||||
|
if [ "$1" = "--dry-run" ] || [ "${DRY_RUN}" = "1" ] || [ "${DRY_RUN}" = "true" ]; then
|
||||||
|
DO_INSTALL=0
|
||||||
|
echo "${NOTE} DRY RUN: install step will be skipped."
|
||||||
|
fi
|
||||||
|
|
||||||
|
## WARNING: DO NOT EDIT BEYOND THIS LINE IF YOU DON'T KNOW WHAT YOU ARE DOING! ##
|
||||||
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
# Change the working directory to the parent directory of the script
|
||||||
|
PARENT_DIR="$SCRIPT_DIR/.."
|
||||||
|
cd "$PARENT_DIR" || { echo "${ERROR} Failed to change directory to $PARENT_DIR"; exit 1; }
|
||||||
|
|
||||||
|
# Source the global functions script
|
||||||
|
if ! source "$(dirname "$(readlink -f "$0")")/Global_functions.sh"; then
|
||||||
|
echo "Failed to source Global_functions.sh"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Set the name of the log file to include the current date and time
|
||||||
|
LOG="Install-Logs/install-$(date +%d-%H%M%S)_libxkbcommon.log"
|
||||||
|
MLOG="install-$(date +%d-%H%M%S)_libxkbcommon2.log"
|
||||||
|
|
||||||
|
# Check if we need to upgrade
|
||||||
|
CURRENT_VERSION=$(pkg-config --modversion xkbcommon 2>/dev/null || echo "0.0.0")
|
||||||
|
REQUIRED_VERSION="1.9.0"
|
||||||
|
|
||||||
|
version_compare() {
|
||||||
|
printf '%s\n%s\n' "$1" "$2" | sort -V -C
|
||||||
|
}
|
||||||
|
|
||||||
|
if version_compare "$CURRENT_VERSION" "$REQUIRED_VERSION"; then
|
||||||
|
printf "${OK} libxkbcommon $CURRENT_VERSION is already >= $REQUIRED_VERSION\n"
|
||||||
|
if [ "$CURRENT_VERSION" = "${tag#xkbcommon-}" ]; then
|
||||||
|
printf "${OK} libxkbcommon $tag is already installed, skipping.\n"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "${NOTE} Current libxkbcommon version: $CURRENT_VERSION, required: >= $REQUIRED_VERSION\n"
|
||||||
|
printf "${NOTE} Installing libxkbcommon $tag ...\n"
|
||||||
|
|
||||||
|
# Installation of dependencies
|
||||||
|
printf "\n%s - Installing ${YELLOW}libxkbcommon dependencies${RESET} .... \n" "${INFO}"
|
||||||
|
|
||||||
|
for PKG1 in "${xkbcommon_deps[@]}"; do
|
||||||
|
install_package "$PKG1" 2>&1 | tee -a "$LOG"
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo -e "\e[1A\e[K${ERROR} - ${YELLOW}$PKG1${RESET} Package installation failed, Please check the installation logs"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..1}
|
||||||
|
|
||||||
|
# Check if libxkbcommon directory exists and remove it
|
||||||
|
if [ -d "libxkbcommon" ]; then
|
||||||
|
rm -rf "libxkbcommon"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone and build
|
||||||
|
printf "${INFO} Installing ${YELLOW}libxkbcommon $tag${RESET} ...\n"
|
||||||
|
if git clone --recursive -b $tag https://github.com/xkbcommon/libxkbcommon.git; then
|
||||||
|
cd libxkbcommon || exit 1
|
||||||
|
meson setup build \
|
||||||
|
-Dprefix=/usr \
|
||||||
|
-Dlibdir=/usr/lib/x86_64-linux-gnu \
|
||||||
|
-Denable-docs=false \
|
||||||
|
-Denable-wayland=true \
|
||||||
|
-Denable-x11=true \
|
||||||
|
--buildtype=release
|
||||||
|
ninja -C build
|
||||||
|
if [ $DO_INSTALL -eq 1 ]; then
|
||||||
|
if sudo ninja -C build install 2>&1 | tee -a "$MLOG" ; then
|
||||||
|
printf "${OK} ${MAGENTA}libxkbcommon $tag${RESET} installed successfully.\n" 2>&1 | tee -a "$MLOG"
|
||||||
|
# Update ldconfig
|
||||||
|
sudo ldconfig
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Installation failed for ${YELLOW}libxkbcommon $tag${RESET}" 2>&1 | tee -a "$MLOG"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "${NOTE} DRY RUN: Skipping installation of libxkbcommon $tag."
|
||||||
|
fi
|
||||||
|
#moving the addional logs to Install-Logs directory
|
||||||
|
[ -f "$MLOG" ] && mv "$MLOG" ../Install-Logs/
|
||||||
|
cd ..
|
||||||
|
else
|
||||||
|
echo -e "${ERROR} Download failed for ${YELLOW}libxkbcommon $tag${RESET}" 2>&1 | tee -a "$LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf "\n%.0s" {1..2}
|
||||||
0
install-scripts/wayland-protocols-src.sh
Normal file → Executable file
0
install-scripts/wayland-protocols-src.sh
Normal file → Executable file
Loading…
x
Reference in New Issue
Block a user