Name: amber-package-manager Version: 1.3.4 Release: 5 Summary: bwrap wrapper for install and running debs inside a Amber-PM container License: Proprietary URL: https://gitee.com/amber-ce/amber-pm/ BuildArch: x86_64 Vendor: shenmo # 禁用调试包生成 %global debug_package %{nil} Source0: apm_1.3.4.0_amd64.deb Requires: bubblewrap Requires: flatpak Requires: polkit Requires: systemd Requires: (procps-ng or procps) Requires: coreutils Requires: fuse-overlayfs Requires: xz BuildRequires: dpkg Conflicts: ace-host-integration %description bwrap wrapper for install and running debs inside a Amber-PM container %prep %setup -q -c -T dpkg-deb -x %{SOURCE0} . %build # 无需编译 %install rm -rf %{buildroot} mkdir -p %{buildroot} cp -r ./* %{buildroot}/ # 删除不需要的架构二进制文件(保持整洁) rm -f %{buildroot}/var/lib/apm/apm/files/amber-ce-tools/bin-override/host-spawn-loongarch64 rm -f %{buildroot}/var/lib/apm/apm/files/amber-ce-tools/bin-override/host-spawn-aarch64 # 注意:不对 ace-run 做任何修补,保持原始文件 %post # 安装后脚本 PACKAGE_NAME="amber-package-manager" TMP_APM_DIR="/tmp/apm" # 创建 /tmp/apm 目录(用于 overlay 挂载点) if [ ! -d "$TMP_APM_DIR" ]; then mkdir -p "$TMP_APM_DIR" chmod 1777 "$TMP_APM_DIR" echo "创建 $TMP_APM_DIR 目录" fi if [ -f /var/lib/apm/apm/files/bin/ace-init ]; then /var/lib/apm/apm/files/bin/ace-init else echo "警告: ace-init 未找到,可能影响容器功能" fi # 创建 /host 符号链接(容器内访问宿主机根) if [ ! -e /host ]; then ln -sv / /host 2>/dev/null || : fi # 配置 SELinux(允许 execstack) if [ -x /usr/sbin/setsebool ] && [ -e /sys/fs/selinux ]; then setsebool selinuxuser_execstack -P 1 setsebool allow_execstack -P 1 2>/dev/null || : setsebool allow_execmem -P 1 2>/dev/null || : fi # 重新加载 systemd 并启用定时更新服务 systemctl daemon-reload systemctl enable apm-daily-update 2>/dev/null || : systemctl start apm-daily-update 2>/dev/null || : # 应用 sysctl 配置 if [ -f /usr/lib/sysctl.d/apm.conf ]; then sysctl -p /usr/lib/sysctl.d/apm.conf 2>/dev/null || : fi # 发送统计信息(后台) if [ -f /var/lib/apm/apm/files/feedback.sh ]; then /var/lib/apm/apm/files/feedback.sh & fi # 执行触发器任务 amber-pm-configure-nvidia-host 2>/dev/null || : amber-pm-dstore-patch 2>/dev/null || : echo "Amber Package Manager 安装完成。" %preun if [ $1 -eq 0 ]; then systemctl stop apm-daily-update 2>/dev/null || : systemctl disable apm-daily-update 2>/dev/null || : fi %postun if [ $1 -eq 0 ]; then echo "正在清理 amber-package-manager 系统和用户数据..." rm -rf /var/lib/apm/ 2>/dev/null || : for username in $(ls /home 2>/dev/null); do if [ -d "/home/$username/.apm/" ]; then rm -rf "/home/$username/.apm/" 2>/dev/null || : fi done echo "清理完成。" fi %files %defattr(-,root,root,-) # 配置文件 /etc/profile.d/apm.sh /etc/X11/Xsession.d/20apm /etc/apparmor.d/apm /etc/apt/sources.list.d/apm.list /etc/apt/trusted.gpg.d/apm.gpg # 可执行文件 /usr/bin/apm /usr/bin/amber-pm-* /usr/libexec/apm/apm-* # systemd 单元 /usr/lib/systemd/system/apm-daily-update.service /usr/lib/systemd/system/apm-daily-update.timer /usr/lib/systemd/system/gxde-apm-fixer.service /usr/lib/systemd/user-environment-generators/60-apm # sysctl /usr/lib/sysctl.d/apm.conf # Shell 补全 /usr/share/bash-completion/completions/apm /usr/share/zsh/site-functions/_apm # Polkit 策略 /usr/share/polkit-1/actions/store.spark-app.apm-uninstaller.policy # 图标 /usr/share/icons/apm.png # 主数据目录(递归包含所有子文件和目录) /var/lib/apm/ # 符号链接(安装时创建,这里不打包) # /host 在 %post 中创建,不属于 %files %changelog * Wed Oct 29 2025 shenmo & xmp360 & <1666451428@qq.com> - Supports the 'apm show' and 'apm list' commands - No longer unshare UTS, no longer set the hostname separately, improve compatibility - Modified the shell style within APM - The update of the software main icon and README.md was contributed by @possibleving - Update the main software icon and README.md * Mon Oct 27 2025 xmp360 <1666451428@qq.com> - 1.0.10 - Fixed Bugs * Sat Oct 25 2025 xmp360 <1666451428@qq.com> - 1.0.8 - Fixed Bugs - Added Some Egg Link For Supporters * Sun Oct 19 2025 shenmo - 1.0.5-1 - Update to version 1.0.5 - Added new files: apm-daily-update.service, bash-completion, ace-run-pkg - Fixed dpkg-deb extraction command