diff mbox series

[1/1] fmt: 11.0.2 -> 11.1.1

Message ID b6a3ea4a7a3c811d7f3f9fa74e11d5001321ecb1.1736150475.git.liezhi.yang@windriver.com
State Accepted, archived
Commit 659d71114c3f2f12e4e3012d66580866486e14c0
Headers show
Series [1/1] fmt: 11.0.2 -> 11.1.1 | expand

Commit Message

Robert Yang Jan. 6, 2025, 8:02 a.m. UTC
From: Robert Yang <liezhi.yang@windriver.com>

Remove backported patch 0001-Get-rid-of-std-copy.patch.

Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
 .../fmt/fmt/0001-Get-rid-of-std-copy.patch    | 52 -------------------
 .../fmt/{fmt_11.0.2.bb => fmt_11.1.1.bb}      |  6 +--
 2 files changed, 2 insertions(+), 56 deletions(-)
 delete mode 100644 meta/recipes-devtools/fmt/fmt/0001-Get-rid-of-std-copy.patch
 rename meta/recipes-devtools/fmt/{fmt_11.0.2.bb => fmt_11.1.1.bb} (80%)

Comments

Khem Raj Jan. 9, 2025, 6:35 p.m. UTC | #1
I know this patch is applied but I still want to bring it to attention
Many packages in other layers depend on fmt.  fmt's APIs are not or
not used in a very backward compatible way
some packages provide an option to use vendored version of fmt so in
case of system fmt being not compatible is not
a huge issue other than duplication, but some packages e.g. gerbera
rely on system provided fmt and it still has not moved to
11.1

I have tried to fix some of this fall out in meta-openembedded layers
but this kind of stuff comes unplanned, so please build/test
fmt upgrades with more than oe-core,  oe-core has 1 recipe ( ccache )
which depends on fmt but meta-openembedded has more complex use cases
of fmt.

