Skip to content

Commit 623ae27

Browse files
committed
Deprecate ENV.libxml2
- Use `pkg-config` or explicit include paths instead. - Stop injecting libxml2 paths into the macOS Superenv.
1 parent f03c5b3 commit 623ae27

6 files changed

Lines changed: 26 additions & 18 deletions

File tree

Library/Homebrew/extend/ENV/std.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ def setup_build_environment(formula: nil, cc: nil, build_bottle: false, bottle_a
7070
append_path "PATH", gcc_formula.opt_bin.to_s
7171
end
7272

73+
sig { void }
74+
def libxml2
75+
odeprecated "ENV.libxml2", "`pkg-config` or explicit include paths"
76+
end
77+
7378
sig { returns(T.nilable(PATH)) }
7479
def determine_pkg_config_libdir
7580
PATH.new(

Library/Homebrew/extend/os/linux/diagnostic.rb

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -203,14 +203,16 @@ def check_linux_sandbox
203203

204204
::Homebrew::Diagnostic::Finding.new(
205205
::Sandbox.failure_reason || "The Linux sandbox is not available.",
206-
remediation: if state == :missing_fiddle
207-
"Run Homebrew with its vendored Ruby, which includes Fiddle."
208-
else
209-
<<~EOS.chomp
210-
Homebrew's Linux sandbox requires a kernel with Landlock enabled.
211-
Upgrade to a Linux kernel with Landlock enabled.
212-
EOS
213-
end,
206+
remediation: (
207+
if state == :missing_fiddle
208+
"Run Homebrew with its vendored Ruby, which includes Fiddle."
209+
else
210+
<<~EOS.chomp
211+
Homebrew's Linux sandbox requires a kernel with Landlock enabled.
212+
Upgrade to a Linux kernel with Landlock enabled.
213+
EOS
214+
end
215+
),
214216
)
215217
end
216218

Library/Homebrew/extend/os/linux/extend/ENV/std.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ def setup_build_environment(formula: nil, cc: nil, build_bottle: false, bottle_a
3535

3636
sig { void }
3737
def libxml2
38+
super
3839
append "CPPFLAGS", "-I#{::Formula["libxml2"].include/"libxml2"}"
3940
rescue FormulaUnavailableError
4041
nil

Library/Homebrew/extend/os/mac/extend/ENV/std.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ def macosxsdk(version = nil, formula: nil, testing_formula: false)
108108
# This is a no-op with all supported macOS SDKs.
109109
sig { void }
110110
def libxml2
111+
super
111112
sdk = self["SDKROOT"] || MacOS.sdk_path
112113
# Use the includes from the sdk
113114
append "CPPFLAGS", "-I#{sdk}/usr/include/libxml2" unless Pathname("#{sdk}/usr/include/libxml").directory?

Library/Homebrew/extend/os/mac/extend/ENV/super.rb

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,18 +33,9 @@ def homebrew_extra_pkg_config_paths
3333
].map { |p| ::Pathname.new(p) }
3434
end
3535

36-
sig { returns(T::Boolean) }
37-
def libxml2_include_needed?
38-
return false if deps.any? { |d| d.name == "libxml2" }
39-
return false if ::Pathname.new("#{self["HOMEBREW_SDKROOT"]}/usr/include/libxml").directory?
40-
41-
true
42-
end
43-
4436
sig { returns(T::Array[::Pathname]) }
4537
def homebrew_extra_isystem_paths
4638
paths = []
47-
paths << "#{self["HOMEBREW_SDKROOT"]}/usr/include/libxml2" if libxml2_include_needed?
4839
paths << "#{self["HOMEBREW_SDKROOT"]}/usr/include/apache2" if MacOS::Xcode.without_clt?
4940
paths << "#{self["HOMEBREW_SDKROOT"]}/System/Library/Frameworks/OpenGL.framework/Versions/Current/Headers"
5041
paths.map { |p| ::Pathname.new(p) }
@@ -64,7 +55,6 @@ def homebrew_extra_library_paths
6455
sig { returns(T::Array[::Pathname]) }
6556
def homebrew_extra_cmake_include_paths
6657
paths = []
67-
paths << "#{self["HOMEBREW_SDKROOT"]}/usr/include/libxml2" if libxml2_include_needed?
6858
paths << "#{self["HOMEBREW_SDKROOT"]}/usr/include/apache2" if MacOS::Xcode.without_clt?
6959
paths << "#{self["HOMEBREW_SDKROOT"]}/System/Library/Frameworks/OpenGL.framework/Versions/Current/Headers"
7060
paths.map { |p| ::Pathname.new(p) }

Library/Homebrew/test/ENV_spec.rb

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,15 @@
243243

244244
describe Stdenv do
245245
include_examples EnvActivation
246+
247+
describe "#libxml2" do
248+
it "is deprecated" do
249+
expect(env).to receive(:odeprecated)
250+
.with("ENV.libxml2", "`pkg-config` or explicit include paths")
251+
252+
env.libxml2
253+
end
254+
end
246255
end
247256

248257
describe Superenv do

0 commit comments

Comments
 (0)