File 0187-Use-include_lib-instead-of-include-.-include.patch of Package erlang
From eef46e4c4ca28c69a8c7b90f75ffa62ab70ba9e3 Mon Sep 17 00:00:00 2001
From: Daniel Gorin <danielgo@meta.com>
Date: Sun, 28 Sep 2025 15:22:12 +0100
Subject: [PATCH] Use -include_lib() instead of -include("../include/...")
Usage of `-include("../include/foo.hrl").` force code-analysis
tools to handle relative paths that escape the root, which adds
unnecessary complexity. We can instead be consistent and use
only `-include_lib()`
---
lib/edoc/src/Makefile | 3 ++-
lib/edoc/src/edoc_doclet.erl | 2 +-
lib/edoc/src/edoc_doclet_chunks.erl | 2 +-
lib/edoc/src/edoc_doclet_markdown.erl | 2 +-
lib/et/src/et_collector.erl | 2 +-
lib/et/src/et_selector.erl | 2 +-
lib/et/src/et_viewer.erl | 2 +-
lib/et/src/et_wx_contents_viewer.erl | 2 +-
lib/et/src/et_wx_viewer.erl | 2 +-
lib/kernel/src/auth.erl | 2 +-
lib/stdlib/src/erl_bits.erl | 2 +-
lib/wx/api_gen/wx_extra/wxEvtHandler.erl | 2 +-
lib/wx/src/Makefile | 2 +-
lib/wx/src/gen/wxEvtHandler.erl | 2 +-
lib/wx/src/wx.erl | 2 +-
lib/wx/src/wx_object.erl | 2 +-
lib/wx/src/wxe_server.erl | 2 +-
17 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/lib/edoc/src/Makefile b/lib/edoc/src/Makefile
index e62462996a..aba27ab3d5 100644
--- a/lib/edoc/src/Makefile
+++ b/lib/edoc/src/Makefile
@@ -48,7 +48,8 @@ RELSYSDIR = $(RELEASE_PATH)/lib/edoc-$(VSN)
EBIN = ../ebin
XMERL = ../../xmerl
-ERL_COMPILE_FLAGS += -pa $(XMERL) -I../include -I$(XMERL)/include +warn_unused_vars +warn_unused_import +warn_deprecated_guard +no_docs +nowarn_missing_spec_documented +warn_deprecated_catch -Werror
+ERL_COMPILE_FLAGS += -pa $(XMERL) -I../include -I$(XMERL)/include -I${ERL_TOP}/lib
+ERL_COMPILE_FLAGS += +warn_unused_vars +warn_unused_import +warn_deprecated_guard +no_docs +nowarn_missing_spec_documented +warn_deprecated_catch -Werror
include files.mk
diff --git a/lib/edoc/src/edoc_doclet.erl b/lib/edoc/src/edoc_doclet.erl
index d87650b02a..1929d55f55 100644
--- a/lib/edoc/src/edoc_doclet.erl
+++ b/lib/edoc/src/edoc_doclet.erl
@@ -53,7 +53,7 @@
-import(edoc_report, [report/2, warning/2]).
%% @headerfile "../include/edoc_doclet.hrl"
--include("../include/edoc_doclet.hrl").
+-include_lib("edoc/include/edoc_doclet.hrl").
-define(EDOC_APP, edoc).
-define(DEFAULT_FILE_SUFFIX, ".html").
diff --git a/lib/edoc/src/edoc_doclet_chunks.erl b/lib/edoc/src/edoc_doclet_chunks.erl
index c10c721eea..d553b03fbe 100644
--- a/lib/edoc/src/edoc_doclet_chunks.erl
+++ b/lib/edoc/src/edoc_doclet_chunks.erl
@@ -53,7 +53,7 @@
-import(edoc_report, [report/2]).
%% @headerfile "../include/edoc_doclet.hrl"
--include("../include/edoc_doclet.hrl").
+-include_lib("edoc/include/edoc_doclet.hrl").
-define(DEFAULT_FILE_SUFFIX, ".chunk").
-define(CHUNKS_DIR, "chunks").
diff --git a/lib/edoc/src/edoc_doclet_markdown.erl b/lib/edoc/src/edoc_doclet_markdown.erl
index 577c754af4..fbd58399fb 100644
--- a/lib/edoc/src/edoc_doclet_markdown.erl
+++ b/lib/edoc/src/edoc_doclet_markdown.erl
@@ -58,7 +58,7 @@
-export([run/2]).
%% @headerfile "../include/edoc_doclet.hrl"
--include("../include/edoc_doclet.hrl").
+-include_lib("edoc/include/edoc_doclet.hrl").
-include_lib("xmerl/include/xmerl.hrl").
-include_lib("kernel/include/eep48.hrl").
diff --git a/lib/et/src/et_collector.erl b/lib/et/src/et_collector.erl
index 5f8d6f093e..8549ba9a7c 100644
--- a/lib/et/src/et_collector.erl
+++ b/lib/et/src/et_collector.erl
@@ -71,7 +71,7 @@ Interface module for the Event Trace (ET) application
-compile([{nowarn_deprecated_function,[{erlang,now,0}]}]).
-include("et_internal.hrl").
--include("../include/et.hrl").
+-include_lib("et/include/et.hrl").
-record(state, {parent_pid,
auto_shutdown, % Optionally shutdown when the last subscriber dies
diff --git a/lib/et/src/et_selector.erl b/lib/et/src/et_selector.erl
index a9e9cd1b53..28b4298f81 100644
--- a/lib/et/src/et_selector.erl
+++ b/lib/et/src/et_selector.erl
@@ -32,7 +32,7 @@
-compile([{nowarn_deprecated_function,[{erlang,now,0}]}]).
--include("../include/et.hrl").
+-include_lib("et/include/et.hrl").
-type event() :: #event{}.
diff --git a/lib/et/src/et_viewer.erl b/lib/et/src/et_viewer.erl
index 1b61273fce..c1f8d04665 100644
--- a/lib/et/src/et_viewer.erl
+++ b/lib/et/src/et_viewer.erl
@@ -38,7 +38,7 @@
stop/1,
get_collector_pid/1]).
--include("../include/et.hrl").
+-include_lib("et/include/et.hrl").
-include("et_internal.hrl").
-define(unknown, "UNKNOWN").
diff --git a/lib/et/src/et_wx_contents_viewer.erl b/lib/et/src/et_wx_contents_viewer.erl
index dbd78a494b..c0a016e1f6 100644
--- a/lib/et/src/et_wx_contents_viewer.erl
+++ b/lib/et/src/et_wx_contents_viewer.erl
@@ -37,7 +37,7 @@
handle_call/3, handle_cast/2, handle_info/2,
handle_event/2]).
--include("../include/et.hrl").
+-include_lib("et/include/et.hrl").
-include("et_internal.hrl").
-include_lib("wx/include/wx.hrl").
diff --git a/lib/et/src/et_wx_viewer.erl b/lib/et/src/et_wx_viewer.erl
index 774285fb6f..e73be68d0f 100644
--- a/lib/et/src/et_wx_viewer.erl
+++ b/lib/et/src/et_wx_viewer.erl
@@ -35,7 +35,7 @@
-export([init/1, terminate/2, code_change/3,
handle_call/3, handle_cast/2, handle_info/2]).
--include("../include/et.hrl").
+-include_lib("et/include/et.hrl").
-include("et_internal.hrl").
-include_lib("wx/include/wx.hrl").
diff --git a/lib/kernel/src/auth.erl b/lib/kernel/src/auth.erl
index 7b5bb774e0..a0a81f09a1 100644
--- a/lib/kernel/src/auth.erl
+++ b/lib/kernel/src/auth.erl
@@ -61,7 +61,7 @@ Manual.
}).
-type state() :: #state{}.
--include("../include/file.hrl").
+-include_lib("kernel/include/file.hrl").
%%----------------------------------------------------------------------
%% Exported functions
diff --git a/lib/stdlib/src/erl_bits.erl b/lib/stdlib/src/erl_bits.erl
index 883fa08b55..a3f6df18ee 100644
--- a/lib/stdlib/src/erl_bits.erl
+++ b/lib/stdlib/src/erl_bits.erl
@@ -28,7 +28,7 @@
set_bit_type/2,
as_list/1]).
--include("../include/erl_bits.hrl").
+-include_lib("stdlib/include/erl_bits.hrl").
%% Dummies.
diff --git a/lib/wx/api_gen/wx_extra/wxEvtHandler.erl b/lib/wx/api_gen/wx_extra/wxEvtHandler.erl
index 9f6026c414..1861d1795f 100644
--- a/lib/wx/api_gen/wx_extra/wxEvtHandler.erl
+++ b/lib/wx/api_gen/wx_extra/wxEvtHandler.erl
@@ -28,7 +28,7 @@ wxWidgets docs:
[wxEvtHandler](https://docs.wxwidgets.org/3.2/classwx_evt_handler.html)
""".
-include("wxe.hrl").
--include("../include/wx.hrl").
+-include_lib("wx/include/wx.hrl").
%% API
-export([connect/2, connect/3, disconnect/1, disconnect/2, disconnect/3]).
diff --git a/lib/wx/src/Makefile b/lib/wx/src/Makefile
index 303eca964f..e627ad1cb7 100644
--- a/lib/wx/src/Makefile
+++ b/lib/wx/src/Makefile
@@ -28,7 +28,7 @@ EGEN = gen
EBIN = ../ebin
ERLC = erlc
ERLINC = ../include
-ERL_COMPILE_FLAGS += -I$(ERLINC) +warn_unused_vars +nowarn_missing_doc
+ERL_COMPILE_FLAGS += -I$(ERLINC) -I${ERL_TOP}/lib +warn_unused_vars +nowarn_missing_doc
ifeq ($(CAN_BUILD_DRIVER), true)
ERL_COMPILE_FLAGS += -DCAN_BUILD_DRIVER
diff --git a/lib/wx/src/gen/wxEvtHandler.erl b/lib/wx/src/gen/wxEvtHandler.erl
index 36c7b15cb8..2eb5bf8ec5 100644
--- a/lib/wx/src/gen/wxEvtHandler.erl
+++ b/lib/wx/src/gen/wxEvtHandler.erl
@@ -85,7 +85,7 @@ wxWidgets docs:
[wxEvtHandler](https://docs.wxwidgets.org/3.2/classwx_evt_handler.html)
""".
-include("wxe.hrl").
--include("../include/wx.hrl").
+-include_lib("wx/include/wx.hrl").
%% API
-export([connect/2, connect/3, disconnect/1, disconnect/2, disconnect/3]).
diff --git a/lib/wx/src/wx.erl b/lib/wx/src/wx.erl
index 0dfa97803e..fdd0d490ac 100644
--- a/lib/wx/src/wx.erl
+++ b/lib/wx/src/wx.erl
@@ -195,7 +195,7 @@ Global (classless) functions are located in the wx_misc module.
wx_enum/0, wx_wxMouseState/0, wx_wxHtmlLinkInfo/0]).
-include("wxe.hrl").
--include("../include/wx.hrl").
+-include_lib("wx/include/wx.hrl").
-type wx_object() :: #wx_ref{}. %% Opaque object reference
-type wx_env() :: #wx_env{}. %% Opaque process environment
diff --git a/lib/wx/src/wx_object.erl b/lib/wx/src/wx_object.erl
index d1b2565e98..63044e113b 100644
--- a/lib/wx/src/wx_object.erl
+++ b/lib/wx/src/wx_object.erl
@@ -198,7 +198,7 @@ Example:
[wx:wx_object()](`m:wx#type-wx_object`) | atom() | pid()**
""".
-include("wxe.hrl").
--include("../include/wx.hrl").
+-include_lib("wx/include/wx.hrl").
%% API
-export([start/3, start/4,
diff --git a/lib/wx/src/wxe_server.erl b/lib/wx/src/wxe_server.erl
index c711175101..b22cb01e5d 100644
--- a/lib/wx/src/wxe_server.erl
+++ b/lib/wx/src/wxe_server.erl
@@ -47,7 +47,7 @@
-define(log(S,A), log(?MODULE_STRING,?LINE,S,A)).
-include("wxe.hrl").
--include("../include/wx.hrl").
+-include_lib("wx/include/wx.hrl").
%%====================================================================
%% API
--
2.51.0