在我自己的机子上编译打包好好的,到了 OBS 就不行了,总是说我
。其实更难搞的是开发者的 Makefile 不太好用,sudo make install 不会复制文件到安装路径下。真是蛋疼啊。
在我自己的机子上编译打包好好的,到了 OBS 就不行了,总是说我
。其实更难搞的是开发者的 Makefile 不太好用,sudo make install 不会复制文件到安装路径下。真是蛋疼啊。
你那个是 BRP check 里的,简单说没有 RPM_OPT_FLAGS,你的软件包不可能 strip 出 -debuginfo -debugsource 软件包,这不符合 openSUSE 官方软件的规矩。所以要 play with rule
方法是
export CFLAGS="%{optflags}"
或 CXXFLAGS
另外知道我为什么拒绝你的 SR 么,因为你完全不知道 rpmlint 是什么。它是提示你所犯的常见打包错误的帮手。openSUSE:Packaging checks - openSUSE
所以是
%make_install
或
make install INSTALL_ROOT=%{buildroot}
或
make install DESTDIR=%{buildroot}
zh.opensuse.org/openSUSE:Specfile_guidelines
这些至少我都讲过,维基也有文档。
80 后最大的问题在于一不看说明书,二看说明书不仔细。
只有纠正了人格上的缺陷,做事才能完美。
学着吧骚年。
另外根据《提问的艺术》,这是一个很典型的 loser question,我真不知道该鼓励你还是该嘲笑你。
那个,我只是点一下提交试试看。rpmlint 结果我也有看了,我还以为那几个警告不重要所以我就忽略了。make install 那部分是根据人家开发者生成的 Makefile 本来就不会复制文件到实际安装目录下的,我看到他有一个 .spec 文件就照抄过来的。 不过现在好了,我自己修改了他的源码,其实只是修改了 Qt project 文件,就一个 .pro 文件,然后就可以直接 make INSTALL_ROOT=%{buildroot} install 安装了。打个包还要去学习一下 qmake,Qt project 真心不容易。昨晚给项目开发者发送邮件竟然邮件地址不存在。这个包可能以后都没有更新了。
现在已经修改好了,也编译打包成功,rpmlint 的唯一一个警告是说
那人家的软件本来就没有写 man page,这个警告就可以忽略了吧。女王大人帮我看一下这回都 OK 了吧。 build.opensuse.org/package/show?package=shadaradio&project=home%3Ahottea
and export CFLAGS=“%{optflags}” 要写在哪里?
修改别人的源代码请用补丁的形式。
export 写在 make 前面
别的没有问题。
你走遍各大编译农场,看哪个打包者发现源代码有问题是直接修改源代码后直接上传的?
这样叫不尊重上游,而且会给后续维护带来天大的麻烦。
难道下次升级你还改源代码?
或者说如果这个包你不维护了,别人更新一下,难道强迫别人去看源代码才知道你修改了哪些东西?
你要把你修改过的东西做成 .patch,然后在 specfile 里
Souce: blabla
# PATCH-FIX-UPSTREAM hotteaxxx@example.com - fix build
Patch: abuild.patch
然后在 %prep 里
%patch -p1
这些都在
zh.opensuse.org/openSUSE:Packaging_Patches_guidelines
另外你随便找个官方软件包就能看人家是怎么处理补丁的了,比如:
不尊重上游的罪名挺大的啊,我会尽快修改的。
不尊重事小,掉节操事大