3 Star 4 Fork 4

OpenCloudOS Stream / oc-hct

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
hct.spec 7.35 KB
一键复制 编辑 原始数据 按行查看 历史
deshengwu 提交于 2022-12-15 17:21 . 增加编译做包的支持
################################################################################
### 说明:
# 1、为了消除告警“warning: Macro expanded in comment”,注释中的宏用%%替代%
################################################################################
### 【可选】自定义宏段
# 自定义了一个宏,名字为macro_name,值为macro_value,通过%%{macro_name}引用
# %%define macro_name macro_value
# 常用宏,下面文件中路径尽量使用宏
# %%{_sysconfdir} /etc
# %%{_prefix} /usr
# %%{_exec_prefix} %%{_prefix}
# %%{_bindir} %%{_exec_prefix}/bin
# %%{_libdir} %%{_exec_prefix}/%%{_lib}
# %%{_libexecdir} %%{_exec_prefix}/libexec
# %%{_sbindir} %%{_exec_prefix}/sbin
# %%{_sharedstatedir} /var/lib
# %%{_datarootdir} %%{_prefix}/share
# %%{_datadir} %%{_datarootdir}
# %%{_includedir} %%{_prefix}/include
# %%{_infodir} /usr/share/info
# %%{_mandir} /usr/share/man
# %%{_localstatedir} /var
# %%{_initddir} %%{_sysconfdir}/rc.d/init.d
# %%{_var} /var
# %%{_tmppath} %%{_var}/tmp
# %%{_usr} /usr
# %%{_usrsrc} %%{_usr}/src
# %%{_lib} lib (lib64 on 64bit multilib systems)
# %%{_docdir} %%{_datadir}/doc
# %%{buildroot} %%{_buildrootdir}/%%{name}-%%{version}-%%{release}.%%{_arch}
# 禁止修改shebang
%global __brp_mangle_shebangs %{nil}
# 使用Python3
%global __python /usr/bin/python3
################################################################################
### 软件包介绍
# 软件包名字
Name: oc-hct
# 软件包版本
Version: 1.0.0
# 软件包构建号,每次制作rpm包时递增该数字
Release: 1%{?dist}
# 软件包简介
Summary: OpenCloudOS Hardware Compatibility Testing
# 程序组名,可以从下面列表中选择合适的组名
Group: Development/Tools
# Group 说明
# ---------------------------------------------------
# Amusements/Games 娱乐/游戏
# Amusements/Graphics 娱乐/图形
# Applications/Archiving 应用/文档
# Applications/Communications 应用/通讯
# Applications/Databases 应用/数据库
# Applications/Editors 应用/编辑器
# Applications/Emulators 应用/仿真器
# Applications/Engineering 应用/工程
# Applications/File 应用/文件
# Applications/Internet 应用/因特网
# Applications/Multimedia 应用/多媒体
# Applications/Productivity 应用/产品
# Applications/Publishing 应用/印刷
# Applications/System 应用/系统
# Applications/Text 应用/文本
# Development/Debuggers 开发/调试器
# Development/Languages 开发/语言
# Development/Libraries 开发/函数库
# Development/System 开发/系统
# Development/Tools 开发/工具
# Documentation 文档
# System Environment/Base 系统环境/基础
# System Environment/Daemons 系统环境/守护
# System Environment/Kernel 系统环境/内核
# System Environment/Libraries 系统环境/函数库
# System Environment/Shells 系统环境/接口
# User Interface/Desktops 用户界面/桌面
# User Interface/X Hardware Support 用户界面/X硬件支持
# User Interface/X 用户界面/X窗口
# 软件许可
License: BSD
# 一般写软件官网
URL: tencent.com
# 软件包制作者
Packager: OpenCloudOS
# 软件包提供者
Vendor: OpenCloudOS
# 编译的目标处理器架构,可指定为noarch,不指定时跟随系统
# BuildArch: noarch
# 将rpm包安装到指定目录
# Prefix: %%{_prefix}
# 软件包源码文件,可以用宏表示,也可以直接写名字
# Source0: %%{name}-%%{version}.tar.gz
# 软件包源码补丁
# patch0: x.patch
# 安装(make install)后文件路径,制作rpm包时会打包该目录下文件
BuildRoot: %{_topdir}/BUILDROOT
# 制作过程中用到的软件包
# BuildRequires: bash,python3 >= 3.6.0
# 软件运行需要的软件包,也可以指定最低版本如 python >= 3.6
# Requires: bash,python3 >= 3.6.0
# 是否自动查找软件所需的共享库。当值为no时不执行find-requires程序
# Autoreq: no
# 是否自动查找软件所需的共享库。当值为no时不执行find-provides程序
# Autoprov: no
# 是否自动查找软件所需的共享库与其提供的共享库
AutoReqProv: no
# 软件包详细信息
%description
OpenCloudOS Hardware Compatibility Testing
################################################################################
### 编译准备(tar xf、patch)
# 从这个宏开始
%prep
# echo "prep in $(pwd): $0 $*"
# 宏的作用是解压并切换到目录
# %setup -q
# 打补丁
# %patch0 -p1
cp -vfr %{_topdir}/SOURCES/* %{_topdir}/BUILD
rm -rfv %{_topdir}/BUILD/tst_common/.git*
################################################################################
### 编译(configure、make)
# 从这个宏开始
%build
# echo "build in $(pwd): $0 $*"
# ./configure
# make时如果是多核系统就并行编译
make %{?_smp_mflags}
################################################################################
### 安装(make install)
# 从这个宏开始
%install
# echo "install in $(pwd): $0 $*"
if [ -d %{buildroot} ]; then
rm -rfv %{buildroot}
fi
mkdir -pv %{buildroot}/var/lib/oc-hct
# DESTDIR指定编译安装(make install)的目录,而不是真实的rpm安装目录
# make install DESTDIR=%{buildroot}
cp -vfr %{_topdir}/BUILD/* %{buildroot}/var/lib/oc-hct/
# rm -rfv %{_topdir}/BUILD/*
################################################################################
### 【可选】指定rpm安装卸载时要执行的脚本
# 在事务开始时执行脚本
%pretrans
# echo "pretrans in $(pwd): $0 $*"
# rpm安装前执行的脚本
%pre
# $1 == 1代表安装,2代表升级,0代表卸载
# echo "pre in $(pwd): $0 $*"
# rpm安装后执行的脚本
%post
# echo "post in $(pwd): $0 $*"
rm -rf /var/lib/oc-hct/tsuite
cd "/var/lib/oc-hct/" && ln -s ./tst_common/tsuite ./tsuite
ln -s /var/lib/oc-hct/oc-hct /usr/local/bin/oc-hct
# 在事务结束时执行脚本
%posttrans
# echo "posttrans in $(pwd): $0 $*"
# rpm卸载前执行的脚本
%preun
# echo "preun in $(pwd): $0 $*"
# rpm卸载后执行的脚本
%postun
# echo "postun in $(pwd): $0 $*"
rm -rf /var/lib/oc-hct /usr/local/bin/oc-hct
################################################################################
### 清理(make clean)
# 从这个宏开始
%clean
echo "clean in $(pwd): $0 $*"
if [ -d %{buildroot} ]; then
rm -rfv %{buildroot}
fi
################################################################################
### rpm要包含的文件
%files
#设定默认权限,如果下面没有指定权限,则继承默认
%defattr (-,root,root,0755)
# 表明是配置文件,noreplace表示不能替换文件
# %config(noreplace) /etc/tst-tools.conf
# 表明这个是文档
# %doc /usr/share/doc/ChangeLog
# 设置文件属性,分别是权限,属主,属组
# %attr(644, root, root) /path/to/file
/var/lib/oc-hct/*
################################################################################
### 变更日志
%changelog
* Sun Jun 20 2022 deshengwu <deshengwu@tencent.com> - 1.0.0
- Initial version
Shell
1
https://gitee.com/opencloudos-stream/oc-hct.git
git@gitee.com:opencloudos-stream/oc-hct.git
opencloudos-stream
oc-hct
oc-hct
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891