gstreamer1.0: update licences of all modules

Message ID 20220216232803.1868265-1-quaresma.jose@gmail.com
State New
Headers show
Series gstreamer1.0: update licences of all modules | expand

Commit Message

Jose Quaresma Feb. 16, 2022, 11:28 p.m. UTC
Since all gstreamer modules uses LGPLv2.1 with exceptions
for some plugins in bad and ugly modules that has GPLv2+.

For the GPLv2+ this patch set the licence only for each plugin
that is affected by this licence. The commercial LICENSE_FLAGS
is enabled if any of the previous plugins is builded.

Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
Cc: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
---
 .../gstreamer/gst-devtools_1.20.0.bb                   |  2 +-
 .../gstreamer/gstreamer1.0-libav_1.20.0.bb             |  2 +-
 .../gstreamer/gstreamer1.0-omx_1.20.0.bb               |  2 +-
 .../gstreamer/gstreamer1.0-plugins-bad_1.20.0.bb       |  7 ++++++-
 .../gstreamer/gstreamer1.0-plugins-base_1.20.0.bb      |  2 +-
 .../gstreamer/gstreamer1.0-plugins-good_1.20.0.bb      |  2 +-
 .../gstreamer/gstreamer1.0-plugins-ugly_1.20.0.bb      | 10 ++++++++--
 .../gstreamer/gstreamer1.0-python_1.20.0.bb            |  2 +-
 .../gstreamer/gstreamer1.0-rtsp-server_1.20.0.bb       |  2 +-
 .../gstreamer/gstreamer1.0-vaapi_1.20.0.bb             |  2 +-
 .../gstreamer/gstreamer1.0_1.20.0.bb                   |  2 +-
 11 files changed, 23 insertions(+), 12 deletions(-)

Comments

Peter Kjellerstedt Feb. 17, 2022, 2:34 p.m. UTC | #1
> -----Original Message-----
> From: Jose Quaresma <quaresma.jose@gmail.com>
> Sent: den 17 februari 2022 00:28
> To: openembedded-core@lists.openembedded.org
> Cc: Peter Kjellerstedt <peter.kjellerstedt@axis.com>; Jose Quaresma <quaresma.jose@gmail.com>
> Subject: [PATCH] gstreamer1.0: update licences of all modules
> 
> Since all gstreamer modules uses LGPLv2.1 with exceptions
> for some plugins in bad and ugly modules that has GPLv2+.
> 
> For the GPLv2+ this patch set the licence only for each plugin
> that is affected by this licence. The commercial LICENSE_FLAGS
> is enabled if any of the previous plugins is builded.
> 
> Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
> Cc: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
> ---
>  .../gstreamer/gst-devtools_1.20.0.bb                   |  2 +-
>  .../gstreamer/gstreamer1.0-libav_1.20.0.bb             |  2 +-
>  .../gstreamer/gstreamer1.0-omx_1.20.0.bb               |  2 +-
>  .../gstreamer/gstreamer1.0-plugins-bad_1.20.0.bb       |  7 ++++++-
>  .../gstreamer/gstreamer1.0-plugins-base_1.20.0.bb      |  2 +-
>  .../gstreamer/gstreamer1.0-plugins-good_1.20.0.bb      |  2 +-
>  .../gstreamer/gstreamer1.0-plugins-ugly_1.20.0.bb      | 10 ++++++++--
>  .../gstreamer/gstreamer1.0-python_1.20.0.bb            |  2 +-
>  .../gstreamer/gstreamer1.0-rtsp-server_1.20.0.bb       |  2 +-
>  .../gstreamer/gstreamer1.0-vaapi_1.20.0.bb             |  2 +-
>  .../gstreamer/gstreamer1.0_1.20.0.bb                   |  2 +-
>  11 files changed, 23 insertions(+), 12 deletions(-)

[cut]

> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.0.bb
> index 915d4ec744..22288373ac 100644
> --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.0.bb
> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.0.bb
> @@ -15,7 +15,7 @@ SRC_URI[sha256sum] =
> "015b8d4d9a395ebf444d40876867a2034dd3304b3ad48bc3a0dd0c1ee7
> 
>  S = "${WORKDIR}/gst-plugins-bad-${PV}"
> 
> -LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+"
> +LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
>  LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
> 
>  DEPENDS += "gstreamer1.0-plugins-base"
> @@ -98,6 +98,11 @@ PACKAGECONFIG[faad]            = "-Dfaad=enabled,-Dfaad=disabled,faad2"
>  PACKAGECONFIG[resindvd]        = "-Dresindvd=enabled,- Dresindvd=disabled,libdvdread libdvdnav"
>  PACKAGECONFIG[x265]            = "-Dx265=enabled,-Dx265=disabled,x265"
> 
> +LICENSE_FLAGS = "${@bb.utils.contains("PACKAGECONFIG", "gpl", "commercial", "", d)}"

There shouldn't be any commercial limitations in these plugins. If there 
were, then they would be in -ugly instead.

> +LICENSE:${PN}-faad = "GPL-2.0-or-later"
> +LICENSE:${PN}-resindvd = "GPL-2.0-or-later"
> +LICENSE:${PN}-x265 = "GPL-2.0-or-later"

This is unfortunately not enough. It is actually more the opposite of 
what is needed. You need to set the license for all the other plugins 
that are only affected by LGPL-2.1-or-later since the default for a 
package is ${LICENSE} if no ${LICENSE:<package>} is defined.

It is likely that you can do something creative in 
split_gstreamer10_packages() and set the default license there for the 
plugin packages to "LGPL-2.1-or-later" and then the overrides above 
would be enough. You probably want to do something like this to avoid 
having to update the lists of plugin packages every time the recipes 
are updated to new versions as plugins have a tendency to come and go.

> +
>  EXTRA_OEMESON += " \
>      -Ddoc=disabled \
>      -Daes=enabled \

[cut]

> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.20.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.20.0.bb
> index 8128104319..6442fd4504 100644
> --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.20.0.bb
> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.20.0.bb
> @@ -7,8 +7,7 @@ BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues
>  LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
> 
> file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068"
> 
> -LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+"
> -LICENSE_FLAGS = "commercial"
> +LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
> 
>  SRC_URI = " \
>              https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
> @@ -37,6 +36,13 @@ PACKAGECONFIG[dvdread]  = "-Ddvdread=enabled,-Ddvdread=disabled,libdvdread"
>  PACKAGECONFIG[mpeg2dec] = "-Dmpeg2dec=enabled,-Dmpeg2dec=disabled,mpeg2dec"
>  PACKAGECONFIG[x264]     = "-Dx264=enabled,-Dx264=disabled,x264"
> 
> +LICENSE_FLAGS = "${@bb.utils.contains("PACKAGECONFIG", "gpl", "commercial", "", d)}"

I do not think making this conditional is correct. AFAIK the commercial 
flag is used in this recipe due to, e.g., patent limitations and not 
necessarily the actual code and its license. It affects all plugins in 
-ugly (it is the reason they are there in the first place and not in, 
e.g., -good or -bad).

> +LICENSE:${PN}-cdio = "GPL-2.0-or-later"
> +LICENSE:${PN}-a52dec = "GPL-2.0-or-later"
> +LICENSE:${PN}-dvdread = "GPL-2.0-or-later"
> +LICENSE:${PN}-mpeg2dec = "GPL-2.0-or-later"
> +LICENSE:${PN}-x264 = "GPL-2.0-or-later"

The same applies here as in -bad.

> +
>  EXTRA_OEMESON += " \
>      -Ddoc=disabled \
>      -Dsidplay=disabled \

//Peter
Jose Quaresma Feb. 17, 2022, 11:08 p.m. UTC | #2
Hi Peter,

