On 7/20/11, Mario Sergio Fujikawa Ferreira <li...@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.
mplayer_libass.diff
Description: Binary data
_______________________________________________ cvs-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/cvs-all To unsubscribe, send any mail to "cvs-all-unsubscr...@freebsd.org"