summaryrefslogtreecommitdiff
path: root/aops-mcp.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2025-12-12 02:55:35 +0000
committerCoprDistGit <infra@openeuler.org>2025-12-12 02:55:35 +0000
commit2503e07dc9d8091140f6b3a715800f38e0f8b447 (patch)
treef5980519e000af8cbca1ac554b3c2341befd1129 /aops-mcp.spec
parent36e7f0eee6bdbea33f28fe310f8b02022c1dc3b5 (diff)
Diffstat (limited to 'aops-mcp.spec')
-rw-r--r--aops-mcp.spec102
1 files changed, 102 insertions, 0 deletions
diff --git a/aops-mcp.spec b/aops-mcp.spec
new file mode 100644
index 0000000..58922ad
--- /dev/null
+++ b/aops-mcp.spec
@@ -0,0 +1,102 @@
+%define dist_tag %(sed -n 's/.*release \\([0-9]*\\)\.\\([0-9]*\\).*[Ss][Pp]\\([0-9]*\\).*/oe\\1\\2sp\\3/p; t; s/.*release \\([0-9]*\\)\.\\([0-9]*\\).*/oe\\1\\2/p' /etc/openEuler-release)
+%global _unitdir /usr/lib/systemd/system
+
+Name: aops-mcp
+Version: 1.0.0
+Release: 1.%{?dist_tag}
+Summary: Aops MCP Service
+
+License: MulanPSL-2.0
+URL: https://gitee.com/Victeo/AOPS_MCP_Server
+Source0: %{name}-%{version}.tar.gz
+
+%global debug_package %{nil}
+%global _enable_debug_package 0
+
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+Requires: python3
+Requires: systemd
+
+%description
+Aops MCP Service packaged as RPM.
+
+%prep
+%setup -q
+
+%build
+# 创建构建目录
+mkdir -p %{_builddir}/%{name}-build
+
+# 创建虚拟环境
+python3 -m venv %{_builddir}/%{name}-build/venv
+
+# 激活虚拟环境并安装依赖
+source %{_builddir}/%{name}-build/venv/bin/activate
+pip install --upgrade pip -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
+pip install . -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
+deactivate
+
+# 修复虚拟环境中的shebang
+find %{_builddir}/%{name}-build/venv/bin -type f -name "*.py" -exec \
+ sed -i "1s|^#!.*|#!%{_builddir}/%{name}-build/venv/bin/python|" {} \;
+
+# 检查主要的可执行文件是否存在
+if [ ! -f "%{_builddir}/%{name}-build/venv/bin/aops-mcp" ]; then
+ echo "错误: aops-mcp 可执行文件未在虚拟环境中找到"
+ echo "虚拟环境中的文件:"
+ ls -la "%{_builddir}/%{name}-build/venv/bin/"
+ exit 1
+fi
+
+%install
+rm -rf %{buildroot}
+
+# 创建应用目录结构
+mkdir -p %{buildroot}/opt/%{name}
+mkdir -p %{buildroot}%{_unitdir}
+mkdir -p %{buildroot}%{_bindir}
+
+# 复制虚拟环境到目标位置
+cp -r %{_builddir}/%{name}-build/venv %{buildroot}/opt/%{name}/
+
+# 再次修复目标位置的shebang
+find %{buildroot}/opt/%{name}/venv/bin -type f -exec \
+ grep -l "^#!" {} \; | xargs sed -i "1s|^#!.*|#!/opt/%{name}/venv/bin/python|"
+
+# 确保可执行文件有正确权限
+chmod 755 %{buildroot}/opt/%{name}/venv/bin/aops-mcp
+
+# 安装systemd服务文件
+install -m 644 aops-mcp.service %{buildroot}%{_unitdir}/
+
+# 创建符号链接到/usr/bin
+ln -sf /opt/%{name}/venv/bin/aops-mcp %{buildroot}%{_bindir}/aops-mcp
+
+# 创建日志和运行目录(如果需要)
+mkdir -p %{buildroot}/var/log/%{name}
+mkdir -p %{buildroot}/var/run/%{name}
+
+%pre
+# 安装前脚本 - 创建必要的用户和组(如果需要)
+# getent group aops >/dev/null 2>&1 || groupadd -r aops
+# getent passwd aops >/dev/null 2>&1 || useradd -r -g aops -s /sbin/nologin -d /opt/%{name} aops
+
+# 设置目录权限(如果需要特定用户)
+# chown -R aops:aops /opt/%{name}
+# chown -R aops:aops /var/log/%{name}
+# chown -R aops:aops /var/run/%{name}
+
+%files
+%defattr(-,root,root,-)
+%doc README.md LICENSE
+%dir /opt/%{name}
+/opt/%{name}/venv/
+%{_bindir}/aops-mcp
+%{_unitdir}/aops-mcp.service
+%dir /var/log/%{name}
+%dir /var/run/%{name}
+
+%changelog
+* Tue Sep 16 2025 ShiLei <845621916@qq.com> - 1.0.0-1
+- Initial package