diff options
| author | CoprDistGit <infra@openeuler.org> | 2025-12-12 02:55:35 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2025-12-12 02:55:35 +0000 |
| commit | 2503e07dc9d8091140f6b3a715800f38e0f8b447 (patch) | |
| tree | f5980519e000af8cbca1ac554b3c2341befd1129 /aops-mcp.spec | |
| parent | 36e7f0eee6bdbea33f28fe310f8b02022c1dc3b5 (diff) | |
automatic import of aops-mcpopeneuler24.03_LTS_SP2openeuler24.03_LTS_SP1openeuler24.03_LTS
Diffstat (limited to 'aops-mcp.spec')
| -rw-r--r-- | aops-mcp.spec | 102 |
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 |
