# DEB 打包检查清单 ## 📋 打包前检查 ### 环境检查 - [ ] linuxdeployqt 工具存在:`$HOME/dev/sunvpack-py/bin/linuxdeployqt` - [ ] Qt 5.15.2 已安装:`$HOME/sdk/qt-5.15.2` - [ ] dpkg-dev 已安装:`dpkg-deb --version` - [ ] 项目可以正常编译:`./build.sh` - [ ] 程序可以正常运行:`./run.sh` ### 文件检查 - [ ] `screenlockdemo.desktop` 文件存在且配置正确 - [ ] `debian/control` 包信息完整 - [ ] `debian/copyright` 版权信息正确 - [ ] `debian/changelog` 版本号正确 - [ ] 图标文件准备好(可选):`icon.png` ### 版本检查 - [ ] 版本号已更新(如果是新版本) - [ ] `make_deb.sh` 中的 VERSION - [ ] `build_deb.sh` 中的 VERSION - [ ] `debian/changelog` 中的版本号 - [ ] `CMakeLists.txt` 中的 VERSION --- ## 🔨 打包过程检查 ### 执行打包 - [ ] 脚本有执行权限:`chmod +x make_deb.sh` - [ ] 运行打包脚本:`./make_deb.sh` - [ ] 打包过程无错误 - [ ] DEB 文件生成成功:`deb_package/screenlockdemo_1.0.0_amd64.deb` ### 包内容检查 ```bash # 查看包信息 dpkg -I deb_package/screenlockdemo_1.0.0_amd64.deb # 查看文件列表 dpkg -c deb_package/screenlockdemo_1.0.0_amd64.deb ``` - [ ] 包信息正确(名称、版本、架构、依赖) - [ ] 包含主程序:`./opt/screenlockdemo/bin/ScreenLockDemo` - [ ] 包含 Qt 库:`./opt/screenlockdemo/lib/libQt5*.so*` - [ ] 包含 Qt 插件:`./opt/screenlockdemo/plugins/platforms/libqxcb.so` - [ ] 包含启动脚本:`./opt/screenlockdemo/screenlockdemo.sh` - [ ] 包含系统命令:`./usr/bin/screenlockdemo` - [ ] 包含 desktop 文件:`./usr/share/applications/screenlockdemo.desktop` - [ ] 包含图标:`./usr/share/icons/hicolor/256x256/apps/screenlockdemo.png` - [ ] 包含控制脚本:`./DEBIAN/control`, `./DEBIAN/postinst` --- ## 🧪 安装测试 ### 基本安装 ```bash sudo dpkg -i deb_package/screenlockdemo_1.0.0_amd64.deb ``` - [ ] 安装成功,无错误 - [ ] 如有依赖问题,运行:`sudo apt-get install -f` - [ ] 文件已安装到正确位置 ### 文件验证 ```bash # 检查安装的文件 ls -la /opt/screenlockdemo/ ls -la /usr/bin/screenlockdemo ls -la /usr/share/applications/screenlockdemo.desktop ``` - [ ] `/opt/screenlockdemo/` 目录存在 - [ ] `/opt/screenlockdemo/bin/ScreenLockDemo` 可执行 - [ ] `/opt/screenlockdemo/lib/` 包含所有 Qt 库 - [ ] `/usr/bin/screenlockdemo` 命令存在 - [ ] 桌面文件已安装 ### 依赖验证 ```bash # 检查库依赖 ldd /opt/screenlockdemo/bin/ScreenLockDemo ``` - [ ] 所有依赖都能找到(not found = 0) - [ ] Qt 库指向 `/opt/screenlockdemo/lib/` - [ ] 系统库正确链接 --- ## 🚀 功能测试 ### 启动测试 - [ ] 命令行启动:`screenlockdemo` 成功 - [ ] 直接运行:`/opt/screenlockdemo/screenlockdemo.sh` 成功 - [ ] 无错误信息,无崩溃 - [ ] 窗口正常显示 ### 界面测试 - [ ] 主窗口正常显示 - [ ] 动画正常播放(旋转圆圈、波浪效果) - [ ] 状态信息显示正确 - [ ] 按钮响应正常 ### 功能测试 - [ ] **锁屏检测**:锁定屏幕(Ctrl+Alt+L) - [ ] 检测器状态显示正常 - [ ] 屏幕锁定状态显示为 "🔒 LOCKED" - [ ] 动画自动停止(Paint 事件禁用) - [ ] **解锁检测**:解锁屏幕 - [ ] 屏幕锁定状态显示为 "🔓 UNLOCKED" - [ ] 动画自动恢复(Paint 事件启用) - [ ] **手动控制** - [ ] "Disable Painting" 按钮可以停止动画 - [ ] "Enable Painting" 按钮可以恢复动画 - [ ] "Reset Frame Count" 按钮可以重置计数器 - [ ] **帧数统计**:计数器正常工作 ### DBus 连接测试 ```bash # 查看程序输出 screenlockdemo 2>&1 | grep -i "dbus\|screensaver\|connected" ``` - [ ] 至少一个 DBus 接口连接成功 - [ ] GNOME ScreenSaver 或 systemd-logind 连接正常 - [ ] 无致命错误 ### 应用菜单测试 - [ ] 在应用程序菜单中可以找到 "Screen Lock Demo" - [ ] 图标显示正常(或默认图标) - [ ] 从菜单启动成功 --- ## 🖼️ 界面测试 ### 桌面集成 - [ ] 桌面快捷方式可用 - [ ] 应用图标显示(更新图标缓存:`sudo gtk-update-icon-cache -f /usr/share/icons/hicolor`) - [ ] 窗口标题正确 - [ ] 任务栏图标正确 --- ## 🔄 卸载测试 ### 卸载 ```bash sudo dpkg -r screenlockdemo ``` - [ ] 卸载成功,无错误 - [ ] `/opt/screenlockdemo/` 已删除 - [ ] `/usr/bin/screenlockdemo` 已删除 - [ ] 桌面文件已删除 - [ ] 图标已删除 ### 清理验证 ```bash # 检查残留文件 ls -la /opt/screenlockdemo/ ls -la /usr/bin/screenlockdemo ``` - [ ] 无残留文件 - [ ] 应用菜单中已移除 --- ## 🌍 兼容性测试 ### 不同 Ubuntu 版本 - [ ] Ubuntu 18.04 LTS - [ ] Ubuntu 20.04 LTS - [ ] Ubuntu 22.04 LTS - [ ] Ubuntu 23.10 / 24.04 ### 不同桌面环境 - [ ] GNOME - [ ] KDE Plasma - [ ] XFCE - [ ] Unity(如适用) ### 架构 - [ ] x86_64 (amd64) - [ ] 其他架构(如需要) --- ## 📊 性能测试 ### 资源占用 ```bash # 监控资源使用 top -p $(pgrep ScreenLockDemo) ``` - [ ] CPU 使用率合理(空闲时 < 5%,动画时 < 20%) - [ ] 内存使用合理(< 100MB) - [ ] 无内存泄漏(长时间运行) ### 稳定性 - [ ] 运行 1 小时无崩溃 - [ ] 多次锁屏/解锁循环测试(> 10 次) - [ ] 快速锁定/解锁测试 - [ ] 无僵死进程 --- ## 📦 包质量检查 ### 包大小 ```bash du -h deb_package/screenlockdemo_1.0.0_amd64.deb ``` - [ ] 包大小合理(通常 50-80MB) - [ ] 如需优化,考虑 strip 符号 ### 包结构 ```bash # 检查 Lintian(Debian 包检查工具) lintian deb_package/screenlockdemo_1.0.0_amd64.deb ``` - [ ] 无严重错误(E:) - [ ] 警告(W:)可接受 - [ ] 信息(I:)已知晓 ### 元数据 - [ ] 包名称正确:`screenlockdemo` - [ ] 版本号正确:`1.0.0` - [ ] 架构正确:`amd64` - [ ] 维护者信息完整 - [ ] 描述清晰准确 - [ ] 依赖列表正确 --- ## 📝 文档检查 ### 用户文档 - [ ] README.md 完整且最新 - [ ] DEB_PACKAGE.md 说明清晰 - [ ] PACKAGING_README.md 快速入门完整 ### 技术文档 - [ ] 打包脚本有注释 - [ ] desktop 文件配置正确 - [ ] control 文件信息准确 --- ## 🚢 发布准备 ### 最终检查 - [ ] 所有功能正常 - [ ] 无已知 bug - [ ] 文档完整 - [ ] 版本号正确 - [ ] changelog 已更新 ### 发布材料 - [ ] DEB 包文件 - [ ] 校验和(MD5/SHA256) ```bash md5sum deb_package/screenlockdemo_1.0.0_amd64.deb sha256sum deb_package/screenlockdemo_1.0.0_amd64.deb ``` - [ ] 安装说明 - [ ] 发布说明 - [ ] 已知问题列表(如有) --- ## ✅ 最终确认 在发布前,确认以下声明: - [ ] ✓ 我已在测试环境中完整安装并测试了 DEB 包 - [ ] ✓ 所有核心功能都经过验证并正常工作 - [ ] ✓ 包可以正常安装和卸载,无残留 - [ ] ✓ 至少在一个目标 Ubuntu 版本上测试通过 - [ ] ✓ 文档准确反映了当前版本的功能 - [ ] ✓ 版本号和 changelog 已更新 - [ ] ✓ 无已知的严重 bug --- ## 📞 问题跟踪 如果发现问题,记录以下信息: - 问题描述: - 重现步骤: - 系统环境: - 错误信息: - 解决方案: --- ## 🎯 快速命令参考 ```bash # 打包 ./make_deb.sh # 查看包信息 dpkg -I deb_package/screenlockdemo_1.0.0_amd64.deb dpkg -c deb_package/screenlockdemo_1.0.0_amd64.deb # 安装 sudo dpkg -i deb_package/screenlockdemo_1.0.0_amd64.deb sudo apt-get install -f # 如有依赖问题 # 测试 screenlockdemo ldd /opt/screenlockdemo/bin/ScreenLockDemo # 卸载 sudo dpkg -r screenlockdemo # 校验和 md5sum deb_package/screenlockdemo_1.0.0_amd64.deb sha256sum deb_package/screenlockdemo_1.0.0_amd64.deb ``` --- **检查完成日期**: ___________ **测试人员**: ___________ **版本号**: ___________ **测试环境**: ___________ **结果**: □ 通过 □ 失败 □ 有条件通过 **备注**: