cvs commit: ports/multimedia/mencoder Makefile

b. f. bf1783 at googlemail.com
Sat Jul 23 06:07:09 UTC 2011


On 7/20/11, Mario Sergio Fujikawa Ferreira <lioux at freebsd.org> wrote:
> lioux       2011-07-20 02:52:35 UTC
>
>   FreeBSD ports repository
>
>   Modified files:
>     multimedia/mencoder  Makefile
>   Log:
>   o Fix build when multimedia/libass is already installed when one
>     tries to build multimedia/mplayer
>
>     * Add option 'ASS "Enable ASS/SSA subtitle rendering"' with default
>       off
>       - However, override user decision to on if multimedia/libass
>       is already installed: mplayer does not uphold configure options
>       disabling dependency on external port.
>
>     * Do not bump PORTREVISION since nothing has really changed for
>     users who didn't have multimedia/libass on their systems
>
>   PR:             ports/159021
>   Approved by:    maintainer
>
>   Revision  Changes    Path
>   1.28      +19 -0     ports/multimedia/mencoder/Makefile
>

I must renew my plea to avoid these "fixes".  When a user sets
WITH/WITHOUT_FOO, he means precisely "build this port
WITH/WITHOUT_FOO", and not "build this port WITH/WITHOUT_FOO, except
if package X is installed, and, if it is, silently do something else",
and we should not be adding code to do the latter. We should instead
patch the broken distribution configure scripts and Makefiles, so that
the problem does not occur.  If a lack of time or another problem
prevents this from being done initially, then as a temporary
workaround, we should add something like:

.if exists(${LOCALBASE}/lib/libass.so) && defined(WITHOUT_ASS)
BROKEN= libass is installed, so broken mplayer scripts will ignore WITHOUT_ASS
.endif

so that the user will know that his choice of options cannot be used,
and he can take the appropriate action -- and he will not be misled
into thinking that his choice of options are used when they are not.

As far as this particular problem is concerned, I cannot reproduce the
bug  -- I removed the "fix", installed libass, selected WITHOUT_ASS,
and then built mplayer. I could find no indication -- in the build
logs, config.h, or the resulting binaries -- that mplayer attempts to
use the external or internal libass. (In fact, before this change, it
did use the internal libass, so this change did in fact change default
mplayer builds, and the PORTREVISION should have been bumped.) I don't
see any obvious related problems with the mplayer configure script:
there are of course default settings for CONFIG_ASS_DEMUXER and
CONFIG_ASS_DECODER that result in a ass codec being present, but I
don't think that this ought to cause problems, and if it does, it can
be fixed.  Could you elaborate on what led you to believe that mplayer
was ignoring "--disable-ass --disable-ass-internal"?

I do see another (only indirectly-related) problem: when
multimedia/libass is installed, converters/enca usually is also
installed as a dependency, and mplayer can pick up an unregistered
dependency on libenca.so, which can then silently break mplayer, if
enca is later removed.  But this can and should be fixed by either
adding --disable-enca to CONFIGURE_ARGS, or by adding an ENCA option.

