Skip site navigation (1)Skip section navigation (2)
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>