It's not as simple as I was thinking, I'll need more time.

Jose

Peter Kjellerstedt <peter.kjellerstedt@axis.com> escreveu no dia quinta,
17/02/2022 à(s) 14:34:

> > -----Original Message-----
> > From: Jose Quaresma <quaresma.jose@gmail.com>
> > Sent: den 17 februari 2022 00:28
> > To: openembedded-core@lists.openembedded.org
> > Cc: Peter Kjellerstedt <peter.kjellerstedt@axis.com>; Jose Quaresma <
> quaresma.jose@gmail.com>
> > Subject: [PATCH] gstreamer1.0: update licences of all modules
> >
> > Since all gstreamer modules uses LGPLv2.1 with exceptions
> > for some plugins in bad and ugly modules that has GPLv2+.
> >
> > For the GPLv2+ this patch set the licence only for each plugin
> > that is affected by this licence. The commercial LICENSE_FLAGS
> > is enabled if any of the previous plugins is builded.
> >
> > Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
> > Cc: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
> > ---
> >  .../gstreamer/gst-devtools_1.20.0.bb                   |  2 +-
> >  .../gstreamer/gstreamer1.0-libav_1.20.0.bb             |  2 +-
> >  .../gstreamer/gstreamer1.0-omx_1.20.0.bb               |  2 +-
> >  .../gstreamer/gstreamer1.0-plugins-bad_1.20.0.bb       |  7 ++++++-
> >  .../gstreamer/gstreamer1.0-plugins-base_1.20.0.bb      |  2 +-
> >  .../gstreamer/gstreamer1.0-plugins-good_1.20.0.bb      |  2 +-
> >  .../gstreamer/gstreamer1.0-plugins-ugly_1.20.0.bb      | 10 ++++++++--
> >  .../gstreamer/gstreamer1.0-python_1.20.0.bb            |  2 +-
> >  .../gstreamer/gstreamer1.0-rtsp-server_1.20.0.bb       |  2 +-
> >  .../gstreamer/gstreamer1.0-vaapi_1.20.0.bb             |  2 +-
> >  .../gstreamer/gstreamer1.0_1.20.0.bb                   |  2 +-
> >  11 files changed, 23 insertions(+), 12 deletions(-)
>
> [cut]
>
> > diff --git a/meta/recipes-multimedia/gstreamer/
> gstreamer1.0-plugins-bad_1.20.0.bb b/meta/recipes-multimedia/gstreamer/
> gstreamer1.0-plugins-bad_1.20.0.bb
> > index 915d4ec744..22288373ac 100644
> > --- a/meta/recipes-multimedia/gstreamer/
> gstreamer1.0-plugins-bad_1.20.0.bb
> > +++ b/meta/recipes-multimedia/gstreamer/
> gstreamer1.0-plugins-bad_1.20.0.bb
> > @@ -15,7 +15,7 @@ SRC_URI[sha256sum] =
> > "015b8d4d9a395ebf444d40876867a2034dd3304b3ad48bc3a0dd0c1ee7
> >
> >  S = "${WORKDIR}/gst-plugins-bad-${PV}"
> >
> > -LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+"
> > +LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
> >  LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
> >
> >  DEPENDS += "gstreamer1.0-plugins-base"
> > @@ -98,6 +98,11 @@ PACKAGECONFIG[faad]            =
> "-Dfaad=enabled,-Dfaad=disabled,faad2"
> >  PACKAGECONFIG[resindvd]        = "-Dresindvd=enabled,-
> Dresindvd=disabled,libdvdread libdvdnav"
> >  PACKAGECONFIG[x265]            = "-Dx265=enabled,-Dx265=disabled,x265"
> >
> > +LICENSE_FLAGS = "${@bb.utils.contains("PACKAGECONFIG", "gpl",
> "commercial", "", d)}"
>
> There shouldn't be any commercial limitations in these plugins. If there
> were, then they would be in -ugly instead.
>
> > +LICENSE:${PN}-faad = "GPL-2.0-or-later"
> > +LICENSE:${PN}-resindvd = "GPL-2.0-or-later"
> > +LICENSE:${PN}-x265 = "GPL-2.0-or-later"
>
> This is unfortunately not enough. It is actually more the opposite of
> what is needed. You need to set the license for all the other plugins
> that are only affected by LGPL-2.1-or-later since the default for a
> package is ${LICENSE} if no ${LICENSE:<package>} is defined.
>
> It is likely that you can do something creative in
> split_gstreamer10_packages() and set the default license there for the
> plugin packages to "LGPL-2.1-or-later" and then the overrides above
> would be enough. You probably want to do something like this to avoid
> having to update the lists of plugin packages every time the recipes
> are updated to new versions as plugins have a tendency to come and go.
>
> > +
> >  EXTRA_OEMESON += " \
> >      -Ddoc=disabled \
> >      -Daes=enabled \
>
> [cut]
>
> > diff --git a/meta/recipes-multimedia/gstreamer/
> gstreamer1.0-plugins-ugly_1.20.0.bb b/meta/recipes-multimedia/gstreamer/
> gstreamer1.0-plugins-ugly_1.20.0.bb
> > index 8128104319..6442fd4504 100644
> > --- a/meta/recipes-multimedia/gstreamer/
> gstreamer1.0-plugins-ugly_1.20.0.bb
> > +++ b/meta/recipes-multimedia/gstreamer/
> gstreamer1.0-plugins-ugly_1.20.0.bb
> > @@ -7,8 +7,7 @@ BUGTRACKER = "
> https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues
> >  LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343
> \
> >
> >
> file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068"
> >
> > -LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+"
> > -LICENSE_FLAGS = "commercial"
> > +LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
> >
> >  SRC_URI = " \
> >
> https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz
> \
> > @@ -37,6 +36,13 @@ PACKAGECONFIG[dvdread]  =
> "-Ddvdread=enabled,-Ddvdread=disabled,libdvdread"
> >  PACKAGECONFIG[mpeg2dec] =
> "-Dmpeg2dec=enabled,-Dmpeg2dec=disabled,mpeg2dec"
> >  PACKAGECONFIG[x264]     = "-Dx264=enabled,-Dx264=disabled,x264"
> >
> > +LICENSE_FLAGS = "${@bb.utils.contains("PACKAGECONFIG", "gpl",
> "commercial", "", d)}"
>
> I do not think making this conditional is correct. AFAIK the commercial
> flag is used in this recipe due to, e.g., patent limitations and not
> necessarily the actual code and its license. It affects all plugins in
> -ugly (it is the reason they are there in the first place and not in,
> e.g., -good or -bad).
>
> > +LICENSE:${PN}-cdio = "GPL-2.0-or-later"
> > +LICENSE:${PN}-a52dec = "GPL-2.0-or-later"
> > +LICENSE:${PN}-dvdread = "GPL-2.0-or-later"
> > +LICENSE:${PN}-mpeg2dec = "GPL-2.0-or-later"
> > +LICENSE:${PN}-x264 = "GPL-2.0-or-later"
>
> The same applies here as in -bad.
>
> > +
> >  EXTRA_OEMESON += " \
> >      -Ddoc=disabled \
> >      -Dsidplay=disabled \
>
> //Peter
>
Richard Purdie Feb. 17, 2022, 11:49 p.m. UTC | #3
On Thu, 2022-02-17 at 23:08 +0000, Jose Quaresma wrote:
> It's not as simple as I was thinking, I'll need more time.

