Compare commits

..

No commits in common. "4812b388e4e602f0f27e48b4b7fe4b1a26c4e7ce" and "5c4761697f7150842cf104faee41fcc59f12223e" have entirely different histories.

2 changed files with 28 additions and 20 deletions

View file

@ -248,7 +248,7 @@ download_xray() {
tmp="$(mktemp -d)"
curl -fL "$url" -o "$tmp/$zipname"
unzip -q "$tmp/$zipname" -d "$tmp"
install -m 755 "$tmp/xray" "$outdir/xray"
install -Dm755 "$tmp/xray" "$outdir/xray"
rm -rf "$tmp"
}
@ -271,7 +271,7 @@ download_singbox() {
tar -C "$tmp" -xzf "$tmp/$tarname"
bin="$(find "$tmp" -type f -name 'sing-box' | head -n1 || true)"
[[ -n "$bin" ]] || { echo "[!] sing-box unpack failed"; rm -rf "$tmp"; return 1; }
install -m 755 "$bin" "$outdir/sing-box"
install -Dm755 "$bin" "$outdir/sing-box"
rm -rf "$tmp"
}
@ -444,7 +444,7 @@ build_for_arch() {
fi
# Wrapper
install -m 755 /dev/stdin "$STAGE/usr/bin/v2rayn" <<'EOF'
cat > "$STAGE/usr/bin/v2rayn" <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
DIR="/opt/v2rayN"
@ -464,6 +464,7 @@ echo "v2rayN launcher: no executable found in $DIR" >&2
ls -l "$DIR" >&2 || true
exit 1
EOF
chmod 0755 "$STAGE/usr/bin/v2rayn"
SHLIBS_DEPENDS=""
EXTRA_DEPENDS="libc6 (>= 2.34), fontconfig (>= 2.13.1), desktop-file-utils (>= 0.26), xdg-utils (>= 1.1.3), coreutils (>= 8.32), bash (>= 5.1), libfreetype6 (>= 2.11)"
@ -483,10 +484,16 @@ EOF
local SYS_LIBDIR=""
local SYS_USRLIBDIR=""
multiarch="$(dpkg-architecture -a"$deb_arch" -qDEB_HOST_MULTIARCH)"
SYS_LIBDIR="/lib/$multiarch"
SYS_USRLIBDIR="/usr/lib/$multiarch"
case "$deb_arch" in
amd64)
SYS_LIBDIR="/lib/x86_64-linux-gnu"
SYS_USRLIBDIR="/usr/lib/x86_64-linux-gnu"
;;
arm64)
SYS_LIBDIR="/lib/aarch64-linux-gnu"
SYS_USRLIBDIR="/usr/lib/aarch64-linux-gnu"
;;
esac
: > "$DEBIAN_DIR/substvars"
mapfile -t ELF_FILES < <(
@ -517,7 +524,7 @@ EOF
fi
# Desktop file
install -m 644 /dev/stdin "$STAGE/usr/share/applications/v2rayn.desktop" <<'EOF'
cat > "$STAGE/usr/share/applications/v2rayn.desktop" <<'EOF'
[Desktop Entry]
Type=Application
Name=v2rayN
@ -527,6 +534,7 @@ Icon=v2rayn
Terminal=false
Categories=Network;
EOF
chmod 0644 "$STAGE/usr/share/applications/v2rayn.desktop"
# Control file
cat > "$DEBIAN_DIR/control" <<EOF
@ -544,7 +552,7 @@ Description: v2rayN (Avalonia) GUI client for Linux
EOF
# postinst
install -m 755 /dev/stdin "$DEBIAN_DIR/postinst" <<'EOF'
cat > "$DEBIAN_DIR/postinst" <<'EOF'
#!/bin/sh
set -e
update-desktop-database /usr/share/applications >/dev/null 2>&1 || true
@ -553,9 +561,10 @@ if command -v gtk-update-icon-cache >/dev/null 2>&1; then
fi
exit 0
EOF
chmod 0755 "$DEBIAN_DIR/postinst"
# postrm
install -m 755 /dev/stdin "$DEBIAN_DIR/postrm" <<'EOF'
cat > "$DEBIAN_DIR/postrm" <<'EOF'
#!/bin/sh
set -e
update-desktop-database /usr/share/applications >/dev/null 2>&1 || true
@ -564,12 +573,15 @@ if command -v gtk-update-icon-cache >/dev/null 2>&1; then
fi
exit 0
EOF
chmod 0755 "$DEBIAN_DIR/postrm"
# Normalize permissions
find "$STAGE/opt/v2rayN" -type d -exec chmod 0755 {} +
find "$STAGE/opt/v2rayN" -type f -exec chmod 0644 {} +
[[ -f "$STAGE/opt/v2rayN/v2rayN" ]] && chmod 0755 "$STAGE/opt/v2rayN/v2rayN" || true
[[ -f "$STAGE/opt/v2rayN/bin/xray/xray" ]] && chmod 0755 "$STAGE/opt/v2rayN/bin/xray/xray" || true
[[ -f "$STAGE/opt/v2rayN/bin/sing_box/sing-box" ]] && chmod 0755 "$STAGE/opt/v2rayN/bin/sing_box/sing-box" || true
local deb_out
deb_out="$OUTPUT_DIR/v2rayn_${VERSION}_${deb_arch}.deb"

View file

@ -226,7 +226,7 @@ download_xray() {
tmp="$(mktemp -d)"; trap '[[ -n "${tmp:-}" ]] && rm -rf "$tmp"' RETURN
curl -fL "$url" -o "$tmp/$zipname"
unzip -q "$tmp/$zipname" -d "$tmp"
install -m 755 "$tmp/xray" "$outdir/xray"
install -Dm755 "$tmp/xray" "$outdir/xray"
}
download_singbox() {
@ -249,7 +249,7 @@ download_singbox() {
tar -C "$tmp" -xzf "$tmp/$tarname"
bin="$(find "$tmp" -type f -name 'sing-box' | head -n1 || true)"
[[ -n "$bin" ]] || { echo "[!] sing-box unpack failed"; return 1; }
install -m 755 "$bin" "$outdir/sing-box"
install -Dm755 "$bin" "$outdir/sing-box"
}
# Move geo files to outroot/bin
@ -484,14 +484,9 @@ https://github.com/2dust/v2rayN
install -dm0755 %{buildroot}/opt/v2rayN
cp -a * %{buildroot}/opt/v2rayN/
# Normalize permissions
find %{buildroot}/opt/v2rayN -type d -exec chmod 0755 {} +
find %{buildroot}/opt/v2rayN -type f -exec chmod 0644 {} +
[ -f %{buildroot}/opt/v2rayN/v2rayN ] && chmod 0755 %{buildroot}/opt/v2rayN/v2rayN || :
# Launcher (prefer native ELF first, then DLL fallback)
install -dm0755 %{buildroot}%{_bindir}
install -m0755 /dev/stdin %{buildroot}%{_bindir}/v2rayn << 'EOF'
cat > %{buildroot}%{_bindir}/v2rayn << 'EOF'
#!/usr/bin/bash
set -euo pipefail
DIR="/opt/v2rayN"
@ -508,10 +503,11 @@ echo "v2rayN launcher: no executable found in $DIR" >&2
ls -l "$DIR" >&2 || true
exit 1
EOF
chmod 0755 %{buildroot}%{_bindir}/v2rayn
# Desktop file
install -dm0755 %{buildroot}%{_datadir}/applications
install -m0644 /dev/stdin %{buildroot}%{_datadir}/applications/v2rayn.desktop << 'EOF'
cat > %{buildroot}%{_datadir}/applications/v2rayn.desktop << 'EOF'
[Desktop Entry]
Type=Application
Name=v2rayN