Files
spark-store/verify-debian-merge.sh

152 lines
4.7 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Debian 合并后的验证脚本
# Verification script for merged Debian configuration
echo "========================================="
echo "Spark Store - Debian 配置验证"
echo "========================================="
echo ""
# 检查文件存在
echo "[1/4] 检查文件结构..."
if [ ! -d "debian" ]; then
echo " ✗ debian 目录不存在"
exit 1
fi
if [ ! -f "debian/control" ]; then
echo " ✗ debian/control 不存在"
exit 1
fi
if [ ! -f "debian/rules" ]; then
echo " ✗ debian/rules 不存在"
exit 1
fi
echo " ✓ 文件结构完整"
echo ""
# 检查是否有旧目录残留
echo "[2/4] 检查是否清理了冗余目录..."
if [ -d "debian-qt5" ] || [ -d "debian-qt6" ]; then
echo " ⚠ 警告: 仍然存在 debian-qt5 或 debian-qt6 目录"
else
echo " ✓ 已清理冗余目录"
fi
if [ -f "debian-qt5-qt6-backup.tar.gz" ]; then
echo " ✓ 已创建备份: debian-qt5-qt6-backup.tar.gz"
fi
echo ""
# 检查 control 文件支持两个版本
echo "[3/4] 检查 debian/control 的版本支持..."
if grep -q "qt5-default | qt6-base-dev" debian/control; then
echo " ✓ control 文件支持 Qt5 和 Qt6 选择"
else
echo " ⚠ control 文件可能未正确配置"
fi
if grep -q "libdtk6core-dev" debian/control && grep -q "libdtk6core[^-]" debian/control; then
echo " ✓ control 文件包含 Qt6 DTK 依赖"
else
echo " ⚠ control 文件可能缺少 Qt6 DTK 依赖"
fi
echo ""
# 检查 rules 文件支持版本切换
echo "[4/4] 检查 debian/rules 的版本切换支持..."
if grep -q "QT_VERSION ?= qt5" debian/rules; then
echo " ✓ rules 文件支持 QT_VERSION 变量(默认 qt5"
else
echo " ✗ rules 文件缺少 QT_VERSION 变量定义"
exit 1
fi
if grep -q "ifeq.*QT_VERSION.*qt6" debian/rules; then
echo " ✓ rules 文件支持 qt6 条件配置"
else
echo " ⚠ rules 文件可能缺少 qt6 条件"
fi
if grep -q "QMAKE_CMD = qmake6" debian/rules; then
echo " ✓ rules 文件支持 qmake6 选择"
else
echo " ⚠ rules 文件可能缺少 qmake6 支持"
fi
echo ""
# 检查Qt5版本
echo "[5/5] 检查Qt5版本..."
QT5_VERSION=""
if command -v qmake &> /dev/null; then
QT5_VERSION=$(qmake --version | grep -oP 'Qt\s+\K[0-9]+\.[0-9]+')
echo " 当前Qt5版本: $QT5_VERSION"
elif command -v qmake5 &> /dev/null; then
QT5_VERSION=$(qmake5 --version | grep -oP 'Qt\s+\K[0-9]+\.[0-9]+')
echo " 当前Qt5版本: $QT5_VERSION"
else
echo " ✗ 未检测到Qt5 (qmake或qmake5)"
QT5_VERSION="0.0"
fi
# 检查是否需要安装Qt5.11
if [ "$QT5_VERSION" != "5.11" ]; then
echo " ⚠ Qt5版本不是5.11推荐使用Qt5.11版本以获得最佳兼容性(非强制要求)"
# 询问用户是否继续
read -p " 要继续尝试自动安装吗?(Y/N): " user_choice
if [[ "$user_choice" =~ ^[Yy]$ ]]; then
# 尝试通过系统源安装Qt5.11
if command -v apt-get &> /dev/null; then
sudo apt-get update
sudo apt-get install -y qt5-default
# 重新检查版本
if command -v qmake &> /dev/null; then
QT5_VERSION=$(qmake --version | grep -oP 'Qt\s+\K[0-9]+\.[0-9]+')
echo " 安装后Qt5版本: $QT5_VERSION"
elif command -v qmake5 &> /dev/null; then
QT5_VERSION=$(qmake5 --version | grep -oP 'Qt\s+\K[0-9]+\.[0-9]+')
echo " 安装后Qt5版本: $QT5_VERSION"
fi
else
echo " ⚠ 不支持的包管理器,无法自动安装"
fi
else
echo " 用户选择不进行自动安装"
fi
# 再次检查版本
if [ "$QT5_VERSION" != "5.11" ]; then
echo "======================================================"
echo " ⚠ 注意Qt5版本仍不是5.11,可能会影响应用程序的兼容性"
echo " 如需使用Qt5.11版本,请访问以下链接自行安装:"
echo " https://download.qt.io/new_archive/qt/5.11/5.11.3/"
echo " 脚本将继续执行后续检查..."
echo "======================================================"
else
echo " ✓ Qt5版本已更新为5.11"
fi
else
echo " ✓ Qt5版本为5.11,符合要求"
fi
echo ""
# 最终结果
echo "========================================="
echo "✓ 验证完成Debian 配置已正确合并"
echo "========================================="
echo ""
echo "使用方法:"
echo " 构建 Qt5: ./build-deb-qt5.sh"
echo " 构建 Qt6: ./build-deb-qt6.sh"
echo " 构建两个版本: ./build-deb-both.sh"
echo ""
echo "或手动指定版本:"
echo " QT_VERSION=qt5 dpkg-buildpackage -us -uc -b"
echo " QT_VERSION=qt6 dpkg-buildpackage -us -uc -b"