git: ca3f925d6eb5 - main - framework: convert bsd.gstreamer.mk to Uses/gstreamer.mk
Date: Sat, 30 Apr 2022 08:03:45 UTC
The branch main has been updated by tcberner:
URL: https://cgit.FreeBSD.org/ports/commit/?id=ca3f925d6eb53ff27e2a49775f6d33f52a587ae4
commit ca3f925d6eb53ff27e2a49775f6d33f52a587ae4
Author: Tobias C. Berner <tcberner@FreeBSD.org>
AuthorDate: 2022-04-29 04:52:18 +0000
Commit: Tobias C. Berner <tcberner@FreeBSD.org>
CommitDate: 2022-04-30 08:03:20 +0000
framework: convert bsd.gstreamer.mk to Uses/gstreamer.mk
- convert bsd.gstreamer.mk to Uses/gstreamer.mk
- convert ports tree to make use of USES=gstreamer
- remove duplicate dependency lines from the tree
Differential Revision: https://reviews.freebsd.org/D35097
---
CHANGES | 22 +
Mk/Uses/gstreamer.mk | 448 +++++++++++++++++++
Mk/bsd.gstreamer.mk | 562 ------------------------
Mk/bsd.port.mk | 10 +-
audio/exaile/Makefile | 4 +-
audio/faudio/Makefile | 5 +-
audio/gnome-music/Makefile | 4 +-
audio/gnome-podcasts/Makefile | 4 +-
audio/goobox/Makefile | 3 +-
audio/gradio/Makefile | 4 +-
audio/gsequencer/Makefile | 3 +-
audio/gstreamer1-plugins-sndio/Makefile | 6 +-
audio/libcanberra/Makefile | 2 +-
audio/lollypop/Makefile | 6 +-
audio/moodbar/Makefile | 4 +-
audio/mp3splt-gtk/Makefile | 3 +-
audio/mpz/Makefile | 4 +-
audio/pianod2/Makefile | 4 +-
audio/pithos/Makefile | 4 +-
audio/pragha/Makefile | 4 +-
audio/pulseeffects/Makefile | 4 +-
audio/rhythmbox/Makefile | 4 +-
audio/sayonara/Makefile | 4 +-
audio/shortwave/Makefile | 6 +-
audio/sound-juicer/Makefile | 4 +-
audio/strawberry/Makefile | 3 +-
deskutils/alarm-clock-applet/Makefile | 3 +-
deskutils/gnome-pomodoro/Makefile | 3 +-
deskutils/gnome-sound-recorder/Makefile | 4 +-
deskutils/lumina-mediaplayer/Makefile | 6 +-
deskutils/solanum/Makefile | 4 +-
deskutils/spice-gtk/Makefile | 3 +-
deskutils/xfce4-tumbler/Makefile | 2 +-
devel/efl/Makefile | 3 +-
devel/libspice-server/Makefile | 2 +-
editors/libreoffice/Makefile | 2 +-
editors/openoffice-devel/Makefile | 2 +-
emulators/wine-proton/Makefile | 4 +-
games/eboard/Makefile | 3 +-
games/lordsawar/Makefile | 3 +-
games/py-pychess/Makefile | 3 +-
graphics/elementary-photos/Makefile | 3 +-
graphics/entangle/Makefile | 4 +-
graphics/evince/Makefile | 3 +-
graphics/gnome-video-effects/Makefile | 4 +-
graphics/gthumb/Makefile | 2 +-
graphics/kmscube/Makefile | 4 +-
graphics/opencv/Makefile | 2 +-
graphics/osg/Makefile | 4 +-
graphics/osg34/Makefile | 3 +-
graphics/pdfpc/Makefile | 3 +-
graphics/shotwell/Makefile | 5 +-
mail/py-mailnag/Makefile | 3 +-
misc/copperspice-examples/Makefile | 3 +-
multimedia/aravis/Makefile | 3 +-
multimedia/cheese/Makefile | 4 +-
multimedia/clutter-gst/Makefile | 3 +-
multimedia/clutter-gst3/Makefile | 3 +-
multimedia/elementary-videos/Makefile | 8 +-
multimedia/gnome-twitch/Makefile | 6 +-
multimedia/gst123/Makefile | 4 +-
multimedia/gstreamer1-editing-services/Makefile | 4 +-
multimedia/gstreamer1-libav/Makefile | 3 +-
multimedia/gstreamer1-plugins-all/Makefile | 5 +-
multimedia/gstreamer1-plugins-bad/Makefile | 4 +-
multimedia/gstreamer1-plugins-core/Makefile | 12 +-
multimedia/gstreamer1-plugins-gnonlin/Makefile | 4 +-
multimedia/gstreamer1-plugins-good/Makefile | 3 -
multimedia/gstreamer1-plugins-rust/Makefile | 3 +-
multimedia/gstreamer1-plugins-svt-av1/Makefile | 3 +-
multimedia/gstreamer1-plugins-svt-hevc/Makefile | 3 +-
multimedia/gstreamer1-plugins-svt-vp9/Makefile | 3 +-
multimedia/gstreamer1-plugins-ugly/Makefile | 3 -
multimedia/gstreamer1-plugins/Makefile | 11 +-
multimedia/gstreamer1-plugins/Makefile.common | 12 +-
multimedia/gstreamer1-qt/Makefile | 3 +-
multimedia/gstreamer1-rtsp-server/Makefile | 4 +-
multimedia/gstreamer1-transcoder/Makefile | 4 +-
multimedia/gstreamer1-vaapi/Makefile | 4 +-
multimedia/gstreamer1-validate/Makefile | 3 +-
multimedia/gstreamermm/Makefile | 3 +-
multimedia/handbrake/Makefile | 2 +-
multimedia/kamoso/Makefile | 3 +-
multimedia/kooha/Makefile | 4 +-
multimedia/librespot/Makefile | 5 +-
multimedia/neolink/Makefile | 3 +-
multimedia/phonon-gstreamer/Makefile | 3 +-
multimedia/photofilmstrip/Makefile | 4 +-
multimedia/pipewire/Makefile | 3 +-
multimedia/pitivi/Makefile | 4 +-
multimedia/py-gstreamer1/Makefile | 3 +-
multimedia/qt5-multimedia/Makefile | 3 +-
multimedia/quodlibet/Makefile | 6 +-
multimedia/snappy/Makefile | 3 +-
multimedia/termplay/Makefile | 3 +-
multimedia/totem/Makefile | 4 +-
multimedia/webcamoid/Makefile | 3 +-
multimedia/xfce4-parole/Makefile | 8 +-
net-im/cawbird/Makefile | 2 +-
net-im/dino/Makefile | 3 +-
net-im/farstream/Makefile | 4 +-
net-im/fractal/Makefile | 4 +-
net-im/ktp-call-ui/Makefile | 3 +-
net-im/libnice/Makefile | 2 +-
net-im/libpurple/Makefile | 5 +-
net-im/pidgin-sipe/Makefile | 3 +-
net-im/telepathy-qt/Makefile | 4 +-
net/freerdp/Makefile | 4 +-
net/grilo-plugins/Makefile | 4 +-
net/gupnp-dlna/Makefile | 3 +-
net/libdmapsharing/Makefile | 3 +-
net/uget/Makefile | 2 +-
security/authenticator/Makefile | 4 +-
sysutils/brasero/Makefile | 3 +-
sysutils/gnome-control-center/Makefile | 3 +-
sysutils/tracker-miners/Makefile | 2 +-
sysutils/xfburn/Makefile | 2 +-
textproc/libextractor/Makefile | 2 +-
www/qt5-webkit/Makefile | 5 +-
www/webkit2-gtk3/Makefile | 3 +-
x11-fm/nautilus/Makefile | 3 +-
x11-fm/sushi/Makefile | 3 +-
x11-toolkits/copperspice/Makefile | 4 +-
x11-toolkits/gstreamer1-plugins-gtk4/Makefile | 4 +-
x11-toolkits/gtk40/Makefile | 2 +-
x11-toolkits/wxgtk30/Makefile | 2 +-
x11-toolkits/wxgtk31/Makefile | 2 +-
x11/cinnamon/Makefile | 3 +-
x11/florence/Makefile | 3 +-
x11/gnome-shell/Makefile | 3 +-
x11/lumina-core/Makefile | 3 +-
x11/workrave/Makefile | 3 +-
x11/xpra/Makefile | 6 +-
133 files changed, 677 insertions(+), 844 deletions(-)
diff --git a/CHANGES b/CHANGES
index e96e1b0d4a0d..6a40475bf8d5 100644
--- a/CHANGES
+++ b/CHANGES
@@ -10,6 +10,28 @@ in the release notes and/or placed into UPDATING.
All ports committers are allowed to commit to this file.
+20220430:
+AUTHOR: tcberner@FreeBSD.org
+
+ A new USES has been added to handle dependency on gstreamer.
+
+ Instead of writing
+
+ USE_GSTREAMER1=[list of components]
+
+ you now have to write
+
+ USES=gstreamer
+ USE_GSTREAMER=[list of components]
+
+ If your port previously set just
+
+ USE_GSTREAMER=yes
+
+ this now is simply
+
+ USES=gstreamer
+
20220415:
AUTHOR: amdmi3@FreeBSD.org
diff --git a/Mk/Uses/gstreamer.mk b/Mk/Uses/gstreamer.mk
new file mode 100644
index 000000000000..066b3b895e44
--- /dev/null
+++ b/Mk/Uses/gstreamer.mk
@@ -0,0 +1,448 @@
+#
+# gstreamer.mk - Support for gstreamer-plugins-based ports.
+#
+# Usage:
+# USES= gstreamer[:version]
+# USE_GSTREAMER= [list of components]
+#
+# Supported versions: 1 -- default
+# #
+
+.if ! defined(_INCLUDE_USES_GSTREAMER_MK)
+_INCLUDE_USES_GSTREAMER_MK= YES
+
+#== Argument handling
+
+# Preparations to support multiple gstreamer versions
+_GST_VER_SUPPORTED= 1
+_GST_VER_DEFAULT= 1
+_GST_VER= #
+. for ver in ${_GST_VER_SUPPORTED:O:u}
+. if ${gstreamer_ARGS:M${ver}}
+. if empty(_GST_VER)
+_GST_VER= ${ver}
+. else
+INGORE= Incorrect USES=gstreamer:${gstramer_ARGS} - multiple versions defined
+. endif
+. endif
+. endfor
+
+. if empty(_GST_VER)
+_GST_VER= ${_GST_VER_DEFAULT}
+. endif
+
+#== Component setup
+
+_GST1_VERSION= 1.16.2
+_GST1_LIB_VER= 1.0
+
+_GST1_CATEGORIES= audio comms devel ftp graphics multimedia net security \
+ sysutils www x11 x11-toolkits
+_GST1_PLUGINS_audio= a52dec amrnb amrwbdec bs2b cdparanoia chromaprint faac \
+ faad flac flite gme gsm jack ladspa lame lv2 modplug \
+ mpg123 musepack ogg openmpt opus pulse shout2 sidplay \
+ sndfile sndio soundtouch speex taglib twolame vorbis \
+ wavpack webrtcdsp
+_GST1_PLUGINS_comms= spandsp
+_GST1_PLUGINS_devel= soup
+_GST1_PLUGINS_ftp= curl
+_GST1_PLUGINS_graphics= aalib cairo gdkpixbuf gl jpeg kms libcaca libvisual \
+ opencv openexr openjpeg png qt rsvg vulkan webp zbar
+_GST1_PLUGINS_multimedia= aom assrender bad dash dts dv dvd dvdread \
+ editing-services gnonlin good hls kate libav libde265 \
+ mpeg2dec mpeg2enc mplex mm openh264 resindvd rtmp \
+ smoothstreaming theora ttml ugly v4l2 vpx x264 x265
+_GST1_PLUGINS_net= libmms srtp
+_GST1_PLUGINS_security= dtls
+_GST1_PLUGINS_sysutils= cdio hal
+_GST1_PLUGINS_www= neon
+_GST1_PLUGINS_x11= x ximagesrc
+_GST1_PLUGINS_x11-toolkits= gtk gtk4 pango
+
+# == Unversioned information
+
+# Gather all available plugins for the chosen version
+_GST_PLUGINS_BASE= bad core good ugly libgstreamer plugins
+_GST_PLUGINS_VER:= ${_GST${_GST_VER}_CATEGORIES:S/^/\${_GST${_GST_VER}_PLUGINS_/:S/$/}/}
+
+_GST_VERSION= ${_GST${_GST_VER}_VERSION}
+
+# List of all available components
+_USE_GSTREAMER_ALL= ${_GST_PLUGINS_BASE} \
+ ${_GST_PLUGINS_VER}
+
+#== Dependency setup
+
+#==== Top-level components
+
+gst-plugins_PORT= multimedia/gstreamer${_GST_VER}-plugins
+gst-plugins_IMPL= # empty
+gst-plugins_SUFFIX= #
+
+gst-bad_PORT= multimedia/gstreamer${_GST_VER}-plugins-bad
+gst-bad_IMPL= #
+
+gst-core_PORT= multimedia/gstreamer${_GST_VER}-plugins-core
+gst-core_IMPL= #
+gst-core_GST1_VERSION= 1.16
+gst-core_VERSION= ${gst-core_GST${_GST_VER}_VERSION}
+
+gst-good_PORT= multimedia/gstreamer${_GST_VER}-plugins-good
+gst-good_IMPL= #
+
+gst-ugly_PORT= multimedia/gstreamer${_GST_VER}-plugins-ugly
+gst-ugly_IMPL= #
+
+gst-libgstreamer_LIB= libgstreamer${_GST${_GST_VER}_LIB_VER:D-${_GST${_GST_VER}_LIB_VER}}.so
+gst-libgstreamer_PORT= multimedia/gstreamer${_GST_VER}
+
+#==== Audio Plugins Section
+
+gst-a52dec_PORT= audio/gstreamer${_GST_VER}-plugins-a52dec
+gst-a52dec_IMPL= ugly
+
+gst-amrnb_PORT= audio/gstreamer${_GST_VER}-plugins-amrnb
+gst-amrnb_IMPL= ugly
+
+gst-amrwbdec_PORT= audio/gstreamer${_GST_VER}-plugins-amrwbdec
+gst-amrwbdec_IMPL= ugly
+
+gst-bs2b_PORT= audio/gstreamer${_GST_VER}-plugins-bs2b
+gst-bs2b_IMPL= bad
+
+gst-cdparanoia_PORT= audio/gstreamer${_GST_VER}-plugins-cdparanoia
+gst-cdparanoia_IMPL= #
+
+gst-chromaprint_PORT= audio/gstreamer${_GST_VER}-plugins-chromaprint
+gst-chromeprint_IMPL= bad
+
+gst-faac_PORT= audio/gstreamer${_GST_VER}-plugins-faac
+gst-faac_IMPL= bad
+
+gst-faad_PORT= audio/gstreamer${_GST_VER}-plugins-faad
+gst-faad_IMPL= bad
+
+gst-flac_PORT= audio/gstreamer${_GST_VER}-plugins-flac
+gst-flac_IMPL= good
+
+gst-flite_PORT= audio/gstreamer${_GST_VER}-plugins-flite
+gst-flite_IMPL= bad
+
+gst-gme_PORT= audio/gstreamer${_GST_VER}-plugins-gme
+gst-gme_IMPL= bad
+
+gst-gsm_PORT= audio/gstreamer${_GST_VER}-plugins-gsm
+gst-gsm_IMPL= bad
+
+gst-hal_PORT= sysutils/gstreamer${_GST_VER}-plugins-hal
+gst-hal_IMPL= good
+
+gst-jack_PORT= audio/gstreamer${_GST_VER}-plugins-jack
+gst-jack_IMPL= good
+
+gst-ladspa_PORT= audio/gstreamer${_GST_VER}-plugins-ladspa
+gst-ladspa_IMPL= bad
+
+gst-lame_PORT= audio/gstreamer${_GST_VER}-plugins-lame
+gst-lame_IMPL= ugly
+
+gst-lv2_PORT= audio/gstreamer${_GST_VER}-plugins-lv2
+gst-lv2_IMPL= bad
+
+gst-modplug_PORT= audio/gstreamer${_GST_VER}-plugins-modplug
+gst-modplug_IMPL= bad
+
+gst-mpg123_PORT= audio/gstreamer${_GST_VER}-plugins-mpg123
+gst-mpg123_IMPL= ugly
+
+gst-musepack_PORT= audio/gstreamer${_GST_VER}-plugins-musepack
+gst-musepack_IMPL= bad
+
+gst-neon_PORT= www/gstreamer${_GST_VER}-plugins-neon
+gst-neon_IMPL= bad
+
+gst-ogg_PORT= audio/gstreamer${_GST_VER}-plugins-ogg
+gst-ogg_IMPL= #
+
+gst-opus_PORT= audio/gstreamer${_GST_VER}-plugins-opus
+gst-opus_IMPL= #
+
+gst-pulse_PORT= audio/gstreamer${_GST_VER}-plugins-pulse
+gst-pulse_IMPL= good
+
+gst-shout2_PORT= audio/gstreamer${_GST_VER}-plugins-shout2
+gst-shout2_IMPL= good
+
+gst-sidplay_PORT= audio/gstreamer${_GST_VER}-plugins-sidplay
+gst-sidplay_IMPL= ugly
+
+gst-sndio_PORT= audio/gstreamer${_GST_VER}-plugins-sndio
+gst-sndio_IMPL= #
+
+gst-sndfile_PORT= audio/gstreamer${_GST_VER}-plugins-sndfile
+gst-sndfile_IMPL= bad
+
+gst-soundtouch_PORT= audio/gstreamer${_GST_VER}-plugins-soundtouch
+gst-soundtouch_IMPL= bad
+
+gst-speex_PORT= audio/gstreamer${_GST_VER}-plugins-speex
+gst-speex_IMPL= good
+
+gst-taglib_PORT= audio/gstreamer${_GST_VER}-plugins-taglib
+gst-taglib_IMPL= good
+
+gst-twolame_PORT= audio/gstreamer${_GST_VER}-plugins-twolame
+gst-twolame_IMPL= ugly
+
+gst-vorbis_PORT= audio/gstreamer${_GST_VER}-plugins-vorbis
+gst-vorbis_IMPL= #
+
+gst-wavpack_PORT= audio/gstreamer${_GST_VER}-plugins-wavpack
+gst-wavpack_IMPL= good
+
+gst-webrtcdsp_PORT= audio/gstreamer${_GST_VER}-plugins-webrtcdsp
+gst-webrtcdsp_IMPL= bad
+
+#==== comms plugin section
+
+gst-spandsp_PORT= comms/gstreamer${_GST_VER}-plugins-spandsp
+gst-spandsp_IMPL= bad
+
+#==== devel plugin section
+
+gst-soup_PORT= devel/gstreamer${_GST_VER}-plugins-soup
+gst-soup_IMPL= good
+
+#==== ftp plugin section
+
+gst-curl_PORT= ftp/gstreamer${_GST_VER}-plugins-curl
+gst-curl_IMPL= bad
+
+#==== graphics plugin section
+
+gst-aalib_PORT= graphics/gstreamer${_GST_VER}-plugins-aalib
+gst-aalib_IMPL= good
+
+gst-aom_PORT= multimedia/gstreamer${_GST_VER}-plugins-aom
+gst-aom_IMPL= bad
+
+gst-assrender_PORT= multimedia/gstreamer${_GST_VER}-plugins-assrender
+gst-assrender_IMPL= bad
+
+gst-cairo_PORT= graphics/gstreamer${_GST_VER}-plugins-cairo
+gst-cairo_IMPL= good
+
+gst-gdkpixbuf_PORT= graphics/gstreamer${_GST_VER}-plugins-gdkpixbuf
+gst-gdkpixbuf_IMPL= good
+
+gst-gl_PORT= graphics/gstreamer${_GST_VER}-plugins-gl
+gst-gl_IMPL= bad
+
+gst-jpeg_PORT= graphics/gstreamer${_GST_VER}-plugins-jpeg
+gst-jpeg_IMPL= good
+
+gst-kms_PORT= graphics/gstreamer${_GST_VER}-plugins-kms
+gst-kms_IMPL= bad
+
+gst-libcaca_PORT= graphics/gstreamer${_GST_VER}-plugins-libcaca
+gst-libcaca_IMPL= good
+
+gst-libvisual_PORT= graphics/gstreamer${_GST_VER}-plugins-libvisual
+gst-libvisual_IMPL= #
+
+gst-opencv_PORT= graphics/gstreamer${_GST_VER}-plugins-opencv
+gst-opencv_IMPL= bad
+
+gst-openexr_PORT= graphics/gstreamer${_GST_VER}-plugins-openexr
+gst-openexr_IMPL= bad
+
+gst-openjpeg_PORT= graphics/gstreamer${_GST_VER}-plugins-openjpeg
+gst-openjpeg_IMPL= bad
+
+gst-openmpt_PORT= audio/gstreamer${_GST_VER}-plugins-openmpt
+gst-openmpt_IMPL= bad
+
+gst-png_PORT= graphics/gstreamer${_GST_VER}-plugins-png
+gst-png_IMPL= good
+
+gst-qt_PORT= graphics/gstreamer${_GST_VER}-plugins-qt
+gst-qt_IMPL= good
+
+gst-rsvg_PORT= graphics/gstreamer${_GST_VER}-plugins-rsvg
+gst-rsvg_IMPL= bad
+
+gst-webp_PORT= graphics/gstreamer${_GST_VER}-plugins-webp
+gst-webp_IMPL= bad
+
+gst-zbar_PORT= graphics/gstreamer${_GST_VER}-plugins-zbar
+gst-zbar_IMPL= bad
+
+#==== multimedia plugins section
+
+gst-dash_PORT= multimedia/gstreamer${_GST_VER}-plugins-dash
+gst-dash_IMPL= bad
+
+gst-dvdread_PORT= multimedia/gstreamer${_GST_VER}-plugins-dvdread
+gst-dvdread_IMPL= ugly
+
+gst-editing-services_PORT= multimedia/gstreamer${_GST_VER}-editing-services
+gst-editing-services_SUFFIX= #
+gst-editing-services_IMPL= #
+
+gst-dts_PORT= multimedia/gstreamer${_GST_VER}-plugins-dts
+gst-dts_IMPL= bad
+
+gst-dv_PORT= multimedia/gstreamer${_GST_VER}-plugins-dv
+gst-dv_IMPL= good
+
+gst-dvd_PORT= multimedia/gstreamer${_GST_VER}-plugins-dvd
+gst-dvd_IMPL= ugly
+
+gst-gnonlin_PORT= multimedia/gstreamer${_GST_VER}-plugins-gnonlin
+gst-gnonlin_IMPL= good
+
+gst-hls_PORT= multimedia/gstreamer${_GST_VER}-plugins-hls
+gst-hls_IMPL= bad
+
+gst-kate_PORT= multimedia/gstreamer${_GST_VER}-plugins-kate
+gst-kate_IMPL= bad
+
+gst-libav_PORT= multimedia/gstreamer${_GST_VER}-libav
+gst-libav_SUFFIX= #
+gst-libav_IMPL= #
+
+gst-libde265_PORT= multimedia/gstreamer${_GST_VER}-plugins-libde265
+gst-libde265_IMPL= bad
+
+gst-mm_PORT= multimedia/gstreamermm
+gst-mm_PREFIX= gstreamer
+gst-mm_SUFFIX= #
+gst-mm_IMPL= #
+gst-mm_GST1_VERSION= 1.10.0
+gst-mm_VERSION= ${gst-mm_GST${_GST_VER}_VERSION}
+
+gst-mpeg2dec_PORT= multimedia/gstreamer${_GST_VER}-plugins-mpeg2dec
+gst-mpeg2dec_IMPL= ugly
+
+gst-mpeg2enc_PORT= multimedia/gstreamer${_GST_VER}-plugins-mpeg2enc
+gst-mpeg2enc_IMPL= bad
+
+gst-mplex_PORT= multimedia/gstreamer${_GST_VER}-plugins-mplex
+gst-mplex_IMPL= bad
+
+gst-openh264_PORT= multimedia/gstreamer${_GST_VER}-plugins-openh264
+gst-openh264_IMPL= bad
+
+gst-rtmp_PORT= multimedia/gstreamer${_GST_VER}-plugins-rtmp
+gst-rtmp_IMPL= bad
+
+gst-smoothstreaming_PORT= multimedia/gstreamer${_GST_VER}-plugins-smoothstreaming
+gst-smoothstreaming_IMPL= bad
+
+gst-ttml_PORT= multimedia/gstreamer${_GST_VER}-plugins-ttml
+gst-ttml_IMPL= bad
+
+gst-v4l2_PORT= multimedia/gstreamer${_GST_VER}-plugins-v4l2
+gst-v4l2_IMPL= good
+
+# hmmm
+gst-vaapi_PORT= multimedia/gstreamer-vaapi
+gst-vaapi_IMPL= bad
+
+gst-vpx_PORT= multimedia/gstreamer${_GST_VER}-plugins-vpx
+gst-vpx_IMPL= good
+
+gst-vulkan_PORT= graphics/gstreamer${_GST_VER}-plugins-vulkan
+gst-vulkan_IMPL= bad
+
+gst-resindvd_PORT= multimedia/gstreamer${_GST_VER}-plugins-resindvd
+gst-resindvd_IMPL= bad
+
+gst-theora_PORT= multimedia/gstreamer${_GST_VER}-plugins-theora
+gst-theora_IMPL= #
+
+gst-x264_PORT= multimedia/gstreamer${_GST_VER}-plugins-x264
+gst-x264_IMPL= ugly
+
+gst-x265_PORT= multimedia/gstreamer${_GST_VER}-plugins-x265
+gst-x265_IMPL= bad
+
+#==== Net Plugins Section
+
+gst-libmms_PORT= net/gstreamer${_GST_VER}-plugins-libmms
+gst-libmms_IMPL= bad
+
+gst-srtp_PORT= net/gstreamer${_GST_VER}-plugins-srtp
+gst-srtp_IMPL= bad
+
+#==== security plugins section
+
+gst-dtls_PORT= security/gstreamer${_GST_VER}-plugins-dtls
+gst-dtls_IMPL= bad
+
+#==== sysutils plugins section
+
+gst-cdio_PORT= sysutils/gstreamer${_GST_VER}-plugins-cdio
+gst-cdio_IMPL= ugly
+
+#==== x11 plugins section
+
+gst-x_PORT= x11/gstreamer${_GST_VER}-plugins-x
+gst-x_IMPL= #
+
+gst-ximagesrc_PORT= x11/gstreamer${_GST_VER}-plugins-ximagesrc
+gst-ximagesrc_IMPL= good
+
+#==== x11-toolkits plugins section
+
+gst-gtk_PORT= x11-toolkits/gstreamer${_GST_VER}-plugins-gtk
+gst-gtk_IMPL= bad
+
+gst-gtk4_PORT= x11-toolkits/gstreamer${_GST_VER}-plugins-gtk4
+gst-gtk4_IMPL= good
+
+gst-pango_PORT= x11-toolkits/gstreamer${_GST_VER}-plugins-pango
+gst-pango_IMPL= #
+
+#== Dependency creation
+
+_GST_BR_DEPENDS= #
+_GST_LIB_DEPENDS= #
+
+USE_GSTREAMER?= #
+# everything wants this
+USE_GSTREAMER+= libgstreamer
+. if ${PORTDIRNAME} != gstreamer${_GST_VER}-plugins
+USE_GSTREAMER+= plugins
+. endif
+
+# Gather all Impl values
+_GST_IMPL_LIST:= ${USE_GSTREAMER:S/^/\${gst-/:S/$/_IMPL}/}
+
+# Combine the wanted copmonents and the required implementations
+_USE_GSTREAMER= ${USE_GSTREAMER} \
+ ${_GST_IMPL_LIST}
+
+. for component in ${_USE_GSTREAMER:O:u}
+# Fill in the common default component values
+gst-${component}_VERSION?= ${_GST_VERSION}
+gst-${component}_NAME?= ${component}
+gst-${component}_PREFIX?= gstreamer${_GST_VER}-
+gst-${component}_SUFFIX?= plugins-
+gst-${component}_PKG?= ${gst-${component}_PREFIX}${gst-${component}_SUFFIX}${gst-${component}_NAME}
+
+. if empty(_USE_GSTREAMER_ALL:M${component})
+IGNORE= unknown gstreamer component '${component}' for gstreamer:${_GST_VER}
+. endif
+. if !empty(gst-${component}_LIB)
+_GST_LIB_DEPENDS+= ${gst-${component}_LIB}:${gst-${component}_PORT}
+. else
+_GST_BR_DEPENDS+= ${gst-${component}_PKG}>=${gst-${component}_VERSION}:${gst-${component}_PORT}
+. endif
+. endfor
+
+LIB_DEPENDS+= ${_GST_LIB_DEPENDS:O:u}
+BUILD_DEPENDS+= ${_GST_BR_DEPENDS:O:u}
+RUN_DEPENDS+= ${_GST_BR_DEPENDS:O:u}
+
+.endif
diff --git a/Mk/bsd.gstreamer.mk b/Mk/bsd.gstreamer.mk
deleted file mode 100644
index 7e7b7d85d9e5..000000000000
--- a/Mk/bsd.gstreamer.mk
+++ /dev/null
@@ -1,562 +0,0 @@
-#-*- tab-width: 4; -*-
-# ex:ts=4
-#
-# bsd.gstreamer.mk - Support for gstreamer-plugins-based ports.
-#
-# Created by: Michael Johnson <ahze@FreeBSD.org>
-
-.if !defined(_POSTMKINCLUDED) && !defined(Gstreamer_Pre_Include)
-
-Gstreamer_Include_MAINTAINER= multimedia@FreeBSD.org
-Gstreamer_Pre_Include= bsd.gstreamer.mk
-
-.endif
-
-# Ports can use the following:
-#
-# For Gstreamer 1.x the same rules apply but instead of
-# USE_GSTREAMER=, USE_GSTREAMER1= is used.
-#
-# If you want to use USE_GSTREAMER after <bsd.port.pre.mk>
-# you must follow one of the examples listed below
-#
-# .include <bsd.port.options.mk>
-# .if defined(WITH_VORBIS)
-# USE_GSTREAMER= vorbis
-# .endif
-#
-# or
-# USE_GSTREAMER= yes
-# .include <bsd.port.options.mk>
-# .if defined(WITH_FAAD)
-# USE_GSTREAMER+= faad
-# .endif
-# .include <bsd.port.pre.mk>
-#
-# USE_GSTREAMER=yes will always add a dependency to
-# gstreamer-plugins
-#
-# "Normal" dependencies and variables
-#
-
-GSTREAMER1_PORT= ${PORTSDIR}/multimedia/gstreamer1-plugins
-_GST1_LIB_BASE= ${LOCALBASE}/lib/gstreamer-${GST1_VERSION}
-GST1_VERSION= 1.4
-GST1_MINOR_VERSION= .0
-GST1_SHLIB_VERSION= 0
-GST1_MINIMAL_VERSION= .0
-
-# These are the current supported gstreamer-plugins modules:
-# Supported plugins by both 0.10 and 1.0.
-_GSTREAMER_PLUGINS= \
- a52dec \
- aalib \
- amrnb \
- amrwbdec \
- cairo \
- cdio \
- cdparanoia \
- dts \
- dv \
- faac \
- faad \
- flac \
- flite \
- gdkpixbuf \
- gl \
- gme \
- gnonlin \
- gsm \
- jack \
- jpeg \
- ladspa \
- lame \
- libcaca \
- libmms \
- libvisual \
- mpeg2dec \
- mpeg2enc \
- musepack \
- neon \
- ogg \
- opus \
- pango \
- pulse \
- resindvd \
- shout2 \
- sndfile \
- sndio \
- sidplay \
- soundtouch \
- soup \
- speex \
- taglib \
- theora \
- twolame \
- v4l2 \
- vorbis \
- wavpack \
- x264
-
-# plugins only in 1.0
-.if defined(USE_GSTREAMER1)
-_GSTREAMER_PLUGINS+= \
- aom \
- assrender \
- bs2b \
- chromaprint \
- curl \
- dash \
- dtls \
- dvdread \
- editing-services \
- gtk \
- gtk4 \
- hls \
- kate \
- kms \
- libav \
- libde265 \
- lv2 \
- mm \
- modplug \
- mpg123 \
- mplex \
- opencv \
- openexr \
- openh264 \
- openjpeg \
- openmpt \
- png \
- qt \
- rsvg \
- rtmp \
- smoothstreaming \
- spandsp \
- srtp \
- ttml \
- vpx \
- vulkan \
- webp \
- webrtcdsp \
- x \
- x265 \
- ximagesrc \
- zbar
-# vaapi
-.endif # USE_GSTREAMER1
-
-# other plugins
-_USE_GSTREAMER_ALL= bad core good ugly yes ${_GSTREAMER_PLUGINS}
-
-#--------------------------------------------------------------------------#
-
-core_DEPENDS= multimedia/gstreamer-plugins-core
-core_IMPL= #
-
-yes_DEPENDS= multimedia/gstreamer-plugins
-yes_NAME= gstreamer-plugins
-yes_NAME10= gstreamer1-plugins
-yes_GST_PREFIX= # empty
-yes_IMPL= # empty
-
-# XXX check if IMPL is correct for both 0.10 and 1.0
-
-#-- audio plugins section -------------------------------------------------#
-
-# Audio Plugins Section
-a52dec_DEPENDS= audio/gstreamer-plugins-a52dec
-a52dec_IMPL= ugly
-
-amrnb_DEPENDS= audio/gstreamer-plugins-amrnb
-amrnb_IMPL= ugly
-
-amrwbdec_DEPENDS= audio/gstreamer-plugins-amrwbdec
-amrwbdec_IMPL= ugly
-
-bs2b_DEPENDS= audio/gstreamer-plugins-bs2b
-bs2b_IMPL= bad
-
-cdparanoia_DEPENDS= audio/gstreamer-plugins-cdparanoia
-cdparanoia_IMPL= #
-
-chromaprint_DEPENDS= audio/gstreamer-plugins-chromaprint
-chromeprint_IMPL= bad
-
-faac_DEPENDS= audio/gstreamer-plugins-faac
-faac_IMPL= bad
-
-faad_DEPENDS= audio/gstreamer-plugins-faad
-faad_IMPL= bad
-
-flac_DEPENDS= audio/gstreamer-plugins-flac
-flac_IMPL= good
-
-flite_DEPENDS= audio/gstreamer-plugins-flite
-flite_IMPL= bad
-
-gme_DEPENDS= audio/gstreamer-plugins-gme
-gme_IMPL= bad
-
-gsm_DEPENDS= audio/gstreamer-plugins-gsm
-gsm_IMPL= bad
-
-hal_DEPENDS= sysutils/gstreamer-plugins-hal
-hal_IMPL= good
-
-jack_DEPENDS= audio/gstreamer-plugins-jack
-jack_IMPL= good
-
-ladspa_DEPENDS= audio/gstreamer-plugins-ladspa
-ladspa_IMPL= bad
-
-lame_DEPENDS= audio/gstreamer-plugins-lame
-lame_IMPL= ugly
-
-lv2_DEPENDS= audio/gstreamer-plugins-lv2
-lv2_IMPL= bad
-
-modplug_DEPENDS= audio/gstreamer-plugins-modplug
-modplug_IMPL= bad
-
-mpg123_DEPENDS= audio/gstreamer-plugins-mpg123
-mpg123_IMPL= ugly
-
-musepack_DEPENDS= audio/gstreamer-plugins-musepack
-musepack_IMPL= bad
-
-neon_DEPENDS= www/gstreamer-plugins-neon
-neon_IMPL= bad
-
-ogg_DEPENDS= audio/gstreamer-plugins-ogg
-ogg_IMPL= #
-
-opus_DEPENDS= audio/gstreamer-plugins-opus
-opus_IMPL= #
-
-pulse_DEPENDS= audio/gstreamer-plugins-pulse
-pulse_IMPL= good
-
-shout2_DEPENDS= audio/gstreamer-plugins-shout2
-shout2_IMPL= good
-
-sidplay_DEPENDS= audio/gstreamer-plugins-sidplay
-sidplay_IMPL= ugly
-
-sndio_DEPENDS= audio/gstreamer-plugins-sndio
-sndio_IMPL= #
-
-sndfile_DEPENDS= audio/gstreamer-plugins-sndfile
-sndfile_IMPL= bad
-
-soundtouch_DEPENDS= audio/gstreamer-plugins-soundtouch
-soundtouch_IMPL= bad
-
-speex_DEPENDS= audio/gstreamer-plugins-speex
-speex_IMPL= good
-
-taglib_DEPENDS= audio/gstreamer-plugins-taglib
-taglib_IMPL= good
-
-twolame_DEPENDS= audio/gstreamer-plugins-twolame
-twolame_IMPL= ugly
-
-vorbis_DEPENDS= audio/gstreamer-plugins-vorbis
-vorbis_IMPL= #
-
-wavpack_DEPENDS= audio/gstreamer-plugins-wavpack
-wavpack_IMPL= good
-
-webrtcdsp_DEPENDS= audio/gstreamer-plugins-webrtcdsp
-webrtcdsp_IMPL= bad
-
-#-- comms plugin section --------------------------------------------------#
-
-spandsp_DEPENDS= comms/gstreamer-plugins-spandsp
-spandsp_IMPL= bad
-
-#-- devel plugin section --------------------------------------------------#
-
-soup_DEPENDS= devel/gstreamer-plugins-soup
-soup_IMPL= good
-
-#-- ftp plugin section ----------------------------------------------------#
-
-curl_DEPENDS= ftp/gstreamer-plugins-curl
-curl_IMPL= bad
-
-#-- graphics plugin section -----------------------------------------------#
-
-aalib_DEPENDS= graphics/gstreamer-plugins-aalib
-aalib_IMPL= good
-
-aom_DEPENDS= multimedia/gstreamer-plugins-aom
-aom_IMPL= bad
-
-assrender_DEPENDS= multimedia/gstreamer-plugins-assrender
-assrender_IMPL= bad
-
-cairo_DEPENDS= graphics/gstreamer-plugins-cairo
-cairo_IMPL= good
-
-gdkpixbuf_DEPENDS= graphics/gstreamer-plugins-gdkpixbuf
-gdkpixbuf_IMPL= good
-
-gl_DEPENDS= graphics/gstreamer-plugins-gl
-gl_IMPL= bad
-
-jpeg_DEPENDS= graphics/gstreamer-plugins-jpeg
-jpeg_IMPL= good
-
-kms_DEPENDS= graphics/gstreamer-plugins-kms
-kms_IMPL= bad
-
-libcaca_DEPENDS= graphics/gstreamer-plugins-libcaca
-libcaca_IMPL= good
-
-libvisual_DEPENDS= graphics/gstreamer-plugins-libvisual
-libvisual_IMPL= #
-
-opencv_DEPENDS= graphics/gstreamer-plugins-opencv
-opencv_IMPL= bad
-
-openexr_DEPENDS= graphics/gstreamer-plugins-openexr
-openexr_IMPL= bad
-
-openjpeg_DEPENDS= graphics/gstreamer-plugins-openjpeg
-openjpeg_IMPL= bad
-
-openmpt_DEPENDS= audio/gstreamer-plugins-openmpt
-openmpt_IMPL= bad
-
-png_DEPENDS= graphics/gstreamer-plugins-png
-png_IMPL= good
-
-qt_DEPENDS= graphics/gstreamer-plugins-qt
-qt_IMPL= good
-
-rsvg_DEPENDS= graphics/gstreamer-plugins-rsvg
-rsvg_IMPL= bad
-
-webp_DEPENDS= graphics/gstreamer-plugins-webp
*** 2511 LINES SKIPPED ***