Files
cinema-spatial/打包deb.sh
T

77 lines
2.8 KiB
Bash
Raw Normal View History

#!/bin/bash
# 把电影院空间音频全链打包成 deb (2026-09-12)
# 包名 collaplex-cinema-spatial, Arch: all (纯脚本+数据, 无编译)
set -eu
SRC="/home/lou/桌面/工作区/实验/空间音频"
PKG="collaplex-cinema-spatial"
VER="1.0.0"
BUILD="/tmp/${PKG}-deb"
ROOT="/usr/share/cinema-spatial"
SOFA_SRC="$SRC/sofa/H4_HRIR_SOFA/H4_HRIR_SOFA/H4_96K_24bit_512tap_FIR_SOFA.sofa"
echo "=== 1. 准备目录 ==="
rm -rf "$BUILD"
mkdir -p "$BUILD/DEBIAN" "$BUILD/usr/bin" \
"$BUILD${ROOT}/hrir" "$BUILD${ROOT}/sofa" \
"$BUILD/usr/share/pipewire/pipewire.conf.d"
echo "=== 2. 两个命令 ==="
cp "$HOME/.local/bin/空间音频" "$BUILD/usr/bin/空间音频"
cp "$HOME/.local/bin/mpv-影院" "$BUILD/usr/bin/mpv-影院"
chmod 755 "$BUILD/usr/bin/空间音频" "$BUILD/usr/bin/mpv-影院"
echo "=== 3. HRTF 数据 (12 个 IR + SOFA) ==="
cp "$SRC/hrir/H4-96k/"*.wav "$BUILD${ROOT}/hrir/"
cp "$SOFA_SRC" "$BUILD${ROOT}/sofa/"
echo "=== 4. 项目脚本与文档 ==="
cp "$SRC/生成配置.py" "$SRC/换HRTF.sh" "$SRC/README.md" "$BUILD${ROOT}/"
chmod 755 "$BUILD${ROOT}/换HRTF.sh"
echo "=== 5. PipeWire 配置 (用安装路径生成) ==="
CINEMA_SPATIAL_IR="${ROOT}/hrir" \
CINEMA_SPATIAL_OUT="$BUILD/usr/share/pipewire/pipewire.conf.d/90-cinema-spatial.conf" \
python3 "$SRC/生成配置.py"
cp "$HOME/.config/pipewire/pipewire.conf.d/91-clock.conf" \
"$BUILD/usr/share/pipewire/pipewire.conf.d/"
echo "=== 6. control ==="
cat > "$BUILD/DEBIAN/control" <<'EOF'
Source: collaplex-cinema-spatial
Package: collaplex-cinema-spatial
Section: sound
Priority: optional
Architecture: all
Version: 1.0.0
Maintainer: edgevoid <edgevoid@users.noreply.github.com>
Depends: pipewire, libmysofa1, mpv
Description: Cinema spatial audio for headphones (HRTF virtual surround)
Renders audio into binaural using a SADIE-II human HRTF through a PipeWire
filter-chain virtual sink, so ordinary headphones give a cinema-like
sense of direction and space.
.
Provides two virtual sinks (5.1 passthrough and stereo-upmixed) plus the
space-audio and mpv-cinema commands.
EOF
echo "=== 7. 打包 ==="
cat > "$BUILD/DEBIAN/postinst" <<'EOF'
#!/bin/sh
set -e
if [ "$1" = "configure" ]; then
echo "collaplex-cinema-spatial 已安装。"
echo " 命令: 空间音频 开|开5.1|关|状态 mpv-影院 电影.mkv"
echo " 虚拟声卡定义: /usr/share/pipewire/pipewire.conf.d/"
echo " 生效: systemctl --user restart pipewire pipewire-pulse wireplumber"
fi
EOF
chmod 755 "$BUILD/DEBIAN/postinst"
dpkg-deb -b --root-owner-group "$BUILD" "$HOME/桌面/${PKG}_${VER}_all.deb"
echo
echo "=== 结果 ==="
ls -lh "$HOME/桌面/${PKG}_${VER}_all.deb"
echo
dn=$(dpkg-deb -c "$HOME/桌面/${PKG}_${VER}_all.deb" | wc -l)
echo "包内文件数: $dn"
dpkg-deb -c "$HOME/桌面/${PKG}_${VER}_all.deb" | awk '{print $6}' | head -30