%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 - 1.0.0-1 - Initial package