[Momonga-devel.ja:01858] Re: Momonga Linux のリリースへ向けた spec ファイルの見直し


むらけんです.

今回新たに提案されたマクロ群については賛成ですが,多少意見があ
るので,下の patch の部分に書きます.

In message <20030706160616.435DF2853C@xxxxxxxxxxxxxxxxxxxx> at Mon, 7 Jul 2003 01:05:14 +0900,
KOMATSU Shinichiro <koma2@xxxxxxxxxxxxxxxxxxxx> wrote:
> > * [Momonga-devel.ja:00492] で小松さんが作成された %NoSource と,
> >   %NoPatch マクロを使用した形式に変更します.specopt における
> >   オプションの定義で扱われている
> > 
> >     %{?!with_hoge:%define with_hoge 1}
> > 
> >   のような記述は
> > 
> >     %{?!with_hoge:%global with_hoge 1}
> > 
> >   というように,%define を %global に変更することで,%NoSource 
> >   の使用によるマクロの無効化を回避する (以下で詳細を述べます).
> 
> あれ以降深く追及できなくて申し訳ない…
> これで問題ないようなら是非入れましょう。
> 少なくとも定義するだけなら(使わなければ)問題ないと思うので 
> とりあえず入れてしまってもいいかも。

そうですね.では,入れる方向で.

# これを入れるために tetex に md5sum の結果を埋め込んでおいた
# のでした.

> あと、この先いろんな macro を定義しようと思っているのですが、
> そのたびに rpm を rebuild するのもアホらしいので、
> momonga 特有な macro は rpm からは切離そうと思うのですが、
> いかがでしょう?

そうですね.名前は何が良いでしょうかね?それとも,何か既存の 
spec ファイルで新たなパッケージ定義しますかね?

> %makeinstall_args \\\
> 	prefix=%{?buildroot:%{buildroot}}%{_prefix} \\\
> 	exec_prefix=%{?buildroot:%{buildroot}}%{_exec_prefix} \\\
> 	bindir=%{?buildroot:%{buildroot}}%{_bindir} \\\
> 	sbindir=%{?buildroot:%{buildroot}}%{_sbindir} \\\
> 	sysconfdir=%{?buildroot:%{buildroot}}%{_sysconfdir} \\\
> 	datadir=%{?buildroot:%{buildroot}}%{_datadir} \\\
> 	includedir=%{?buildroot:%{buildroot}}%{_includedir} \\\
> 	libdir=%{?buildroot:%{buildroot}}%{_libdir} \\\
> 	libexecdir=%{?buildroot:%{buildroot}}%{_libexecdir} \\\
> 	localstatedir=%{?buildroot:%{buildroot}}%{_localstatedir} \\\
> 	sharedstatedir=%{?buildroot:%{buildroot}}%{_sharedstatedir} \\\
> 	mandir=%{?buildroot:%{buildroot}}%{_mandir} \\\
> 	infodir=%{?buildroot:%{buildroot}}%{_infodir}

これと

> %configure_env \\\
>     CFLAGS="${CFLAGS:-%optflags}" \\\
>     CXXFLAGS="${CXXFLAGS:-%optflags}" \\\
>     FFLAGS="${FFLAGS:-%optflags}"
> 
> %configure_args \\\
> 	--prefix=%{_prefix} \\\
> 	--exec-prefix=%{_exec_prefix} \\\
> 	--bindir=%{_bindir} \\\
> 	--sbindir=%{_sbindir} \\\
> 	--sysconfdir=%{_sysconfdir} \\\
> 	--datadir=%{_datadir} \\\
> 	--includedir=%{_includedir} \\\
> 	--libdir=%{_libdir} \\\
> 	--libexecdir=%{_libexecdir} \\\
> 	--localstatedir=%{_localstatedir} \\\
> 	--sharedstatedir=%{_sharedstatedir} \\\
> 	--mandir=%{_mandir} \\\
> 	--infodir=%{_infodir}

これですが,make install におけるディレクトリ変数の指定と,
configure におけるコンパイルオプション変数とディレクトリ引数は
できれば,他の変数・引数とは別扱いにしたいです.そもそも,これ
らは新たに定義し直す事も稀ですし,これらの引数や変数は,不要な
のに定義されていても悪さはしないので,足りないのに気付かずに不
幸になるよりは,無条件で指定されていてもらいたいです.

ということで,

%makeinstall_args %{_nil}
%makeinstall_directory_args \\\
	prefix=%{?buildroot:%{buildroot}}%{_prefix} \\\
	exec_prefix=%{?buildroot:%{buildroot}}%{_exec_prefix} \\\
	bindir=%{?buildroot:%{buildroot}}%{_bindir} \\\
	sbindir=%{?buildroot:%{buildroot}}%{_sbindir} \\\
	sysconfdir=%{?buildroot:%{buildroot}}%{_sysconfdir} \\\
	datadir=%{?buildroot:%{buildroot}}%{_datadir} \\\
	includedir=%{?buildroot:%{buildroot}}%{_includedir} \\\
	libdir=%{?buildroot:%{buildroot}}%{_libdir} \\\
	libexecdir=%{?buildroot:%{buildroot}}%{_libexecdir} \\\
	localstatedir=%{?buildroot:%{buildroot}}%{_localstatedir} \\\
	sharedstatedir=%{?buildroot:%{buildroot}}%{_sharedstatedir} \\\
	mandir=%{?buildroot:%{buildroot}}%{_mandir} \\\
	infodir=%{?buildroot:%{buildroot}}%{_infodir}

%makeinstall \
  %{makeinstall_env} %__make \
  %{makeinstall_directory_args} %{makeinstall_args} %{makeinstall_target}

%configure_env %{_nil}
%configure_optflags_env \\\
	CFLAGS="${CFLAGS:-%optflags}" \\\
	CXXFLAGS="${CXXFLAGS:-%optflags}" \\\
	FFLAGS="${FFLAGS:-%optflags}"

%configure_args	%{_nil}
%configure_directory_args \\\
	--prefix=%{_prefix} \\\
	--exec-prefix=%{_exec_prefix} \\\
	--bindir=%{_bindir} \\\
	--sbindir=%{_sbindir} \\\
	--sysconfdir=%{_sysconfdir} \\\
	--datadir=%{_datadir} \\\
	--includedir=%{_includedir} \\\
	--libdir=%{_libdir} \\\
	--libexecdir=%{_libexecdir} \\\
	--localstatedir=%{_localstatedir} \\\
	--sharedstatedir=%{_sharedstatedir} \\\
	--mandir=%{_mandir} \\\
	--infodir=%{_infodir}

%configure \
  %{?__libtoolize:[ -f configure.in ] && %{__libtoolize} --copy --force ;} \
  %{configure_optflags_env} %{configure_env} %{configure_cmd} \
  %{_target_platform} %{configure_directory_args} %{configure_args}

とするのはどうでしょう?

-- 
1024D/2A3FDBE6 2001-08-26 Kenta MURATA (muraken) <muraken2@xxxxxxxxx>
Key fingerprint = 622A 61D3 280F 4991 4833  5724 8E2D C5E1 2A3F DBE6