百度网盘的 linux 端实现需要一个 python3-keyring 包。在本地打包没有任何问题。brp-check-suse 检查输出的都是老样子:3 个 menu 文件不存在;使用 rpmlint 检查软件包也只输出一个 changelog 的 error,而 changelog 我已经放在 python3-keyring.changes 中了,所以可以认为检查没有错误。
但是在 obs 上编译时,error 如下:
File not found by glob: /home/abuild/rpmbuild/BUILDROOT/python3-keyring-3.7-7.1.x86_64/usr/bin/*
python3-keyring 在安装时会在 /usr/bin/ 目录下生成一个文件 keyring,实际在本地打包时也能在 %{buildroot}%{_bindir}/ 目录中找到
spec 文件中 %build 和 %install 以及 %files,还有一些相关字段如下:
BuildArch: noarch
%build
python3 setup.py build
%install
python3 setup.py install --prefix=%{_prefix} --root=%{buildroot}
# fix non-executable-script issues
chmod a+x %{buildroot}%{python3_sitelib}/keyring/cli.py
%files
%defattr(-,root,root)
%doc CHANGES.rst README.rst CONTRIBUTORS.txt
%{python3_sitelib}/*
%{_bindir}/*
%exclude %{python3_sitelib}/keyring/__pycache__
剩下的都是一些 Requires、summary 之类的无关紧要的描述,无脚本包含。
现在就想请问一下这个错误是怎么引起的?是否 spec 文件有写的不对的地方?
因为是首次接触对于 python 的打包,所以可能有些许错误,多多包含啦~~~
==================================================================
今天已经解决了。一行一行的对比编译日志,发现犯了一个很搞笑的错误:BuildRequires 里没有包含 python3-setuptools。没有这个包 python 编译时就不会执行 install_scripts,自然在 /usr/bin 下就没有可执行文件了。
感谢(女王大人?)的回复及提醒