From 1acc5d3cb02b1f14c4aca4c55bd995653a72137e Mon Sep 17 00:00:00 2001 From: Dianjin Wang Date: Tue, 22 Sep 2026 15:03:41 +0800 Subject: [PATCH] Replace the blanket RAT globs with targeted exclusions The RAT config excused five whole file types from the licence scan, so a clean run said nothing about them. Justin Mclean raised this during the 2.2.0-rc1 IPMC vote. - `**/*.gif` and `**/*.json` match nothing that fails, so they just go. - `**/*.md`, `**/*.sql` and `**/*.out` do hide real gaps: dropping them reports 1088 unapproved files. Almost all are inherited sources that must not be given an ASF header, so they are named instead. For markdown that is README files, orafce's docs, ORCA's design notes and the PR template; for SQL and regression output it is 77 directories plus four files, most of which exist verbatim in PostgreSQL `REL_16_STABLE` or `REL_14_STABLE` or sit in third-party subtrees already declared in LICENSE. - The directory patterns are scoped to .sql and .out rather than written as `/**`, which would also excuse the C and Perl sources beside them -- 2294 files tree-wide, a wider hole than the globs being replaced. - Project-authored files are unaffected: 36 of 75 .md and 5354 of 6386 `.sql/.out` already carry a header and stay in the scan. A new file outside these paths now has to carry one too. - The gpcloud exclusion gains a comment recording why it stays: those sources came from Greenplum without a header, so an ASF one must not be added. Verified on Rocky 9 against a fresh checkout of main: `mvn clean verify -Drat.consoleOutput=true` gives Unapproved: 0, unknown: 0, generated: 1, approved: 5665 licenses, BUILD SUCCESS. The approved count rises from 5649 because files the globs used to skip are now checked and pass. Assisted-by: Claude Code Backpatch-through: REL_2_STABLE --- pom.xml | 195 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 190 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 286b2844f9e..f5d0fb99fd9 100644 --- a/pom.xml +++ b/pom.xml @@ -108,6 +108,10 @@ code or new licensing patterns. gpcontrib/gpcloud/regress/** gpcontrib/gpcloud/test/** gpcontrib/gpcloud/bin/** + gpcontrib/gpcloud/src/**.cpp gpcontrib/gp_debug_numsegments/Makefile @@ -1243,11 +1247,192 @@ code or new licensing patterns. find out the origins of these. --> - **/*.gif - **/*.md - **/*.json - **/*.sql - **/*.out + + **/README*.md + **/readme*.md + gpcontrib/orafce/doc/**/*.md + src/backend/gporca/**/*.md + src/backend/cdb/dispatcher/extend_protocol_libpq.md + + + contrib/adminpack/**/*.sql + contrib/adminpack/**/*.out + contrib/amcheck/**/*.sql + contrib/amcheck/**/*.out + contrib/auto_explain/**/*.sql + contrib/auto_explain/**/*.out + contrib/basic_archive/**/*.sql + contrib/basic_archive/**/*.out + contrib/bloom/**/*.sql + contrib/bloom/**/*.out + contrib/bool_plperl/**/*.sql + contrib/bool_plperl/**/*.out + contrib/btree_gin/**/*.sql + contrib/btree_gin/**/*.out + contrib/btree_gist/**/*.sql + contrib/btree_gist/**/*.out + contrib/citext/**/*.sql + contrib/citext/**/*.out + contrib/cube/**/*.sql + contrib/cube/**/*.out + contrib/datalake_fdw/test/**/*.sql + contrib/datalake_fdw/test/**/*.out + contrib/dblink/**/*.sql + contrib/dblink/**/*.out + contrib/dict_int/**/*.sql + contrib/dict_int/**/*.out + contrib/dict_xsyn/**/*.sql + contrib/dict_xsyn/**/*.out + contrib/earthdistance/**/*.sql + contrib/earthdistance/**/*.out + contrib/extprotocol/**/*.sql + contrib/extprotocol/**/*.out + contrib/file_fdw/**/*.sql + contrib/file_fdw/**/*.out + contrib/formatter_fixedwidth/**/*.sql + contrib/formatter_fixedwidth/**/*.out + contrib/fuzzystrmatch/**/*.sql + contrib/fuzzystrmatch/**/*.out + contrib/hstore/**/*.sql + contrib/hstore/**/*.out + contrib/hstore_plperl/**/*.sql + contrib/hstore_plperl/**/*.out + contrib/hstore_plpython/**/*.sql + contrib/hstore_plpython/**/*.out + contrib/indexscan/**/*.sql + contrib/indexscan/**/*.out + contrib/intagg/**/*.sql + contrib/intagg/**/*.out + contrib/intarray/**/*.sql + contrib/intarray/**/*.out + contrib/interconnect/**/*.sql + contrib/interconnect/**/*.out + contrib/isn/**/*.sql + contrib/isn/**/*.out + contrib/jsonb_plperl/**/*.sql + contrib/jsonb_plperl/**/*.out + contrib/jsonb_plpython/**/*.sql + contrib/jsonb_plpython/**/*.out + contrib/lo/**/*.sql + contrib/lo/**/*.out + contrib/ltree/**/*.sql + contrib/ltree/**/*.out + contrib/ltree_plpython/**/*.sql + contrib/ltree_plpython/**/*.out + contrib/old_snapshot/**/*.sql + contrib/old_snapshot/**/*.out + contrib/pageinspect/**/*.sql + contrib/pageinspect/**/*.out + contrib/passwordcheck/**/*.sql + contrib/passwordcheck/**/*.out + contrib/pax_storage/sql/**/*.sql + contrib/pax_storage/sql/**/*.out + contrib/pg_buffercache/**/*.sql + contrib/pg_buffercache/**/*.out + contrib/pg_freespacemap/**/*.sql + contrib/pg_freespacemap/**/*.out + contrib/pg_prewarm/**/*.sql + contrib/pg_prewarm/**/*.out + contrib/pg_stat_statements/**/*.sql + contrib/pg_stat_statements/**/*.out + contrib/pg_surgery/**/*.sql + contrib/pg_surgery/**/*.out + contrib/pg_trgm/**/*.sql + contrib/pg_trgm/**/*.out + contrib/pg_visibility/**/*.sql + contrib/pg_visibility/**/*.out + contrib/pg_walinspect/**/*.sql + contrib/pg_walinspect/**/*.out + contrib/pgcrypto/**/*.sql + contrib/pgcrypto/**/*.out + contrib/pgrowlocks/**/*.sql + contrib/pgrowlocks/**/*.out + contrib/pgstattuple/**/*.sql + contrib/pgstattuple/**/*.out + contrib/postgres_fdw/**/*.sql + contrib/postgres_fdw/**/*.out + contrib/sasdemo/sql/**/*.sql + contrib/sasdemo/sql/**/*.out + contrib/seg/**/*.sql + contrib/seg/**/*.out + contrib/sepgsql/**/*.sql + contrib/sepgsql/**/*.out + contrib/spi/**/*.sql + contrib/spi/**/*.out + contrib/sslinfo/**/*.sql + contrib/sslinfo/**/*.out + contrib/tablefunc/**/*.sql + contrib/tablefunc/**/*.out + contrib/tcn/**/*.sql + contrib/tcn/**/*.out + contrib/test_decoding/**/*.sql + contrib/test_decoding/**/*.out + contrib/tsm_system_rows/**/*.sql + contrib/tsm_system_rows/**/*.out + contrib/tsm_system_time/**/*.sql + contrib/tsm_system_time/**/*.out + contrib/unaccent/expected/**/*.sql + contrib/unaccent/expected/**/*.out + contrib/uuid-ossp/**/*.sql + contrib/uuid-ossp/**/*.out + contrib/xml2/**/*.sql + contrib/xml2/**/*.out + gpcontrib/gp_debug_numsegments/**/*.sql + gpcontrib/gp_debug_numsegments/**/*.out + gpcontrib/gp_distribution_policy/**/*.sql + gpcontrib/gp_distribution_policy/**/*.out + gpcontrib/gp_exttable_fdw/**/*.sql + gpcontrib/gp_exttable_fdw/**/*.out + gpcontrib/gp_inject_fault/**/*.sql + gpcontrib/gp_inject_fault/**/*.out + gpcontrib/gp_sparse_vector/**/*.sql + gpcontrib/gp_sparse_vector/**/*.out + gpcontrib/orafce/**/*.sql + gpcontrib/orafce/**/*.out + gpcontrib/pg_hint_plan/**/*.sql + gpcontrib/pg_hint_plan/**/*.out + gpcontrib/pg_hint_plan/sql/**/*.sql + gpcontrib/pg_hint_plan/sql/**/*.out + gpcontrib/pxf_fdw/**/*.sql + gpcontrib/pxf_fdw/**/*.out + gpcontrib/zstd/**/*.sql + gpcontrib/zstd/**/*.out + src/bin/**/*.sql + src/bin/**/*.out + src/interfaces/**/*.sql + src/interfaces/**/*.out + src/pl/**/*.sql + src/pl/**/*.out + contrib/unaccent/unaccent--1.0--1.1.sql + contrib/unaccent/unaccent--1.1.sql + src/backend/catalog/cdb_schema.sql + src/backend/catalog/gp_toolkit_test.sql + + + .github/pull_request_template.md + + + gpcontrib/gp_relaccess_stats/**/*.sql + gpcontrib/gp_relaccess_stats/**/*.out + gpcontrib/gp_relsizes_stats/**/*.sql + gpcontrib/gp_relsizes_stats/**/*.out + gpcontrib/gp_stats_collector/**/*.sql + gpcontrib/gp_stats_collector/**/*.out .github/full_color_black.svg .github/full_color_white.svg sonar-project.properties