Perhaps split the patch so the main change to LICENSE can be resolved, then the
remaining later patches focus on the harder bit?

Cheers,

Richard
Jose Quaresma Feb. 18, 2022, 12:29 a.m. UTC | #4
Richard Purdie <richard.purdie@linuxfoundation.org> escreveu no dia quinta,
17/02/2022 à(s) 23:50:

> On Thu, 2022-02-17 at 23:08 +0000, Jose Quaresma wrote:
> > It's not as simple as I was thinking, I'll need more time.
>
> Perhaps split the patch so the main change to LICENSE can be resolved,
> then the
> remaining later patches focus on the harder bit?
>

I sent a v2 with that.

Jose


> Cheers,
>
> Richard
>
>

Patch

diff --git a/meta/recipes-multimedia/gstreamer/gst-devtools_1.20.0.bb b/meta/recipes-multimedia/gstreamer/gst-devtools_1.20.0.bb
index 7a27d27b2e..e17f4ee09d 100644
--- a/meta/recipes-multimedia/gstreamer/gst-devtools_1.20.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gst-devtools_1.20.0.bb
@@ -3,7 +3,7 @@  DESCRIPTION = "A Tool to test GStreamer components"
 HOMEPAGE = "https://gstreamer.freedesktop.org/documentation/gst-devtools/index.html"
 SECTION = "multimedia"
 
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://validate/COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
 
 #S = "${WORKDIR}/gst-devtools-${PV}"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.20.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.20.0.bb
