mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-21 17:38:10 +00:00
README/架构文档仍在描述 C ABI 动态库加载,与 v1.0.0 实际实现不符。
新用户按文档走会去做 -buildmode=c-shared,产物新内核根本不加载。
README.md / README_EN.md:
- 设计要点补子进程架构段(三面通信、崩溃自愈、真热重载)
- 代码结构 plugin/ 描述:.so 动态加载器 → 子进程加载器
- 项目状态补 v1.0.0 条目(6 类缺陷 + 实测数字),v0.9.0 标注 ABI 已退场
- 新增「下载」章节:三变体对照 + 各平台包格式 + macOS 限制
assets/docs/{zh,en}/ARCHITECTURE.md:
- 四种加载方式表:外部 .so/C ABI → 外部子进程/握手+stdio JSON-RPC
- 加载流程改写为 exec.Command → 继承 fd → 握手 → init → start
- 内置 vs 外部对照表 7 行更新
- 新增「子进程插件的三个通信面」小节,含每个面的选择理由
assets/docs/{zh,en}/OVERVIEW.md:插件系统段落改写
deploy/ 发布脚本三处回归(v0.7.2 的 2c5f9ff 把 package/ 移到
deploy/packaging/ 使目录深度 1→2,但没改相对路径,此后两个版本
的发布都没有二进制资产):
- build.sh:.syso 按目标平台 hide/restore(trap 兜底),恢复
windows 目标的 CXX,arm64 刻意不带 CXX
- installer.nsi:5 处 ..\build → ..\..\build,PRODUCT_VERSION 可注入
(原先硬编码 0.8.0)
- homeagent.spec:server 变体补装 waiter(control-server 声明了 CLI 却没装)
deploy/scripts/upload_assets.py:release 资产上传(两步签名 URL → OBS
PUT)。放 deploy/scripts/ 而非 scripts/,因为后者在 .gitignore 里。
支持 GITCODE_REPO/ASSET_DIR 环境变量以复用于 SDK 仓。
110 lines
3.1 KiB
RPMSpec
110 lines
3.1 KiB
RPMSpec
# HomeAgent RPM Spec
|
||
# Build: rpmbuild -ba homeagent.spec
|
||
#
|
||
# Define variant at build time:
|
||
# rpmbuild -ba --define "variant full" homeagent.spec
|
||
# rpmbuild -ba --define "variant server" homeagent.spec
|
||
# rpmbuild -ba --define "variant client" homeagent.spec
|
||
|
||
%define _prefix /usr
|
||
%define _bindir %{_prefix}/bin
|
||
%define _unitdir %{_prefix}/lib/systemd/system
|
||
%define _datadir %{_prefix}/share/homeagent
|
||
%define _varlibdir /var/lib/homeagent
|
||
|
||
%if %{undefined variant}
|
||
%define variant full
|
||
%endif
|
||
|
||
Name: homeagent-%{variant}
|
||
Version: %{_version}
|
||
Release: 1%{?dist}
|
||
Summary: HomeAgent - Personal AI Home Assistant
|
||
License: Proprietary
|
||
URL: https://github.com/trueagent/HomeAgent
|
||
Group: System Environment/Daemons
|
||
BuildArch: %{_arch}
|
||
|
||
%if "%{variant}" == "full" || "%{variant}" == "server"
|
||
Requires: systemd
|
||
%endif
|
||
%if "%{variant}" == "full"
|
||
Requires: libX11, libxcb, libdrm, mesa-libGL, nss, nspr, atk, at-spi2-atk, cairo, cups-libs, pango, gtk3
|
||
%endif
|
||
%if "%{variant}" == "client"
|
||
Requires: libX11, libxcb, libdrm, mesa-libGL, nss, nspr, atk, at-spi2-atk, cairo, cups-libs, pango, gtk3
|
||
%endif
|
||
|
||
%description
|
||
HomeAgent is a personal AI home assistant that integrates large language
|
||
models with system automation.
|
||
|
||
%if "%{variant}" == "full"
|
||
This package includes the full suite: homed (daemon), waiter (CLI),
|
||
and homeagent-gui (desktop GUI).
|
||
%else
|
||
%if "%{variant}" == "server"
|
||
This package includes the server components: homed (daemon) and waiter (CLI).
|
||
%else
|
||
%if "%{variant}" == "client"
|
||
This package includes the client components: waiter (CLI) and
|
||
homeagent-gui (desktop GUI). Connects to a remote HomeAgent server.
|
||
%endif
|
||
%endif
|
||
%endif
|
||
|
||
%install
|
||
mkdir -p %{buildroot}%{_bindir}
|
||
mkdir -p %{buildroot}%{_unitdir}
|
||
mkdir -p %{buildroot}%{_varlibdir}
|
||
|
||
%if "%{variant}" == "full" || "%{variant}" == "server"
|
||
install -m 755 %{_sourcedir}/homed %{buildroot}%{_bindir}/homed
|
||
install -m 644 %{_sourcedir}/homeagent.service %{buildroot}%{_unitdir}/homeagent.service
|
||
%endif
|
||
|
||
# waiter 三个变体都要:server 也含 CLI(对齐 deb 的 stage_variant
|
||
# 与 control-server 的 "waiter: command-line client" 描述)。
|
||
install -m 755 %{_sourcedir}/waiter %{buildroot}%{_bindir}/waiter
|
||
|
||
%if "%{variant}" == "full" || "%{variant}" == "client"
|
||
mkdir -p %{buildroot}%{_datadir}/homeagent-gui
|
||
cp -r %{_sourcedir}/homeagent-gui-linux-*/* %{buildroot}%{_datadir}/homeagent-gui/
|
||
%endif
|
||
|
||
%files
|
||
%defattr(-,root,root,-)
|
||
|
||
%if "%{variant}" == "full" || "%{variant}" == "server"
|
||
%{_bindir}/homed
|
||
%{_unitdir}/homeagent.service
|
||
%dir %{_varlibdir}
|
||
%endif
|
||
|
||
%{_bindir}/waiter
|
||
|
||
%if "%{variant}" == "full" || "%{variant}" == "client"
|
||
%dir %{_datadir}/homeagent-gui
|
||
%{_datadir}/homeagent-gui/*
|
||
%endif
|
||
|
||
%post
|
||
%if "%{variant}" == "full" || "%{variant}" == "server"
|
||
mkdir -p %{_varlibdir}
|
||
%systemd_post homeagent.service
|
||
%endif
|
||
|
||
%preun
|
||
%if "%{variant}" == "full" || "%{variant}" == "server"
|
||
%systemd_preun homeagent.service
|
||
%endif
|
||
|
||
%postun
|
||
%if "%{variant}" == "full" || "%{variant}" == "server"
|
||
%systemd_postun_with_restart homeagent.service
|
||
%endif
|
||
|
||
%changelog
|
||
* Mon Jul 20 2026 HomeAgent Team <team@homeagent.ai> - %{version}-1
|
||
- Initial Linux packaging
|