From 56e93086062a8f48a2e50922e7dffd65cdb12dac Mon Sep 17 00:00:00 2001 From: star9029 Date: Fri, 1 Sep 2023 19:27:31 +0800 Subject: [PATCH 01/13] openjdk: add package --- packages/o/openjdk/xmake.lua | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 packages/o/openjdk/xmake.lua diff --git a/packages/o/openjdk/xmake.lua b/packages/o/openjdk/xmake.lua new file mode 100644 index 00000000000..bc998aa8aec --- /dev/null +++ b/packages/o/openjdk/xmake.lua @@ -0,0 +1,52 @@ +package("openjdk") + set_homepage("https://jdk.java.net") + set_description("Java Development Kit builds, from Oracle") + set_license("GPL-2.0") + + if is_host("windows", "mingw") then + add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_windows-x64_bin.zip") + add_versions("20.0.2", "7e5870fd2e19b87cbd1981c4ff7203897384c2eb104977f40ce4951b40ab433e") + elseif is_host("linux") then + if is_host("x86_64") then + add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_linux-x64_bin.tar.gz.sha256") + add_versions("20.0.2", "beaf61959c2953310595e1162b0c626aef33d58628771033ff2936609661956c") + elseif is_host("arm64") then + add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_linux-aarch64_bin.tar.gz") + add_versions("20.0.2", "3238c93267c663dbca00f5d5b0e3fbba40e1eea2b4281612f40542d208b6dd9a") + end + elseif is_host("macosx") then + if is_host("x86_64") then + add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_macos-x64_bin.tar.gz") + add_versions("20.0.2", "c65ba92b73d8076e2a10029a0674d40ce45c3e0183a8063dd51281e92c9f43fc") + elseif is_host("arm64") then + add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_macos-x64_bin.tar.gz") + add_versions("20.0.2", "c65ba92b73d8076e2a10029a0674d40ce45c3e0183a8063dd51281e92c9f43fc") + end + end + + add_configs("shared", {description = "Download shared binaries.", default = true, type = "boolean", readonly = true}) + + on_fetch(function (package, opt) + if opt.system then + local sdkdir = os.getenv("JAVA_HOME") + if os.isdir(sdkdir) then + local result = + { + includedirs = {path.join(sdkdir, "include")}, + linkdirs = path.join(sdkdir, "lib"), + links = {"jvm", "jawt"} + } + + if package:is_plat("windows") then + package:addenv("PATH", path.join(sdkdir, "bin")) + table.insert(result.includedirs, path.join(sdkdir, "include", "win32")) + end + return result + end + end + end) + + on_test(function (package) + os.vrun("java --version") + assert(package:has_cfuncs("JNI_CreateJavaVM", {includes = "jni.h"})) + end) From 7114943f6dae372fe41e622d81a0c146d8f2d653 Mon Sep 17 00:00:00 2001 From: star9029 Date: Fri, 1 Sep 2023 19:31:16 +0800 Subject: [PATCH 02/13] fix arch --- packages/o/openjdk/xmake.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/o/openjdk/xmake.lua b/packages/o/openjdk/xmake.lua index bc998aa8aec..15cba171992 100644 --- a/packages/o/openjdk/xmake.lua +++ b/packages/o/openjdk/xmake.lua @@ -7,18 +7,18 @@ package("openjdk") add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_windows-x64_bin.zip") add_versions("20.0.2", "7e5870fd2e19b87cbd1981c4ff7203897384c2eb104977f40ce4951b40ab433e") elseif is_host("linux") then - if is_host("x86_64") then + if is_arch("x86_64") then add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_linux-x64_bin.tar.gz.sha256") add_versions("20.0.2", "beaf61959c2953310595e1162b0c626aef33d58628771033ff2936609661956c") - elseif is_host("arm64") then + elseif is_arch("arm64") then add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_linux-aarch64_bin.tar.gz") add_versions("20.0.2", "3238c93267c663dbca00f5d5b0e3fbba40e1eea2b4281612f40542d208b6dd9a") end elseif is_host("macosx") then - if is_host("x86_64") then + if is_arch("x86_64") then add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_macos-x64_bin.tar.gz") add_versions("20.0.2", "c65ba92b73d8076e2a10029a0674d40ce45c3e0183a8063dd51281e92c9f43fc") - elseif is_host("arm64") then + elseif is_arch("arm64") then add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_macos-x64_bin.tar.gz") add_versions("20.0.2", "c65ba92b73d8076e2a10029a0674d40ce45c3e0183a8063dd51281e92c9f43fc") end From b42b2b556344b880569dc7345c86c3a0655902fa Mon Sep 17 00:00:00 2001 From: star9029 Date: Fri, 1 Sep 2023 19:53:44 +0800 Subject: [PATCH 03/13] add on_install --- packages/o/openjdk/xmake.lua | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/o/openjdk/xmake.lua b/packages/o/openjdk/xmake.lua index 15cba171992..223784da312 100644 --- a/packages/o/openjdk/xmake.lua +++ b/packages/o/openjdk/xmake.lua @@ -37,7 +37,7 @@ package("openjdk") links = {"jvm", "jawt"} } - if package:is_plat("windows") then + if package:is_plat("windows", "mingw") then package:addenv("PATH", path.join(sdkdir, "bin")) table.insert(result.includedirs, path.join(sdkdir, "include", "win32")) end @@ -46,6 +46,16 @@ package("openjdk") end end) + on_install("windows|x64", "linux|x86_64", "linux|arm64", "macosx|x86_64", "macosx|arm64", "mingw|x86_64", function (package) + os.cp("bin", package:installdir()) + os.cp("include", package:installdir()) + os.cp("lib", package:installdir()) + if package:is_plat("windows", "mingw") then + package:addenv("PATH", "bin") + package:add("includedirs", "include", "include/win32") + end + end) + on_test(function (package) os.vrun("java --version") assert(package:has_cfuncs("JNI_CreateJavaVM", {includes = "jni.h"})) From 7899be4d723463502b55eb49041d3a7bff320168 Mon Sep 17 00:00:00 2001 From: star9029 Date: Sun, 22 Oct 2023 09:51:51 +0800 Subject: [PATCH 04/13] improve on_install --- packages/o/openjdk/xmake.lua | 38 ++++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/packages/o/openjdk/xmake.lua b/packages/o/openjdk/xmake.lua index 223784da312..90744f6ad67 100644 --- a/packages/o/openjdk/xmake.lua +++ b/packages/o/openjdk/xmake.lua @@ -20,24 +20,27 @@ package("openjdk") add_versions("20.0.2", "c65ba92b73d8076e2a10029a0674d40ce45c3e0183a8063dd51281e92c9f43fc") elseif is_arch("arm64") then add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_macos-x64_bin.tar.gz") - add_versions("20.0.2", "c65ba92b73d8076e2a10029a0674d40ce45c3e0183a8063dd51281e92c9f43fc") + add_versions("20.0.2", "2e6522bb574f76cd3f81156acd59115a014bf452bbe4107f0d31ff9b41b3da57") end end add_configs("shared", {description = "Download shared binaries.", default = true, type = "boolean", readonly = true}) + if is_plat("linux") then + add_extsources("pacman::jdk-openjdk") + elseif is_plat("macosx") then + add_extsources("brew::openjdk") + end + on_fetch(function (package, opt) if opt.system then local sdkdir = os.getenv("JAVA_HOME") if os.isdir(sdkdir) then - local result = - { - includedirs = {path.join(sdkdir, "include")}, - linkdirs = path.join(sdkdir, "lib"), - links = {"jvm", "jawt"} - } - + local result = {} if package:is_plat("windows", "mingw") then + result.includedirs = {path.join(sdkdir, "include")}, + result.linkdirs = path.join(sdkdir, "lib"), + result.links = {"jvm", "jawt"} package:addenv("PATH", path.join(sdkdir, "bin")) table.insert(result.includedirs, path.join(sdkdir, "include", "win32")) end @@ -47,13 +50,24 @@ package("openjdk") end) on_install("windows|x64", "linux|x86_64", "linux|arm64", "macosx|x86_64", "macosx|arm64", "mingw|x86_64", function (package) + local plat + if package:is_plat("windows", "mingw") then + plat = "win32" + package:addenv("PATH", package:installdir("bin")) + elseif package:is_plat("linux") then + plat = "linux" + elseif package:is_plat("macosx") then + plat = "darwin" + os.cd("Contents/Home") + end + os.cp("bin", package:installdir()) os.cp("include", package:installdir()) os.cp("lib", package:installdir()) - if package:is_plat("windows", "mingw") then - package:addenv("PATH", "bin") - package:add("includedirs", "include", "include/win32") - end + os.cp("jmods", package:installdir("lib")) + os.cp("conf", package:installdir()) + + package:add("includedirs", "include", path.join("include", plat)) end) on_test(function (package) From 5200d189f7c24b7495d39b3669ffa64541bf7d30 Mon Sep 17 00:00:00 2001 From: star9029 Date: Sun, 22 Oct 2023 10:16:41 +0800 Subject: [PATCH 05/13] fix syntax --- packages/o/openjdk/xmake.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/o/openjdk/xmake.lua b/packages/o/openjdk/xmake.lua index 90744f6ad67..9fc77e7b69d 100644 --- a/packages/o/openjdk/xmake.lua +++ b/packages/o/openjdk/xmake.lua @@ -38,8 +38,8 @@ package("openjdk") if os.isdir(sdkdir) then local result = {} if package:is_plat("windows", "mingw") then - result.includedirs = {path.join(sdkdir, "include")}, - result.linkdirs = path.join(sdkdir, "lib"), + result.includedirs = {path.join(sdkdir, "include")} + result.linkdirs = path.join(sdkdir, "lib") result.links = {"jvm", "jawt"} package:addenv("PATH", path.join(sdkdir, "bin")) table.insert(result.includedirs, path.join(sdkdir, "include", "win32")) From 2daeebadfa4dfd3355987697bed7b455be812fd4 Mon Sep 17 00:00:00 2001 From: star9029 Date: Sun, 22 Oct 2023 14:55:26 +0800 Subject: [PATCH 06/13] fix run --- packages/o/openjdk/xmake.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/o/openjdk/xmake.lua b/packages/o/openjdk/xmake.lua index 9fc77e7b69d..535e5592a71 100644 --- a/packages/o/openjdk/xmake.lua +++ b/packages/o/openjdk/xmake.lua @@ -8,7 +8,7 @@ package("openjdk") add_versions("20.0.2", "7e5870fd2e19b87cbd1981c4ff7203897384c2eb104977f40ce4951b40ab433e") elseif is_host("linux") then if is_arch("x86_64") then - add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_linux-x64_bin.tar.gz.sha256") + add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_linux-x64_bin.tar.gz") add_versions("20.0.2", "beaf61959c2953310595e1162b0c626aef33d58628771033ff2936609661956c") elseif is_arch("arm64") then add_urls("https://download.java.net/java/GA/jdk$(version)/6e380f22cbe7469fa75fb448bd903d8e/9/GPL/openjdk-$(version)_linux-aarch64_bin.tar.gz") @@ -71,6 +71,6 @@ package("openjdk") end) on_test(function (package) - os.vrun("java --version") + os.vrun("java -version") assert(package:has_cfuncs("JNI_CreateJavaVM", {includes = "jni.h"})) end) From aed12726e7b8576afca3bc22e48d2254919f53a1 Mon Sep 17 00:00:00 2001 From: star9029 Date: Sun, 22 Oct 2023 15:18:09 +0800 Subject: [PATCH 07/13] fix linkdirs --- packages/o/openjdk/xmake.lua | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/packages/o/openjdk/xmake.lua b/packages/o/openjdk/xmake.lua index 535e5592a71..1f736704677 100644 --- a/packages/o/openjdk/xmake.lua +++ b/packages/o/openjdk/xmake.lua @@ -54,11 +54,16 @@ package("openjdk") if package:is_plat("windows", "mingw") then plat = "win32" package:addenv("PATH", package:installdir("bin")) - elseif package:is_plat("linux") then - plat = "linux" - elseif package:is_plat("macosx") then - plat = "darwin" - os.cd("Contents/Home") + package:addenv("PATH", package:installdir("bin", "server")) + else + package:add("linkdirs", package:installdir("lib")) + package:add("linkdirs", package:installdir("lib", "server")) + if package:is_plat("linux") then + plat = "linux" + elseif package:is_plat("macosx") then + plat = "darwin" + os.cd("Contents/Home") + end end os.cp("bin", package:installdir()) From 13a3bbf17742dbbba1f0d6fbce81e593013cc49b Mon Sep 17 00:00:00 2001 From: star9029 Date: Sun, 22 Oct 2023 15:36:35 +0800 Subject: [PATCH 08/13] improve xmake.lua --- packages/o/openjdk/xmake.lua | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/packages/o/openjdk/xmake.lua b/packages/o/openjdk/xmake.lua index 1f736704677..8ddba086ad3 100644 --- a/packages/o/openjdk/xmake.lua +++ b/packages/o/openjdk/xmake.lua @@ -38,11 +38,10 @@ package("openjdk") if os.isdir(sdkdir) then local result = {} if package:is_plat("windows", "mingw") then - result.includedirs = {path.join(sdkdir, "include")} + result.includedirs = {path.join(sdkdir, "include"), path.join(sdkdir, "include", "win32")} result.linkdirs = path.join(sdkdir, "lib") result.links = {"jvm", "jawt"} - package:addenv("PATH", path.join(sdkdir, "bin")) - table.insert(result.includedirs, path.join(sdkdir, "include", "win32")) + package:addenv("PATH", path.join(sdkdir, "bin"), path.join(sdkdir, "bin", "server")) end return result end @@ -53,11 +52,9 @@ package("openjdk") local plat if package:is_plat("windows", "mingw") then plat = "win32" - package:addenv("PATH", package:installdir("bin")) - package:addenv("PATH", package:installdir("bin", "server")) + package:addenv("PATH", package:installdir("bin"), package:installdir("bin", "server")) else - package:add("linkdirs", package:installdir("lib")) - package:add("linkdirs", package:installdir("lib", "server")) + package:add("linkdirs", package:installdir("lib"), package:installdir("lib", "server")) if package:is_plat("linux") then plat = "linux" elseif package:is_plat("macosx") then From a2608801fe6358fd65849355647b8ad5488c45b9 Mon Sep 17 00:00:00 2001 From: star9029 Date: Sun, 22 Oct 2023 17:02:54 +0800 Subject: [PATCH 09/13] fix linkdirs --- packages/o/openjdk/xmake.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/o/openjdk/xmake.lua b/packages/o/openjdk/xmake.lua index 8ddba086ad3..aa1e0f864ad 100644 --- a/packages/o/openjdk/xmake.lua +++ b/packages/o/openjdk/xmake.lua @@ -52,9 +52,9 @@ package("openjdk") local plat if package:is_plat("windows", "mingw") then plat = "win32" - package:addenv("PATH", package:installdir("bin"), package:installdir("bin", "server")) + package:addenv("PATH", "bin/server") else - package:add("linkdirs", package:installdir("lib"), package:installdir("lib", "server")) + package:add("linkdirs", "lib", "lib/server") if package:is_plat("linux") then plat = "linux" elseif package:is_plat("macosx") then From ef00fc8b1cbcd15e066100a50af6a453d3308047 Mon Sep 17 00:00:00 2001 From: star9029 Date: Sun, 22 Oct 2023 18:59:59 +0800 Subject: [PATCH 10/13] fix run --- packages/o/openjdk/xmake.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/o/openjdk/xmake.lua b/packages/o/openjdk/xmake.lua index aa1e0f864ad..e2be0fa8009 100644 --- a/packages/o/openjdk/xmake.lua +++ b/packages/o/openjdk/xmake.lua @@ -70,6 +70,7 @@ package("openjdk") os.cp("conf", package:installdir()) package:add("includedirs", "include", path.join("include", plat)) + package:addenv("PATH", "bin") end) on_test(function (package) From 952d4079b945a874c4259f5932cfa71106086c8b Mon Sep 17 00:00:00 2001 From: star9029 Date: Mon, 23 Oct 2023 22:14:59 +0800 Subject: [PATCH 11/13] add deps --- packages/a/alsa-lib/xmake.lua | 26 ++++++++++++++++++++++++++ packages/o/openjdk/xmake.lua | 1 + 2 files changed, 27 insertions(+) create mode 100644 packages/a/alsa-lib/xmake.lua diff --git a/packages/a/alsa-lib/xmake.lua b/packages/a/alsa-lib/xmake.lua new file mode 100644 index 00000000000..2cf8e7a0682 --- /dev/null +++ b/packages/a/alsa-lib/xmake.lua @@ -0,0 +1,26 @@ +package("alsa-lib") + set_homepage("https://alsa-project.org/wiki/Main_Page") + set_description("The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI functionality to the Linux operating system.") + + set_urls("http://www.alsa-project.org/files/pub/lib/alsa-lib-$(version).tar.bz2") + + add_versions("1.2.10", "c86a45a846331b1b0aa6e6be100be2a7aef92efd405cf6bac7eef8174baa920e") + + on_install("linux", function (package) + local configs = {"--without-versioned"} + table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no")) + table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes")) + if package:is_debug() then + table.insert(configs, "--enable-debug") + end + import("package.tools.autoconf").install(package, configs) + end) + + on_test(function (package) + assert(package:check_csnippets({test = [[ + void test() { + snd_ctl_card_info_t *info; + snd_ctl_card_info_alloca(&info); + } + ]]}, {includes = {"alsa/asoundlib.h"}})) + end) diff --git a/packages/o/openjdk/xmake.lua b/packages/o/openjdk/xmake.lua index e2be0fa8009..fe68bc924c7 100644 --- a/packages/o/openjdk/xmake.lua +++ b/packages/o/openjdk/xmake.lua @@ -28,6 +28,7 @@ package("openjdk") if is_plat("linux") then add_extsources("pacman::jdk-openjdk") + add_deps("alsa-lib") elseif is_plat("macosx") then add_extsources("brew::openjdk") end From d7af2f0cc1bc4c52d4697fe6485e85072e3a234f Mon Sep 17 00:00:00 2001 From: star9029 Date: Mon, 23 Oct 2023 23:03:41 +0800 Subject: [PATCH 12/13] alsa-lib: add version 0.9.0rc4 --- packages/a/alsa-lib/xmake.lua | 3 ++- packages/o/openjdk/xmake.lua | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/a/alsa-lib/xmake.lua b/packages/a/alsa-lib/xmake.lua index 2cf8e7a0682..1eae5bdb162 100644 --- a/packages/a/alsa-lib/xmake.lua +++ b/packages/a/alsa-lib/xmake.lua @@ -5,8 +5,9 @@ package("alsa-lib") set_urls("http://www.alsa-project.org/files/pub/lib/alsa-lib-$(version).tar.bz2") add_versions("1.2.10", "c86a45a846331b1b0aa6e6be100be2a7aef92efd405cf6bac7eef8174baa920e") + add_versions("0.9.0rc4", "e00a6705ef139a950c02707d1b361b0b893c0aca44999376882532a2df06b2d4") - on_install("linux", function (package) + on_install(function (package) local configs = {"--without-versioned"} table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no")) table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes")) diff --git a/packages/o/openjdk/xmake.lua b/packages/o/openjdk/xmake.lua index fe68bc924c7..ca6385b2157 100644 --- a/packages/o/openjdk/xmake.lua +++ b/packages/o/openjdk/xmake.lua @@ -28,7 +28,6 @@ package("openjdk") if is_plat("linux") then add_extsources("pacman::jdk-openjdk") - add_deps("alsa-lib") elseif is_plat("macosx") then add_extsources("brew::openjdk") end @@ -49,6 +48,12 @@ package("openjdk") end end) + on_load("linux", function (package) + if package:version():eq("20.0.2") then + package:add("deps", "alsa-lib 0.9.0rc4") + end + end) + on_install("windows|x64", "linux|x86_64", "linux|arm64", "macosx|x86_64", "macosx|arm64", "mingw|x86_64", function (package) local plat if package:is_plat("windows", "mingw") then From cd52388f045999f1092b5b2d5c71ddaded92a18f Mon Sep 17 00:00:00 2001 From: star9029 Date: Mon, 23 Oct 2023 23:06:39 +0800 Subject: [PATCH 13/13] alsa-lib: fix plat --- packages/a/alsa-lib/xmake.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/a/alsa-lib/xmake.lua b/packages/a/alsa-lib/xmake.lua index 1eae5bdb162..e777588dce8 100644 --- a/packages/a/alsa-lib/xmake.lua +++ b/packages/a/alsa-lib/xmake.lua @@ -7,7 +7,7 @@ package("alsa-lib") add_versions("1.2.10", "c86a45a846331b1b0aa6e6be100be2a7aef92efd405cf6bac7eef8174baa920e") add_versions("0.9.0rc4", "e00a6705ef139a950c02707d1b361b0b893c0aca44999376882532a2df06b2d4") - on_install(function (package) + on_install("linux", function (package) local configs = {"--without-versioned"} table.insert(configs, "--enable-shared=" .. (package:config("shared") and "yes" or "no")) table.insert(configs, "--enable-static=" .. (package:config("shared") and "no" or "yes"))