diff --git a/README.en.md b/README.en.md deleted file mode 100644 index bee8b3653feb6c487dd9a599578a06f9efa01fba..0000000000000000000000000000000000000000 --- a/README.en.md +++ /dev/null @@ -1,36 +0,0 @@ -# spdk - -#### Description -The Storage Performance Development Kit (SPDK) provides a set of tools and libraries for writing high performance, scalable, user-mode storage applications. It achieves high performance by moving all of the necessary drivers into userspace and operating in a polled mode instead of relying on interrupts, which avoids kernel context switches and eliminates interrupt handling overhead. - -#### Software Architecture -Software architecture description - -#### Installation - -1. xxxx -2. xxxx -3. xxxx - -#### Instructions - -1. xxxx -2. xxxx -3. xxxx - -#### Contribution - -1. Fork the repository -2. Create Feat_xxx branch -3. Commit your code -4. Create Pull Request - - -#### Gitee Feature - -1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md -2. Gitee blog [blog.gitee.com](https://blog.gitee.com) -3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore) -4. The most valuable open source project [GVP](https://gitee.com/gvp) -5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help) -6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/README.md b/README.md deleted file mode 100644 index d2d400a8d70412f32f7066efeba48e677b4c0b2f..0000000000000000000000000000000000000000 --- a/README.md +++ /dev/null @@ -1,37 +0,0 @@ -# spdk - -#### 介绍 -The Storage Performance Development Kit (SPDK) provides a set of tools and libraries for writing high performance, scalable, user-mode storage applications. It achieves high performance by moving all of the necessary drivers into userspace and operating in a polled mode instead of relying on interrupts, which avoids kernel context switches and eliminates interrupt handling overhead. - -#### 软件架构 -软件架构说明 - - -#### 安装教程 - -1. xxxx -2. xxxx -3. xxxx - -#### 使用说明 - -1. xxxx -2. xxxx -3. xxxx - -#### 参与贡献 - -1. Fork 本仓库 -2. 新建 Feat_xxx 分支 -3. 提交代码 -4. 新建 Pull Request - - -#### 特技 - -1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md -2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) -3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 -4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 -5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) -6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/) diff --git a/spdk.spec b/spdk.spec new file mode 100644 index 0000000000000000000000000000000000000000..1a2ed4a229606959bafdefcb5283f18bb2c8aa8a --- /dev/null +++ b/spdk.spec @@ -0,0 +1,173 @@ +# Build documentation package +%bcond_with doc + +Name: spdk +Version: 20.01.1 +Release: 1 +Summary: Set of libraries and utilities for high performance user-mode storage +License: BSD +URL: http://spdk.io +Source0: https://github.com/spdk/spdk/archive/v%{version}.tar.gz + +%define package_version %{version}-%{release} + +%define install_datadir %{buildroot}/%{_datadir}/%{name} +%define install_sbindir %{buildroot}/%{_sbindir} +%define install_docdir %{buildroot}/%{_docdir}/%{name} + +# Distros that don't support python3 will use python2 +%if "%{dist}" == ".el7" +%define use_python2 1 +%else +%define use_python2 0 +%endif + +ExclusiveArch: x86_64 aarch64 + +BuildRequires: gcc gcc-c++ make +BuildRequires: dpdk-devel, numactl-devel +BuildRequires: libiscsi-devel, libaio-devel, openssl-devel, libuuid-devel +BuildRequires: libibverbs-devel, librdmacm-devel +%if %{with doc} +BuildRequires: doxygen mscgen graphviz +%endif + +%ifarch aarch64 +%global config arm64-armv8a-linux-gcc +%else +%global config x86_64-native-linux-gcc +%endif + +# Install dependencies +Requires: dpdk >= 17.11, numactl-libs, openssl-libs +Requires: libiscsi, libaio, libuuid +# NVMe over Fabrics +Requires: librdmacm, librdmacm +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig + +%description +The Storage Performance Development Kit provides a set of tools +and libraries for writing high performance, scalable, user-mode storage +applications. + + +%package devel +Summary: Storage Performance Development Kit development files +Requires: %{name}%{?_isa} = %{package_version} +Provides: %{name}-static%{?_isa} = %{package_version} + +%description devel +This package contains the headers and other files needed for +developing applications with the Storage Performance Development Kit. + + +%package tools +Summary: Storage Performance Development Kit tools files +%if "%{use_python2}" == "0" +Requires: %{name}%{?_isa} = %{package_version} python3 python3-configshell python3-pexpect +%else +Requires: %{name}%{?_isa} = %{package_version} python python-configshell pexpect +%endif +BuildArch: noarch + +%description tools +%{summary} + + +%if %{with doc} +%package doc +Summary: Storage Performance Development Kit documentation +BuildArch: noarch + +%description doc +%{summary} +%endif + + +%prep +# add -q +%autosetup -n spdk-%{version} + + +%build +./configure --prefix=%{_usr} \ + --disable-tests \ + --without-crypto \ + --with-dpdk=/usr/share/dpdk/%{config} \ + --without-fio \ + --with-vhost \ + --without-pmdk \ + --without-vpp \ + --without-rbd \ + --with-rdma \ + --with-shared \ + --with-iscsi-initiator \ + --without-vtune + +make -j`nproc` all + +%if %{with doc} +make -C doc +%endif + +%install +%make_install -j`nproc` prefix=%{_usr} libdir=%{_libdir} datadir=%{_datadir} + +# Install tools +mkdir -p %{install_datadir} +find scripts -type f -regextype egrep -regex '.*(spdkcli|rpc).*[.]py' \ + -exec cp --parents -t %{install_datadir} {} ";" + +# env is banned - replace '/usr/bin/env anything' with '/usr/bin/anything' +find %{install_datadir}/scripts -type f -regextype egrep -regex '.*([.]py|[.]sh)' \ + -exec sed -i -E '1s@#!/usr/bin/env (.*)@#!/usr/bin/\1@' {} + + +%if "%{use_python2}" == "1" +find %{install_datadir}/scripts -type f -regextype egrep -regex '.*([.]py)' \ + -exec sed -i -E '1s@#!/usr/bin/python3@#!/usr/bin/python2@' {} + +%endif + +# synlinks to tools +mkdir -p %{install_sbindir} +ln -sf -r %{install_datadir}/scripts/rpc.py %{install_sbindir}/%{name}-rpc +ln -sf -r %{install_datadir}/scripts/spdkcli.py %{install_sbindir}/%{name}-cli + +%if %{with doc} +# Install doc +mkdir -p %{install_docdir} +mv doc/output/html/ %{install_docdir} +%endif + + +%post -p /sbin/ldconfig +%postun -p /sbin/ldconfig + + +%files +%{_bindir}/spdk_* +%{_libdir}/*.so.* + + +%files devel +%{_includedir}/%{name} +%{_libdir}/*.a +%{_libdir}/*.so + + +%files tools +%{_datadir}/%{name}/scripts +%{_sbindir}/%{name}-rpc +%{_sbindir}/%{name}-cli + +%if %{with doc} +%files doc +%{_docdir}/%{name} +%endif + + +%changelog +* Sat Nov 7 2020 Feilong Lin - 20.01.1-1 +- Support aarch64 +* Tue Sep 18 2018 Pawel Wodkowski - 0:18.07-3 +- Initial RPM release diff --git a/v20.01.1.tar.gz b/v20.01.1.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..c44ad0834f0fc141f5b0b04fb915734894544495 Binary files /dev/null and b/v20.01.1.tar.gz differ