
git repoを確認しましたhttps://github.com/rpmfusion/buildsys-build-rpmfusion.git
rpmbuild -bs --build-in-place buildsys-build-rpmfusion.spec
最初はソースのコピーを避けることができると思いましたが、間違って~/rpmbuild/SOURCES
いました。
error: Bad file: /home/user/rpmbuild/SOURCES/buildsys-build-rpmfusion-kerneldevpkgs-current: No such file or directory
error: Bad file: /home/user/rpmbuild/SOURCES/buildsys-build-rpmfusion-README: No such file or directory
error: Bad file: /home/user/rpmbuild/SOURCES/buildsys-build-rpmfusion-list-kernels.sh: No such file or directory
その後、そのマニュアルを参照してください。
--build-in-place
Build from locally checked out sources. Sets _builddir to current working
directory. Skips handling of -n and untar in the %setup and the deletion of the
buildSubdir.
だからこれはpwdをビルドディレクトリとして直接使用することを意味しているようですが、これは私には役に立ちません。しかし、まだテストしたいことを確認するには、次のようにします。
- 私はすべてをコピーしました。
~/rpmbuild/SOURCES
- しかし、私が作成したgit repoディレクトリでは、
rpmbuild -ba --build-in-place buildsys-build-rpmfusion.spec
すべてがまだそれに基づいており、まだビルドディレクトリとして使用されているものと同じではありません。rpmbuild -ba buildsys-build-rpmfusion.spec
~/rpmbuild/
~/rpmbuild/BUILDROOT/
だから効果は何ですか--build-in-place
?
私は--define "_topdir
pwdを使用して"
トップレベルのディレクトリを変更できることを知っていますが、それは私が望むものではありません。その後、mkdir {BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
ソースコードをSOURCESにコピーする必要があります。
答え1
また、すでにチェックアウトされたタールボールをビルドする前に準備する必要がないようにするソリューションを探しています。質問に回答がないことがわかったら、ソースを確認することにしました。 https://github.com/rpm-software-management/rpm/blob/master/rpmbuild.c#L445
提出ですhttps://github.com/rpm-software-management/rpm/commit/0265acbde87036df08da16507a8c4c9a9e6c3c64
SOURCEの存在を確認する部分は見られませんでしたが、SOURCESディレクトリを準備せずにパッケージをビルドすることができて役に立ちました。
私もCWDでビルドするためにToodirを使用します。
rpmbuild --define "_topdir $PWD" --build-in-place -bb <package>.spec
あなたはフラグを使用しましたが、-bs
私は-bb
フラグを使用しました。
-bb build binary package only from <specfile> -bs build source package only from <specfile>