index 98b2650bb0..575e608d65 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.20.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-libav_1.20.0.bb
@@ -6,7 +6,7 @@  SECTION = "multimedia"
 
 # ffmpeg has comercial license flags so add it as we need ffmpeg as a dependency
 LICENSE_FLAGS = "commercial"
-LICENSE = "LGPLv2+"
+LICENSE = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \
                     file://ext/libav/gstav.h;beginline=1;endline=18;md5=a752c35267d8276fd9ca3db6994fca9c \
                     "
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.20.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.20.0.bb
index 15f19e349e..94c5214a37 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.20.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-omx_1.20.0.bb
@@ -3,7 +3,7 @@  DESCRIPTION = "Wraps available OpenMAX IL components and makes them available as
 HOMEPAGE = "http://gstreamer.freedesktop.org/"
 SECTION = "multimedia"
 
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-or-later"
 LICENSE_FLAGS = "commercial"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
                     file://omx/gstomx.h;beginline=1;endline=21;md5=5c8e1fca32704488e76d2ba9ddfa935f"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.0.bb
index 915d4ec744..22288373ac 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.20.0.bb
@@ -15,7 +15,7 @@  SRC_URI[sha256sum] = "015b8d4d9a395ebf444d40876867a2034dd3304b3ad48bc3a0dd0c1ee7
 
 S = "${WORKDIR}/gst-plugins-bad-${PV}"
 
-LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
 
 DEPENDS += "gstreamer1.0-plugins-base"
@@ -98,6 +98,11 @@  PACKAGECONFIG[faad]            = "-Dfaad=enabled,-Dfaad=disabled,faad2"
 PACKAGECONFIG[resindvd]        = "-Dresindvd=enabled,-Dresindvd=disabled,libdvdread libdvdnav"
 PACKAGECONFIG[x265]            = "-Dx265=enabled,-Dx265=disabled,x265"
 
+LICENSE_FLAGS = "${@bb.utils.contains("PACKAGECONFIG", "gpl", "commercial", "", d)}"
+LICENSE:${PN}-faad = "GPL-2.0-or-later"
+LICENSE:${PN}-resindvd = "GPL-2.0-or-later"
+LICENSE:${PN}-x265 = "GPL-2.0-or-later"
+
 EXTRA_OEMESON += " \
     -Ddoc=disabled \
     -Daes=enabled \
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.0.bb
index 455c9fc480..c9fbc599ae 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-base_1.20.0.bb
@@ -3,7 +3,7 @@  require gstreamer1.0-plugins-common.inc
 DESCRIPTION = "'Base' GStreamer plugins and helper libraries"
 HOMEPAGE = "https://gstreamer.freedesktop.org/"
 BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues"
