[FFmpeg-trac] #5246(build system:new): ./configure handles duplicate flags badly

FFmpeg trac at avcodec.org
Thu Feb 18 15:14:06 CET 2016


#5246: ./configure handles duplicate flags badly
-------------------------------------+-------------------------------------
             Reporter:  divVerent    |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  build        |                  Version:  git-
  system                             |  master
             Keywords:               |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:

 ./configure options cannot be specified twice any more. Specifying options
 twice tends to sometimes happen with calling scripts - for example mpv's
 config script will under some conditions add --enable-openssl --enable-
 nonfree, but also includes a file with local options which might contain
 --enable-nonfree --enable-fdk-aac. This is a recent regression, as none of
 the recent release branches exhibit this problem.

 How to reproduce:

 {{{
 % ./configure --enable-gpl --enable-gpl
 gpl cannot be enabled
 % ./configure --enable-gpl --disable-gpl
 gpl cannot be enabled
 }}}

 Looks like the problem is in the request() function, which when enabling a
 flag first disables it it and then enables it again to "force the refresh
 of the dependencies", and the disable() function, which bails out if the
 option was previously explicitly requested.

 So one solution could be calling disable_weak() from request() instead
 (which doesn't perform this check). Another solution could be disabling
 ${var}_requested before the disable call (and afterwards it's enabled
 again, so all is well).

--
Ticket URL: <https://trac.ffmpeg.org/ticket/5246>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list