Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#50594 closed defect (fixed)

mythtv-core.27 @0.27.5-Fixes-20160122_1: opportunistically links with pulseaudio despite configuration to the contrary

Reported by: dbevans (David B. Evans) Owned by: ctreleaven (Craig Treleaven)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc:
Port: mythtv-core.27

Description

It appears that the latest version of mythtv-core.27 will link with libpulse from port pulseaudio, if it is available at build time, in spite of the use of configuration items

--disable-audio-pulseoutput \
--disable-libpulse \

and configuration output

:info:configure # Sound Output Support
:info:configure PulseAudio support        no
:info:configure OSS support               no
:info:configure ALSA support              no
:info:configure JACK support              no

to the contrary.

This can be seen throughout the build log as in this example (look for -lpulse)

:info:build /usr/bin/clang++ -c -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -DPIC -fomit-frame-pointer -fPIC -g -Wall -Wpointer-arith -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -Wno-self-assign -Wno-constant-logical-operand -Wno-unused-value -Qunused-arguments -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.10 -DMMX -DUSING_APPLEREMOTE -D_GNU_SOURCE -DUSING_OPENGL -DUSING_OPENGL_VIDEO -DUSING_PULSE -DUSING_COREAUDIO -DUSING_LIBDNS_SD -DUSING_AIRPLAY -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_SCRIPT_LIB -DQT_SQL_LIB -DQT_XML_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/opt/local/libexec/qt4/share/mkspecs/macx-g++ -I. -I. -I/opt/local/libexec/qt4/Library/Frameworks/QtCore.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtNetwork.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtGui.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtOpenGL.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtXml.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtSql.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtScript.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtWebKit.framework/Versions/4/Headers -I/usr/include -I/opt/local -I/opt/local/include/libxml2 -I../../external/qjson/include -I../.. -I../../libs -I../../libs/libmyth -I../../libs/libmyth/audio -I../../libs/libmythtv -I../../external/FFmpeg -I../../libs/libmythupnp -I../../libs/libmythui -I../../libs/libmythmetadata -I../../libs/libmythlivemedia -I../../libs/libmythbase -I../../libs/libmythdvdnav -I../../external/libmythbluray -I../../external/libsamplerate -I../../libs/libmythtv/mpeg -I../../libs/libmythtv/vbitext -I../../libs/libmythservicecontracts -I../../libs/libmythprotoserver -I/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers -I/System/Library/Frameworks/AGL.framework/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtWebKit.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtScript.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtSql.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtXml.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtOpenGL.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtGui.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtNetwork.framework/Versions/4/Headers -I/opt/local/libexec/qt4/Library/Frameworks/QtCore.framework/Versions/4/Headers -I/opt/local/libexec/qt4/include -F/opt/local/libexec/qt4/Library/Frameworks -F/opt/local/libexec/qt4/lib -o moc_frontend.o moc_frontend.cpp
:info:build /usr/bin/clang++ -headerpad_max_install_names -Wl,-dynamic,-search_paths_first -arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.10 -o mythfrontend main.o playbackbox.o viewscheduled.o audiogeneralsettings.o globalsettings.o manualschedule.o programrecpriority.o channelrecpriority.o statusbox.o networkcontrol.o mediarenderer.o mythfexml.o playbackboxlistitem.o custompriority.o exitprompt.o action.o actionset.o mythcontrols.o keybindings.o keygrabber.o progfind.o guidegrid.o customedit.o schedulecommon.o progdetails.o scheduleeditor.o backendconnectionmanager.o programinfocache.o proglist.o proglist_helpers.o playbackboxhelper.o viewschedulediff.o themechooser.o setupwizard_general.o setupwizard_audio.o setupwizard_video.o grabbersettings.o editvideometadata.o videofileassoc.o videometadatasettings.o videoplayercommand.o videopopups.o videofilter.o videolist.o videoplayersettings.o videodlg.o videoglobalsettings.o upnpscanner.o commandlineparser.o idlescreen.o frontend.o moc_playbackbox.o moc_viewscheduled.o moc_globalsettings.o moc_audiogeneralsettings.o moc_manualschedule.o moc_programrecpriority.o moc_channelrecpriority.o moc_statusbox.o moc_networkcontrol.o moc_custompriority.o moc_exitprompt.o moc_mythcontrols.o moc_keygrabber.o moc_progfind.o moc_guidegrid.o moc_customedit.o moc_schedulecommon.o moc_progdetails.o moc_scheduleeditor.o moc_backendconnectionmanager.o moc_proglist.o moc_proglist_helpers.o moc_viewschedulediff.o moc_themechooser.o moc_setupwizard_general.o moc_setupwizard_audio.o moc_setupwizard_video.o moc_grabbersettings.o moc_editvideometadata.o moc_videofileassoc.o moc_videometadatasettings.o moc_videopopups.o moc_videofilter.o moc_videoplayersettings.o moc_videodlg.o moc_upnpscanner.o moc_idlescreen.o moc_frontend.o   -F/opt/local/libexec/qt4/Library/Frameworks -F/opt/local/libexec/qt4/lib  -L../../libs/libmyth -L../../libs/libmythtv -L../../external/FFmpeg/libavutil -L../../external/FFmpeg/libavcodec -L../../external/FFmpeg/libavformat -L../../external/FFmpeg/libswscale -L../../external/FFmpeg/libswresample -L../../libs/libmythbase -L../../libs/libmythui -L../../libs/libmythupnp -L../../libs/libmythmetadata -L../../libs/libmythservicecontracts -L../../libs/libmythprotoserver -lmythswscale -lmythavformat -lmythavcodec -lmythavutil -lmythswresample -lmythtv-0.27 -lmythupnp-0.27 -lmythbase-0.27 -lmythui-0.27 -lmyth-0.27 -lmythmetadata-0.27 -lmythservicecontracts-0.27 -lmythprotoserver-0.27 -L../../libs/libmythfreemheg -lmythfreemheg-0.27 -L../../external/libhdhomerun -lmythhdhomerun-0.27 -framework CoreFoundation -framework VideoDecodeAcceleration -framework QuartzCore -lxml2 -lcrypto -lass -lfftw3_threads -lfftw3f -lfftw3 -liconv -lpulse -L/opt/local/lib -lfreetype -lx264 -lmp3lame -lfaac -lm -lbz2 -lz -L/opt/local/var/macports/build/_opt_macports_trunk_dports_multimedia_mythtv.27/mythtv-core.27/work/mythtv-5e18f50d/mythtv/external/qjson/lib -lmythqjson -framework OpenGL -framework AGL -F/opt/local/libexec/qt4/Library/Frameworks -F/opt/local/libexec/qt4/lib -L/opt/local/libexec/qt4/lib -framework QtWebKit -framework QtScript -F/opt/local/Library/Frameworks -framework QtCore -framework QtSql -framework QtXml -framework QtOpenGL -framework QtGui -framework QtNetwork

