EL/SUSE 影响所有分布的条件

Conditionals for EL/SUSE affecting all distributions

我有一个针对 EL、Fedora、Mageia 和 SUSE 的 FFmpeg 规范文件。由于 NASM 的版本可用于较旧的 EL/SUSE 发行版,我的规范文件应该为没有足够新的 NASM 可用版本的发行版选择性地禁用 ASM。

./configure --prefix="%_prefix" --libdir="%_libdir" --shlibdir="%_libdir" --incdir="%_includedir/ffmpeg" --extra-cflags="%optflags" --optflags="%optflags" --enable-pic --disable-stripping --enable-shared --disable-static --enable-runtime-cpudetect \
%if 0%{?el5}%{?el6} || 0%{?suse_version} < 1315
--disable-yasm /
%endif
--disable-programs --disable-avdevice --disable-avformat --disable-swresample --disable-swscale --disable-postproc --disable-avfilter

问题是,ASM 在每个发行版上都被禁用,包括比 1315 更新的 SUSE 版本。我怎样才能使条件只影响它们应该影响的发行版?

IIRC,它做一个简单的字符串比较,不是数字,字符串0 < 1总是真。

试着保护它:

%{?suse_version}0 < 13150

0%{?suse_version} < 01315

相反。

./configure --prefix="%_prefix" --libdir="%_libdir" --shlibdir="%_libdir" --incdir="%_includedir/ffmpeg" --extra-cflags="%optflags" --optflags="%optflags" --enable-pic --disable-stripping --enable-shared --disable-static --enable-runtime-cpudetect \
%if 0%{?el5}%{?el6} || 0%{?suse_version} && (0%{?suse_version} == 0 || 0%{?suse_version} < 1315)
--disable-yasm \
%endif
--disable-programs --disable-avdevice --disable-avformat --disable-swresample --disable-swscale --disable-postproc --disable-avfilter