Files
smarttms-mysql-rpm-build/build-smarttms-mysql-rpm.sh
2025-12-06 05:26:16 +08:00

37 lines
1.4 KiB
Bash

#!/bin/bash
set -e # 任何命令失败时立即退出
echo "--- 开始构建 RPM 包 ---"
# 1. 获取脚本自身的绝对路径
# SCRIPT_PATH 是脚本的完整路径 (例如: /home/smart/smarttms-rpm-build/smarttms-rpm-build.sh)
SCRIPT_PATH=$(readlink -f "${BASH_SOURCE[0]}")
# PROJECT_ROOT 是脚本所在的目录,也是整个项目的根目录 (例如: /home/smart/smarttms-rpm-build)
PROJECT_ROOT=$(dirname "$SCRIPT_PATH")
# 2. 根据项目根目录确定 rpmbuild 的顶层目录
# TOP_DIR 是 rpmbuild 的根目录 (例如: /home/smart/smarttms-rpm-build/rpmbuild)
TOP_DIR="$PROJECT_ROOT/rpmbuild"
# 3. 定义其他重要目录的绝对路径
SOURCES_DIR="$TOP_DIR/SOURCES"
SPECS_DIR="$TOP_DIR/SPECS"
SPEC_FILE="$SPECS_DIR/smarttms-mysql.spec" # SPEC 文件的绝对路径
# 应用程序源代码的实际目录,它位于 SOURCES_DIR 下面
SOURCE_CODE_ORIGINAL_DIR="$SOURCES_DIR/smarttms-mysql"
echo "脚本路径: $SCRIPT_PATH"
echo "项目根目录: $PROJECT_ROOT"
echo "RPM构建顶层目录 (_topdir): $TOP_DIR"
echo "SOURCES目录: $SOURCES_DIR"
echo "SPEC文件: $SPEC_FILE"
# 9. 执行 rpmbuild
echo "执行 rpmbuild 命令..."
# 使用 --define _topdir 明确告诉 rpmbuild 它的顶层目录
rpmbuild --define "_topdir $TOP_DIR" -ba "$SPEC_FILE"
echo "--- RPM 包构建完成! ---"
echo "生成的 RPM 包在: $TOP_DIR/RPMS/"
echo "生成的 SRPM 包在: $TOP_DIR/SRPMS/"