or by deactivating pulseaudio after the install and running rev-upgrade like this

$ sudo port install pulseaudio
$ sudo port install mythtv-core.27
$ sudo port deactivate pulseaudio
$ sudo port rev-upgrade
$ sudo port -d rev-upgrade
--->  Scanning binaries for linking errors
DEBUG: Ignoring loadcommand containing @executable_path in /opt/local/libexec/ld64/ld-latest
Could not open /opt/local/lib/libpulse.0.dylib: Error opening or reading file (referenced from /opt/local/bin/mythavtest)
DEBUG: Marking /opt/local/bin/mythavtest as broken
DEBUG: Marking /opt/local/bin/mythbackend as broken
DEBUG: Marking /opt/local/bin/mythccextractor as broken
DEBUG: Marking /opt/local/bin/mythcommflag as broken
DEBUG: Marking /opt/local/bin/mythffmpeg as broken
DEBUG: Marking /opt/local/bin/mythffprobe as broken
DEBUG: Marking /opt/local/bin/mythffserver as broken
DEBUG: Marking /opt/local/bin/mythfilldatabase as broken
DEBUG: Marking /opt/local/bin/mythfrontend as broken
DEBUG: Marking /opt/local/bin/mythjobqueue as broken
DEBUG: Marking /opt/local/bin/mythlcdserver as broken
DEBUG: Marking /opt/local/bin/mythmediaserver as broken
DEBUG: Marking /opt/local/bin/mythmetadatalookup as broken
DEBUG: Marking /opt/local/bin/mythpreviewgen as broken
DEBUG: Marking /opt/local/bin/mythreplex as broken
DEBUG: Marking /opt/local/bin/mythscreenwizard as broken
DEBUG: Marking /opt/local/bin/mythshutdown as broken
DEBUG: Marking /opt/local/bin/mythtranscode as broken
DEBUG: Marking /opt/local/bin/mythtv-setup as broken
DEBUG: Marking /opt/local/bin/mythutil as broken
DEBUG: Marking /opt/local/bin/mythwelcome as broken
DEBUG: Marking /opt/local/lib/libmyth-0.27.0.27.0.dylib as broken
DEBUG: Marking /opt/local/lib/libmythavcodec.54.92.100.dylib as broken
DEBUG: Marking /opt/local/lib/libmythavdevice.54.3.103.dylib as broken
DEBUG: Marking /opt/local/lib/libmythavfilter.3.42.103.dylib as broken
DEBUG: Marking /opt/local/lib/libmythavformat.54.63.104.dylib as broken
DEBUG: Marking /opt/local/lib/libmythavutil.52.18.100.dylib as broken
DEBUG: Marking /opt/local/lib/libmythbase-0.27.0.27.0.dylib as broken
DEBUG: Marking /opt/local/lib/libmythfreemheg-0.27.0.27.0.dylib as broken
DEBUG: Marking /opt/local/lib/libmythmetadata-0.27.0.27.0.dylib as broken
DEBUG: Marking /opt/local/lib/libmythpostproc.52.2.100.dylib as broken
DEBUG: Marking /opt/local/lib/libmythprotoserver-0.27.0.27.0.dylib as broken
DEBUG: Marking /opt/local/lib/libmythservicecontracts-0.27.0.27.0.dylib as broken
DEBUG: Marking /opt/local/lib/libmythswresample.0.17.102.dylib as broken
DEBUG: Marking /opt/local/lib/libmythswscale.2.2.100.dylib as broken
DEBUG: Marking /opt/local/lib/libmythtv-0.27.0.27.0.dylib as broken
DEBUG: Marking /opt/local/lib/libmythui-0.27.0.27.0.dylib as broken
DEBUG: Marking /opt/local/lib/libmythupnp-0.27.0.27.0.dylib as broken
DEBUG: Marking /opt/local/lib/mythtv/filters/libadjust.dylib as broken
DEBUG: Marking /opt/local/lib/mythtv/filters/libbobdeint.dylib as broken
DEBUG: Marking /opt/local/lib/mythtv/filters/libcrop.dylib as broken
DEBUG: Marking /opt/local/lib/mythtv/filters/libdenoise3d.dylib as broken
DEBUG: Marking /opt/local/lib/mythtv/filters/libfieldorder.dylib as broken
DEBUG: Marking /opt/local/lib/mythtv/filters/libforce.dylib as broken
DEBUG: Marking /opt/local/lib/mythtv/filters/libinvert.dylib as broken
DEBUG: Marking /opt/local/lib/mythtv/filters/libivtc.dylib as broken
DEBUG: Marking /opt/local/lib/mythtv/filters/libkerneldeint.dylib as broken
DEBUG: Marking /opt/local/lib/mythtv/filters/liblinearblend.dylib as broken
DEBUG: Marking /opt/local/lib/mythtv/filters/libonefield.dylib as broken
DEBUG: Marking /opt/local/lib/mythtv/filters/libpostprocess.dylib as broken
DEBUG: Marking /opt/local/lib/mythtv/filters/libquickdnr.dylib as broken
DEBUG: Marking /opt/local/lib/mythtv/filters/libvflip.dylib as broken
DEBUG: Marking /opt/local/lib/mythtv/filters/libyadif.dylib as broken
--->  Found 53 broken file(s), matching files to ports
--->  Found 1 broken port(s):
     mythtv-core.27 @0.27.5-Fixes-20160122 
         /opt/local/bin/mythavtest
         /opt/local/bin/mythbackend
         /opt/local/bin/mythccextractor
         /opt/local/bin/mythcommflag
         /opt/local/bin/mythffmpeg
         /opt/local/bin/mythffprobe
         /opt/local/bin/mythffserver
         /opt/local/bin/mythfilldatabase
         /opt/local/bin/mythfrontend
         /opt/local/bin/mythjobqueue
         /opt/local/bin/mythlcdserver
         /opt/local/bin/mythmediaserver
         /opt/local/bin/mythmetadatalookup
         /opt/local/bin/mythpreviewgen
         /opt/local/bin/mythreplex
         /opt/local/bin/mythscreenwizard
         /opt/local/bin/mythshutdown
         /opt/local/bin/mythtranscode
         /opt/local/bin/mythtv-setup
         /opt/local/bin/mythutil
         /opt/local/bin/mythwelcome
         /opt/local/lib/libmyth-0.27.0.27.0.dylib
         /opt/local/lib/libmythavcodec.54.92.100.dylib
         /opt/local/lib/libmythavdevice.54.3.103.dylib
         /opt/local/lib/libmythavfilter.3.42.103.dylib
         /opt/local/lib/libmythavformat.54.63.104.dylib
         /opt/local/lib/libmythavutil.52.18.100.dylib
         /opt/local/lib/libmythbase-0.27.0.27.0.dylib
         /opt/local/lib/libmythfreemheg-0.27.0.27.0.dylib
         /opt/local/lib/libmythmetadata-0.27.0.27.0.dylib
         /opt/local/lib/libmythpostproc.52.2.100.dylib
         /opt/local/lib/libmythprotoserver-0.27.0.27.0.dylib
         /opt/local/lib/libmythservicecontracts-0.27.0.27.0.dylib
         /opt/local/lib/libmythswresample.0.17.102.dylib
         /opt/local/lib/libmythswscale.2.2.100.dylib
         /opt/local/lib/libmythtv-0.27.0.27.0.dylib
         /opt/local/lib/libmythui-0.27.0.27.0.dylib
         /opt/local/lib/libmythupnp-0.27.0.27.0.dylib
         /opt/local/lib/mythtv/filters/libadjust.dylib
         /opt/local/lib/mythtv/filters/libbobdeint.dylib
         /opt/local/lib/mythtv/filters/libcrop.dylib
         /opt/local/lib/mythtv/filters/libdenoise3d.dylib
         /opt/local/lib/mythtv/filters/libfieldorder.dylib
         /opt/local/lib/mythtv/filters/libforce.dylib
         /opt/local/lib/mythtv/filters/libinvert.dylib
         /opt/local/lib/mythtv/filters/libivtc.dylib
         /opt/local/lib/mythtv/filters/libkerneldeint.dylib
         /opt/local/lib/mythtv/filters/liblinearblend.dylib
         /opt/local/lib/mythtv/filters/libonefield.dylib
         /opt/local/lib/mythtv/filters/libpostprocess.dylib
         /opt/local/lib/mythtv/filters/libquickdnr.dylib
         /opt/local/lib/mythtv/filters/libvflip.dylib
         /opt/local/lib/mythtv/filters/libyadif.dylib