Also, there is a fragile portion of code that can lead to failure with
some compilers, and WITHOUT_LIBASS=yes, that was exposed by this
change:
...
gmake[1]: Leaving directory
`/tmp/home/u1/pwrk/ports/multimedia/mplayer/work/mplayer-export-2011-03-29/ffmpeg/libswscale'
touch ffmpeg/libswscale/libswscale.a
gcc46 -o mplayer command.o m_property.o mixer.o mp_fifo.o mplayer.o
parser-mpcmd.o pnm_loader.o input/input.o libao2/ao_mpegpes.o
libao2/ao_null.o libao2/ao_pcm.o libao2/audio_out.o libvo/aspect.o
libvo/geometry.o libvo/video_out.o libvo/vo_mpegpes.o libvo/vo_null.o
sub/spuenc.o libvo/vo_dga.o libvo/vo_png.o libvo/vo_gif89a.o
libvo/gl_common.o libvo/vo_gl.o libvo/vo_gl2.o libvo/csputils.o
libvo/x11_common.o libvo/vo_matrixview.o libvo/matrixview.o
libvo/vo_jpeg.o libvo/vo_md5sum.o udp_sync.o libao2/ao_oss.o
libvo/vo_pnm.o libvo/vo_tga.o libvo/vo_x11.o libvo/vo_xover.o
libvo/vo_xv.o libvo/vo_xvmc.o libvo/vo_yuv4mpeg.o asxparser.o bstr.o
codec-cfg.o cpudetect.o edl.o fmt-conversion.o m_config.o m_option.o
m_struct.o mp_msg.o mp_strings.o mpcommon.o parser-cfg.o path.o
playtree.o playtreeparser.o subopt-helper.o libaf/af.o
libaf/af_center.o libaf/af_channels.o libaf/af_comp.o libaf/af_delay.o
libaf/af_dummy.o libaf/af_equalizer.o libaf/af_extrastereo.o
libaf/af_format.o libaf/af_gate.o libaf/af_hrtf.o libaf/af_karaoke.o
libaf/af_pan.o libaf/af_resample.o libaf/af_scaletempo.o
libaf/af_sinesuppress.o libaf/af_stats.o libaf/af_sub.o
libaf/af_surround.o libaf/af_sweep.o libaf/af_tools.o
libaf/af_volnorm.o libaf/af_volume.o libaf/filter.o libaf/format.o
libaf/reorder_ch.o libaf/window.o libmpcodecs/ad.o
libmpcodecs/ad_alaw.o libmpcodecs/ad_dk3adpcm.o
libmpcodecs/ad_dvdpcm.o libmpcodecs/ad_hwac3.o libmpcodecs/ad_hwmpa.o
libmpcodecs/ad_imaadpcm.o libmpcodecs/ad_msadpcm.o
libmpcodecs/ad_pcm.o libmpcodecs/dec_audio.o
libmpcodecs/dec_teletext.o libmpcodecs/dec_video.o
libmpcodecs/img_format.o libmpcodecs/mp_image.o libmpcodecs/pullup.o
libmpcodecs/vd.o libmpcodecs/vd_hmblck.o libmpcodecs/vd_lzo.o
libmpcodecs/vd_mpegpes.o libmpcodecs/vd_mtga.o libmpcodecs/vd_null.o
libmpcodecs/vd_raw.o libmpcodecs/vd_sgi.o libmpcodecs/vf.o
libmpcodecs/vf_1bpp.o libmpcodecs/vf_2xsai.o
libmpcodecs/vf_blackframe.o libmpcodecs/vf_boxblur.o
libmpcodecs/vf_crop.o libmpcodecs/vf_cropdetect.o
libmpcodecs/vf_decimate.o libmpcodecs/vf_delogo.o
libmpcodecs/vf_denoise3d.o libmpcodecs/vf_detc.o libmpcodecs/vf_dint.o
libmpcodecs/vf_divtc.o libmpcodecs/vf_down3dright.o
libmpcodecs/vf_dsize.o libmpcodecs/vf_dvbscale.o libmpcodecs/vf_eq.o
libmpcodecs/vf_eq2.o libmpcodecs/vf_expand.o libmpcodecs/vf_field.o
libmpcodecs/vf_fil.o libmpcodecs/vf_filmdint.o libmpcodecs/vf_fixpts.o
libmpcodecs/vf_flip.o libmpcodecs/vf_format.o
libmpcodecs/vf_framestep.o libmpcodecs/vf_gradfun.o
libmpcodecs/vf_halfpack.o libmpcodecs/vf_harddup.o
libmpcodecs/vf_hqdn3d.o libmpcodecs/vf_hue.o libmpcodecs/vf_il.o
libmpcodecs/vf_ilpack.o libmpcodecs/vf_ivtc.o
libmpcodecs/vf_kerndeint.o libmpcodecs/vf_mirror.o
libmpcodecs/vf_noformat.o libmpcodecs/vf_noise.o libmpcodecs/vf_ow.o
libmpcodecs/vf_palette.o libmpcodecs/vf_perspective.o
libmpcodecs/vf_phase.o libmpcodecs/vf_pp7.o libmpcodecs/vf_pullup.o
libmpcodecs/vf_rectangle.o libmpcodecs/vf_remove_logo.o
libmpcodecs/vf_rgbtest.o libmpcodecs/vf_rotate.o libmpcodecs/vf_sab.o
libmpcodecs/vf_scale.o libmpcodecs/vf_smartblur.o
libmpcodecs/vf_softpulldown.o libmpcodecs/vf_stereo3d.o
libmpcodecs/vf_softskip.o libmpcodecs/vf_swapuv.o
libmpcodecs/vf_telecine.o libmpcodecs/vf_test.o
libmpcodecs/vf_tfields.o libmpcodecs/vf_tile.o
libmpcodecs/vf_tinterlace.o libmpcodecs/vf_unsharp.o
libmpcodecs/vf_vo.o libmpcodecs/vf_yadif.o libmpcodecs/vf_yuvcsp.o
libmpcodecs/vf_yvu9.o libmpdemux/aac_hdr.o libmpdemux/asfheader.o
libmpdemux/aviheader.o libmpdemux/aviprint.o libmpdemux/demuxer.o
libmpdemux/demux_aac.o libmpdemux/demux_asf.o libmpdemux/demux_audio.o
libmpdemux/demux_avi.o libmpdemux/demux_demuxers.o
libmpdemux/demux_film.o libmpdemux/demux_fli.o
libmpdemux/demux_lmlm4.o libmpdemux/demux_mf.o libmpdemux/demux_mkv.o
libmpdemux/demux_mov.o libmpdemux/demux_mpg.o libmpdemux/demux_nsv.o
libmpdemux/demux_pva.o libmpdemux/demux_rawaudio.o
libmpdemux/demux_rawvideo.o libmpdemux/demux_realaud.o
libmpdemux/demux_real.o libmpdemux/demux_roq.o
libmpdemux/demux_smjpeg.o libmpdemux/demux_ts.o libmpdemux/demux_ty.o
libmpdemux/demux_ty_osd.o libmpdemux/demux_viv.o
libmpdemux/demux_vqf.o libmpdemux/demux_y4m.o libmpdemux/ebml.o
libmpdemux/extension.o libmpdemux/mf.o libmpdemux/mp3_hdr.o
libmpdemux/mp_taglists.o libmpdemux/mpeg_hdr.o
libmpdemux/mpeg_packetizer.o libmpdemux/parse_es.o
libmpdemux/parse_mp4.o libmpdemux/video.o libmpdemux/yuv4mpeg.o
libmpdemux/yuv4mpeg_ratio.o osdep/getch2.o osdep/timer-linux.o
stream/open.o stream/stream.o stream/stream_bd.o stream/stream_cue.o
stream/stream_file.o stream/stream_mf.o stream/stream_null.o
stream/url.o sub/eosd.o sub/find_sub.o sub/osd.o sub/spudec.o
sub/sub.o sub/sub_cc.o sub/subreader.o sub/vobsub.o
stream/stream_cdda.o stream/cdinfo.o stream/stream_cddb.o
stream/stream_dvdnav.o libdvdnav/dvdnav.o libdvdnav/highlight.o
libdvdnav/navigation.o libdvdnav/read_cache.o libdvdnav/remap.o
libdvdnav/searching.o libdvdnav/settings.o libdvdnav/vm/decoder.o
libdvdnav/vm/vm.o libdvdnav/vm/vmcmd.o stream/stream_dvd.o
stream/stream_dvd_common.o libdvdread4/bitreader.o
libdvdread4/dvd_input.o libdvdread4/dvd_reader.o libdvdread4/dvd_udf.o
libdvdread4/ifo_print.o libdvdread4/ifo_read.o libdvdread4/md5.o
libdvdread4/nav_print.o libdvdread4/nav_read.o libvo/aclib.o av_opts.o
libaf/af_lavcresample.o libmpcodecs/ad_ffmpeg.o
libmpcodecs/vd_ffmpeg.o libmpcodecs/vf_lavc.o
libmpcodecs/vf_lavcdeint.o libmpcodecs/vf_pp.o
libmpcodecs/vf_screenshot.o libmpdemux/demux_lavf.o
stream/stream_ffmpeg.o sub/av_sub.o libaf/af_lavcac3enc.o
libmpcodecs/vf_fspp.o libmpcodecs/vf_geq.o libmpcodecs/vf_mcdeint.o
libmpcodecs/vf_qp.o libmpcodecs/vf_spp.o libmpcodecs/vf_uspp.o
sub/font_load_ft.o stream/stream_ftp.o libmpdemux/demux_gif.o
libmpcodecs/vf_bmovl.o libaf/af_export.o osdep/mmap_anon.o
libmpcodecs/vd_ijpg.o libmpcodecs/ad_libdv.o libmpcodecs/vd_libdv.o
libmpdemux/demux_rawdv.o libdvdcss/css.o libdvdcss/device.o
libdvdcss/error.o libdvdcss/ioctl.o libdvdcss/libdvdcss.o
libmpcodecs/ad_libmad.o libmpcodecs/vd_libmpeg2.o libmpeg2/alloc.o
libmpeg2/cpu_accel.o libmpeg2/cpu_state.o libmpeg2/decode.o
libmpeg2/header.o libmpeg2/idct.o libmpeg2/motion_comp.o
libmpeg2/slice.o libmpeg2/idct_mmx.o libmpeg2/motion_comp_mmx.o
libmpcodecs/vd_theora.o libmpdemux/demux_rtp.o
libmpdemux/demux_rtp_codec.o stream/stream_live555.o
libmpdemux/demux_mng.o libmpcodecs/ad_mp3lib.o mp3lib/sr1.o
mp3lib/decode_mmx.o mp3lib/dct64_sse.o stream/stream_rtsp.o
stream/freesdp/common.o stream/freesdp/errorlist.o
stream/freesdp/parser.o stream/librtsp/rtsp.o
stream/librtsp/rtsp_rtp.o stream/librtsp/rtsp_session.o osdep/shmem.o
stream/stream_netstream.o stream/asf_mmst_streaming.o
stream/asf_streaming.o stream/cookies.o stream/http.o stream/network.o
stream/pnm.o stream/rtp.o stream/udp.o stream/tcp.o
stream/stream_rtp.o stream/stream_udp.o stream/realrtsp/asmrp.o
stream/realrtsp/real.o stream/realrtsp/rmff.o
stream/realrtsp/sdpplin.o stream/realrtsp/xbuffer.o
libmpcodecs/vd_mpng.o libmpcodecs/ad_speex.o stream/cache2.o
tremor/bitwise.o tremor/block.o tremor/codebook.o tremor/floor0.o
tremor/floor1.o tremor/framing.o tremor/info.o tremor/mapping0.o
tremor/mdct.o tremor/registry.o tremor/res012.o tremor/sharedbook.o
tremor/synthesis.o tremor/window.o stream/stream_tv.o stream/tv.o
stream/frequencies.o stream/tvi_dummy.o stream/tvi_bsdbt848.o
sub/unrar_exec.o stream/stream_vcd.o libmpcodecs/ad_libvorbis.o
libmpdemux/demux_ogg.o libmpcodecs/vd_xanim.o
ffmpeg/libavformat/libavformat.a ffmpeg/libavcodec/libavcodec.a
ffmpeg/libavutil/libavutil.a ffmpeg/libpostproc/libpostproc.a
ffmpeg/libswscale/libswscale.a -Wl,-z,noexecstack
/usr/local/live/liveMedia/libliveMedia.a
/usr/local/live/groupsock/libgroupsock.a
/usr/local/live/UsageEnvironment/libUsageEnvironment.a
 /usr/local/live/BasicUsageEnvironment/libBasicUsageEnvironment.a
             -L/usr/local/lib   -Wl,-rpath=/usr/local/lib/gcc46
-rpath=/usr/lib:/usr/local/lib -Wl,-rpath=/usr/local/lib/gcc46
-liconv -lncurses -lpng -lz -lmng -lz -ljpeg -lopenjpeg -lungif
-lcdda_interface -lcdda_paranoia -L/usr/local/lib -lfreetype -lz
-lfontconfig  -lz /usr/lib/libbz2.so -llzo2 -lmad -lspeex -lgsm
-L/usr/local/lib -ltheora -logg    -lstdc++ -L/usr/local/lib -lrtmp
-lz -lssl -lcrypto   -lopencore-amrnb -lopencore-amrwb -ldv
-L/usr/local/lib -lschroedinger-1.0   -pthread  -rdynamic  -lm -lrtmp
-lXext -lX11 -pthread -lXv -lXvMC -lXvMCW -lXinerama -lXxf86vm
-lXxf86dga -lGL
sub/subreader.o: In function `sub_add_text':
subreader.c:(.text+0x8e25): undefined reference to `subassconvert_subrip'
collect2: ld returned 1 exit status
gmake: *** [mplayer] Error 1
*** Error code 1

Stop in /home/u1/pwrk/ports/multimedia/mplayer.
*** Error code 1

Stop in /home/u1/pwrk/ports/multimedia/mplayer.

This ought to be fixed.  I propose the attached patch, with
corresponding changes to mencoder, and some resolution for the
possible hidden enca dependency.

b.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mplayer_libass.diff
Type: application/octet-stream
Size: 1496 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/cvs-all/attachments/20110723/e50e17a7/mplayer_libass.obj


More information about the cvs-all mailing list