Opened 6 years ago
Closed 6 years ago
#7310 closed defect (fixed)
configure broken with GNU sed version 4.1.5
Reported by: | Carl Eugen Hoyos | Owned by: | |
---|---|---|---|
Priority: | important | Component: | build system |
Version: | git-master | Keywords: | regression |
Cc: | Blocked By: | ||
Blocking: | Reproduced by developer: | no | |
Analyzed by developer: | no |
Description
Current FFmpeg fails to configure libavfilter with older GNU sed.
$ ./configure sed: invalid option -- 'E' Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]... -n, --quiet, --silent suppress automatic printing of pattern space -e script, --expression=script add the script to the commands to be executed -f script-file, --file=script-file add the contents of script-file to the commands to be executed --follow-symlinks follow symlinks when processing in place -i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if extension supplied) -l N, --line-length=N specify the desired line-wrap length for the `l' command --posix disable all GNU extensions. -r, --regexp-extended use extended regular expressions in the script. -s, --separate consider files as separate rather than as a single continuous long stream. -u, --unbuffered load minimal amounts of data from the input files and flush the output buffers more often --help display this help and exit --version output version information and exit If no -e, --expression, -f, or --file option is given, then the first non-option argument is taken as the sed script to interpret. All remaining arguments are names of input files; if no input files are specified, then the standard input is read. E-mail bug reports to: bonzini@gnu.org . Be sure to include the word ``sed'' somewhere in the ``Subject:'' field. install prefix /usr/local source path . C compiler gcc C library glibc ARCH x86 (generic) big-endian no runtime cpu detection yes standalone assembly yes x86 assembler nasm MMX enabled yes MMXEXT enabled yes 3DNow! enabled yes 3DNow! extended enabled yes SSE enabled yes SSSE3 enabled yes AESNI enabled yes AVX enabled yes AVX2 enabled yes AVX-512 enabled yes XOP enabled yes FMA3 enabled yes FMA4 enabled yes i686 features enabled yes CMOV is fast no EBX available yes EBP available yes debug symbols yes strip symbols yes optimize for size no optimizations yes static yes shared no postprocessing support no network support yes threading support pthreads safe bitstream reader yes texi2html enabled no perl enabled yes pod2man enabled yes makeinfo enabled no makeinfo supports HTML no External libraries: alsa iconv zlib bzlib xlib External libraries providing hardware acceleration: xvmc Libraries: avcodec avformat swresample avdevice avutil swscale avfilter Programs: ffmpeg ffprobe Enabled decoders: aac atrac3p eightsvx_fib aac_fixed atrac3pal escape124 aac_latm atrac9 escape130 aasc aura evrc ac3 aura2 exr ac3_fixed avrn ffv1 adpcm_4xm avrp ffvhuff adpcm_adx avs ffwavesynth adpcm_afc avui fic adpcm_aica ayuv fits adpcm_ct bethsoftvid flac adpcm_dtk bfi flashsv adpcm_ea bink flashsv2 adpcm_ea_maxis_xa binkaudio_dct flic adpcm_ea_r1 binkaudio_rdft flv adpcm_ea_r2 bintext fmvc adpcm_ea_r3 bitpacked fourxm adpcm_ea_xas bmp fraps adpcm_g722 bmv_audio frwu adpcm_g726 bmv_video g2m adpcm_g726le brender_pix g723_1 adpcm_ima_amv c93 g729 adpcm_ima_apc cavs gdv adpcm_ima_dat4 ccaption gif adpcm_ima_dk3 cdgraphics gremlin_dpcm adpcm_ima_dk4 cdxl gsm adpcm_ima_ea_eacs cfhd gsm_ms adpcm_ima_ea_sead cinepak h261 adpcm_ima_iss clearvideo h263 adpcm_ima_oki cljr h263i adpcm_ima_qt cllc h263p adpcm_ima_rad comfortnoise h264 adpcm_ima_smjpeg cook hap adpcm_ima_wav cpia hevc adpcm_ima_ws cscd hnm4_video adpcm_ms cyuv hq_hqa adpcm_mtaf dca hqx adpcm_psx dds huffyuv adpcm_sbpro_2 dfa iac adpcm_sbpro_3 dirac idcin adpcm_sbpro_4 dnxhd idf adpcm_swf dolby_e iff_ilbm adpcm_thp dpx imc adpcm_thp_le dsd_lsbf indeo2 adpcm_vima dsd_lsbf_planar indeo3 adpcm_xa dsd_msbf indeo4 adpcm_yamaha dsd_msbf_planar indeo5 aic dsicinaudio interplay_acm alac dsicinvideo interplay_dpcm alias_pix dss_sp interplay_video als dst jacosub amrnb dvaudio jpeg2000 amrwb dvbsub jpegls amv dvdsub jv anm dvvideo kgv1 ansi dxa kmvc ape dxtory lagarith apng dxv loco aptx eac3 m101 aptx_hd eacmv mace3 ass eamad mace6 asv1 eatgq magicyuv asv2 eatgv mdec atrac1 eatqi metasound atrac3 eightbps microdvd atrac3al eightsvx_exp mimic mjpeg pcm_s32le_planar sp5x mjpegb pcm_s64be speedhq mlp pcm_s64le srgc mmvideo pcm_s8 srt motionpixels pcm_s8_planar ssa movtext pcm_u16be stl mp1 pcm_u16le subrip mp1float pcm_u24be subviewer mp2 pcm_u24le subviewer1 mp2float pcm_u32be sunrast mp3 pcm_u32le svq1 mp3adu pcm_u8 svq3 mp3adufloat pcm_zork tak mp3float pcx targa mp3on4 pgm targa_y216 mp3on4float pgmyuv tdsc mpc7 pgssub text mpc8 pictor theora mpeg1video pixlet thp mpeg2video pjs tiertexseqvideo mpeg4 png tiff mpegvideo ppm tmv mpl2 prores truehd msa1 psd truemotion1 mscc ptx truemotion2 msmpeg4v1 qcelp truemotion2rt msmpeg4v2 qdm2 truespeech msmpeg4v3 qdmc tscc msrle qdraw tscc2 mss1 qpeg tta mss2 qtrle twinvq msvideo1 r10k txd mszh r210 ulti mts2 ra_144 utvideo mvc1 ra_288 v210 mvc2 ralf v210x mxpeg rawvideo v308 nellymoser realtext v408 nuv rl2 v410 on2avc roq vb opus roq_dpcm vble paf_audio rpza vc1 paf_video rscc vc1image pam rv10 vcr1 pbm rv20 vmdaudio pcm_alaw rv30 vmdvideo pcm_bluray rv40 vmnc pcm_dvd s302m vorbis pcm_f16le sami vp3 pcm_f24le sanm vp5 pcm_f32be sbc vp6 pcm_f32le scpr vp6a pcm_f64be screenpresso vp6f pcm_f64le sdx2_dpcm vp7 pcm_lxf sgi vp8 pcm_mulaw sgirle vp9 pcm_s16be sheervideo vplayer pcm_s16be_planar shorten vqa pcm_s16le sipr wavpack pcm_s16le_planar smackaud webp pcm_s24be smacker webvtt pcm_s24daud smc wmalossless pcm_s24le smvjpeg wmapro pcm_s24le_planar snow wmav1 pcm_s32be sol_dpcm wmav2 pcm_s32le sonic wmavoice wmv1 xan_wc4 xwd wmv2 xbin y41p wmv3 xbm ylc wmv3image xface yop wnv1 xl yuv4 wrapped_avframe xma1 zero12v ws_snd1 xma2 zerocodec xan_dpcm xpm zlib xan_wc3 xsub zmbv Enabled encoders: a64multi jpegls prores a64multi5 ljpeg prores_aw aac magicyuv prores_ks ac3 mjpeg qtrle ac3_fixed mlp r10k adpcm_adx movtext r210 adpcm_g722 mp2 ra_144 adpcm_g726 mp2fixed rawvideo adpcm_g726le mpeg1video roq adpcm_ima_qt mpeg2video roq_dpcm adpcm_ima_wav mpeg4 rv10 adpcm_ms msmpeg4v2 rv20 adpcm_swf msmpeg4v3 s302m adpcm_yamaha msvideo1 sbc alac nellymoser sgi alias_pix opus snow amv pam sonic apng pbm sonic_ls aptx pcm_alaw srt aptx_hd pcm_f32be ssa ass pcm_f32le subrip asv1 pcm_f64be sunrast asv2 pcm_f64le svq1 avrp pcm_mulaw targa avui pcm_s16be text ayuv pcm_s16be_planar tiff bmp pcm_s16le truehd cinepak pcm_s16le_planar tta cljr pcm_s24be utvideo comfortnoise pcm_s24daud v210 dca pcm_s24le v308 dnxhd pcm_s24le_planar v408 dpx pcm_s32be v410 dvbsub pcm_s32le vc2 dvdsub pcm_s32le_planar vorbis dvvideo pcm_s64be wavpack eac3 pcm_s64le webvtt ffv1 pcm_s8 wmav1 ffvhuff pcm_s8_planar wmav2 fits pcm_u16be wmv1 flac pcm_u16le wmv2 flashsv pcm_u24be wrapped_avframe flashsv2 pcm_u24le xbm flv pcm_u32be xface g723_1 pcm_u32le xsub gif pcm_u8 xwd h261 pcx y41p h263 pgm yuv4 h263p pgmyuv zlib huffyuv png zmbv jpeg2000 ppm Enabled hwaccels: mpeg1_xvmc mpeg2_xvmc Enabled parsers: aac dvdsub png aac_latm flac pnm ac3 g729 rv30 adx gsm rv40 bmp h261 sbc cavsvideo h263 sipr cook h264 tak dca hevc vc1 dirac mjpeg vorbis dnxhd mlp vp3 dpx mpeg4video vp8 dvaudio mpegaudio vp9 dvbsub mpegvideo xma dvd_nav opus Enabled demuxers: aa eac3 ivr aac epaf jacosub ac3 ffmetadata jv acm filmstrip live_flv act fits lmlm4 adf flac loas adp flic lrc ads flv lvf adx fourxm lxf aea frm m4v afc fsb matroska aiff g722 mgsts aix g723_1 microdvd amr g726 mjpeg amrnb g726le mjpeg_2000 amrwb g729 mlp anm gdv mlv apc genh mm ape gif mmf apng gsm mov aptx gxf mp3 aptx_hd h261 mpc aqtitle h263 mpc8 asf h264 mpegps asf_o hevc mpegts ass hls mpegtsraw ast hnm mpegvideo au ico mpjpeg avi idcin mpl2 avr idf mpsub avs iff msf bethsoftvid ilbc msnwc_tcp bfi image2 mtaf bfstm image2_alias_pix mtv bink image2_brender_pix musx bintext image2pipe mv bit image_bmp_pipe mvi bmv image_dds_pipe mxf boa image_dpx_pipe mxg brstm image_exr_pipe nc c93 image_j2k_pipe nistsphere caf image_jpeg_pipe nsp cavsvideo image_jpegls_pipe nsv cdg image_pam_pipe nut cdxl image_pbm_pipe nuv cine image_pcx_pipe ogg codec2 image_pgm_pipe oma codec2raw image_pgmyuv_pipe paf concat image_pictor_pipe pcm_alaw data image_png_pipe pcm_f32be daud image_ppm_pipe pcm_f32le dcstr image_psd_pipe pcm_f64be dfa image_qdraw_pipe pcm_f64le dirac image_sgi_pipe pcm_mulaw dnxhd image_sunrast_pipe pcm_s16be dsf image_svg_pipe pcm_s16le dsicin image_tiff_pipe pcm_s24be dss image_webp_pipe pcm_s24le dts image_xpm_pipe pcm_s32be dtshd image_xwd_pipe pcm_s32le dv ingenient pcm_s8 dvbsub ipmovie pcm_u16be dvbtxt ircam pcm_u16le dxa iss pcm_u24be ea iv8 pcm_u24le ea_cdata ivf pcm_u32be pcm_u32le shorten v210x pcm_u8 siff vag pjs sln vc1 pmp smacker vc1t pva smjpeg vivo pvf smush vmd qcp sol vobsub r3d sox voc rawvideo spdif vpk realtext srt vplayer redspark stl vqf rl2 str w64 rm subviewer wav roq subviewer1 wc3 rpl sup webm_dash_manifest rsd svag webvtt rso swf wsaud rtp tak wsd rtsp tedcaptions wsvqa s337m thp wtv sami threedostr wv sap tiertexseq wve sbc tmv xa sbg truehd xbin scc tta xmv sdp tty xvag sdr2 txd xwma sds ty yop sdx v210 yuv4mpegpipe segafilm Enabled muxers: a64 hls pcm_s24le ac3 ico pcm_s32be adts ilbc pcm_s32le adx image2 pcm_s8 aiff image2pipe pcm_u16be amr ipod pcm_u16le apng ircam pcm_u24be aptx ismv pcm_u24le aptx_hd ivf pcm_u32be asf jacosub pcm_u32le asf_stream latm pcm_u8 ass lrc psp ast m4v rawvideo au matroska rm avi matroska_audio roq avm2 md5 rso bit microdvd rtp caf mjpeg rtp_mpegts cavsvideo mkvtimestamp_v2 rtsp codec2 mlp sap codec2raw mmf sbc crc mov scc dash mp2 segafilm data mp3 segment daud mp4 singlejpeg dirac mpeg1system smjpeg dnxhd mpeg1vcd smoothstreaming dts mpeg1video sox dv mpeg2dvd spdif eac3 mpeg2svcd spx f4v mpeg2video srt ffmetadata mpeg2vob stream_segment fifo mpegts sup fifo_test mpjpeg swf filmstrip mxf tee fits mxf_d10 tg2 flac mxf_opatom tgp flv null truehd framecrc nut tta framehash oga uncodedframecrc framemd5 ogg vc1 g722 ogv vc1t g723_1 oma voc g726 opus w64 g726le pcm_alaw wav gif pcm_f32be webm gsm pcm_f32le webm_chunk gxf pcm_f64be webm_dash_manifest h261 pcm_f64le webp h263 pcm_mulaw webvtt h264 pcm_s16be wtv hash pcm_s16le wv hds pcm_s24be yuv4mpegpipe hevc Enabled protocols: async http rtmpt cache httpproxy rtp concat icecast srtp crypto md5 subfile data mmsh tcp ffrtmphttp mmst tee file pipe udp ftp prompeg udplite gopher rtmp unix hls Enabled filters: Enabled bsfs: aac_adtstoasc hapqa_extract noise chomp hevc_metadata null dca_core hevc_mp4toannexb remove_extradata dump_extradata imx_dump_header text2movsub eac3_core mjpeg2jpeg trace_headers extract_extradata mjpega_dump_header vp9_metadata filter_units mov2textsub vp9_raw_reorder h264_metadata mp3_header_decompress vp9_superframe h264_mp4toannexb mpeg2_metadata vp9_superframe_split h264_redundant_pps mpeg4_unpack_bframes Enabled indevs: alsa lavfi v4l2 fbdev oss Enabled outdevs: alsa oss xv fbdev v4l2 License: LGPL version 2.1 or later libavutil/avconfig.h is unchanged libavcodec/codec_list.c is unchanged libavcodec/parser_list.c is unchanged libavcodec/bsf_list.c is unchanged libavformat/demuxer_list.c is unchanged libavformat/muxer_list.c is unchanged libavdevice/indev_list.c is unchanged libavdevice/outdev_list.c is unchanged libavformat/protocol_list.c is unchanged $ grep CONFIG_FILTERS config.h #define CONFIG_FILTERS 0 $ cat libavfilter/filter_list.c static const AVFilter * const filter_list[] = { &ff_asrc_abuffer, &ff_vsrc_buffer, &ff_asink_abuffer, &ff_vsink_buffer, NULL };
Change History (9)
comment:1 by , 6 years ago
Priority: | normal → important |
---|
comment:2 by , 6 years ago
Newer sed shows
$ sed --help Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]... -n, --quiet, --silent suppress automatic printing of pattern space -e script, --expression=script add the script to the commands to be executed -f script-file, --file=script-file add the contents of script-file to the commands to be executed --follow-symlinks follow symlinks when processing in place -i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied) -b, --binary open files in binary mode (CR+LFs are not processed specially) -l N, --line-length=N specify the desired line-wrap length for the `l' command --posix disable all GNU extensions. -E, -r, --regexp-extended use extended regular expressions in the script (for portability use POSIX -E). -s, --separate consider files as separate rather than as a single, continuous long stream. --sandbox operate in sandbox mode (disable e/r/w commands). -u, --unbuffered load minimal amounts of data from the input files and flush the output buffers more often -z, --null-data separate lines by NUL characters --help display this help and exit --version output version information and exit
So looks like it should be a matter of replacing that -E with -r, assuming it doesn't break any other target.
comment:4 by , 6 years ago
The output you pasted reports -r as a valid option. Is it not the sed available in Solaris and/or AIX? Am i missing something?
comment:5 by , 6 years ago
No, it is neither available on Solaris nor aix, it is a gnu extension.
comment:6 by , 6 years ago
This is made worse by the fact that our configure script on Solaris insists on using /usr/xpg4/bin/sed
and the user cannot change this.
comment:7 by , 6 years ago
If a user cannot replace sed or does not want to patch configure, then one can override stat("usr/xpg4/bin/sed",...)" via LD_PRELOAD. Obviously, this is overkill, but it works. Probably, the LD_PRELOAD trick would be more useful when a user cannot replace (broken) /bin/sh to run the FATE scripts.
Going back to sed. Can someone test the following:
% for sed in $(which -a sed) ; do echo "$sed:" ; for expr in av_AV av_AZ1 avx_z2 avfrc_b34 aaaaaa_X5 avsin_Abc_09 ; do echo 'extern AVFilter ff_'$expr';' | $sed -n 's/^extern AVFilter ff_[avfsinkrc]\{2,5\}_\([a-zA-Z0-9_]\{1,\}\);/\1_filter/p' ; done ; echo ; done
The output should be like this:
/usr/xpg4/bin/sed: AV_filter AZ1_filter b34_filter Abc_09_filter /opt/csw/gnu/sed: AV_filter AZ1_filter b34_filter Abc_09_filter /usr/bin/sed: AV_filter AZ1_filter b34_filter Abc_09_filter
In that case we can replace the first ERE with the BRE:
- sed -E -n "s/^extern AVFilter ff_([avfsinkrc]{2,5})_([a-zA-Z0-9_]+);/\2_filter/p" $file + sed -n "s/^extern AVFilter ff_[avfsinkrc]\{2,5\}_\([a-zA-Z0-9_]\{1,\}\);/\1_filter/p" $file
comment:8 by , 6 years ago
The above quick test passed on FreeBSD 11.2, OpenBSD 6.2, Solaris 10,11, OpenIndiana 2017.10, AIX 7.1, numerous ancient Linuxes.
And FATE passed on Sol 11.
comment:9 by , 6 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed by Mark in 2f6b1806ce2bc007a3a3596680a9f8089fb78145
Regression since 8f1382f80e0d4184c54c14afdda6482f050fbba7, fails at least with AIX sed and Solaris sed.