Open wlyc1 opened 1 month ago
fetch 包失败了,没找到 brew 安装的包,有可能库文件没找到,可以调下这里 https://github.com/xmake-io/xmake/blob/dev/xmake/modules/package/manager/brew/find_package.lua
Bot detected the issue body's language is not English, translate it automatically.
The fetch package failed, you can adjust it here https://github.com/xmake-io/xmake/blob/dev/xmake/modules/package/manager/brew/find_package.lua
Xmake Version
v2.9.5+20240914
Operating System Version and Architecture
Macos Sequoia 15.0.1
Describe Bug
In zsh Used xrepo install brew::mysql-client ,report Fetch Fail
Expected Behavior
Install successfully
Project Configuration
set_xmakever("2.8.2")
-- project set_project("hikyuu")
add_rules("mode.debug", "mode.release")
-- version set_version("2.2.1", {build = "%Y%m%d%H%M"})
set_warnings("all")
-- set language: C99, c++ standard set_languages("cxx17", "c99")
option("mysql") set_default(true) set_showmenu(true) set_category("hikyuu") set_description("Enable mysql kdata engine.") if is_plat("macosx") then if os.exists("/usr/local/opt/mysql-client/lib") then add_includedirs("/usr/local/opt/mysql-client/include/mysql") add_includedirs("/usr/local/opt/mysql-client/include") add_linkdirs("/usr/local/opt/mysql-client/lib") add_rpathdirs("/usr/local/opt/mysql-client/lib") end if os.exists("/usr/local/mysql/lib") then add_linkdirs("/usr/local/mysql/lib") add_rpathdirs("/usr/local/mysql/lib") end if not os.exists("/usr/local/include/mysql") then if os.exists("/usr/local/mysql/include") then os.run("ln -s /usr/local/mysql/include /usr/local/include/mysql") else print("Not Found MySQL include dir!") end end add_links("mysqlclient") elseif is_plat("windows") then add_defines("NOMINMAX") end
option_end()
option("hdf5", {description = "Enable hdf5 kdata engine.", default = true}) option("sqlite", {description = "Enable sqlite kdata engine.", default = true}) option("tdx", {description = "Enable tdx kdata engine.", default = true}) option("sql_trace", {description = "trace print sql", default = false})
-- 注意:stacktrace 在 windows 下会严重影响性能 option("stacktrace", {description = "Enable check/assert with stack trace info.", default = false}) option("spend_time", {description = "Enable spend time.", default = true}) option("feedback", {description = "Enable send feedback.", default = true}) option("low_precision", {description = "Enable low precision.", default = false}) option("log_level", {description = "set log level.", default = 2, values = {1, 2, 3, 4, 5, 6}}) option("async_log", {description = "Use async log.", default = false}) option("leak_check", {description = "Enable leak check for test", default = false})
-- 使用 serialize 时,建议使用静态库方式编译,boost serializasion 对 dll 的方式支持不好 -- windows下如果使用 serialize 且希望使用动态库,需要设置 runtimes 参数为 "MD" -- "MT" 方式下,serialize 会挂 option("serialize", {description = "Enable support serialize object and pickle in python", default = true})
-- 和 hku_utils 编译选项保持一致,以便互相替换 option("mo", {description = "International language support", default = false}) -- option("http_client", {description = "use http client", default = true}) option("http_client_ssl", {description = "enable https support for http client", default = false}) option("http_client_zip", {description = "enable http support gzip", default = false}) -- option("node", {description = "enable node reqrep server/client", default = true})
if get_config("leak_check") then -- 需要 export LD_PRELOAD=libasan.so set_policy("build.sanitizer.address", true) set_policy("build.sanitizer.leak", true) -- set_policy("build.sanitizer.memory", true) -- set_policy("build.sanitizer.thread", true) end
-- SPDLOG_ACTIVE_LEVEL 需要单独加 local log_level = get_config("log_level") if log_level == nil then log_level = 2 end add_defines("SPDLOG_ACTIVE_LEVEL=" .. log_level)
if is_mode("debug") then set_configvar("HKU_DEBUG_MODE", 1) else set_configvar("HKU_DEBUG_MODE", 0) end set_configvar("CHECK_ACCESS_BOUND", 1) set_configvar("SUPPORT_SERIALIZATION", get_config("serialize") and 1 or 0) set_configvar("SUPPORT_TEXT_ARCHIVE", 0) set_configvar("SUPPORT_XML_ARCHIVE", 1) set_configvar("SUPPORT_BINARY_ARCHIVE", 1) set_configvar("ENABLE_MSVC_LEAK_DETECT", 0) set_configvar("HKU_ENABLE_LEAK_DETECT", get_config("leak_check") and 1 or 0) set_configvar("HKU_ENABLE_SEND_FEEDBACK", get_config("feedback") and 1 or 0)
set_configvar("HKU_ENABLE_HDF5_KDATA", get_config("hdf5") and 1 or 0) set_configvar("HKU_ENABLE_MYSQL", get_config("mysql") and 1 or 0) set_configvar("HKU_ENABLE_MYSQL_KDATA", get_config("mysql") and 1 or 0) set_configvar("HKU_ENABLE_SQLITE", (get_config("sqlite") or get_config("hdf5")) and 1 or 0) set_configvar("HKU_ENABLE_SQLITE_KDATA", get_config("sqlite") and 1 or 0) set_configvar("HKU_ENABLE_TDX_KDATA", get_config("tdx") and 1 or 0)
set_configvar("HKU_USE_LOW_PRECISION", get_config("low_precision") and 1 or 0)
set_configvar("HKU_SUPPORT_DATETIME", 1) set_configvar("HKU_ENABLE_SQLCIPHER", 0) set_configvar("HKU_SQL_TRACE", get_config("sql_trace")) set_configvar("HKU_ENABLE_INI_PARSER", 1) set_configvar("HKU_ENABLE_STACK_TRACE", get_config("stacktrace") and 1 or 0) set_configvar("HKU_CLOSE_SPEND_TIME", get_config("spend_time") and 0 or 1) set_configvar("HKU_USE_SPDLOG_ASYNC_LOGGER", get_config("async_log") and 1 or 0) set_configvar("HKU_LOG_ACTIVE_LEVEL", get_config("log_level")) set_configvar("HKU_ENABLE_MO", get_config("mo") and 1 or 0) set_configvar("HKU_ENABLE_HTTP_CLIENT", 1) set_configvar("HKU_ENABLE_HTTP_CLIENT_SSL", get_config("http_client_ssl") and 1 or 0) set_configvar("HKU_ENABLE_HTTP_CLIENT_ZIP", get_config("http_client_zip") and 1 or 0) set_configvar("HKU_ENABLE_NODE", 1)
local boost_version = "1.86.0" local hdf5_version = "1.12.2" local fmt_version = "11.0.2" local flatbuffers_version = "24.3.25" local nng_version = "1.8.0" local sqlite_version = "3.46.0+100" local mysql_version = "8.0.31" if is_plat("windows") or (is_plat("linux", "cross") and is_arch("aarch64", "arm64.*")) then mysql_version = "8.0.21" end
add_repositories("hikyuu-repo https://github.com/fasiondog/hikyuu_extern_libs.git") -- add_repositories("hikyuu-repo https://gitee.com/fasiondog/hikyuu_extern_libs.git") if is_plat("windows") then if get_config("hdf5") then if is_mode("release") then add_requires("hdf5 " .. hdf5_version) else add_requires("hdf5_d " .. hdf5_version) end end if get_config("mysql") then add_requires("mysql " .. mysql_version) end
elseif is_plat("linux", "cross") then if get_config("hdf5") then add_requires("hdf5 " .. hdf5_version, { system = false }) end if get_config("mysql") then add_requires("mysql " .. mysql_version, { system = false }) end
elseif is_plat("macosx") then if get_config("hdf5") then add_requires("hdf5", {alias = "hdf5"}) -- add_requires("brew::hdf5", {alias = "hdf5"}) end if get_config("mysql") then add_requires("mysql-client", {alias = "mysql"}) -- add_requires("brew::mysql-client", {alias = "mysql"}) end end
add_requires("boost " .. boost_version, { debug = is_mode("debug"), configs = { shared = is_plat("windows"), runtimes = get_config("runtimes"), multi = true, date_time = true, filesystem = false, serialization = true, system = false, python = false, }, })
add_requires("fmt", {configs = {header_only = true}}) add_requires("spdlog", {configs = {header_only = true, fmt_external = true}}) add_requireconfs("spdlog.fmt", {override = true, configs = {header_only = true}}) add_requires("sqlite3 " .. sqlite_version, {configs = {shared = true, safe_mode="2", cxflags = "-fPIC"}}) add_requires("flatbuffers v" .. flatbuffers_version, {system = false, configs= {runtimes = get_config("runtimes")}}) add_requires("nng " .. nng_version, {configs = {NNG_ENABLE_TLS = has_config("http_client_ssl"), cxflags = "-fPIC"}}) add_requires("nlohmann_json")
if has_config("http_client_zip") then add_requires("gzip-hpp") end
add_defines("SPDLOG_DISABLE_DEFAULT_LOGGER") -- 禁用 spdlog 默认ogger
set_objectdir("$(buildir)/$(mode)/$(plat)/$(arch)/.objs") set_targetdir("$(buildir)/$(mode)/$(plat)/$(arch)/lib")
-- on windows dll, must use runtimes MD if is_plat("windows") and get_config("kind") == "shared" then set_config("runtimes", "MD") set_runtimes("MD") end
-- is release now if is_mode("release") then if is_plat("windows") then -- Unix-like systems hidden symbols will cause the link dynamic libraries to failed! set_symbols("hidden") end end
-- for the windows platform (msvc) if is_plat("windows") then -- add some defines only for windows add_defines("NOCRYPT", "NOGDI") add_cxflags("-EHsc", "/Zc:__cplusplus", "/utf-8") add_cxflags("-wd4819") -- template dll export warning add_defines("WIN32_LEAN_AND_MEAN") if is_mode("debug") then add_cxflags("-Gs", "-RTC1", "/bigobj") end end
if is_plat("linux", "cross", "macosx") then -- disable some compiler errors add_cxflags("-Wno-error=deprecated-declarations", "-fno-strict-aliasing") add_cxflags("-ftemplate-depth=1023", "-pthread") add_shflags("-pthread") add_ldflags("-pthread") end
-- if not is_plat("cross") and (os.host() == "linux" and is_arch("x86_64", "x64")) then -- -- fedora或者ubuntu,并且不是交叉编译 -- add_vectorexts("sse", "sse2", "ssse3", "avx", "avx2") -- -- add_defines("HKU_ENABLE_SSE2", "HKU_ENABLE_SSE3", "HKU_ENABLE_SSE41", "HKU_ENABLE_AVX", "HKU_ENABLE_AVX2") -- end
includes("./copy_dependents.lua") includes("./hikyuu_cpp/hikyuu") includes("./hikyuu_pywrap") includes("./hikyuu_cpp/unit_test") includes("./hikyuu_cpp/demo")
Additional Information and Error Logs
(base) user@ ~ % xrepo install --verbose --diagnosis brew::mysql-client /opt/homebrew/Cellar/xmake/2.9.5/bin/xmake f -c --require=n -vD checking for platform ... macosx checking for architecture ... arm64 checking for Xcode directory ... /Applications/Xcode.app checking for Codesign Identity of Xcode ... no checking for SDK version of Xcode for macosx (arm64) ... 15.0 checking for Minimal target version of Xcode for macosx (arm64) ... 15.0 checkinfo: cannot runv(zig version), No such file or directory checking for zig ... no checkinfo: cannot runv(zig version), No such file or directory checking for zig ... no checkinfo: cannot runv(nim --version), No such file or directory checking for nim ... no checkinfo: cannot runv(nim --version), No such file or directory checking for nim ... no configure { kind = static theme = default host = macosx network = public plat = macosx ccache = true ndk_stdcxx = true proxy_pac = pac.lua xcode = /Applications/Xcode.app arch = arm64 buildir = build proxy = socks5://127.0.0.1:7890 mode = release clean = true } /opt/homebrew/Cellar/xmake/2.9.5/bin/xmake require -v -D -j 10 --extra={system=false} brew::mysql-client checking for unzip ... /usr/bin/unzip checking for git ... /usr/bin/git checking for gzip ... /usr/bin/gzip checking for tar ... /usr/bin/tar finding mysql-client from brew .. checking for brew ... /opt/homebrew/bin/brew finding mysql-client from system .. checking for /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang ... ok checking for the c compiler (cc) ... clang checking for /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang ... ok checking for flags (-fPIC) ... ok
checking for brew::mysql-client ... no note: install or modify (m) these packages (pass -y to skip confirm)? in brew: -> brew::mysql-client latest please input: y (y/n/m) y installing mysql-client from brew .. /opt/homebrew/bin/brew install mysql-client --verbose ==> Downloading https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api/formula.jws.json % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 ==> Downloading https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api/cask.jws.json % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 Warning: mysql-client 9.0.1 is already installed and up-to-date. To reinstall 9.0.1, run: brew reinstall mysql-client finding mysql-client from brew .. finding mysql-client from system ..
checking for brew::mysql-client ... no
error: .../modules/private/action/require/impl/actions/install.lua:418: fetch brew::mysql-client-latest failed! stack traceback: [C]: in function 'error' [@programdir/core/base/os.lua:1004]: in function 'raiselevel' [@programdir/core/sandbox/modules/utils.lua:143]: in function 'assert' [.../modules/private/action/require/impl/actions/install.lua:418]:
=> install brew::mysql-client latest .. failed
.../modules/private/action/require/impl/actions/install.lua:418: fetch brew::mysql-client-latest failed! stack traceback: [C]: in function 'error' [@programdir/core/base/os.lua:1004]: in function 'raiselevel' [@programdir/core/sandbox/modules/utils.lua:143]: in function 'assert' [.../modules/private/action/require/impl/actions/install.lua:418]: if you want to get more verbose errors, please see: -> /private/var/folders/y4/y41yqrls3v59jymq49m8pwmh0000gn/T/.xmake501/241024/xrepo/working/build/.packages/b/brew_mysql-client/latest/cache/installdir.failed/logs/install.txt error: @programdir/core/main.lua:329: @programdir/modules/async/runjobs.lua:325: .../modules/private/action/require/impl/actions/install.lua:494: install failed! stack traceback: [C]: in function 'error' [@programdir/core/base/os.lua:1004]: [.../modules/private/action/require/impl/actions/install.lua:494]: in function 'catch' [@programdir/core/sandbox/modules/try.lua:123]: in function 'try' [.../modules/private/action/require/impl/actions/install.lua:361]: [...modules/private/action/require/impl/install_packages.lua:496]: in function 'jobfunc' [@programdir/modules/async/runjobs.lua:241]:
stack traceback: [C]: in function 'error' @programdir/core/base/os.lua:1004: in function 'os.raiselevel' (...tail calls...) @programdir/core/main.lua:329: in upvalue 'cotask' @programdir/core/base/scheduler.lua:406: in function <@programdir/core/base/scheduler.lua:399> error: @programdir/core/main.lua:329: @programdir/core/sandbox/modules/os.lua:378: execv(/opt/homebrew/Cellar/xmake/2.9.5/bin/xmake require -v -D -j 10 --extra={system=false} brew::mysql-client) failed(255) stack traceback: [C]: in function 'error' [@programdir/core/base/os.lua:1004]: [@programdir/core/sandbox/modules/os.lua:378]: [@programdir/modules/private/xrepo/action/install.lua:300]: in function '_install_packages' [@programdir/modules/private/xrepo/action/install.lua:307]: [@programdir/modules/private/xrepo/main.lua:196]: [@programdir/plugins/lua/main.lua:124]: [C]: in function 'xpcall' [@programdir/core/base/utils.lua:241]: [@programdir/core/base/task.lua:491]: in function 'run' [@programdir/core/main.lua:327]: in function 'cotask' [@programdir/core/base/scheduler.lua:406]:
stack traceback: [C]: in function 'error' @programdir/core/base/os.lua:1004: in function 'base/os.raiselevel' (...tail calls...) @programdir/core/main.lua:329: in upvalue 'cotask' @programdir/core/base/scheduler.lua:406: in function <@programdir/core/base/scheduler.lua:399>