diff options
Diffstat (limited to 'kafka-mcp-server.spec')
-rw-r--r-- | kafka-mcp-server.spec | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/kafka-mcp-server.spec b/kafka-mcp-server.spec new file mode 100644 index 0000000..6b412ec --- /dev/null +++ b/kafka-mcp-server.spec @@ -0,0 +1,90 @@ +%define _unitdir /usr/lib/systemd/system + +Name: kafka-mcp-server +Version: 1.0.0 +Release: 1%{?dist} +Summary: Kafka MCP Service + +License: MulanPSL-2.0 +URL: https://gitee.com/yanzhicong/kafka-mcp-server +Source0: %{name}-%{version}.tar.gz + +%global debug_package %{nil} +%global _enable_debug_package 0 + +BuildRequires: python3-setuptools +BuildRequires: python3-pip + +Requires: python3 + +%description +Kafka MCP Service packaged as RPM. + +%prep +%setup -q + +%build +# 创建虚拟环境 +%{__python3} -m venv %{_builddir}/%{name}-%{version}/venv + +# 激活虚拟环境并安装依赖 +source %{_builddir}/%{name}-%{version}/venv/bin/activate +pip install . -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple +deactivate +rm -rf %{_builddir}/%{name}-%{version}/build + +%install +rm -rf %{buildroot} + +# 创建应用目录 +mkdir -p %{buildroot}/opt/%{name} + +# 复制整个项目(包括虚拟环境) +cp -r %{_builddir}/%{name}-%{version}/venv %{buildroot}/opt/%{name}/ + +find %{buildroot}/opt/%{name}/venv/bin -type f -exec \ + sed -i "1s|^#!.*|#!/opt/%{name}/venv/bin/python|" {} \; + +# 复制 systemd 服务文件 +mkdir -p %{buildroot}%{_unitdir} +install -m 644 kafka-mcp-server.service %{buildroot}%{_unitdir}/ + +# 创建可执行文件符号链接 +mkdir -p %{buildroot}%{_bindir} +ln -s /opt/%{name}/venv/bin/kafka-mcp-server %{buildroot}%{_bindir}/kafka-mcp-server + +# 复制 env 配置文件 +mkdir -p %{buildroot}/etc/kafka-mcp-server +install -m 644 env.example %{buildroot}/etc/kafka-mcp-server/env + +%post +# systemd 配置 +if [ $1 -eq 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then + # Initial installation + /usr/lib/systemd/systemd-update-helper install-system-units kafka-mcp-server.service || : +fi + +%preun +# 卸载前停止服务 +if [ $1 -eq 0 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then + # Package removal, not upgrade + /usr/lib/systemd/systemd-update-helper remove-system-units kafka-mcp-server.service || : +fi + +%postun +# 清理配置 +if [ $1 -ge 1 ] && [ -x "/usr/lib/systemd/systemd-update-helper" ]; then + # Package upgrade, not uninstall + /usr/bin/systemctl try-restart kafka-mcp-server.service || : +fi + +%files +%dir /opt/%{name} +/opt/%{name}/* +%{_bindir}/kafka-mcp-server +%{_unitdir}/kafka-mcp-server.service +%config(noreplace) /etc/kafka-mcp-server/env + +%changelog +* Tue Sep 16 2025 Yanzhicong <mryanzhicong@163.com> - 1.0.0-1 +- Initial package |