I'm not sure what the cause is but I'm guessing that it's sneaking into the build of mythtv's private copy of ffmpeg (libmythav*.dylib) and being propagated from there throughout the port where ever these libraries are used.

Build log attached.

Attachments (1)

main.log (3.8 MB) - added by dbevans (David B. Evans) 8 years ago.
Build log showing linking with libpulse

Change History (6)

Changed 8 years ago by dbevans (David B. Evans)

Attachment: main.log added

Build log showing linking with libpulse

comment:1 Changed 8 years ago by dbevans (David B. Evans)

Owner: changed from cctreleaven@… to ctreleaven@…

comment:2 Changed 8 years ago by ctreleaven (Craig Treleaven)

Part of me just wants to add it to conflicts_build, but I'll take a look.

Thanks for the work you've already put in.

Last edited 8 years ago by ctreleaven (Craig Treleaven) (previous) (diff)

comment:3 in reply to:  2 Changed 8 years ago by dbevans (David B. Evans)

Replying to ctreleaven@…:

Part of me just wants to add it to conflicts_build, but I'll take a look.

That's not really appropriate. The idea is to get it to build the same way regardless of what's already installed so the easy way would be to add pulseaudio as a dependency.

Thanks for the work you've already put in.

No problem. I ran across it testing dependencies of x264 after the update yesterday.

comment:4 Changed 8 years ago by ctreleaven (Craig Treleaven)

Resolution: fixed
Status: newclosed

Fixed in r145627 -- also prevent linking to liboss at the same time.

comment:5 Changed 8 years ago by dbevans (David B. Evans)

Looks good. Thanks.

Note: See TracTickets for help on using tickets.