Sistem Asistanı (v1.1) / paketle_pardus23.sh
paketle_pardus23.sh 148 satır • 4.92 KB
#!/bin/bash

# --- PROJE BİLGİLERİ (PARDUS 23 / DEBIAN 11) ---
APP_NAME="sistem-asistani"
ICON_NAME="sistem-asistani"
VERSION="1.1"
ARCH="amd64"
MAINTAINER="Tarik Vardar <tarikvardar@gmail.com>"
WEBSITE="https://www.tarikvardar.com.tr"
DESCRIPTION="Gelismiş Linux Sistem Yonetim ve Analiz Araci (Pardus 23 Uyumlu)"

# --- KLASÖR TANIMLARI ---
BUILD_DIR="build_deb"
OUTPUT_DEB="${APP_NAME}_${VERSION}_pardus23_${ARCH}.deb"
LOCAL_DEPS="bagimliliklar"

echo "🚀 PAKETLEME SİHİRBAZI BAŞLATILIYOR (Pardus 23 - v$VERSION)..."

# ==============================================================================
# 1. TEMİZLİK
# ==============================================================================
echo "🧹 Temizlik yapılıyor..."
rm -rf build dist $BUILD_DIR *.deb *.spec

# ==============================================================================
# 2. SİSTEM GEREKSİNİMLERİ (PIP & PYINSTALLER)
# ==============================================================================
if ! command -v pip3 &> /dev/null; then
    echo "⚠️  pip3 yükleniyor..."
    sudo apt-get update && sudo apt-get install -y python3-pip
fi

if ! command -v pyinstaller &> /dev/null; then
    echo "⚠️  PyInstaller yükleniyor..."
    pip3 install pyinstaller
    export PATH="$HOME/.local/bin:$PATH"
fi

# ==============================================================================
# 3. BAĞIMLILIKLARI VE PYINSTALLER'I YEREL KLASÖRE İNDİR
# ==============================================================================
echo "⬇️  Kütüphaneler indiriliyor..."
mkdir -p $LOCAL_DEPS
pip3 install -r requirements.txt --target "$LOCAL_DEPS" --upgrade
# PyInstaller'ı da buraya indiriyoruz ki sistemde yoksa sorun çıkmasın
pip3 install pyinstaller --target "$LOCAL_DEPS" --upgrade

find "$LOCAL_DEPS" -name "__pycache__" -type d -exec rm -rf {} +
find "$LOCAL_DEPS" -name "*.dist-info" -type d -exec rm -rf {} +

# ==============================================================================
# 4. DERLEME
# ==============================================================================
echo "📦 Derleniyor..."
export PYTHONPATH="$(pwd)/$LOCAL_DEPS:$PYTHONPATH"

python3 -m PyInstaller sistem_asistani.py \
    --name="SistemAsistani" \
    --onedir \
    --windowed \
    --noconsole \
    --clean \
    --noconfirm \
    --strip \
    --paths="$LOCAL_DEPS" \
    --add-data="icons:icons" \
    --add-data="sayfalar:sayfalar" \
    --icon="icons/sistem-asistani.png" \
    --contents-directory="libs" \
    --hidden-import="PyQt6" \
    --hidden-import="PyQt6.QtCore" \
    --hidden-import="PyQt6.QtGui" \
    --hidden-import="PyQt6.QtWidgets" \
    --hidden-import="PyQt6.QtWebEngineWidgets" \
    --hidden-import="PyQt6.QtWebEngineCore" \
    --hidden-import="PyQt6.QtNetwork" \
    --collect-all="PyQt6" \
    --collect-all="PyQt6_WebEngine" \
    --collect-all="requests" \
    --collect-all="psutil"

if [ ! -d "dist/SistemAsistani" ]; then
    echo "❌ HATA: Derleme başarısız oldu!"
    exit 1
fi

# ==============================================================================
# 5. PAKETLEME
# ==============================================================================
echo "📂 Paket oluşturuluyor..."
mkdir -p $BUILD_DIR/DEBIAN
mkdir -p $BUILD_DIR/opt/$APP_NAME
mkdir -p $BUILD_DIR/usr/bin
mkdir -p $BUILD_DIR/usr/share/applications
mkdir -p $BUILD_DIR/usr/share/icons/hicolor/512x512/apps
mkdir -p $BUILD_DIR/usr/share/pixmaps

cp -r dist/SistemAsistani/* $BUILD_DIR/opt/$APP_NAME/
mkdir -p $BUILD_DIR/opt/$APP_NAME/icons
cp icons/sistem-asistani.png $BUILD_DIR/opt/$APP_NAME/icons/
cp icons/sistem-asistani-dark.png $BUILD_DIR/opt/$APP_NAME/icons/
cp icons/sistem-asistani.png $BUILD_DIR/usr/share/icons/hicolor/512x512/apps/$ICON_NAME.png
cp icons/sistem-asistani.png $BUILD_DIR/usr/share/pixmaps/$ICON_NAME.png

cat > $BUILD_DIR/usr/bin/$APP_NAME << EOF
#!/bin/bash
export QT_QPA_PLATFORM=xcb
cd /opt/$APP_NAME
./SistemAsistani "\$@"
EOF
chmod 755 $BUILD_DIR/usr/bin/$APP_NAME

cat > $BUILD_DIR/usr/share/applications/$APP_NAME.desktop << EOF
[Desktop Entry]
Name=Sistem Asistanı
Comment=Sistem Bakım ve Analiz Aracı
Exec=/usr/bin/$APP_NAME
Icon=$ICON_NAME
Terminal=false
Type=Application
Categories=System;Utility;
StartupNotify=true
EOF
chmod 644 $BUILD_DIR/usr/share/applications/$APP_NAME.desktop

# CONTROL DOSYASI (PARDUS 23 UYUMLU)
cat > $BUILD_DIR/DEBIAN/control << EOF
Package: $APP_NAME
Version: $VERSION
Architecture: $ARCH
Maintainer: $MAINTAINER
Homepage: $WEBSITE
Depends: libc6, libgl1, libegl1, policykit-1, libxcb-cursor0, libxcb-xinerama0, libnss3, libasound2, network-manager
Recommends: smartmontools, nmap, ufw
Section: utils
Priority: optional
Description: $DESCRIPTION
 Bu paket Pardus 23 / Debian 11 uyumludur.
 Gerekli Python ve Qt kütüphaneleri pakete gömülüdür.
EOF
chmod 755 $BUILD_DIR/DEBIAN/control

chmod -R 755 $BUILD_DIR/opt/$APP_NAME
chmod -R 755 $BUILD_DIR/DEBIAN
dpkg-deb --build $BUILD_DIR $OUTPUT_DEB

echo "✅ TAMAMLANDI: $OUTPUT_DEB"