CentOS5.7システムで実行しています。
ソースパッケージと.specファイルを他の人からダウンロードしました。次のようなバニラコマンドを使用して、ソースからRPMを構築しようとしています。
% rpmbuild -ba ~/rpmbuild/SPECS/foo.spec
...
Configuration summary:
======================
Host type................: x86_64-redhat-linux-gnu
CC.......................: gcc
CFLAGS...................: -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Werror
Package..................: sudosh2
Version..................: 1.0.4
Installation prefix......: /usr
Man directory............: /usr/share/man
sysconfdir...............: /etc
recording input..........: no
ただし、このビルドは失敗しています。コードは少しずさんで、いくつかの警告を生成しています。このツールチェーンの一部は、 「すべての警告をエラー-Werror
にする」フラグを有効にすることです。したがって、ビルドは次のエラーで失敗します。
gcc -DHAVE_CONFIG_H -I. -I.. -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -Werror -MT parse.o -MD -MP -MF .deps/parse.Tpo -c -o parse.o parse.c
cc1: warnings being treated as errors
sudosh.c: In function 'main':
sudosh.c:486: warning: unused variable 'written'
sudosh.c:112: warning: unused variable 'found'
cc1: warnings being treated as errors
parse.c: In function 'parse':
parse.c:20: warning: unused variable 'y'
parse.c:14: warning: unused variable 'opt'
parse.c:14: warning: unused variable 'cmt'
parse.c:14: warning: unused variable 'arg'
parse.c:10: warning: unused variable 'i'
parse.c:10: warning: unused variable 'line_number'
make[2]: *** [sudosh.o] Error 1
作成者がコードを修正することが適切な修正であることはわかっていますが、短期的にはこの問題を回避したいと思います。動作するRPMが必要です。
./configure
どちらかのように見えるか、自動的にフラグautoconf
を追加しています。Makefileを自分で編集する以外に、ビルド-Werror
のフラグを無効にするにはどうすればよいですか?-Werror
@pwanの回答に応じて更新します。
.specファイルはかなり一般的であり、特別なフラグを指定していません。
%build
%configure \
--program-prefix="%{?_program_prefix}"
%{__make} %{?_smp_mflags}