freebsd-ports/audio/soundkonverter/Makefile
Tijl Coosemans 1bf487d3e7 Fix Qt5 symbol version scripts to put the catch-all clause first. When
a symbol matches multiple clauses the last one takes precedence.  If the
catch-all is last it captures everything.  In the case of Qt5 libraries
this caused all symbols to have a Qt_5 label while some should have
Qt_5_PRIVATE_API.  This only affects lld because GNU ld always gives the
catch-all lowest priority.

Older versions of Qt5Webengine exported some memory allocation symbols from
the bundled Chromium.  Version 5.9 stopped exporting these [1] but the
symbols were kept as weak wrappers for the standard allocation functions to
maintain binary compatibility. [2][3]  The problem is that the call to the
standard function in these weak wrappers is only resolved to the standard
function if there's a call to this standard function in other parts of
Qt5Webengine, because only then is there a non-weak symbol that takes
precedence over the weak one.  If there's no such non-weak symbol the call
in the weak wrapper resolves to the weak wrapper itself creating an infinite
call loop that overflows the stack and causes a crash.  Some of the
allocation functions are variants of C++ new and delete and it probably
depends on the compiler whether these variants are used in other parts of
Qt5Webengine.

Remove the weak wrappers (make them Linux specific).  This isn't binary
compatible but we are already breaking that with the changes to the symbol
versions.

[1] 5c2cbfccf9
[2] 2ed5054e3a
[3] 009f5ebb4b

Bump all ports that depend on Qt5.

PR:		234070
Exp-run by:	antoine
Approved by:	kde (adridg)
2019-01-16 11:13:44 +00:00

119 lines
3.2 KiB
Makefile

# Created by: David Naylor <naylor.b.david@gmail.com>
# $FreeBSD$
PORTNAME= soundkonverter
PORTVERSION= 3.0.1
DISTVERSIONPREFIX= v
PORTREVISION= 3
CATEGORIES= audio kde
MAINTAINER= dbn@FreeBSD.org
COMMENT= Frontend to various audio converters (transcoder)
LICENSE= GPLv2
LIB_DEPENDS= libtag.so:audio/taglib \
libcdda_paranoia.so:audio/cdparanoia \
libphonon4qt5.so:multimedia/phonon@qt5
GH_ACCOUNT= HessiJames
USES= cmake compiler:c++11-lang kde:5 qt:5
USE_GITHUB= yes
USE_QT= dbus concurrent core buildtools_build gui network printsupport \
qmake_build widgets xml
USE_KDE= auth codecs config configwidgets completion coreaddons crash \
bookmarks guiaddons i18n iconthemes itemviews jobwidgets \
kdelibs4support kio libkcddb notifications parts textwidgets \
service solid sonnet unitconversion windowsystem widgetsaddons \
xmlgui
WRKSRC_SUBDIR= src
OPTIONS_DEFAULT= VORBIS FLAC NORMALIZE VORBISGAIN
OPTIONS_DEFINE= NLS
OPTIONS_GROUP= RIPPER CODEC FILTER REPLAYGAIN MISC
OPTIONS_GROUP_RIPPER= CDRKIT
OPTIONS_GROUP_CODEC= AFTEN FAAC FFMPEG FLAKE FLUIDSYNTH LAME MAC \
MPLAYER MUSEPACK OPUSTOOLS SHORTEN SPEEX \
TIMIDITY TTA TWOLAME VORBIS WAVPACK LIBAV
OPTIONS_GROUP_FILTER= SOX
OPTIONS_GROUP_REPLAYGAIN= AACGAIN MP3GAIN \
VORBISGAIN WAVPACK
OPTIONS_GROUP_MISC= FLAC NORMALIZE
OPTIONS_SUB= yes
CODEC_DESC= Audio codec formats
FILTER_DESC= Audio filter tools
MISC_DESC= Audio tools that fit in more than one category
REPLAYGAIN_DESC= Replaygain tools for codecs
RIPPER_DESC= CD ripping tools
AFTEN_DESC= ATSC A/52 audio encoder
AFTEN_RUN_DEPENDS= aften:audio/aften
AACGAIN_DESC= AAC audio replaygain
AACGAIN_RUN_DEPENDS= aacgain:audio/aacgain
CDRKIT_DESC= CD ripping support (cdrkit)
CDRKIT_RUN_DEPENDS= icedax:sysutils/cdrkit
FAAC_RUN_DEPENDS= faac:audio/faac \
faad:audio/faad
FFMPEG_RUN_DEPENDS= ffmpeg:multimedia/ffmpeg
FLAC_DESC= FLAC codec and replaygain
FLAC_RUN_DEPENDS= flac:audio/flac
FLAKE_DESC= FLAC audio codec
FLAKE_RUN_DEPENDS= flake:audio/flake
FLUIDSYNTH_DESC= SoundFont 2 audio codec
FLUIDSYNTH_RUN_DEPENDS= fluidsynth:audio/fluidsynth
LAME_RUN_DEPENDS= lame:audio/lame
LIBAV_DESC= LibAV support (WMA, AIFF, AC3, APE...)
LIBAV_RUN_DEPENDS= avconv:multimedia/libav
MAC_DESC= Monkey's Audio lossless codec
MAC_RUN_DEPENDS= mac:audio/mac
MP3GAIN_DESC= MP3 audio replaygain
MP3GAIN_RUN_DEPENDS= mp3gain:audio/mp3gain
MPLAYER_RUN_DEPENDS= mplayer:multimedia/mplayer
MUSEPACK_RUN_DEPENDS= mpcenc:audio/musepack
NORMALIZE_DESC= MP3/Ogg Vorbis audio filter and replaygain
NORMALIZE_RUN_DEPENDS= normalize:audio/normalize
OPUSTOOLS_DESC= Opus audio codec
OPUSTOOLS_RUN_DEPENDS= opusenc:audio/opus-tools
SHORTEN_DESC= Shorten (lossless) audio codec
SHORTEN_RUN_DEPENDS= shorten:audio/shorten
SOX_DESC= Universal sound sample translator
SOX_RUN_DEPENDS= sox:audio/sox
SPEEX_RUN_DEPENDS= speexenc:audio/speex
TIMIDITY_DESC= MIDI audio decoder
TIMIDITY_RUN_DEPENDS= timidity:audio/timidity
TTA_RUN_DEPENDS= ttaenc:audio/tta
TWOLAME_RUN_DEPENDS= twolame:audio/twolame
VORBISGAIN_DESC= Ogg Vorbis audio replaygain
VORBISGAIN_RUN_DEPENDS= vorbisgain:audio/vorbisgain
VORBIS_RUN_DEPENDS= oggenc:audio/vorbis-tools
WAVPACK_RUN_DEPENDS= wavpack:audio/wavpack
NLS_USES= gettext
NLS_CMAKE_OFF= -DBUILD_po=FALSE
.include <bsd.port.mk>