@xbrother2026/pkg-ssh10-6-rbcpro 0.0.0-stage → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.txt ADDED
@@ -0,0 +1,11 @@
1
+ OPENSSH 10.6p1 升级包
2
+ 适用于:FAU-RBC02-PRO
3
+
4
+ 构建信息:
5
+ - ARM64 / GCC 4.8.5 / 最高 GLIBC_2.26
6
+ - OpenSSL 3.0.18 libcrypto.so.3 同目录共享,zlib 1.3.1 静态链接
7
+ - PAM 已启用,使用目标系统现有 libpam.so.0 和 PAM 配置
8
+ - 程序和配套 libcrypt.so.1 安装到 /home/openssh,根分区只更新符号链接
9
+ - OpenSSH sandbox、SELinux、Kerberos 已关闭
10
+
11
+ 安装过程中请勿断电或关闭升级工具,安装完成后会重启 ssh 服务。
package/config.toml ADDED
@@ -0,0 +1,15 @@
1
+ [info]
2
+ name = "ssh10.6p1"
3
+ compatible = ["FAU-RBC02-PRO"]
4
+ tips = "安装过程不能断电!!最后会重启sshd服务。"
5
+ desc = "OpenSSH 10.6p1 for RBC Pro (ARM64, PAM enabled, sandbox disabled)"
6
+
7
+ [[stage]]
8
+ updir = "/home/openssh10"
9
+ keep = true
10
+ wait = 5
11
+
12
+ [[stage]]
13
+ updir = "/tmp/stage1"
14
+ keep = false
15
+ wait = 1
package/package.json CHANGED
@@ -1,6 +1,12 @@
1
1
  {
2
2
  "name": "@xbrother2026/pkg-ssh10-6-rbcpro",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "1.0.0",
4
+ "description": "FAU RBC02-PRO OpenSSH 10.6p1 upgrade package",
5
+ "license": "UNLICENSED",
6
+ "files": ["config.toml", "README.txt", "stage1/", "stage2/"],
7
+ "publishConfig": { "access": "public" },
8
+ "fauDoctor": {
9
+ "packageId": "pkg.ssh10.6.rbcpro",
10
+ "displayName": "ssh10.6p1"
11
+ }
12
+ }
Binary file
Binary file
package/stage1/run.sh ADDED
@@ -0,0 +1,94 @@
1
+ #!/bin/sh
2
+ set -eu
3
+
4
+ PASSWD_ROOT="Xbrother@136"
5
+ SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
6
+ SCRIPT_PATH="$SCRIPT_DIR/$(basename -- "$0")"
7
+ OPENSSH_DIR_TEMP="/home/openssh10"
8
+ OPENSSH_DIR="/home/openssh"
9
+ OPENSSH_PREVIOUS="/home/openssh.previous"
10
+
11
+ if [ "$(id -u)" -ne 0 ]; then
12
+ echo "Not running as root, switching to root using su..."
13
+ printf '%s\n' "$PASSWD_ROOT" | su -c "sh '$SCRIPT_PATH'" root
14
+ exit $?
15
+ fi
16
+
17
+ for payload in ssh sshd sshd-auth sshd-session libcrypto.so.3 libcrypt.so.1; do
18
+ if [ ! -f "$SCRIPT_DIR/$payload" ]; then
19
+ echo "Missing stage1 payload: $payload" >&2
20
+ exit 1
21
+ fi
22
+ done
23
+ if [ ! -e /lib/libpam.so.0 ] && [ ! -e /usr/lib/libpam.so.0 ] && \
24
+ [ ! -e /lib/aarch64-linux-gnu/libpam.so.0 ] && \
25
+ [ ! -e /usr/lib/aarch64-linux-gnu/libpam.so.0 ]; then
26
+ echo "Target system does not provide libpam.so.0" >&2
27
+ exit 1
28
+ fi
29
+
30
+ chmod 755 "$SCRIPT_DIR/ssh" "$SCRIPT_DIR/sshd" \
31
+ "$SCRIPT_DIR/sshd-auth" "$SCRIPT_DIR/sshd-session"
32
+ chmod 644 "$SCRIPT_DIR/libcrypto.so.3" "$SCRIPT_DIR/libcrypt.so.1"
33
+
34
+ mkdir -p /usr/libexec /var/empty
35
+ chown root:root /var/empty
36
+ chmod 755 /var/empty
37
+
38
+ version=$($SCRIPT_DIR/sshd -V 2>&1)
39
+ case "$version" in
40
+ OpenSSH_10.6p1,*) ;;
41
+ *)
42
+ echo "Unexpected sshd version: $version" >&2
43
+ exit 1
44
+ ;;
45
+ esac
46
+
47
+ if [ -f /etc/ssh/sshd_config ]; then
48
+ "$SCRIPT_DIR/sshd" -t -f /etc/ssh/sshd_config
49
+ fi
50
+
51
+ rm -rf "$OPENSSH_PREVIOUS"
52
+ if [ -e "$OPENSSH_DIR" ]; then
53
+ mv "$OPENSSH_DIR" "$OPENSSH_PREVIOUS"
54
+ else
55
+ mkdir -p "$OPENSSH_PREVIOUS"
56
+ cp -pfL /usr/bin/ssh "$OPENSSH_PREVIOUS/ssh"
57
+ cp -pfL /usr/sbin/sshd "$OPENSSH_PREVIOUS/sshd"
58
+ for payload in sshd-auth sshd-session; do
59
+ if [ -e "/usr/libexec/$payload" ]; then
60
+ cp -pfL "/usr/libexec/$payload" "$OPENSSH_PREVIOUS/$payload"
61
+ fi
62
+ done
63
+ fi
64
+ if ! mv "$OPENSSH_DIR_TEMP" "$OPENSSH_DIR"; then
65
+ [ ! -e "$OPENSSH_PREVIOUS" ] || mv "$OPENSSH_PREVIOUS" "$OPENSSH_DIR"
66
+ exit 1
67
+ fi
68
+ chown -R root:root "$OPENSSH_DIR"
69
+ chmod 755 "$OPENSSH_DIR"
70
+ chmod 755 "$OPENSSH_DIR/ssh" "$OPENSSH_DIR/sshd" \
71
+ "$OPENSSH_DIR/sshd-auth" "$OPENSSH_DIR/sshd-session"
72
+ chmod 644 "$OPENSSH_DIR/libcrypto.so.3" "$OPENSSH_DIR/libcrypt.so.1"
73
+
74
+ ln -sfn "$OPENSSH_DIR/ssh" /usr/bin/ssh
75
+ ln -sfn "$OPENSSH_DIR/sshd" /usr/sbin/sshd
76
+ ln -sfn "$OPENSSH_DIR/sshd-auth" /usr/libexec/sshd-auth
77
+ ln -sfn "$OPENSSH_DIR/sshd-session" /usr/libexec/sshd-session
78
+ sync
79
+
80
+ (
81
+ sleep 3
82
+ killall sshd 2>/dev/null || true
83
+ killall sshd-session 2>/dev/null || true
84
+ if ! systemctl start ssh; then
85
+ if [ -d "$OPENSSH_PREVIOUS" ]; then
86
+ rm -rf "$OPENSSH_DIR"
87
+ mv "$OPENSSH_PREVIOUS" "$OPENSSH_DIR"
88
+ systemctl start ssh
89
+ fi
90
+ fi
91
+ ) </dev/null >/dev/null 2>&1 &
92
+
93
+ echo "$version"
94
+ exit 0
package/stage1/ssh ADDED
Binary file
package/stage1/sshd ADDED
Binary file
Binary file
Binary file
package/stage2/run.sh ADDED
@@ -0,0 +1,9 @@
1
+ #!/bin/sh
2
+ set -eu
3
+
4
+ version=$(/usr/sbin/sshd -V 2>&1)
5
+ echo "$version"
6
+ case "$version" in
7
+ OpenSSH_10.6p1,*) exit 0 ;;
8
+ *) exit 1 ;;
9
+ esac
package/README.md DELETED
@@ -1,3 +0,0 @@
1
- # Temporary Holding Version
2
-
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.