This commit is contained in:
zj
2026-01-23 05:29:31 +08:00
parent 5118eae42c
commit f9074ab676
3 changed files with 73 additions and 7 deletions

View File

@@ -4,7 +4,7 @@
_pkgname="calamares"
pkgname="$_pkgname"
pkgver=3.4.2
pkgrel=2
pkgrel=5
pkgdesc="Distribution-independent installer framework"
url="https://codeberg.org/Calamares/calamares"
license=("GPL-3.0-or-later")
@@ -27,8 +27,15 @@ makedepends=(
_pkgsrc="$_pkgname"
_pkgext="tar.gz"
source=("calamares.zip")
sha256sums=('57b3b36d8cf67393ee8e81871106b2f4a5925c120173f92c6d77c8f6003f79d5')
source=("calamares.zip"
"calamares_polkit"
"49-nopasswd-calamares.rules"
"calamares.desktop")
sha256sums=('d3c0e93e4103f602598eba446a1712f373c4feb83950aee4a283e7395232dc21'
'b7f932912d33cfa188c0d06a25fb144ae6e0c69636ce90ed0a04ed2df0ae6ef3'
'56d85ff6bf860b9559b8c9f997ad9b1002f3fccc782073760eca505e3bddd176'
'c9f38c31882f506306a771028ee70b5cc5b8c81eca3e252502151055a43a5e6c')
build() {
local _skip_modules=(

View File

@@ -10,7 +10,7 @@ Comment[da]=Installer styresystemet på disk
Comment[de]=Manjaro Linux installieren
Exec=/usr/bin/calamares_polkit %f
Icon=calamares
Terminal=false
Terminal=true
StartupNotify=true
Type=Application
Categories=Qt;System;

View File

@@ -1,6 +1,65 @@
#!/bin/bash
if [ $(which pkexec) ]; then
sudo "/usr/bin/calamares" "$@" "-d"
# 函数:检查网络连接
# 尝试ping Google DNS-c 1 只发送一个包,-W 2 超时2秒
has_internet() {
ping -c 1 -W 2 8.8.8.8 > /dev/null 2>&1
return $? # 返回ping的退出状态码 (0表示成功)
}
echo "正在检查网络连接..."
NETWORK_STATUS="offline" # 初始状态为离线
if has_internet; then
NETWORK_STATUS="online"
echo "网络已连接。"
else
/usr/bin/calamares "$@" "-d"
echo "未检测到网络连接将尝试等待最多30秒..."
for i in $(seq 1 30); do
echo "等待网络... ($i/30秒)"
if has_internet; then
NETWORK_STATUS="online"
echo "网络已连接。"
break # 成功连接,跳出循环
fi
sleep 1
done
if [ "$NETWORK_STATUS" == "offline" ]; then
echo "在30秒内未能检测到网络连接。"
fi
fi
# 如果网络在线,尝试更新 Calamares
if [ "$NETWORK_STATUS" == "online" ]; then
echo "网络在线,尝试更新 Calamares..."
# 检查 pacman 是否存在,虽然在 Arch 系系统中通常都有
if command -v pacman &> /dev/null; then
if sudo pacman -Sy --noconfirm tms-calamares-config; then
echo "Calamares 更新成功或已是最新版本。"
else
echo "Calamares 更新失败。可能会使用旧版本启动。"
fi
else
echo "未找到 pacman 包管理器,无法更新 Calamares。"
fi
else
echo "网络离线,跳过 Calamares 更新。"
fi
# 启动 Calamares
echo "启动 Calamares 安装程序..."
# 原始的 Calamares 启动逻辑
if [ $(which pkexec) ]; then
# 如果 pkexec 存在,通过 sudo 运行 calamares
# 注意:这里沿用您原脚本的写法,即检查 pkexec 但仍使用 sudo。
# 如果您希望通过 pkexec 提升权限,应改为 pkexec "/usr/bin/calamares" "$@" "-d"
sudo "/usr/bin/calamares" "$@" "-d"
else
# 否则,直接运行 calamares
/usr/bin/calamares "$@" "-d"
fi
echo "Calamares 启动命令已执行。"