On Mon, Jan 6, 2025 at 12:02 AM Robert Yang via lists.openembedded.org
<liezhi.yang=windriver.com@lists.openembedded.org> wrote:
>
> From: Robert Yang <liezhi.yang@windriver.com>
>
> Remove backported patch 0001-Get-rid-of-std-copy.patch.
>
> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> ---
>  .../fmt/fmt/0001-Get-rid-of-std-copy.patch    | 52 -------------------
>  .../fmt/{fmt_11.0.2.bb => fmt_11.1.1.bb}      |  6 +--
>  2 files changed, 2 insertions(+), 56 deletions(-)
>  delete mode 100644 meta/recipes-devtools/fmt/fmt/0001-Get-rid-of-std-copy.patch
>  rename meta/recipes-devtools/fmt/{fmt_11.0.2.bb => fmt_11.1.1.bb} (80%)
>
> diff --git a/meta/recipes-devtools/fmt/fmt/0001-Get-rid-of-std-copy.patch b/meta/recipes-devtools/fmt/fmt/0001-Get-rid-of-std-copy.patch
> deleted file mode 100644
> index 1b495ea075..0000000000
> --- a/meta/recipes-devtools/fmt/fmt/0001-Get-rid-of-std-copy.patch
> +++ /dev/null
> @@ -1,52 +0,0 @@
> -From 6e462b89aa22fd5f737ed162d0150e145ccb1914 Mon Sep 17 00:00:00 2001
> -From: Victor Zverovich <viz@meta.com>
> -Date: Mon, 29 Jul 2024 15:58:05 -0700
> -Subject: [PATCH] Get rid of std::copy
> -
> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
> -Upstream-Status: Backport [https://github.com/fmtlib/fmt/commit/6e462b89aa22fd5f737ed162d0150e145ccb1914]
> ----
> - include/fmt/color.h | 11 +++++------
> - 1 file changed, 5 insertions(+), 6 deletions(-)
> -
> -diff --git a/include/fmt/color.h b/include/fmt/color.h
> -index f0e9dd94..231d93c8 100644
> ---- a/include/fmt/color.h
> -+++ b/include/fmt/color.h
> -@@ -560,31 +560,30 @@ struct formatter<detail::styled_arg<T>, Char> : formatter<T, Char> {
> -   auto format(const detail::styled_arg<T>& arg, FormatContext& ctx) const
> -       -> decltype(ctx.out()) {
> -     const auto& ts = arg.style;
> --    const auto& value = arg.value;
> -     auto out = ctx.out();
> -
> -     bool has_style = false;
> -     if (ts.has_emphasis()) {
> -       has_style = true;
> -       auto emphasis = detail::make_emphasis<Char>(ts.get_emphasis());
> --      out = std::copy(emphasis.begin(), emphasis.end(), out);
> -+      out = detail::copy<Char>(emphasis.begin(), emphasis.end(), out);
> -     }
> -     if (ts.has_foreground()) {
> -       has_style = true;
> -       auto foreground =
> -           detail::make_foreground_color<Char>(ts.get_foreground());
> --      out = std::copy(foreground.begin(), foreground.end(), out);
> -+      out = detail::copy<Char>(foreground.begin(), foreground.end(), out);
> -     }
> -     if (ts.has_background()) {
> -       has_style = true;
> -       auto background =
> -           detail::make_background_color<Char>(ts.get_background());
> --      out = std::copy(background.begin(), background.end(), out);
> -+      out = detail::copy<Char>(background.begin(), background.end(), out);
> -     }
> --    out = formatter<T, Char>::format(value, ctx);
> -+    out = formatter<T, Char>::format(arg.value, ctx);
> -     if (has_style) {
> -       auto reset_color = string_view("\x1b[0m");
> --      out = std::copy(reset_color.begin(), reset_color.end(), out);
> -+      out = detail::copy<Char>(reset_color.begin(), reset_color.end(), out);
> -     }
> -     return out;
> -   }
> diff --git a/meta/recipes-devtools/fmt/fmt_11.0.2.bb b/meta/recipes-devtools/fmt/fmt_11.1.1.bb
> similarity index 80%
> rename from meta/recipes-devtools/fmt/fmt_11.0.2.bb
> rename to meta/recipes-devtools/fmt/fmt_11.1.1.bb
> index 5c60921efa..a99a377ad4 100644
> --- a/meta/recipes-devtools/fmt/fmt_11.0.2.bb
> +++ b/meta/recipes-devtools/fmt/fmt_11.1.1.bb
> @@ -4,10 +4,8 @@ HOMEPAGE = "https://fmt.dev"
>  LICENSE = "MIT"
>  LIC_FILES_CHKSUM = "file://LICENSE;md5=b9257785fc4f3803a4b71b76c1412729"
>
> -SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https \
> -           file://0001-Get-rid-of-std-copy.patch \
> -           "
> -SRCREV = "0c9fce2ffefecfdce794e1859584e25877b7b592"
> +SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https"
> +SRCREV = "e3ddede6c4ee818825c4e5a6dfa1d384860c27d9"
>
>  S = "${WORKDIR}/git"
>
> --
> 2.44.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#209422): https://lists.openembedded.org/g/openembedded-core/message/209422
> Mute This Topic: https://lists.openembedded.org/mt/110453434/1997914
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Robert Yang Jan. 14, 2025, 4:44 a.m. UTC | #2
Hi Khem,

On 1/10/25 02:35, Khem Raj wrote:
> I know this patch is applied but I still want to bring it to attention
> Many packages in other layers depend on fmt.  fmt's APIs are not or
> not used in a very backward compatible way
> some packages provide an option to use vendored version of fmt so in
> case of system fmt being not compatible is not
> a huge issue other than duplication, but some packages e.g. gerbera
> rely on system provided fmt and it still has not moved to
> 11.1
> 
> I have tried to fix some of this fall out in meta-openembedded layers
> but this kind of stuff comes unplanned, so please build/test
> fmt upgrades with more than oe-core,  oe-core has 1 recipe ( ccache )
> which depends on fmt but meta-openembedded has more complex use cases
> of fmt.

Sorry about that, I will test with meta-openembedded next time when upgrade fmt.

// Robert

> 
> On Mon, Jan 6, 2025 at 12:02 AM Robert Yang via lists.openembedded.org
> <liezhi.yang=windriver.com@lists.openembedded.org> wrote:
>>
>> From: Robert Yang <liezhi.yang@windriver.com>
>>
>> Remove backported patch 0001-Get-rid-of-std-copy.patch.
>>
>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>> ---
>>   .../fmt/fmt/0001-Get-rid-of-std-copy.patch    | 52 -------------------
>>   .../fmt/{fmt_11.0.2.bb => fmt_11.1.1.bb}      |  6 +--
>>   2 files changed, 2 insertions(+), 56 deletions(-)
>>   delete mode 100644 meta/recipes-devtools/fmt/fmt/0001-Get-rid-of-std-copy.patch
>>   rename meta/recipes-devtools/fmt/{fmt_11.0.2.bb => fmt_11.1.1.bb} (80%)
>>
>> diff --git a/meta/recipes-devtools/fmt/fmt/0001-Get-rid-of-std-copy.patch b/meta/recipes-devtools/fmt/fmt/0001-Get-rid-of-std-copy.patch
>> deleted file mode 100644
>> index 1b495ea075..0000000000
>> --- a/meta/recipes-devtools/fmt/fmt/0001-Get-rid-of-std-copy.patch
>> +++ /dev/null
>> @@ -1,52 +0,0 @@
>> -From 6e462b89aa22fd5f737ed162d0150e145ccb1914 Mon Sep 17 00:00:00 2001
>> -From: Victor Zverovich <viz@meta.com>
>> -Date: Mon, 29 Jul 2024 15:58:05 -0700
>> -Subject: [PATCH] Get rid of std::copy
>> -
>> -Signed-off-by: Khem Raj <raj.khem@gmail.com>
>> -Upstream-Status: Backport [https://github.com/fmtlib/fmt/commit/6e462b89aa22fd5f737ed162d0150e145ccb1914]
>> ----
>> - include/fmt/color.h | 11 +++++------
>> - 1 file changed, 5 insertions(+), 6 deletions(-)
>> -
>> -diff --git a/include/fmt/color.h b/include/fmt/color.h
>> -index f0e9dd94..231d93c8 100644
>> ---- a/include/fmt/color.h
>> -+++ b/include/fmt/color.h
>> -@@ -560,31 +560,30 @@ struct formatter<detail::styled_arg<T>, Char> : formatter<T, Char> {
>> -   auto format(const detail::styled_arg<T>& arg, FormatContext& ctx) const
>> -       -> decltype(ctx.out()) {
>> -     const auto& ts = arg.style;
>> --    const auto& value = arg.value;
>> -     auto out = ctx.out();
>> -
>> -     bool has_style = false;
>> -     if (ts.has_emphasis()) {
>> -       has_style = true;
>> -       auto emphasis = detail::make_emphasis<Char>(ts.get_emphasis());
>> --      out = std::copy(emphasis.begin(), emphasis.end(), out);
>> -+      out = detail::copy<Char>(emphasis.begin(), emphasis.end(), out);
>> -     }
>> -     if (ts.has_foreground()) {
>> -       has_style = true;
>> -       auto foreground =
>> -           detail::make_foreground_color<Char>(ts.get_foreground());
>> --      out = std::copy(foreground.begin(), foreground.end(), out);
>> -+      out = detail::copy<Char>(foreground.begin(), foreground.end(), out);
>> -     }
>> -     if (ts.has_background()) {
>> -       has_style = true;
>> -       auto background =
>> -           detail::make_background_color<Char>(ts.get_background());
>> --      out = std::copy(background.begin(), background.end(), out);
>> -+      out = detail::copy<Char>(background.begin(), background.end(), out);
>> -     }
>> --    out = formatter<T, Char>::format(value, ctx);
>> -+    out = formatter<T, Char>::format(arg.value, ctx);
>> -     if (has_style) {
>> -       auto reset_color = string_view("\x1b[0m");
>> --      out = std::copy(reset_color.begin(), reset_color.end(), out);
>> -+      out = detail::copy<Char>(reset_color.begin(), reset_color.end(), out);
>> -     }
>> -     return out;
>> -   }
>> diff --git a/meta/recipes-devtools/fmt/fmt_11.0.2.bb b/meta/recipes-devtools/fmt/fmt_11.1.1.bb
>> similarity index 80%
>> rename from meta/recipes-devtools/fmt/fmt_11.0.2.bb
>> rename to meta/recipes-devtools/fmt/fmt_11.1.1.bb
>> index 5c60921efa..a99a377ad4 100644
>> --- a/meta/recipes-devtools/fmt/fmt_11.0.2.bb
>> +++ b/meta/recipes-devtools/fmt/fmt_11.1.1.bb
>> @@ -4,10 +4,8 @@ HOMEPAGE = "https://fmt.dev"
>>   LICENSE = "MIT"
>>   LIC_FILES_CHKSUM = "file://LICENSE;md5=b9257785fc4f3803a4b71b76c1412729"
>>
>> -SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https \
>> -           file://0001-Get-rid-of-std-copy.patch \
>> -           "
>> -SRCREV = "0c9fce2ffefecfdce794e1859584e25877b7b592"
>> +SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https"
>> +SRCREV = "e3ddede6c4ee818825c4e5a6dfa1d384860c27d9"
>>
>>   S = "${WORKDIR}/git"
>>
>> --
>> 2.44.1
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#209422): https://lists.openembedded.org/g/openembedded-core/message/209422
>> Mute This Topic: https://lists.openembedded.org/mt/110453434/1997914
>> Group Owner: openembedded-core+owner@lists.openembedded.org
>> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [raj.khem@gmail.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
Ross Burton Jan. 17, 2025, 3:46 p.m. UTC | #3
On 9 Jan 2025, at 18:35, Khem Raj via lists.openembedded.org <raj.khem=gmail.com@lists.openembedded.org> wrote:
> 
> I know this patch is applied but I still want to bring it to attention
> Many packages in other layers depend on fmt.  fmt's APIs are not or
> not used in a very backward compatible way
> some packages provide an option to use vendored version of fmt so in
> case of system fmt being not compatible is not
> a huge issue other than duplication, but some packages e.g. gerbera
> rely on system provided fmt and it still has not moved to
> 11.1

If fmt has basically no API stability, should we just have fmt10, fmt11 etc recipes instead?

The -dev packages for each of those will conflict as they don’t version the headers, but at least the library packages could be parallel installed.

Ross
Khem Raj Jan. 17, 2025, 7:24 p.m. UTC | #4
On Fri, Jan 17, 2025 at 7:46 AM Ross Burton <Ross.Burton@arm.com> wrote:
>
> On 9 Jan 2025, at 18:35, Khem Raj via lists.openembedded.org <raj.khem=gmail.com@lists.openembedded.org> wrote:
> >
> > I know this patch is applied but I still want to bring it to attention
> > Many packages in other layers depend on fmt.  fmt's APIs are not or
> > not used in a very backward compatible way
> > some packages provide an option to use vendored version of fmt so in
> > case of system fmt being not compatible is not
> > a huge issue other than duplication, but some packages e.g. gerbera
> > rely on system provided fmt and it still has not moved to
> > 11.1
>
> If fmt has basically no API stability, should we just have fmt10, fmt11 etc recipes instead?
>

maybe, although that also means that multiple versions are made to coexist.

> The -dev packages for each of those will conflict as they don’t version the headers, but at least the library packages could be parallel installed.
>

exactly. I have seen that most packages have it vendored and it's used
statically.
Sometimes OE-core updates versions of such packages, before rest of
distributions have picked it up. It means the burden of porting
the dependent packages falls on us too and we may not have enough
folks doing this sort of unplanned work.
For meta-openembedded I have decided to add SKIP_RECIPE to recipes
failing with such porting issues,  until world builds become clean,
sometimes it means disabling a lot of recipes but I expect folks who
use them will fix them in due course.

> Ross
diff mbox series

Patch

diff --git a/meta/recipes-devtools/fmt/fmt/0001-Get-rid-of-std-copy.patch b/meta/recipes-devtools/fmt/fmt/0001-Get-rid-of-std-copy.patch
deleted file mode 100644
index 1b495ea075..0000000000
--- a/meta/recipes-devtools/fmt/fmt/0001-Get-rid-of-std-copy.patch
+++ /dev/null
@@ -1,52 +0,0 @@ 
-From 6e462b89aa22fd5f737ed162d0150e145ccb1914 Mon Sep 17 00:00:00 2001
-From: Victor Zverovich <viz@meta.com>
-Date: Mon, 29 Jul 2024 15:58:05 -0700
-Subject: [PATCH] Get rid of std::copy
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Backport [https://github.com/fmtlib/fmt/commit/6e462b89aa22fd5f737ed162d0150e145ccb1914]
----
- include/fmt/color.h | 11 +++++------
- 1 file changed, 5 insertions(+), 6 deletions(-)
-
-diff --git a/include/fmt/color.h b/include/fmt/color.h
-index f0e9dd94..231d93c8 100644
---- a/include/fmt/color.h
-+++ b/include/fmt/color.h
-@@ -560,31 +560,30 @@ struct formatter<detail::styled_arg<T>, Char> : formatter<T, Char> {
-   auto format(const detail::styled_arg<T>& arg, FormatContext& ctx) const
-       -> decltype(ctx.out()) {
-     const auto& ts = arg.style;
--    const auto& value = arg.value;
-     auto out = ctx.out();
- 
-     bool has_style = false;
-     if (ts.has_emphasis()) {
-       has_style = true;
-       auto emphasis = detail::make_emphasis<Char>(ts.get_emphasis());
--      out = std::copy(emphasis.begin(), emphasis.end(), out);
-+      out = detail::copy<Char>(emphasis.begin(), emphasis.end(), out);
-     }
-     if (ts.has_foreground()) {
-       has_style = true;
-       auto foreground =
-           detail::make_foreground_color<Char>(ts.get_foreground());
--      out = std::copy(foreground.begin(), foreground.end(), out);
-+      out = detail::copy<Char>(foreground.begin(), foreground.end(), out);
-     }
-     if (ts.has_background()) {
-       has_style = true;
-       auto background =
-           detail::make_background_color<Char>(ts.get_background());
--      out = std::copy(background.begin(), background.end(), out);
-+      out = detail::copy<Char>(background.begin(), background.end(), out);
-     }
--    out = formatter<T, Char>::format(value, ctx);
-+    out = formatter<T, Char>::format(arg.value, ctx);
-     if (has_style) {
-       auto reset_color = string_view("\x1b[0m");
--      out = std::copy(reset_color.begin(), reset_color.end(), out);
-+      out = detail::copy<Char>(reset_color.begin(), reset_color.end(), out);
-     }
-     return out;
-   }
diff --git a/meta/recipes-devtools/fmt/fmt_11.0.2.bb b/meta/recipes-devtools/fmt/fmt_11.1.1.bb
similarity index 80%
rename from meta/recipes-devtools/fmt/fmt_11.0.2.bb
rename to meta/recipes-devtools/fmt/fmt_11.1.1.bb
index 5c60921efa..a99a377ad4 100644
--- a/meta/recipes-devtools/fmt/fmt_11.0.2.bb
+++ b/meta/recipes-devtools/fmt/fmt_11.1.1.bb
@@ -4,10 +4,8 @@  HOMEPAGE = "https://fmt.dev"
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b9257785fc4f3803a4b71b76c1412729"
 
-SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https \
-           file://0001-Get-rid-of-std-copy.patch \
-           "
-SRCREV = "0c9fce2ffefecfdce794e1859584e25877b7b592"
+SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https"
+SRCREV = "e3ddede6c4ee818825c4e5a6dfa1d384860c27d9"
 
 S = "${WORKDIR}/git"