-LICENSE = "LGPLv2+"
+LICENSE = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770"
 
 SRC_URI = "https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-${PV}.tar.xz \
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.0.bb
index da4d4a8ccb..17086bc3b8 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good_1.20.0.bb
@@ -12,7 +12,7 @@  SRC_URI[sha256sum] = "2d119c15ab8c9e79f8cd3c6bf582ff7a050b28ccae52ab4865e1a14649
 
 S = "${WORKDIR}/gst-plugins-good-${PV}"
 
-LICENSE = "GPLv2+ & LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
                     file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
 
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.20.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.20.0.bb
index 8128104319..6442fd4504 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.20.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-plugins-ugly_1.20.0.bb
@@ -7,8 +7,7 @@  BUGTRACKER = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-ugly/-/issues
 LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
                     file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068"
 
-LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+"
-LICENSE_FLAGS = "commercial"
+LICENSE = "LGPL-2.1-or-later & GPL-2.0-or-later"
 
 SRC_URI = " \
             https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-${PV}.tar.xz \
@@ -37,6 +36,13 @@  PACKAGECONFIG[dvdread]  = "-Ddvdread=enabled,-Ddvdread=disabled,libdvdread"
 PACKAGECONFIG[mpeg2dec] = "-Dmpeg2dec=enabled,-Dmpeg2dec=disabled,mpeg2dec"
 PACKAGECONFIG[x264]     = "-Dx264=enabled,-Dx264=disabled,x264"
 
+LICENSE_FLAGS = "${@bb.utils.contains("PACKAGECONFIG", "gpl", "commercial", "", d)}"
+LICENSE:${PN}-cdio = "GPL-2.0-or-later"
+LICENSE:${PN}-a52dec = "GPL-2.0-or-later"
+LICENSE:${PN}-dvdread = "GPL-2.0-or-later"
+LICENSE:${PN}-mpeg2dec = "GPL-2.0-or-later"
+LICENSE:${PN}-x264 = "GPL-2.0-or-later"
+
 EXTRA_OEMESON += " \
     -Ddoc=disabled \
     -Dsidplay=disabled \
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.20.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.20.0.bb
index 3399b6f9d7..29d7c55acb 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.20.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-python_1.20.0.bb
@@ -4,7 +4,7 @@  provided by python-gi) "
 HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-python/"
 SECTION = "multimedia"
 
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=c34deae4e395ca07e725ab0076a5f740"
 
 SRC_URI = "https://gstreamer.freedesktop.org/src/${PNREAL}/${PNREAL}-${PV}.tar.xz"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.20.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.20.0.bb
index 66764f0880..be81f87616 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.20.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-rtsp-server_1.20.0.bb
@@ -1,7 +1,7 @@ 
 SUMMARY = "A library on top of GStreamer for building an RTSP server"
 HOMEPAGE = "http://cgit.freedesktop.org/gstreamer/gst-rtsp-server/"
 SECTION = "multimedia"
-LICENSE = "LGPLv2"
+LICENSE = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770"
 
 DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.20.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.20.0.bb
index ce7fbde0df..7ef8ae3138 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.20.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0-vaapi_1.20.0.bb
@@ -6,7 +6,7 @@  based plugins for GStreamer and helper libraries: `vaapidecode', \
 
 REALPN = "gstreamer-vaapi"
 
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
 LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
 
 SRC_URI = "https://gstreamer.freedesktop.org/src/${REALPN}/${REALPN}-${PV}.tar.xz"
diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.20.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.20.0.bb
index 243f99fee9..a84616cdd9 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.20.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.20.0.bb
@@ -4,7 +4,7 @@  It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime.
 HOMEPAGE = "http://gstreamer.freedesktop.org/"
 BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
 SECTION = "multimedia"
-LICENSE = "LGPLv2+"
+LICENSE = "LGPL-2.1-or-later"
 
 DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native"