Re: git: ca3f925d6eb5 - main - framework: convert bsd.gstreamer.mk to Uses/gstreamer.mk

From: Tobias C. Berner <tcberner_at_freebsd.org>
Date: Fri, 13 May 2022 05:00:20 UTC
Moin moin

It has been reported that this broke multimedia/gstreamer1-plugins-all
(it lost all its run-time dependencies, and is therefore a rather poor
metaport :) ).

I'll fix it soon.


mfg Tobias

On Sat, 30 Apr 2022 at 10:03, Tobias C. Berner <tcberner@freebsd.org> wrote:
>
> 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 ***