Date: Sat, 23 Jul 2011 06:07:07 +0000 From: "b. f." <bf1783@googlemail.com> To: Mario Sergio Fujikawa Ferreira <lioux@freebsd.org> Cc: cvs-ports@freebsd.org, riggs@rrr.de, cvs-all@freebsd.org, ports-committers@freebsd.org Subject: Re: cvs commit: ports/multimedia/mencoder Makefile Message-ID: <CAGFTUwMZ5iAp=VvNZezX4fiGy2d5Ep6jaSWWUZp92KTobxkjsQ@mail.gmail.com> In-Reply-To: <201107200252.p6K2qZRb053515@repoman.freebsd.org> References: <201107200252.p6K2qZRb053515@repoman.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--bcaec5430b3e5c40a604a8b6648f Content-Type: text/plain; charset=ISO-8859-1 On 7/20/11, Mario Sergio Fujikawa Ferreira <lioux@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. --bcaec5430b3e5c40a604a8b6648f Content-Type: application/octet-stream; name="mplayer_libass.diff" Content-Disposition: attachment; filename="mplayer_libass.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: file0 SW5kZXg6IE1ha2VmaWxlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9ob21lL3BjdnMvcG9ydHMvbXVs dGltZWRpYS9tcGxheWVyL01ha2VmaWxlLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjIwNwpkaWZm IC11IC1yMS4yMDcgTWFrZWZpbGUKLS0tIE1ha2VmaWxlCTIwIEp1bCAyMDExIDAyOjUyOjIxIC0w MDAwCTEuMjA3CisrKyBNYWtlZmlsZQkyMyBKdWwgMjAxMSAwNjowMTo1MCAtMDAwMApAQCAtNyw3 ICs3LDcgQEAKIAogUE9SVE5BTUU9CW1wbGF5ZXIKIFBPUlRWRVJTSU9OPQkke01QTEFZRVJfUE9S VF9WRVJTSU9OfQotUE9SVFJFVklTSU9OPQkyCitQT1JUUkVWSVNJT049CTMKIENPTU1FTlQ9CUhp Z2ggcGVyZm9ybWFuY2UgbWVkaWEgcGxheWVyIHN1cHBvcnRpbmcgbWFueSBmb3JtYXRzCiAKIC5p bmNsdWRlICIkey5DVVJESVJ9L01ha2VmaWxlLnNoYXJlZCIKQEAgLTc0LDEyICs3NCw2IEBACiAK IENPTkZGSUxFUz0JZXhhbXBsZS5jb25mIGlucHV0LmNvbmYgbWVudS5jb25mIGR2Yi1tZW51LmNv bmYKIAotIyBmaXggZm9yIGJ1ZyB3aGVuIGxpYmFzcyBpcyBpbnN0YWxsZWQsIG1wbGF5ZXIgY29u ZmlndXJlIGRvZXMgbm90Ci0jIHVwaG9sZCAtLWRpc2FibGUtYXNzCi0uaWYgZXhpc3RzKCR7TE9D QUxCQVNFfS9saWIvbGliYXNzLnNvKQotV0lUSF9BU1M9CXllcwotLmVuZGlmCi0KIC5pbmNsdWRl IDxic2QucG9ydC5wcmUubWs+CiAKIC5pZiAke0FSQ0h9ID09ICJzcGFyYzY0IgpJbmRleDogZmls ZXMvcGF0Y2gtc3ViX19zdWJyZWFkZXIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBmaWxlcy9wYXRj aC1zdWJfX3N1YnJlYWRlci5jCmRpZmYgLU4gZmlsZXMvcGF0Y2gtc3ViX19zdWJyZWFkZXIuYwot LS0gL2Rldi9udWxsCTEgSmFuIDE5NzAgMDA6MDA6MDAgLTAwMDAKKysrIGZpbGVzL3BhdGNoLXN1 Yl9fc3VicmVhZGVyLmMJMjMgSnVsIDIwMTEgMDM6Mjc6NTAgLTAwMDAKQEAgLTAsMCArMSwxMyBA QAorLS0tIHN1Yi9zdWJyZWFkZXIuYy5vcmlnCTIwMTEtMDctMjIgMjM6MDg6NTIuMDAwMDAwMDAw IC0wNDAwCisrKysgc3ViL3N1YnJlYWRlci5jCTIwMTEtMDctMjIgMjM6MjY6MTUuMDAwMDAwMDAw IC0wNDAwCitAQCAtMjUwOSw4ICsyNTA5LDEwIEBACisgICBzdHJpcF9tYXJrdXAgPSAxOworICNl bmRpZgorICAgaWYgKCFzdHJpcF9tYXJrdXApIHsKKysjaWZkZWYgQ09ORklHX0FTUworICAgICBz dWJhc3Njb252ZXJ0X3N1YnJpcCh0eHQsIGJ1ZiwgTUFYX1NVQkxJTkUgKyAxKTsKKyAgICAgc3Vi LT50ZXh0W3N1Yi0+bGluZXNdID0gYnVmOworKyNlbmRpZiAKKyAgIH0gZWxzZSB7CisgICAgIGZv ciAoaSA9IDA7IGkgPCBsZW4gJiYgcG9zIDwgTUFYX1NVQkxJTkU7IGkrKykgeworICAgICAgIGNo YXIgYyA9IHR4dFtpXTsK --bcaec5430b3e5c40a604a8b6648f--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGFTUwMZ5iAp=VvNZezX4fiGy2d5Ep6jaSWWUZp92KTobxkjsQ>