MacOsX rpmbuild --target noarch不起作用

mit*_*ast 7 java rpmbuild

我有通过maven构建rpm的java项目.必需创建noarch包,但我看到具体的拱.我在MacOsX上通过macports安装rpm(4.4.9或5.2.0),并从maven rpm插件运行命令:

sudo rpmbuild -bb -v --buildroot /path/to/project/buildroot --target noarch java-search-qt.spec
Building target platforms: noarch
Executing(%install): /bin/bash -e /tmp/rpm-tmp.69257
+ umask 022
+ cd /opt/local/src/macports/BUILD
+ /bin/rm -rf /path/to/project/target/rpm/project/buildroot
+ /bin/rm -rf /path/to/project/target/rpm/project/buildroot
+ '[' -e /path/to/project/target/rpm/project/buildroot ']'
+ mv /path/to/project/target/rpm/project/tmp-buildroot /path/to/project/target/rpm/project/buildroot
+ /opt/local/lib/rpm/brp-compress
+ /opt/local/lib/rpm/brp-strip
+ /opt/local/lib/rpm/brp-strip-static-archive
+ /opt/local/lib/rpm/brp-strip-comment-note
+ /opt/local/lib/rpm/brp-nobuildrootpath
Processing files: java-search-qt-1.0.17-1
Finding  Provides: /opt/local/lib/rpm/find-provides
Finding  Requires: /opt/local/lib/rpm/find-requires
Requires(interp): /bin/bash /bin/bash /bin/bash /bin/bash
Requires(verify): /bin/bash
Requires(pre): /bin/bash
Requires(post): /bin/bash
Requires(postun): /bin/bash
Checking for unpackaged file(s): /opt/local/lib/rpm/check-files /path/to/project/target/rpm/project/buildroot
Wrote: /opt/local/src/macports/RPMS/i386/project.i386.rpm

Maven插件使用选项"--target noarch",但rpmbuild完全忽略了它.预计noarch.rpm文件,为什么rpmbuild在4.4.9版和x86上创建i386?

更新

我找到了一个调用rpmbuilder的工作变体,build*.noarch.rpm文件:

rpmbuild -bb --target noarch-linux-pc project.spec

另一个变种,build*.i386.rpm文件:

rpmbuild -bb --buildroot /path/to/buildroot --target noarch-linux-pc project.spec
rpmbuild -bb --define '_topdir /path/to/topdir' --target noarch-linux-pc project.spec

我无法理解.有任何想法吗?

PS对不起我的英语,这对我来说很难.

mit*_*ast 6

我发现了错误!

maven-rpm-plugin工具很糟糕.此包包含类RPMHelper,并使用bash命令构建器.rpmbuild工具需要强大的param排序,此类忽略所有规则.我更改了param排序,现在我已经正确构建了rpm数据包.从我看来,codehaus命令不再支持.我认为需要我们在github上需要一个fork.


小智 6

我有一些不同的版本,但在OS X上,使用RPM 5.4.14和rpm-maven-plugin 2.1-alpha-3,我可以通过指定以下内容为Linux创建一个noarch RPM:

<needarch>noarch</needarch>
<targetOS>linux</targetOS>
Run Code Online (Sandbox Code Playgroud)

rpm-maven-plugin说:

[INFO] Building target platforms: noarch-apple-linux
Run Code Online (Sandbox Code Playgroud)

从命令行,检查包,所有看起来都很好:

rpm -qp --qf 'Arch:%{ARCH} OS:%{OS}\n' my-rpm-0.0.1-1.noarch.rpm 
Arch:noarch OS:linux
Run Code Online (Sandbox Code Playgroud)

...结果安装在Linux上很开心.