From 75e76361ac9a00c70d42194562b5a79e4db344c7 Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Mon, 6 Jun 2022 19:13:42 +0100 Subject: [PATCH] Preliminary macOS 13 support --- Library/Homebrew/extend/os/mac/diagnostic.rb | 11 ++++- Library/Homebrew/os/mac/pkgconfig/13/expat.pc | 12 ++++++ .../Homebrew/os/mac/pkgconfig/13/libcurl.pc | 40 +++++++++++++++++++ .../Homebrew/os/mac/pkgconfig/13/libedit.pc | 12 ++++++ .../Homebrew/os/mac/pkgconfig/13/libexslt.pc | 13 ++++++ .../Homebrew/os/mac/pkgconfig/13/libffi.pc | 12 ++++++ .../os/mac/pkgconfig/13/libxml-2.0.pc | 14 +++++++ .../Homebrew/os/mac/pkgconfig/13/libxslt.pc | 13 ++++++ .../Homebrew/os/mac/pkgconfig/13/ncurses.pc | 14 +++++++ .../Homebrew/os/mac/pkgconfig/13/ncursesw.pc | 14 +++++++ .../Homebrew/os/mac/pkgconfig/13/sqlite3.pc | 12 ++++++ Library/Homebrew/os/mac/pkgconfig/13/uuid.pc | 14 +++++++ Library/Homebrew/os/mac/pkgconfig/13/zlib.pc | 14 +++++++ Library/Homebrew/os/mac/version.rb | 1 + Library/Homebrew/os/mac/xcode.rb | 5 +++ .../Homebrew/test/os/mac/pkgconfig_spec.rb | 2 +- .../testball_bottle-0.1.ventura.bottle.tar.gz | 1 + 17 files changed, 201 insertions(+), 3 deletions(-) create mode 100644 Library/Homebrew/os/mac/pkgconfig/13/expat.pc create mode 100644 Library/Homebrew/os/mac/pkgconfig/13/libcurl.pc create mode 100644 Library/Homebrew/os/mac/pkgconfig/13/libedit.pc create mode 100644 Library/Homebrew/os/mac/pkgconfig/13/libexslt.pc create mode 100644 Library/Homebrew/os/mac/pkgconfig/13/libffi.pc create mode 100644 Library/Homebrew/os/mac/pkgconfig/13/libxml-2.0.pc create mode 100644 Library/Homebrew/os/mac/pkgconfig/13/libxslt.pc create mode 100644 Library/Homebrew/os/mac/pkgconfig/13/ncurses.pc create mode 100644 Library/Homebrew/os/mac/pkgconfig/13/ncursesw.pc create mode 100644 Library/Homebrew/os/mac/pkgconfig/13/sqlite3.pc create mode 100644 Library/Homebrew/os/mac/pkgconfig/13/uuid.pc create mode 100644 Library/Homebrew/os/mac/pkgconfig/13/zlib.pc create mode 120000 Library/Homebrew/test/support/fixtures/bottles/testball_bottle-0.1.ventura.bottle.tar.gz diff --git a/Library/Homebrew/extend/os/mac/diagnostic.rb b/Library/Homebrew/extend/os/mac/diagnostic.rb index c7435aeec5..0e733677e5 100644 --- a/Library/Homebrew/extend/os/mac/diagnostic.rb +++ b/Library/Homebrew/extend/os/mac/diagnostic.rb @@ -205,12 +205,19 @@ module Homebrew end def check_ruby_version - return if RUBY_VERSION == HOMEBREW_REQUIRED_RUBY_VERSION + # TODO: update portable-ruby to 2.6.9 when Ventura reaches RC + required_version = if MacOS.version >= :ventura && + ENV["HOMEBREW_RUBY_PATH"].to_s.exclude?("/vendor/portable-ruby/") + "2.6.9" + else + HOMEBREW_REQUIRED_RUBY_VERSION + end + return if RUBY_VERSION == required_version return if Homebrew::EnvConfig.developer? && OS::Mac.version.prerelease? <<~EOS Ruby version #{RUBY_VERSION} is unsupported on macOS #{MacOS.version}. Homebrew - is developed and tested on Ruby #{HOMEBREW_REQUIRED_RUBY_VERSION}, and may not work correctly + is developed and tested on Ruby #{required_version}, and may not work correctly on other Rubies. Patches are accepted as long as they don't cause breakage on supported Rubies. EOS diff --git a/Library/Homebrew/os/mac/pkgconfig/13/expat.pc b/Library/Homebrew/os/mac/pkgconfig/13/expat.pc new file mode 100644 index 0000000000..a22716c643 --- /dev/null +++ b/Library/Homebrew/os/mac/pkgconfig/13/expat.pc @@ -0,0 +1,12 @@ +homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk +prefix=${homebrew_sdkroot}/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: expat +Version: 2.4.1 +Description: expat XML parser +URL: http://www.libexpat.org +Libs: -L${libdir} -lexpat +Cflags: diff --git a/Library/Homebrew/os/mac/pkgconfig/13/libcurl.pc b/Library/Homebrew/os/mac/pkgconfig/13/libcurl.pc new file mode 100644 index 0000000000..dbf9f0f27b --- /dev/null +++ b/Library/Homebrew/os/mac/pkgconfig/13/libcurl.pc @@ -0,0 +1,40 @@ +#*************************************************************************** +# _ _ ____ _ +# Project ___| | | | _ \| | +# / __| | | | |_) | | +# | (__| |_| | _ <| |___ +# \___|\___/|_| \_\_____| +# +# Copyright (C) 2001 - 2020, Daniel Stenberg, , et al. +# +# This software is licensed as described in the file COPYING, which +# you should have received as part of this distribution. The terms +# are also available at https://curl.se/docs/copyright.html. +# +# You may opt to use, copy, modify, merge, publish, distribute and/or sell +# copies of the Software, and permit persons to whom the Software is +# furnished to do so, under the terms of the COPYING file. +# +# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY +# KIND, either express or implied. +# +########################################################################### + +# This should most probably benefit from getting a "Requires:" field added +# dynamically by configure. +# +homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk +prefix=${homebrew_sdkroot}/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include +supported_protocols="DICT FILE FTP FTPS GOPHER GOPHERS HTTP HTTPS IMAP IMAPS LDAP LDAPS MQTT POP3 POP3S RTSP SMB SMBS SMTP SMTPS TELNET TFTP" +supported_features="alt-svc AsynchDNS GSS-API HSTS HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz MultiSSL NTLM NTLM_WB SPNEGO SSL UnixSockets" + +Name: libcurl +URL: https://curl.se/ +Description: Library to transfer files with ftp, http, etc. +Version: 7.79.1 +Libs: -L${libdir} -lcurl +Libs.private: -lldap -lz +Cflags: diff --git a/Library/Homebrew/os/mac/pkgconfig/13/libedit.pc b/Library/Homebrew/os/mac/pkgconfig/13/libedit.pc new file mode 100644 index 0000000000..dcb4f71181 --- /dev/null +++ b/Library/Homebrew/os/mac/pkgconfig/13/libedit.pc @@ -0,0 +1,12 @@ +homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk +prefix=${homebrew_sdkroot}/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: libedit +Description: command line editor library provides generic line editing, history, and tokenization functions. +Version: 3.0 +Requires: +Libs: -L${libdir} -ledit +Cflags: -I${includedir}/editline diff --git a/Library/Homebrew/os/mac/pkgconfig/13/libexslt.pc b/Library/Homebrew/os/mac/pkgconfig/13/libexslt.pc new file mode 100644 index 0000000000..9c3b1be35f --- /dev/null +++ b/Library/Homebrew/os/mac/pkgconfig/13/libexslt.pc @@ -0,0 +1,13 @@ +homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk +prefix=${homebrew_sdkroot}/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + + +Name: libexslt +Version: 0.8.20 +Description: EXSLT Extension library +Requires: libxml-2.0 +Libs: -L${libdir} -lexslt -lxslt -lxml2 -lz -lpthread -licucore -lm +Cflags: diff --git a/Library/Homebrew/os/mac/pkgconfig/13/libffi.pc b/Library/Homebrew/os/mac/pkgconfig/13/libffi.pc new file mode 100644 index 0000000000..c5a59e50c3 --- /dev/null +++ b/Library/Homebrew/os/mac/pkgconfig/13/libffi.pc @@ -0,0 +1,12 @@ +homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk +prefix=${homebrew_sdkroot}/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +toolexeclibdir=${libdir} +includedir=${prefix}/include/ffi + +Name: libffi +Description: Library supporting Foreign Function Interfaces +Version: 3.4-rc1 +Libs: -L${toolexeclibdir} -lffi +Cflags: -I${includedir} diff --git a/Library/Homebrew/os/mac/pkgconfig/13/libxml-2.0.pc b/Library/Homebrew/os/mac/pkgconfig/13/libxml-2.0.pc new file mode 100644 index 0000000000..83ca5edbd7 --- /dev/null +++ b/Library/Homebrew/os/mac/pkgconfig/13/libxml-2.0.pc @@ -0,0 +1,14 @@ +homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk +prefix=${homebrew_sdkroot}/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include +modules=1 + +Name: libXML +Version: 2.9.13 +Description: libXML library version2. +Requires: +Libs: -L${libdir} -lxml2 +Libs.private: -lz -lpthread -licucore -lm +Cflags: diff --git a/Library/Homebrew/os/mac/pkgconfig/13/libxslt.pc b/Library/Homebrew/os/mac/pkgconfig/13/libxslt.pc new file mode 100644 index 0000000000..7c7c57f42f --- /dev/null +++ b/Library/Homebrew/os/mac/pkgconfig/13/libxslt.pc @@ -0,0 +1,13 @@ +homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk +prefix=${homebrew_sdkroot}/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + + +Name: libxslt +Version: 1.1.35 +Description: XSLT library version 2. +Requires: libxml-2.0 +Libs: -L${libdir} -lxslt -lxml2 -lz -lpthread -licucore -lm +Cflags: diff --git a/Library/Homebrew/os/mac/pkgconfig/13/ncurses.pc b/Library/Homebrew/os/mac/pkgconfig/13/ncurses.pc new file mode 100644 index 0000000000..ba5363344b --- /dev/null +++ b/Library/Homebrew/os/mac/pkgconfig/13/ncurses.pc @@ -0,0 +1,14 @@ +homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk +prefix=${homebrew_sdkroot}/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include +major_version=5 +version=5.7.20081102 + +Name: ncurses +Description: ncurses 5.7 library +Version: ${version} +Requires: +Libs: -L${libdir} -lncurses +Cflags: diff --git a/Library/Homebrew/os/mac/pkgconfig/13/ncursesw.pc b/Library/Homebrew/os/mac/pkgconfig/13/ncursesw.pc new file mode 100644 index 0000000000..9ffc4bdad2 --- /dev/null +++ b/Library/Homebrew/os/mac/pkgconfig/13/ncursesw.pc @@ -0,0 +1,14 @@ +homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk +prefix=${homebrew_sdkroot}/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include +major_version=5 +version=5.7.20081102 + +Name: ncursesw +Description: ncurses 5.7 library +Version: ${version} +Requires: +Libs: -L${libdir} -lncurses +Cflags: diff --git a/Library/Homebrew/os/mac/pkgconfig/13/sqlite3.pc b/Library/Homebrew/os/mac/pkgconfig/13/sqlite3.pc new file mode 100644 index 0000000000..dac932dad7 --- /dev/null +++ b/Library/Homebrew/os/mac/pkgconfig/13/sqlite3.pc @@ -0,0 +1,12 @@ +homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk +prefix=${homebrew_sdkroot}/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: SQLite +Description: SQL database engine +Version: 3.37.0 +Libs: -L${libdir} -lsqlite3 +Libs.private: +Cflags: diff --git a/Library/Homebrew/os/mac/pkgconfig/13/uuid.pc b/Library/Homebrew/os/mac/pkgconfig/13/uuid.pc new file mode 100644 index 0000000000..9d3b9e3829 --- /dev/null +++ b/Library/Homebrew/os/mac/pkgconfig/13/uuid.pc @@ -0,0 +1,14 @@ +homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk +prefix=${homebrew_sdkroot}/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +sharedlibdir=${libdir} +includedir=${prefix}/include/uuid + +Name: uuid +Description: Universally unique id library +Version: 1.0 + +Requires: +Libs: +Cflags: -I${includedir} diff --git a/Library/Homebrew/os/mac/pkgconfig/13/zlib.pc b/Library/Homebrew/os/mac/pkgconfig/13/zlib.pc new file mode 100644 index 0000000000..3fbfd699f7 --- /dev/null +++ b/Library/Homebrew/os/mac/pkgconfig/13/zlib.pc @@ -0,0 +1,14 @@ +homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX13.sdk +prefix=${homebrew_sdkroot}/usr +exec_prefix=/usr +libdir=${exec_prefix}/lib +sharedlibdir=${libdir} +includedir=${prefix}/include + +Name: zlib +Description: zlib compression library +Version: 1.2.11 + +Requires: +Libs: -L${libdir} -L${sharedlibdir} -lz +Cflags: diff --git a/Library/Homebrew/os/mac/version.rb b/Library/Homebrew/os/mac/version.rb index 4eda2de6ed..130d1c4f63 100644 --- a/Library/Homebrew/os/mac/version.rb +++ b/Library/Homebrew/os/mac/version.rb @@ -16,6 +16,7 @@ module OS # TODO: when removing symbols here, ensure that they are added to # DEPRECATED_MACOS_VERSIONS in MacOSRequirement. SYMBOLS = { + ventura: "13", monterey: "12", big_sur: "11", catalina: "10.15", diff --git a/Library/Homebrew/os/mac/xcode.rb b/Library/Homebrew/os/mac/xcode.rb index 8915486428..6a22216d88 100755 --- a/Library/Homebrew/os/mac/xcode.rb +++ b/Library/Homebrew/os/mac/xcode.rb @@ -23,6 +23,7 @@ module OS def latest_version(macos: MacOS.version) latest_stable = "13.4" case macos + when "13" then "14.0" when "12" then latest_stable when "11" then "13.2.1" when "10.15" then "12.4" @@ -45,6 +46,7 @@ module OS sig { returns(String) } def minimum_version case MacOS.version + when "13" then "14.0" when "12" then "13.1" when "11" then "12.2" when "10.15" then "11.0" @@ -243,6 +245,7 @@ module OS when "12.0.0" then "12.4" when "12.0.5" then "12.5.1" when "13.0.0" then "13.2.1" + when "14.0.0" then "14.0" else "13.4" end end @@ -340,6 +343,7 @@ module OS sig { returns(String) } def latest_clang_version case MacOS.version + when "13" then "1400.0.17.3.1" when "12" then "1316.0.21.2.5" when "11" then "1300.0.29.30" when "10.15" then "1200.0.32.29" @@ -356,6 +360,7 @@ module OS sig { returns(String) } def minimum_version case MacOS.version + when "13" then "14.0.0" when "12" then "13.0.0" when "11" then "12.5.0" when "10.15" then "11.0.0" diff --git a/Library/Homebrew/test/os/mac/pkgconfig_spec.rb b/Library/Homebrew/test/os/mac/pkgconfig_spec.rb index 6b76ff1430..4539b60916 100644 --- a/Library/Homebrew/test/os/mac/pkgconfig_spec.rb +++ b/Library/Homebrew/test/os/mac/pkgconfig_spec.rb @@ -68,7 +68,7 @@ describe "pkg-config" do it "returns the correct version for libffi" do version = File.foreach("#{sdk}/usr/include/ffi/ffi.h") .lazy - .grep(/^\s*libffi (\S+)\s+- Copyright /) { Regexp.last_match(1) } + .grep(/^\s*libffi (\S+)\s+(?:- Copyright |$)/) { Regexp.last_match(1) } .first skip "Cannot detect system libffi version." if version == "PyOBJC" diff --git a/Library/Homebrew/test/support/fixtures/bottles/testball_bottle-0.1.ventura.bottle.tar.gz b/Library/Homebrew/test/support/fixtures/bottles/testball_bottle-0.1.ventura.bottle.tar.gz new file mode 120000 index 0000000000..3e989830ba --- /dev/null +++ b/Library/Homebrew/test/support/fixtures/bottles/testball_bottle-0.1.ventura.bottle.tar.gz @@ -0,0 +1 @@ +testball_bottle-0.1.yosemite.bottle.tar.gz \ No newline at end of file