#!/bin/bash # Автоматичен скрипт за компилиране и инсталиране на XDecorations в Linux # Подходящ за Ubuntu/Debian/Mint, Fedora/RHEL и Arch Linux set -e # Скриптът спира при евентуална грешка echo "=== 1. Разпознаване на дистрибуцията и инсталиране на зависимости ===" if [ -f /etc/os-release ]; then . /etc/os-release OS=$ID LIKE=$ID_LIKE else echo "Грешка: Не може да се определи операционната система." exit 1 fi case "$OS" in ubuntu|debian|mint|pop) echo "Разпозната е Debian-базирана система ($OS). Инсталиране на пакети..." sudo apt update sudo apt install -y git build-essential autoconf automake autopoint libtool pkg-config libimlib2-dev libxpm-dev libx11-dev libxext-dev ;; fedora|rhel|centos) echo "Разпозната е Red Hat-базирана система ($OS). Инсталиране на пакети..." sudo dnf install -y git gcc gcc-c++ autoconf automake libtool pkgconfig imlib2-devel libXpm-devel libX11-devel libXext-devel ;; arch|manjaro) echo "Разпозната е Arch-базирана система ($OS). Инсталиране на пакети..." sudo pacman -Sy --needed --noconfirm git base-devel autoconf automake libtool pkgconf imlib2 libxpm libx11 libxext ;; *) # Проверка по сходство, ако дистрибуцията е дериват if [[ "$LIKE" == *"debian"* || "$LIKE" == *"ubuntu"* ]]; then sudo apt update && sudo apt install -y git build-essential autoconf automake autopoint libtool pkg-config libimlib2-dev libxpm-dev libx11-dev libxext-dev elif [[ "$LIKE" == *"fedora"* || "$LIKE" == *"rhel"* ]]; then sudo dnf install -y git gcc gcc-c++ autoconf automake libtool pkgconfig imlib2-devel libXpm-devel libX11-devel libXext-devel elif [[ "$LIKE" == *"arch"* ]]; then sudo pacman -Sy --needed --noconfirm git base-devel autoconf automake libtool pkgconf imlib2 libxpm libx11 libxext else echo "Внимание: Неподдържана дистрибуция. Инсталирайте ръчно: git, autotools, imlib2-dev, libxpm-dev." fi ;; esac echo "=== 2. Клониране на репозитория ===" if [ -d "XDecorations" ]; then echo "Папката XDecorations вече съществува. Обновяване..." cd XDecorations git pull else git clone https://github.com cd XDecorations fi echo "=== 3. Регенериране на Autotools файловете ===" # Изчистване на стари боклуци и обновяване на конфигурационните скриптове за вашата версия на Automake make clean 2>/dev/null || true autoreconf -fiv echo "=== 4. Конфигуриране на проекта ===" ./configure echo "=== 5. Компилиране ===" make echo "=== 6. Инсталиране в системата ===" sudo make install echo "=== Готово! XDecorations е инсталиран успешно! ===" echo "Можете да стартирате програмата с командата: xdecorations"