From f3201182a6ab95cf2acd2f3b6e1ce414452d7309 Mon Sep 17 00:00:00 2001 From: Leonid Borchuk Date: Fri, 11 Sep 2026 16:04:20 +0300 Subject: [PATCH 1/4] Add in LICENCE info about tabulate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LICENSE (root) — added the missing coverage: 1. Boost Software License 1.0 section under the tabulate/MIT area — names the three bundled *-lite components that are not MIT, with exact paths: - optional_lite.hpp (optional-lite, Martin Moene) - variant_lite.hpp (variant-lite, Martin Moene) - string_view_lite.hpp (string-view-lite, Martin Moene) — this one has no in-tree LICENSE.* file, so it was the least visible of the three - single_include/tabulate/tabulate.hpp — the amalgamated header, which embeds copies of all three plus termcolor The existing tabulate MIT entry now reads "(excluding the bundled third-party components listed below)" so the MIT-only claim is no longer overbroad. 2. termcolor (BSD-3-Clause) added to the BSD 3 Clause section — also bundled by tabulate, also not MIT, and also not previously identified. 3. Ryu (Boost-1.0) added under the PostgreSQL section — src/common/{d2s.c,d2s_full_table.h,d2s_intrinsics.h,f2s.c,ryu_common.h} and src/include/common/shortest_dec.h. Upstream Ryu is Apache-2.0-or-Boost dual-licensed; PostgreSQL explicitly took it under Boost, and this was a second undeclared Boost-1.0 component in the archive. 4. Fixed dependencies/yyjson → dependency/yyjson (the declared path didn't exist). New files (the root LICENSE now points into licenses/ for every entry, per existing convention): - licenses/LICENSE-boost.txt — canonical BSL-1.0 text - licenses/LICENSE-termcolor.txt — termcolor BSD-3 text pom.xml — excluded those two new verbatim license texts from the Apache RAT scan, mirroring the existing tabulate/LICENSE.termcolor exclusion (that one is already excluded, which tells us RAT doesn't match that BSD variant). --- LICENSE | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++---- pom.xml | 8 ++++++++ 2 files changed, 66 insertions(+), 4 deletions(-) diff --git a/LICENSE b/LICENSE index 5e3c7008094..10d69da23ff 100644 --- a/LICENSE +++ b/LICENSE @@ -281,9 +281,26 @@ The PostgreSQL software includes: ---------------------------- PostgreSQL-style License - src/port/gettimeofday.c + src/port/gettimeofday.c see licenses/LICENSE-gettimeofday.txt +---------------------------- + Boost Software License - Version 1.0 + + Ryu float-to-string conversion (https://github.com/ulfjack/ryu), + copyright 2018 Ulf Adams. Upstream Ryu is dual-licensed under the + Apache License 2.0 or the Boost Software License 1.0; PostgreSQL + took it under the terms of the Boost license, and so does this + distribution. + + src/common/d2s.c + src/common/d2s_full_table.h + src/common/d2s_intrinsics.h + src/common/f2s.c + src/common/ryu_common.h + src/include/common/shortest_dec.h + see licenses/LICENSE-boost.txt + ================================================================================ This product contains significant parts that were originally based on software from VMware, Inc. or its affiliates. @@ -353,17 +370,54 @@ Apache Cloudberry includes codes from ---------------------------- MIT LICENSE - dependencies/yyjson + dependency/yyjson see licenses/LICENSE-yyjson.txt contrib/pax_storage/src/cpp/cpp-stub see licenses/LICENSE-cpp-stub.txt contrib/pax_storage/src/cpp/contrib/tabulate + (excluding the bundled third-party components listed below) see licenses/LICENSE-tabulate.txt - ---------------------------- - BSD 3 Clause License +---------------------------- + Boost Software License - Version 1.0 + + The bundled tabulate library embeds the following third-party + header-only libraries by Martin Moene, which are distributed under + the Boost Software License, Version 1.0, rather than under + tabulate's own MIT license. The amalgamated single-header build of + tabulate also contains copies of all three. + + optional-lite (https://github.com/martinmoene/optional-lite) + contrib/pax_storage/src/cpp/contrib/tabulate/include/tabulate/optional_lite.hpp + + variant-lite (https://github.com/martinmoene/variant-lite) + contrib/pax_storage/src/cpp/contrib/tabulate/include/tabulate/variant_lite.hpp + + string-view-lite (https://github.com/martinmoene/string-view-lite) + contrib/pax_storage/src/cpp/contrib/tabulate/include/tabulate/string_view_lite.hpp + + amalgamated copy of all of the above + contrib/pax_storage/src/cpp/contrib/tabulate/single_include/tabulate/tabulate.hpp + + see licenses/LICENSE-boost.txt + (also shipped in-tree as + contrib/pax_storage/src/cpp/contrib/tabulate/LICENSE.optional-lite and + contrib/pax_storage/src/cpp/contrib/tabulate/LICENSE.variant-lite) + +---------------------------- + BSD 3 Clause License contrib/pax_storage/src/cpp/contrib/googletest see licenses/LICENSE-googletest.txt + + termcolor (https://github.com/ikalnytskyi/termcolor), bundled by + tabulate and also embedded in tabulate's amalgamated single header: + + contrib/pax_storage/src/cpp/contrib/tabulate/include/tabulate/termcolor.hpp + contrib/pax_storage/src/cpp/contrib/tabulate/single_include/tabulate/tabulate.hpp + + see licenses/LICENSE-termcolor.txt + (also shipped in-tree as + contrib/pax_storage/src/cpp/contrib/tabulate/LICENSE.termcolor) diff --git a/pom.xml b/pom.xml index a3b99aff02c..73392c86332 100644 --- a/pom.xml +++ b/pom.xml @@ -1941,6 +1941,14 @@ code or new licensing patterns. contrib/pax_storage/src/cpp/cpp-stub/src/addr_pri.h contrib/pax_storage/src/cpp/cpp-stub/src/stub.h + + licenses/LICENSE-boost.txt + licenses/LICENSE-termcolor.txt + contrib/pax_storage/src/cpp/contrib/tabulate/tabulateConfig.cmake.in contrib/pax_storage/src/cpp/contrib/tabulate/tabulate.pri contrib/pax_storage/src/cpp/contrib/tabulate/clang-format.bash From 71b9800b09fc59b8863e9ed6758295c28054214f Mon Sep 17 00:00:00 2001 From: Leonid Borchuk Date: Fri, 11 Sep 2026 16:06:22 +0300 Subject: [PATCH 2/4] Add boost license files --- licenses/LICENSE-boost.txt | 23 +++++++++++++++++++++++ licenses/LICENSE-termcolor.txt | 31 +++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 licenses/LICENSE-boost.txt create mode 100644 licenses/LICENSE-termcolor.txt diff --git a/licenses/LICENSE-boost.txt b/licenses/LICENSE-boost.txt new file mode 100644 index 00000000000..36b7cd93cdf --- /dev/null +++ b/licenses/LICENSE-boost.txt @@ -0,0 +1,23 @@ +Boost Software License - Version 1.0 - August 17th, 2003 + +Permission is hereby granted, free of charge, to any person or organization +obtaining a copy of the software and accompanying documentation covered by +this license (the "Software") to use, reproduce, display, distribute, +execute, and transmit the Software, and to prepare derivative works of the +Software, and to permit third-parties to whom the Software is furnished to +do so, all subject to the following: + +The copyright notices in the Software and this entire statement, including +the above license grant, this restriction and the following disclaimer, +must be included in all copies of the Software, in whole or in part, and +all derivative works of the Software, unless such copies or derivative +works are solely in the form of machine-executable object code generated by +a source language processor. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT +SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE +FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/licenses/LICENSE-termcolor.txt b/licenses/LICENSE-termcolor.txt new file mode 100644 index 00000000000..e2a9f532266 --- /dev/null +++ b/licenses/LICENSE-termcolor.txt @@ -0,0 +1,31 @@ +Copyright (c) 2013, Ihor Kalnytskyi. +All rights reserved. + +Redistribution and use in source and binary forms of the software as well +as documentation, with or without modification, are permitted provided +that the following conditions are met: + +* Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +* The names of the contributors may not be used to endorse or + promote products derived from this software without specific + prior written permission. + +THIS SOFTWARE AND DOCUMENTATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND +CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT +NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER +OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE AND DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH +DAMAGE. From e18e1902e3ccf9dcb77ee188c40da2087f17f2f2 Mon Sep 17 00:00:00 2001 From: Dianjin Wang Date: Mon, 14 Sep 2026 09:55:19 +0800 Subject: [PATCH 3/4] Fix LICENSE coverage of bundled tabulate components Two gaps remained after the earlier commits in this PR. The MIT entry for tabulate carved out "the bundled third-party components listed below", and that list names single_include/tabulate/tabulate.hpp. But that file is a three-license composite: lines 1-5624 are variant-lite, optional-lite and string-view-lite (Boost-1.0), ~5625-6071 are termcolor (BSD-3), and ~6072-9385 are tabulate's own MIT code. Excluding the whole file left those last ~3300 lines covered by nothing. Reword the carve-out so it applies to the embedded portions rather than to whole files. tabulate also bundles amalgamate.py by Erik Edlund under BSD-3-Clause, in utils/amalgamate/, the tool used to generate the single header. Like termcolor it is not covered by tabulate's own MIT license and was not declared anywhere. Add it to the BSD 3 Clause section and ship its text as licenses/LICENSE-amalgamate.txt. That text uses the standard BSD-3 wording, so unlike LICENSE-termcolor.txt it needs no Apache RAT exclusion. --- LICENSE | 13 ++++++++++++- licenses/LICENSE-amalgamate.txt | 27 +++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 licenses/LICENSE-amalgamate.txt diff --git a/LICENSE b/LICENSE index 10d69da23ff..aba88be45e8 100644 --- a/LICENSE +++ b/LICENSE @@ -377,7 +377,8 @@ Apache Cloudberry includes codes from see licenses/LICENSE-cpp-stub.txt contrib/pax_storage/src/cpp/contrib/tabulate - (excluding the bundled third-party components listed below) + (tabulate's own code only; the third-party code bundled and + embedded within it is listed below under its own licenses) see licenses/LICENSE-tabulate.txt ---------------------------- @@ -421,3 +422,13 @@ Apache Cloudberry includes codes from see licenses/LICENSE-termcolor.txt (also shipped in-tree as contrib/pax_storage/src/cpp/contrib/tabulate/LICENSE.termcolor) + + amalgamate.py (https://github.com/edlund/amalgamate), copyright + 2012 Erik Edlund, the source amalgamation tool bundled by tabulate + and used to generate its single header: + + contrib/pax_storage/src/cpp/contrib/tabulate/utils/amalgamate + + see licenses/LICENSE-amalgamate.txt + (also shipped in-tree as + contrib/pax_storage/src/cpp/contrib/tabulate/utils/amalgamate/LICENSE.md) diff --git a/licenses/LICENSE-amalgamate.txt b/licenses/LICENSE-amalgamate.txt new file mode 100644 index 00000000000..7fe9cf08ad4 --- /dev/null +++ b/licenses/LICENSE-amalgamate.txt @@ -0,0 +1,27 @@ +amalgamate.py - Amalgamate C source and header files +Copyright (c) 2012, Erik Edlund + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name of Erik Edlund, nor the names of its contributors may + be used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. From 8f92c23ce4a87bea70308822f839f326718b9dbe Mon Sep 17 00:00:00 2001 From: Leonid Borchuk Date: Mon, 14 Sep 2026 10:49:47 +0300 Subject: [PATCH 4/4] Add LICENSE info about amalgamate --- LICENSE | 30 +++++++++++++++++++++++------- pom.xml | 1 + 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/LICENSE b/LICENSE index aba88be45e8..2ea2b0edddc 100644 --- a/LICENSE +++ b/LICENSE @@ -377,18 +377,24 @@ Apache Cloudberry includes codes from see licenses/LICENSE-cpp-stub.txt contrib/pax_storage/src/cpp/contrib/tabulate - (tabulate's own code only; the third-party code bundled and - embedded within it is listed below under its own licenses) + (tabulate's own code only; the third-party code bundled and embedded + within it is listed below under its own licenses) see licenses/LICENSE-tabulate.txt + Note that tabulate's amalgamated single header, + contrib/pax_storage/src/cpp/contrib/tabulate/single_include/tabulate/tabulate.hpp, + is a composite file: the portions carrying tabulate's own + "SPDX-License-Identifier: MIT" notices are under this MIT license, + while the third-party portions embedded in the same file are under + the licenses identified below. + ---------------------------- Boost Software License - Version 1.0 - The bundled tabulate library embeds the following third-party + The bundled tabulate library includes the following third-party header-only libraries by Martin Moene, which are distributed under the Boost Software License, Version 1.0, rather than under - tabulate's own MIT license. The amalgamated single-header build of - tabulate also contains copies of all three. + tabulate's own MIT license: optional-lite (https://github.com/martinmoene/optional-lite) contrib/pax_storage/src/cpp/contrib/tabulate/include/tabulate/optional_lite.hpp @@ -399,7 +405,11 @@ Apache Cloudberry includes codes from string-view-lite (https://github.com/martinmoene/string-view-lite) contrib/pax_storage/src/cpp/contrib/tabulate/include/tabulate/string_view_lite.hpp - amalgamated copy of all of the above + Verbatim copies of all three are also embedded in tabulate's + amalgamated single header. This license covers those embedded + portions -- the ones bearing the Martin Moene copyright notices and + the accompanying "Distributed under the Boost Software License, + Version 1.0" grants -- and not the file as a whole: contrib/pax_storage/src/cpp/contrib/tabulate/single_include/tabulate/tabulate.hpp see licenses/LICENSE-boost.txt @@ -414,9 +424,15 @@ Apache Cloudberry includes codes from see licenses/LICENSE-googletest.txt termcolor (https://github.com/ikalnytskyi/termcolor), bundled by - tabulate and also embedded in tabulate's amalgamated single header: + tabulate rather than under tabulate's own MIT license: contrib/pax_storage/src/cpp/contrib/tabulate/include/tabulate/termcolor.hpp + + A verbatim copy of termcolor is also embedded in tabulate's + amalgamated single header. This license covers that embedded + portion -- the one bearing the "copyright: (c) 2013 by Ihor + Kalnytskyi" notice, comprising the termcolor namespace -- and not + the file as a whole: contrib/pax_storage/src/cpp/contrib/tabulate/single_include/tabulate/tabulate.hpp see licenses/LICENSE-termcolor.txt diff --git a/pom.xml b/pom.xml index 73392c86332..68f83b0d87a 100644 --- a/pom.xml +++ b/pom.xml @@ -1946,6 +1946,7 @@ code or new licensing patterns. LICENSE file. These are license grants, not source files, so they carry no license header of their own. --> + licenses/LICENSE-amalgamate.txt licenses/LICENSE-boost.txt licenses/LICENSE-termcolor.txt