mirror of
https://gitcode.com/JianFeeeee/HomeAgent.git
synced 2026-09-24 19:08:10 +00:00
feat: Linux packaging, SDK v0.7.1, fix rawmode conflict
- go.mod: SDK pseudo-version -> v0.7.1 (remote tag), go.sum updated - cmd/waiter/rawmode_linux.go: remove (conflicts with raw_unix.go) - cmd/gui/package.json: add rpm/AppImage Linux targets - package/package-linux.sh: cross-distro packaging script (deb/tar.gz/rpm) - package/linux/: DEBIAN control files, postinst/prerm, RPM spec
This commit is contained in:
18
package/linux/deb/control-client
Normal file
18
package/linux/deb/control-client
Normal file
@ -0,0 +1,18 @@
|
||||
Package: homeagent-client
|
||||
Version: VERSION_PLACEHOLDER
|
||||
Architecture: ARCH_PLACEHOLDER
|
||||
Maintainer: HomeAgent Team <team@homeagent.ai>
|
||||
Installed-Size: INSTALLED_SIZE_PLACEHOLDER
|
||||
Depends: libc6 (>= 2.28)
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Homepage: https://github.com/trueagent/HomeAgent
|
||||
Description: HomeAgent Client (CLI + GUI, no daemon)
|
||||
HomeAgent is a personal AI home assistant that integrates
|
||||
large language models with system automation.
|
||||
.
|
||||
This package includes the client components:
|
||||
- waiter: command-line client
|
||||
- homeagent-gui: desktop graphical interface
|
||||
.
|
||||
This variant connects to a remote HomeAgent server.
|
||||
17
package/linux/deb/control-full
Normal file
17
package/linux/deb/control-full
Normal file
@ -0,0 +1,17 @@
|
||||
Package: homeagent-full
|
||||
Version: VERSION_PLACEHOLDER
|
||||
Architecture: ARCH_PLACEHOLDER
|
||||
Maintainer: HomeAgent Team <team@homeagent.ai>
|
||||
Installed-Size: INSTALLED_SIZE_PLACEHOLDER
|
||||
Depends: libc6 (>= 2.28)
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Homepage: https://github.com/trueagent/HomeAgent
|
||||
Description: HomeAgent Full Installation (Daemon + CLI + GUI)
|
||||
HomeAgent is a personal AI home assistant that integrates
|
||||
large language models with system automation.
|
||||
.
|
||||
This package includes the full suite:
|
||||
- homed: the core daemon (background service)
|
||||
- waiter: command-line client
|
||||
- homeagent-gui: desktop graphical interface
|
||||
16
package/linux/deb/control-server
Normal file
16
package/linux/deb/control-server
Normal file
@ -0,0 +1,16 @@
|
||||
Package: homeagent-server
|
||||
Version: VERSION_PLACEHOLDER
|
||||
Architecture: ARCH_PLACEHOLDER
|
||||
Maintainer: HomeAgent Team <team@homeagent.ai>
|
||||
Installed-Size: INSTALLED_SIZE_PLACEHOLDER
|
||||
Depends: libc6 (>= 2.28)
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Homepage: https://github.com/trueagent/HomeAgent
|
||||
Description: HomeAgent Server (Daemon + CLI, no GUI)
|
||||
HomeAgent is a personal AI home assistant that integrates
|
||||
large language models with system automation.
|
||||
.
|
||||
This package includes the server components:
|
||||
- homed: the core daemon (background service)
|
||||
- waiter: command-line client
|
||||
25
package/linux/deb/postinst
Executable file
25
package/linux/deb/postinst
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
SERVICE_NAME="homeagent"
|
||||
SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
|
||||
HOMED_BIN="/usr/bin/homed"
|
||||
DATA_DIR="/var/lib/homeagent"
|
||||
|
||||
case "$1" in
|
||||
configure)
|
||||
if [ -f "$HOMED_BIN" ]; then
|
||||
mkdir -p "$DATA_DIR"
|
||||
|
||||
if [ -f "$SERVICE_FILE" ]; then
|
||||
systemctl daemon-reload 2>/dev/null || true
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
19
package/linux/deb/prerm
Executable file
19
package/linux/deb/prerm
Executable file
@ -0,0 +1,19 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
SERVICE_NAME="homeagent"
|
||||
|
||||
case "$1" in
|
||||
remove|deconfigure)
|
||||
if command -v systemctl >/dev/null 2>&1; then
|
||||
systemctl stop "$SERVICE_NAME" 2>/dev/null || true
|
||||
systemctl disable "$SERVICE_NAME" 2>/dev/null || true
|
||||
fi
|
||||
;;
|
||||
upgrade)
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
111
package/linux/homeagent.spec
Normal file
111
package/linux/homeagent.spec
Normal file
@ -0,0 +1,111 @@
|
||||
# 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
|
||||
|
||||
%if "%{variant}" == "full" || "%{variant}" == "client"
|
||||
install -m 755 %{_sourcedir}/waiter %{buildroot}%{_bindir}/waiter
|
||||
%endif
|
||||
|
||||
%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
|
||||
|
||||
%if "%{variant}" == "full" || "%{variant}" == "client"
|
||||
%{_bindir}/waiter
|
||||
%endif
|
||||
|
||||
%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
|
||||
Reference in New Issue
Block a user