From 3b1a05465c20619e48d01ff3edcb28937576b9b7 Mon Sep 17 00:00:00 2001 From: "github-action[bot]" Date: Mon, 25 Mar 2024 19:35:19 +0100 Subject: [PATCH] Update On Mon Mar 25 19:35:19 CET 2024 --- .github/update.log | 1 + clash-nyanpasu/backend/Cargo.lock | 6 +- clash-nyanpasu/manifest/version.json | 4 +- clash-nyanpasu/package.json | 4 +- clash-nyanpasu/pnpm-lock.yaml | 160 +++---- lede/package/lean/vsftpd-alt/Makefile | 5 +- lede/target/linux/generic/config-6.6 | 12 +- openwrt-packages/alist/Makefile | 8 +- openwrt-packages/luci-app-amlogic/Makefile | 2 +- .../root/usr/sbin/openwrt-update-rockchip | 10 + .../luci-theme-atmaterial_new/Makefile | 4 +- openwrt-packages/luci-theme-tomato/Makefile | 1 - .../.github/workflows/build-and-test.yml | 2 +- .../.github/workflows/build-msrv.yml | 2 +- .../workflows/build-nightly-release.yml | 2 +- .../.github/workflows/build-release.yml | 6 +- shadowsocks-rust/build/build-host-release | 4 + shadowsocks-rust/build/build-host-release.ps1 | 3 + sing-box/docs/changelog.md | 2 +- small/chinadns-ng/Makefile | 16 +- small/shadowsocksr-libev/Makefile | 18 +- small/trojan-plus/Makefile | 16 +- small/v2ray-geodata/Makefile | 4 +- suyu/.ci/scripts/android/build.sh | 3 +- suyu/.ci/scripts/android/upload.sh | 2 +- suyu/.ci/scripts/clang/docker.sh | 12 +- suyu/.ci/scripts/linux/docker.sh | 10 +- suyu/.forgejo/workflows/{ci.yml => reuse.yml} | 0 suyu/.forgejo/workflows/verify.yml | 28 +- suyu/.reuse/dep5 | 23 +- suyu/CMakeLists.txt | 7 +- suyu/CMakeModules/DownloadExternals.cmake | 8 +- suyu/LICENSES/CC-BY-NC-SA-4.0.txt | 438 ++++++++++++++++++ suyu/README.md | 2 + suyu/dist/readme/suyu__Logo-Pill.svg | 5 + .../settings/model/view/SettingsItem.kt | 4 + .../app/src/main/res/values/arrays.xml | 2 + .../app/src/main/res/values/strings.xml | 1 + suyu/src/android/gradlew | 65 +-- suyu/src/android/gradlew.bat | 19 +- .../am/service/library_applet_creator.cpp | 94 ++-- .../am/service/library_applet_creator.h | 2 + suyu/src/suyu/discord_impl.cpp | 3 +- suyu/src/suyu/main.cpp | 9 +- suyu/src/suyu_cmd/suyu.cpp | 65 ++- xray-core/go.mod | 2 +- xray-core/go.sum | 4 +- xray-core/infra/conf/xray.go | 4 + 48 files changed, 794 insertions(+), 310 deletions(-) rename suyu/.forgejo/workflows/{ci.yml => reuse.yml} (100%) create mode 100644 suyu/LICENSES/CC-BY-NC-SA-4.0.txt diff --git a/.github/update.log b/.github/update.log index 84f4df2bd2..396465bae8 100644 --- a/.github/update.log +++ b/.github/update.log @@ -597,3 +597,4 @@ Update On Fri Mar 22 14:55:10 CET 2024 Update On Fri Mar 22 19:26:11 CET 2024 Update On Sat Mar 23 19:27:23 CET 2024 Update On Sun Mar 24 19:31:12 CET 2024 +Update On Mon Mar 25 19:35:07 CET 2024 diff --git a/clash-nyanpasu/backend/Cargo.lock b/clash-nyanpasu/backend/Cargo.lock index 605b7301a3..fa8885a776 100644 --- a/clash-nyanpasu/backend/Cargo.lock +++ b/clash-nyanpasu/backend/Cargo.lock @@ -798,7 +798,7 @@ dependencies = [ "semver 1.0.22", "serde", "serde_json", - "serde_yaml 0.9.33", + "serde_yaml 0.9.34+deprecated", "simd-json", "single-instance", "sysinfo", @@ -5044,9 +5044,9 @@ dependencies = [ [[package]] name = "serde_yaml" -version = "0.9.33" +version = "0.9.34+deprecated" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0623d197252096520c6f2a5e1171ee436e5af99a5d7caa2891e55e61950e6d9" +checksum = "6a8b1a1a2ebf674015cc02edccce75287f1a0130d394307b36743c2f5d504b47" dependencies = [ "indexmap 2.2.6", "itoa 1.0.10", diff --git a/clash-nyanpasu/manifest/version.json b/clash-nyanpasu/manifest/version.json index 171f1818fc..bc12bfb465 100644 --- a/clash-nyanpasu/manifest/version.json +++ b/clash-nyanpasu/manifest/version.json @@ -2,7 +2,7 @@ "manifest_version": 1, "latest": { "mihomo": "v1.18.1", - "mihomo_alpha": "alpha-d56a439", + "mihomo_alpha": "alpha-288899a", "clash_rs": "v0.1.15", "clash_premium": "2023-09-05-gdcc8d87" }, @@ -36,5 +36,5 @@ "darwin-x64": "clash-darwin-amd64-n{}.gz" } }, - "updated_at": "2024-03-23T22:23:53.725Z" + "updated_at": "2024-03-24T22:24:49.935Z" } diff --git a/clash-nyanpasu/package.json b/clash-nyanpasu/package.json index dcaba6e2c2..057f90f6a4 100644 --- a/clash-nyanpasu/package.json +++ b/clash-nyanpasu/package.json @@ -103,7 +103,7 @@ "@types/js-cookie": "3.0.6", "@types/lodash-es": "4.17.12", "@types/node": "20.11.30", - "@types/react": "18.2.69", + "@types/react": "18.2.70", "@types/react-dom": "18.2.22", "@types/react-transition-group": "4.4.10", "@typescript-eslint/eslint-plugin": "7.3.1", @@ -151,7 +151,7 @@ "telegraf": "4.16.3", "tsx": "4.7.1", "typescript": "5.4.3", - "vite": "5.2.5", + "vite": "5.2.6", "vite-plugin-monaco-editor": "1.1.0", "vite-plugin-svgr": "4.2.0" } diff --git a/clash-nyanpasu/pnpm-lock.yaml b/clash-nyanpasu/pnpm-lock.yaml index a8a09bf3ee..3d8284b1a2 100644 --- a/clash-nyanpasu/pnpm-lock.yaml +++ b/clash-nyanpasu/pnpm-lock.yaml @@ -19,25 +19,25 @@ dependencies: version: 3.2.2(react@18.2.0) '@emotion/react': specifier: 11.11.4 - version: 11.11.4(@types/react@18.2.69)(react@18.2.0) + version: 11.11.4(@types/react@18.2.70)(react@18.2.0) '@emotion/styled': specifier: 11.11.0 - version: 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.69)(react@18.2.0) + version: 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.70)(react@18.2.0) '@juggle/resize-observer': specifier: 3.4.0 version: 3.4.0 '@mui/icons-material': specifier: 5.15.14 - version: 5.15.14(@mui/material@5.15.14)(@types/react@18.2.69)(react@18.2.0) + version: 5.15.14(@mui/material@5.15.14)(@types/react@18.2.70)(react@18.2.0) '@mui/lab': specifier: 5.0.0-alpha.169 - version: 5.0.0-alpha.169(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@5.15.14)(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0) + version: 5.0.0-alpha.169(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@5.15.14)(@types/react@18.2.70)(react-dom@18.2.0)(react@18.2.0) '@mui/material': specifier: 5.15.14 - version: 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0) + version: 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.70)(react-dom@18.2.0)(react@18.2.0) '@mui/x-data-grid': specifier: 7.0.0 - version: 7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@5.15.14)(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0) + version: 7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@5.15.14)(@types/react@18.2.70)(react-dom@18.2.0)(react@18.2.0) '@tauri-apps/api': specifier: 1.5.3 version: 1.5.3 @@ -64,7 +64,7 @@ dependencies: version: 0.47.0 mui-color-input: specifier: 2.0.3 - version: 2.0.3(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@5.15.14)(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0) + version: 2.0.3(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@5.15.14)(@types/react@18.2.70)(react-dom@18.2.0)(react@18.2.0) react: specifier: 18.2.0 version: 18.2.0 @@ -82,7 +82,7 @@ dependencies: version: 14.1.0(i18next@23.10.1)(react-dom@18.2.0)(react@18.2.0) react-markdown: specifier: 9.0.1 - version: 9.0.1(@types/react@18.2.69)(react@18.2.0) + version: 9.0.1(@types/react@18.2.70)(react@18.2.0) react-router-dom: specifier: 6.22.3 version: 6.22.3(react-dom@18.2.0)(react@18.2.0) @@ -125,8 +125,8 @@ devDependencies: specifier: 20.11.30 version: 20.11.30 '@types/react': - specifier: 18.2.69 - version: 18.2.69 + specifier: 18.2.70 + version: 18.2.70 '@types/react-dom': specifier: 18.2.22 version: 18.2.22 @@ -141,7 +141,7 @@ devDependencies: version: 7.3.1(eslint@8.57.0)(typescript@5.4.3) '@vitejs/plugin-react': specifier: 4.2.1 - version: 4.2.1(vite@5.2.5) + version: 4.2.1(vite@5.2.6) adm-zip: specifier: 0.5.12 version: 0.5.12 @@ -269,14 +269,14 @@ devDependencies: specifier: 5.4.3 version: 5.4.3 vite: - specifier: 5.2.5 - version: 5.2.5(@types/node@20.11.30)(sass@1.72.0) + specifier: 5.2.6 + version: 5.2.6(@types/node@20.11.30)(sass@1.72.0) vite-plugin-monaco-editor: specifier: npm:vite-plugin-monaco-editor-new@1.1.3 version: /vite-plugin-monaco-editor-new@1.1.3(monaco-editor@0.47.0) vite-plugin-svgr: specifier: 4.2.0 - version: 4.2.0(typescript@5.4.3)(vite@5.2.5) + version: 4.2.0(typescript@5.4.3)(vite@5.2.6) packages: @@ -829,7 +829,7 @@ packages: resolution: {integrity: sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==} dev: false - /@emotion/react@11.11.4(@types/react@18.2.69)(react@18.2.0): + /@emotion/react@11.11.4(@types/react@18.2.70)(react@18.2.0): resolution: {integrity: sha512-t8AjMlF0gHpvvxk5mAtCqR4vmxiGHCeJBaQO6gncUSdklELOgtwjerNY2yuJNfwnc6vi16U/+uMF+afIawJ9iw==} peerDependencies: '@types/react': '*' @@ -845,7 +845,7 @@ packages: '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) '@emotion/utils': 1.2.1 '@emotion/weak-memoize': 0.3.1 - '@types/react': 18.2.69 + '@types/react': 18.2.70 hoist-non-react-statics: 3.3.2 react: 18.2.0 dev: false @@ -864,7 +864,7 @@ packages: resolution: {integrity: sha512-0QBtGvaqtWi+nx6doRwDdBIzhNdZrXUppvTM4dtZZWEGTXL/XE/yJxLMGlDT1Gt+UHH5IX1n+jkXyytE/av7OA==} dev: false - /@emotion/styled@11.11.0(@emotion/react@11.11.4)(@types/react@18.2.69)(react@18.2.0): + /@emotion/styled@11.11.0(@emotion/react@11.11.4)(@types/react@18.2.70)(react@18.2.0): resolution: {integrity: sha512-hM5Nnvu9P3midq5aaXj4I+lnSfNi7Pmd4EWk1fOZ3pxookaQTNew6bp4JaCBYM4HVFZF9g7UjJmsUmC2JlxOng==} peerDependencies: '@emotion/react': ^11.0.0-rc.0 @@ -877,11 +877,11 @@ packages: '@babel/runtime': 7.23.8 '@emotion/babel-plugin': 11.11.0 '@emotion/is-prop-valid': 1.2.1 - '@emotion/react': 11.11.4(@types/react@18.2.69)(react@18.2.0) + '@emotion/react': 11.11.4(@types/react@18.2.70)(react@18.2.0) '@emotion/serialize': 1.1.3 '@emotion/use-insertion-effect-with-fallbacks': 1.0.1(react@18.2.0) '@emotion/utils': 1.2.1 - '@types/react': 18.2.69 + '@types/react': 18.2.70 react: 18.2.0 dev: false @@ -1455,7 +1455,7 @@ packages: resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} dev: false - /@mui/base@5.0.0-beta.40(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0): + /@mui/base@5.0.0-beta.40(@types/react@18.2.70)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1468,10 +1468,10 @@ packages: dependencies: '@babel/runtime': 7.23.9 '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0) - '@mui/types': 7.2.14(@types/react@18.2.69) - '@mui/utils': 5.15.14(@types/react@18.2.69)(react@18.2.0) + '@mui/types': 7.2.14(@types/react@18.2.70) + '@mui/utils': 5.15.14(@types/react@18.2.70)(react@18.2.0) '@popperjs/core': 2.11.8 - '@types/react': 18.2.69 + '@types/react': 18.2.70 clsx: 2.1.0 prop-types: 15.8.1 react: 18.2.0 @@ -1482,7 +1482,7 @@ packages: resolution: {integrity: sha512-on75VMd0XqZfaQW+9pGjSNiqW+ghc5E2ZSLRBXwcXl/C4YzjfyjrLPhrEpKnR9Uym9KXBvxrhoHfPcczYHweyA==} dev: false - /@mui/icons-material@5.15.14(@mui/material@5.15.14)(@types/react@18.2.69)(react@18.2.0): + /@mui/icons-material@5.15.14(@mui/material@5.15.14)(@types/react@18.2.70)(react@18.2.0): resolution: {integrity: sha512-vj/51k7MdFmt+XVw94sl30SCvGx6+wJLsNYjZRgxhS6y3UtnWnypMOsm3Kmg8TN+P0dqwsjy4/fX7B1HufJIhw==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1494,12 +1494,12 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@mui/material': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.69 + '@mui/material': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.70)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.70 react: 18.2.0 dev: false - /@mui/lab@5.0.0-alpha.169(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@5.15.14)(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0): + /@mui/lab@5.0.0-alpha.169(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@5.15.14)(@types/react@18.2.70)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-h6xe1K6ISKUbyxTDgdvql4qoDP6+q8ad5fg9nXQxGLUrIeT2jVrBuT/jRECSTufbnhzP+V5kulvYxaMfM8rEdA==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1518,21 +1518,21 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@emotion/react': 11.11.4(@types/react@18.2.69)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.69)(react@18.2.0) - '@mui/base': 5.0.0-beta.40(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0) - '@mui/material': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0) - '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.69)(react@18.2.0) - '@mui/types': 7.2.14(@types/react@18.2.69) - '@mui/utils': 5.15.14(@types/react@18.2.69)(react@18.2.0) - '@types/react': 18.2.69 + '@emotion/react': 11.11.4(@types/react@18.2.70)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.70)(react@18.2.0) + '@mui/base': 5.0.0-beta.40(@types/react@18.2.70)(react-dom@18.2.0)(react@18.2.0) + '@mui/material': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.70)(react-dom@18.2.0)(react@18.2.0) + '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.70)(react@18.2.0) + '@mui/types': 7.2.14(@types/react@18.2.70) + '@mui/utils': 5.15.14(@types/react@18.2.70)(react@18.2.0) + '@types/react': 18.2.70 clsx: 2.1.0 prop-types: 15.8.1 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false - /@mui/material@5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0): + /@mui/material@5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.70)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-kEbRw6fASdQ1SQ7LVdWR5OlWV3y7Y54ZxkLzd6LV5tmz+NpO3MJKZXSfgR0LHMP7meKsPiMm4AuzV0pXDpk/BQ==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1550,14 +1550,14 @@ packages: optional: true dependencies: '@babel/runtime': 7.23.9 - '@emotion/react': 11.11.4(@types/react@18.2.69)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.69)(react@18.2.0) - '@mui/base': 5.0.0-beta.40(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0) + '@emotion/react': 11.11.4(@types/react@18.2.70)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.70)(react@18.2.0) + '@mui/base': 5.0.0-beta.40(@types/react@18.2.70)(react-dom@18.2.0)(react@18.2.0) '@mui/core-downloads-tracker': 5.15.14 - '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.69)(react@18.2.0) - '@mui/types': 7.2.14(@types/react@18.2.69) - '@mui/utils': 5.15.14(@types/react@18.2.69)(react@18.2.0) - '@types/react': 18.2.69 + '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.70)(react@18.2.0) + '@mui/types': 7.2.14(@types/react@18.2.70) + '@mui/utils': 5.15.14(@types/react@18.2.70)(react@18.2.0) + '@types/react': 18.2.70 '@types/react-transition-group': 4.4.10 clsx: 2.1.0 csstype: 3.1.3 @@ -1568,7 +1568,7 @@ packages: react-transition-group: 4.4.5(react-dom@18.2.0)(react@18.2.0) dev: false - /@mui/private-theming@5.15.14(@types/react@18.2.69)(react@18.2.0): + /@mui/private-theming@5.15.14(@types/react@18.2.70)(react@18.2.0): resolution: {integrity: sha512-UH0EiZckOWcxiXLX3Jbb0K7rC8mxTr9L9l6QhOZxYc4r8FHUkefltV9VDGLrzCaWh30SQiJvAEd7djX3XXY6Xw==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1579,8 +1579,8 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@mui/utils': 5.15.14(@types/react@18.2.69)(react@18.2.0) - '@types/react': 18.2.69 + '@mui/utils': 5.15.14(@types/react@18.2.70)(react@18.2.0) + '@types/react': 18.2.70 prop-types: 15.8.1 react: 18.2.0 dev: false @@ -1600,14 +1600,14 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@emotion/cache': 11.11.0 - '@emotion/react': 11.11.4(@types/react@18.2.69)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.69)(react@18.2.0) + '@emotion/react': 11.11.4(@types/react@18.2.70)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.70)(react@18.2.0) csstype: 3.1.3 prop-types: 15.8.1 react: 18.2.0 dev: false - /@mui/system@5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.69)(react@18.2.0): + /@mui/system@5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.70)(react@18.2.0): resolution: {integrity: sha512-auXLXzUaCSSOLqJXmsAaq7P96VPRXg2Rrz6OHNV7lr+kB8lobUF+/N84Vd9C4G/wvCXYPs5TYuuGBRhcGbiBGg==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1624,20 +1624,20 @@ packages: optional: true dependencies: '@babel/runtime': 7.24.1 - '@emotion/react': 11.11.4(@types/react@18.2.69)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.69)(react@18.2.0) - '@mui/private-theming': 5.15.14(@types/react@18.2.69)(react@18.2.0) + '@emotion/react': 11.11.4(@types/react@18.2.70)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.70)(react@18.2.0) + '@mui/private-theming': 5.15.14(@types/react@18.2.70)(react@18.2.0) '@mui/styled-engine': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(react@18.2.0) - '@mui/types': 7.2.14(@types/react@18.2.69) - '@mui/utils': 5.15.14(@types/react@18.2.69)(react@18.2.0) - '@types/react': 18.2.69 + '@mui/types': 7.2.14(@types/react@18.2.70) + '@mui/utils': 5.15.14(@types/react@18.2.70)(react@18.2.0) + '@types/react': 18.2.70 clsx: 2.1.0 csstype: 3.1.3 prop-types: 15.8.1 react: 18.2.0 dev: false - /@mui/types@7.2.14(@types/react@18.2.69): + /@mui/types@7.2.14(@types/react@18.2.70): resolution: {integrity: sha512-MZsBZ4q4HfzBsywtXgM1Ksj6HDThtiwmOKUXH1pKYISI9gAVXCNHNpo7TlGoGrBaYWZTdNoirIN7JsQcQUjmQQ==} peerDependencies: '@types/react': ^17.0.0 || ^18.0.0 @@ -1645,10 +1645,10 @@ packages: '@types/react': optional: true dependencies: - '@types/react': 18.2.69 + '@types/react': 18.2.70 dev: false - /@mui/utils@5.15.14(@types/react@18.2.69)(react@18.2.0): + /@mui/utils@5.15.14(@types/react@18.2.70)(react@18.2.0): resolution: {integrity: sha512-0lF/7Hh/ezDv5X7Pry6enMsbYyGKjADzvHyo3Qrc/SSlTsQ1VkbDMbH0m2t3OR5iIVLwMoxwM7yGd+6FCMtTFA==} engines: {node: '>=12.0.0'} peerDependencies: @@ -1660,13 +1660,13 @@ packages: dependencies: '@babel/runtime': 7.24.1 '@types/prop-types': 15.7.11 - '@types/react': 18.2.69 + '@types/react': 18.2.70 prop-types: 15.8.1 react: 18.2.0 react-is: 18.2.0 dev: false - /@mui/x-data-grid@7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@5.15.14)(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0): + /@mui/x-data-grid@7.0.0(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@5.15.14)(@types/react@18.2.70)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Nwwfr+ot/di0oH/pVwIxKV2QD7QyUY/MKkTWRSKzQoJw2aiFQf1Usmvq9Fu1qsCsvMmqIFaToY7972p0cczRjw==} engines: {node: '>=14.0.0'} peerDependencies: @@ -1675,9 +1675,9 @@ packages: react-dom: ^17.0.0 || ^18.0.0 dependencies: '@babel/runtime': 7.24.1 - '@mui/material': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0) - '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.69)(react@18.2.0) - '@mui/utils': 5.15.14(@types/react@18.2.69)(react@18.2.0) + '@mui/material': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.70)(react-dom@18.2.0)(react@18.2.0) + '@mui/system': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.70)(react@18.2.0) + '@mui/utils': 5.15.14(@types/react@18.2.70)(react@18.2.0) clsx: 2.1.0 prop-types: 15.8.1 react: 18.2.0 @@ -2309,16 +2309,16 @@ packages: /@types/react-dom@18.2.22: resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==} dependencies: - '@types/react': 18.2.69 + '@types/react': 18.2.70 dev: true /@types/react-transition-group@4.4.10: resolution: {integrity: sha512-hT/+s0VQs2ojCX823m60m5f0sL5idt9SO6Tj6Dg+rdphGPIeJbJ6CxvBYkgkGKrYeDjvIpKTR38UzmtHJOGW3Q==} dependencies: - '@types/react': 18.2.69 + '@types/react': 18.2.70 - /@types/react@18.2.69: - resolution: {integrity: sha512-W1HOMUWY/1Yyw0ba5TkCV+oqynRjG7BnteBB+B7JmAK7iw3l2SW+VGOxL+akPweix6jk2NNJtyJKpn4TkpfK3Q==} + /@types/react@18.2.70: + resolution: {integrity: sha512-hjlM2hho2vqklPhopNkXkdkeq6Lv8WSZTpr7956zY+3WS5cfYUewtCzsJLsbW5dEv3lfSeQ4W14ZFeKC437JRQ==} dependencies: '@types/prop-types': 15.7.11 '@types/scheduler': 0.16.2 @@ -2474,7 +2474,7 @@ packages: /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - /@vitejs/plugin-react@4.2.1(vite@5.2.5): + /@vitejs/plugin-react@4.2.1(vite@5.2.6): resolution: {integrity: sha512-oojO9IDc4nCUUi8qIR11KoQm0XFFLIwsRBwHRR4d/88IWghn1y6ckz/bJ8GHDCsYEJee8mDzqtJxh15/cisJNQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -2485,7 +2485,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.6) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 5.2.5(@types/node@20.11.30)(sass@1.72.0) + vite: 5.2.6(@types/node@20.11.30)(sass@1.72.0) transitivePeerDependencies: - supports-color dev: true @@ -5634,7 +5634,7 @@ packages: /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - /mui-color-input@2.0.3(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@5.15.14)(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0): + /mui-color-input@2.0.3(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@mui/material@5.15.14)(@types/react@18.2.70)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-rAd040qQ0Y+8dk4gE8kkCiJ/vCgA0j4vv1quJ43BfORTFE3uHarHj0xY1Vo9CPbojtx1f5vW+CjckYPRIZPIRg==} peerDependencies: '@emotion/react': ^11.5.0 @@ -5648,10 +5648,10 @@ packages: optional: true dependencies: '@ctrl/tinycolor': 4.0.3 - '@emotion/react': 11.11.4(@types/react@18.2.69)(react@18.2.0) - '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.69)(react@18.2.0) - '@mui/material': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.69)(react-dom@18.2.0)(react@18.2.0) - '@types/react': 18.2.69 + '@emotion/react': 11.11.4(@types/react@18.2.70)(react@18.2.0) + '@emotion/styled': 11.11.0(@emotion/react@11.11.4)(@types/react@18.2.70)(react@18.2.0) + '@mui/material': 5.15.14(@emotion/react@11.11.4)(@emotion/styled@11.11.0)(@types/react@18.2.70)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.70 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: false @@ -6181,14 +6181,14 @@ packages: resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==} dev: false - /react-markdown@9.0.1(@types/react@18.2.69)(react@18.2.0): + /react-markdown@9.0.1(@types/react@18.2.70)(react@18.2.0): resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} peerDependencies: '@types/react': '>=18' react: '>=18' dependencies: '@types/hast': 3.0.4 - '@types/react': 18.2.69 + '@types/react': 18.2.70 devlop: 1.1.0 hast-util-to-jsx-runtime: 2.3.0 html-url-attributes: 3.0.0 @@ -7352,7 +7352,7 @@ packages: monaco-editor: 0.47.0 dev: true - /vite-plugin-svgr@4.2.0(typescript@5.4.3)(vite@5.2.5): + /vite-plugin-svgr@4.2.0(typescript@5.4.3)(vite@5.2.6): resolution: {integrity: sha512-SC7+FfVtNQk7So0XMjrrtLAbEC8qjFPifyD7+fs/E6aaNdVde6umlVVh0QuwDLdOMu7vp5RiGFsB70nj5yo0XA==} peerDependencies: vite: ^2.6.0 || 3 || 4 || 5 @@ -7360,15 +7360,15 @@ packages: '@rollup/pluginutils': 5.0.5 '@svgr/core': 8.1.0(typescript@5.4.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0) - vite: 5.2.5(@types/node@20.11.30)(sass@1.72.0) + vite: 5.2.6(@types/node@20.11.30)(sass@1.72.0) transitivePeerDependencies: - rollup - supports-color - typescript dev: true - /vite@5.2.5(@types/node@20.11.30)(sass@1.72.0): - resolution: {integrity: sha512-a+rTAqkMmJ2hQpC6dfAyyc5M0YLH3BGZKLpA6pU9AhzlcK1YZS8P/ov9OcdHxaf+j0sM0DIh/txH7ydTHUpISg==} + /vite@5.2.6(@types/node@20.11.30)(sass@1.72.0): + resolution: {integrity: sha512-FPtnxFlSIKYjZ2eosBQamz4CbyrTizbZ3hnGJlh/wMtCrlp1Hah6AzBLjGI5I2urTfNnpovpHdrL6YRuBOPnCA==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: diff --git a/lede/package/lean/vsftpd-alt/Makefile b/lede/package/lean/vsftpd-alt/Makefile index db88e30c5f..860193937e 100644 --- a/lede/package/lean/vsftpd-alt/Makefile +++ b/lede/package/lean/vsftpd-alt/Makefile @@ -7,9 +7,9 @@ include $(TOPDIR)/rules.mk -PKG_NAME:=vsftpd-alt +PKG_NAME:=vsftpd-alt PKG_VERSION:=3.0.5 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=vsftpd-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://security.appspot.com/downloads/ @@ -48,6 +48,7 @@ endef ifneq ($(CONFIG_USE_MUSL),) NLSSTRING:=-lcrypt + TARGET_CFLAGS += -D_LARGEFILE64_SOURCE else ifneq ($(CONFIG_USE_GLIBC),) NLSSTRING:=-lcrypt else diff --git a/lede/target/linux/generic/config-6.6 b/lede/target/linux/generic/config-6.6 index ee4936a867..13d376489e 100644 --- a/lede/target/linux/generic/config-6.6 +++ b/lede/target/linux/generic/config-6.6 @@ -897,6 +897,7 @@ CONFIG_CACHE_L2X0_PMU=y # CONFIG_CAN_DEV is not set # CONFIG_CAN_ESD_USB is not set # CONFIG_CAN_ETAS_ES58X is not set +# CONFIG_CAN_F81604 is not set # CONFIG_CAN_GS_USB is not set # CONFIG_CAN_GW is not set # CONFIG_CAN_HI311X is not set @@ -1343,6 +1344,8 @@ CONFIG_CRYPTO_SKCIPHER2=y # CONFIG_CRYPTO_SM4 is not set # CONFIG_CRYPTO_SM4_ARM64_CE is not set # CONFIG_CRYPTO_SM4_ARM64_CE_BLK is not set +# CONFIG_CRYPTO_SM4_ARM64_CE_CCM is not set +# CONFIG_CRYPTO_SM4_ARM64_CE_GCM is not set # CONFIG_CRYPTO_SM4_ARM64_NEON_BLK is not set # CONFIG_CRYPTO_SM4_GENERIC is not set # CONFIG_CRYPTO_SPECK is not set @@ -1411,6 +1414,7 @@ CONFIG_DEBUG_FS_ALLOW_ALL=y # CONFIG_DEBUG_INFO_BTF is not set CONFIG_DEBUG_INFO_COMPRESSED_NONE=y # CONFIG_DEBUG_INFO_COMPRESSED_ZLIB is not set +# CONFIG_DEBUG_INFO_COMPRESSED_ZSTD is not set # CONFIG_DEBUG_INFO_DWARF4 is not set # CONFIG_DEBUG_INFO_DWARF5 is not set CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y @@ -2229,6 +2233,7 @@ CONFIG_FORTIFY_SOURCE=y # CONFIG_FRONTSWAP is not set # CONFIG_FSCACHE is not set # CONFIG_FSI is not set +# CONFIG_FSL_DPAA2_SWITCH is not set # CONFIG_FSL_EDMA is not set # CONFIG_FSL_ENETC is not set # CONFIG_FSL_ENETC_IERB is not set @@ -2538,6 +2543,7 @@ CONFIG_HARDEN_EL2_VECTORS=y # CONFIG_HID_STEAM is not set # CONFIG_HID_STEELSERIES is not set # CONFIG_HID_SUNPLUS is not set +# CONFIG_HID_SUPPORT is not set # CONFIG_HID_THINGM is not set # CONFIG_HID_THRUSTMASTER is not set # CONFIG_HID_TIVO is not set @@ -4452,7 +4458,7 @@ CONFIG_NET_VENDOR_CHELSIO=y CONFIG_NET_VENDOR_CIRRUS=y CONFIG_NET_VENDOR_CISCO=y CONFIG_NET_VENDOR_CORTINA=y -# CONFIG_NET_VENDOR_DAVICOM is not set +CONFIG_NET_VENDOR_DAVICOM=y CONFIG_NET_VENDOR_DEC=y CONFIG_NET_VENDOR_DLINK=y CONFIG_NET_VENDOR_EMULEX=y @@ -6087,6 +6093,7 @@ CONFIG_SERIAL_EARLYCON=y # CONFIG_SG_SPLIT is not set # CONFIG_SHADOW_CALL_STACK is not set CONFIG_SHMEM=y +# CONFIG_SHORTCUT_FE is not set # CONFIG_SHRINKER_DEBUG is not set # CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set # CONFIG_SH_ETH is not set @@ -7288,7 +7295,10 @@ CONFIG_USB_BELKIN=y # CONFIG_USB_CATC is not set # CONFIG_USB_CDC_COMPOSITE is not set # CONFIG_USB_CDNS3 is not set +# CONFIG_USB_CDNS3_IMX is not set +# CONFIG_USB_CDNS3_PCI_WRAP is not set # CONFIG_USB_CDNS_SUPPORT is not set +# CONFIG_USB_CDNSP_PCI is not set # CONFIG_USB_CHAOSKEY is not set # CONFIG_USB_CHIPIDEA is not set # CONFIG_USB_CHIPIDEA_GENERIC is not set diff --git a/openwrt-packages/alist/Makefile b/openwrt-packages/alist/Makefile index 308969f464..11e2b9a03b 100644 --- a/openwrt-packages/alist/Makefile +++ b/openwrt-packages/alist/Makefile @@ -7,13 +7,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=alist -PKG_VERSION:=3.32.0 -PKG_WEB_VERSION:=3.32.0 +PKG_VERSION:=3.33.0 +PKG_WEB_VERSION:=3.33.0 PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/alist-org/alist/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=3a7e17c7106488b769af41ef5058c3cf0bd18665aadce241ba90d1ec5a528d90 +PKG_HASH:=28aea1ddae1f394b9d66ca95cf25ab86cf30cce94544783ce7ea440f15d95f77 PKG_LICENSE:=GPL-3.0 PKG_LICENSE_FILE:=LICENSE @@ -23,7 +23,7 @@ define Download/$(PKG_NAME)-web FILE:=$(PKG_NAME)-web-$(PKG_WEB_VERSION).tar.gz URL_FILE:=dist.tar.gz URL:=https://github.com/alist-org/alist-web/releases/download/$(PKG_WEB_VERSION)/ - HASH:=2af925073e521ffadd99866b65be54d495a4dce0b416446910230cd83b4b121f + HASH:=50ae0539720bce7c470ac6bc47216b0e103e73636ee3a9b4b9364e2b52ca93f6 endef PKG_BUILD_DEPENDS:=golang/host diff --git a/openwrt-packages/luci-app-amlogic/Makefile b/openwrt-packages/luci-app-amlogic/Makefile index a244271d98..3e04f1e1b2 100644 --- a/openwrt-packages/luci-app-amlogic/Makefile +++ b/openwrt-packages/luci-app-amlogic/Makefile @@ -16,7 +16,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-amlogic -PKG_VERSION:=3.1.227 +PKG_VERSION:=3.1.228 PKG_RELEASE:=1 PKG_LICENSE:=GPL-2.0 License diff --git a/openwrt-packages/luci-app-amlogic/root/usr/sbin/openwrt-update-rockchip b/openwrt-packages/luci-app-amlogic/root/usr/sbin/openwrt-update-rockchip index 8610567116..431a6a39db 100755 --- a/openwrt-packages/luci-app-amlogic/root/usr/sbin/openwrt-update-rockchip +++ b/openwrt-packages/luci-app-amlogic/root/usr/sbin/openwrt-update-rockchip @@ -757,6 +757,16 @@ echo "done" echo echo -n "Update boot args ... " + +if [ -f /tmp/armbianEnv.txt ];then + ORIG_OVERLAYS=$(grep '^overlays=' /tmp/armbianEnv.txt) + ORIG_USER_OVERLAYS=$(grep '^user_overlays=' /tmp/armbianEnv.txt) + sed -e '/user_overlays=/d' -i armbianEnv.txt + sed -e '/overlays=/d' -i armbianEnv.txt + echo "$ORIG_OVERLAYS" >> armbianEnv.txt + echo "$ORIG_USER_OVERLAYS" >> armbianEnv.txt +fi + sed -e '/fdtfile=/d' -i armbianEnv.txt sed -e '/rootdev=/d' -i armbianEnv.txt sed -e '/rootfstype=/d' -i armbianEnv.txt diff --git a/openwrt-packages/luci-theme-atmaterial_new/Makefile b/openwrt-packages/luci-theme-atmaterial_new/Makefile index 43721d85d6..9703d8b90f 100644 --- a/openwrt-packages/luci-theme-atmaterial_new/Makefile +++ b/openwrt-packages/luci-theme-atmaterial_new/Makefile @@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=Atmaterial_new kenzo LUCI_DEPENDS:= PKG_VERSION:=1.2 -PKG_RELEASE:=02-20200209 +PKG_RELEASE:=2 include $(TOPDIR)/feeds/luci/luci.mk -# call BuildPackage - OpenWrt buildroot signature \ No newline at end of file +# call BuildPackage - OpenWrt buildroot signature diff --git a/openwrt-packages/luci-theme-tomato/Makefile b/openwrt-packages/luci-theme-tomato/Makefile index 0e729c8c58..2d67d925a5 100644 --- a/openwrt-packages/luci-theme-tomato/Makefile +++ b/openwrt-packages/luci-theme-tomato/Makefile @@ -1,6 +1,5 @@ # LuCI Material Theme # Copyright 2015 Lutty Yang -# # Licensed under the Apache License v2.0 # http://www.apache.org/licenses/LICENSE-2.0 diff --git a/shadowsocks-rust/.github/workflows/build-and-test.yml b/shadowsocks-rust/.github/workflows/build-and-test.yml index 915be57857..047218289e 100644 --- a/shadowsocks-rust/.github/workflows/build-and-test.yml +++ b/shadowsocks-rust/.github/workflows/build-and-test.yml @@ -42,6 +42,6 @@ jobs: run: cargo build --verbose --features "local-http-rustls local-redir local-dns local-tun dns-over-tls dns-over-https stream-cipher aead-cipher-extra aead-cipher-2022 aead-cipher-2022-extra security-replay-attack-detect" - name: Build with All Features Enabled (Windows) if: ${{ runner.os == 'Windows' }} - run: cargo build --verbose --features "local-http-rustls local-dns dns-over-tls dns-over-https stream-cipher aead-cipher-extra aead-cipher-2022 aead-cipher-2022-extra security-replay-attack-detect" + run: cargo build --verbose --features "local-http-rustls local-dns dns-over-tls dns-over-https stream-cipher aead-cipher-extra aead-cipher-2022 aead-cipher-2022-extra security-replay-attack-detect winservice" - name: Build with All Features Enabled - shadowsocks run: cargo build --manifest-path ./crates/shadowsocks/Cargo.toml --verbose --features "stream-cipher aead-cipher-2022" diff --git a/shadowsocks-rust/.github/workflows/build-msrv.yml b/shadowsocks-rust/.github/workflows/build-msrv.yml index cbe8b6d6ed..6bea06a43d 100644 --- a/shadowsocks-rust/.github/workflows/build-msrv.yml +++ b/shadowsocks-rust/.github/workflows/build-msrv.yml @@ -34,4 +34,4 @@ jobs: run: cargo build --verbose --features "local-http-rustls local-redir local-dns local-tun dns-over-tls dns-over-https stream-cipher aead-cipher-extra aead-cipher-2022 aead-cipher-2022-extra security-replay-attack-detect" - name: Build with All Features Enabled (Windows) if: ${{ runner.os == 'Windows' }} - run: cargo build --verbose --features "local-http-rustls local-dns dns-over-tls dns-over-https stream-cipher aead-cipher-extra aead-cipher-2022 aead-cipher-2022-extra security-replay-attack-detect" + run: cargo build --verbose --features "local-http-rustls local-dns dns-over-tls dns-over-https stream-cipher aead-cipher-extra aead-cipher-2022 aead-cipher-2022-extra security-replay-attack-detect winservice" diff --git a/shadowsocks-rust/.github/workflows/build-nightly-release.yml b/shadowsocks-rust/.github/workflows/build-nightly-release.yml index 26b34b89c9..5d02827bfd 100644 --- a/shadowsocks-rust/.github/workflows/build-nightly-release.yml +++ b/shadowsocks-rust/.github/workflows/build-nightly-release.yml @@ -116,7 +116,7 @@ jobs: - name: Build release run: | - pwsh ./build/build-host-release.ps1 + pwsh ./build/build-host-release.ps1 winservice - name: Upload Artifacts uses: actions/upload-artifact@v4 diff --git a/shadowsocks-rust/.github/workflows/build-release.yml b/shadowsocks-rust/.github/workflows/build-release.yml index 061e616b39..6b5ca2cd0c 100644 --- a/shadowsocks-rust/.github/workflows/build-release.yml +++ b/shadowsocks-rust/.github/workflows/build-release.yml @@ -58,6 +58,10 @@ jobs: compile_features="-f local-redir -f local-tun" fi + if [[ "$compile_target" == *"-windows-"* ]]; then + compile_features="-f winservice" + fi + if [[ "$compile_target" == "mips-"* || "$compile_target" == "mipsel-"* || "$compile_target" == "mips64-"* || "$compile_target" == "mips64el-"* ]]; then sudo apt-get update -y && sudo apt-get install -y upx; if [[ "$?" == "0" ]]; then @@ -139,7 +143,7 @@ jobs: - name: Build release run: | - pwsh ./build/build-host-release.ps1 + pwsh ./build/build-host-release.ps1 winservice - name: Upload Github Assets uses: softprops/action-gh-release@v1 diff --git a/shadowsocks-rust/build/build-host-release b/shadowsocks-rust/build/build-host-release index 98eb20bad0..34580f510b 100755 --- a/shadowsocks-rust/build/build-host-release +++ b/shadowsocks-rust/build/build-host-release @@ -53,6 +53,10 @@ fi TARGETS=("sslocal${TARGET_SUFFIX}" "ssserver${TARGET_SUFFIX}" "ssurl${TARGET_SUFFIX}" "ssmanager${TARGET_SUFFIX}" "ssservice${TARGET_SUFFIX}") +if [[ "${BUILD_FEATURES}" == *"winservice"* ]]; then + TARGETS+=("sswinservice${TARGET_SUFFIX}") +fi + RELEASE_FOLDER="${ROOT_DIR}/release" RELEASE_PACKAGE_NAME="shadowsocks-v${VERSION}.${BUILD_TARGET}" diff --git a/shadowsocks-rust/build/build-host-release.ps1 b/shadowsocks-rust/build/build-host-release.ps1 index f539f55d3f..3fb9e7eadf 100644 --- a/shadowsocks-rust/build/build-host-release.ps1 +++ b/shadowsocks-rust/build/build-host-release.ps1 @@ -48,6 +48,9 @@ $CompressParam = @{ LiteralPath = "sslocal.exe", "ssserver.exe", "ssurl.exe", "ssmanager.exe", "ssservice.exe" DestinationPath = "${PackagePath}" } +if (${Features} -contains "winservice") { + $CompressParam.LiteralPath += "sswinservice.exe" +} Compress-Archive @CompressParam Write-Host "Created release packet ${PackagePath}" diff --git a/sing-box/docs/changelog.md b/sing-box/docs/changelog.md index f9334eb395..2e6478f6d8 100644 --- a/sing-box/docs/changelog.md +++ b/sing-box/docs/changelog.md @@ -2,7 +2,7 @@ icon: material/alert-decagram --- -#### 1.9.0-rc.1 +#### 1.9.0-rc.2 * Fixes and improvements diff --git a/small/chinadns-ng/Makefile b/small/chinadns-ng/Makefile index 5100f56d29..6a9596ee9d 100644 --- a/small/chinadns-ng/Makefile +++ b/small/chinadns-ng/Makefile @@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=2024.03.07 +PKG_VERSION:=2024.03.25 PKG_RELEASE:=1 PKG_SOURCE_URL:=https://github.com/zfl9/chinadns-ng/releases/download/$(PKG_VERSION) @@ -13,28 +13,28 @@ UNPACK_CMD=$(CP) $(DL_DIR)/$(PKG_SOURCE) $(PKG_BUILD_DIR)/chinadns-ng ifeq ($(ARCH),aarch64) PKG_SOURCE:=chinadns-ng@aarch64-linux-musl@generic+v8a@fast+lto - PKG_HASH:=a699d6d6a3b03b068d6a52fa411611f0e6738a51b5c43cb745c36e2d155e03d8 + PKG_HASH:=cd53686626f678fff3122b61aabee6c3bf9dad7e7577a8efc5f432fdeaf8d975 else ifeq ($(ARCH),arm) ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=chinadns-ng@arm-linux-musleabi@generic+v7a@fast+lto - PKG_HASH:=0c77f8d7631cca22d1816a90655b407b9f82bbb349ac221d12a9a26da6c72dcb + PKG_HASH:=106a53e63991a78631c1ca6bfc648600bb9cabe08045b443acaaaf3113401b00 else PKG_SOURCE:=chinadns-ng@arm-linux-musleabihf@generic+v7a@fast+lto - PKG_HASH:=02ef7b8c9d54a1718fa7f6832bbdc04b9c3e2f29ecb89f726c801030c1f0a3b4 + PKG_HASH:=a04997e353732a77a374b869f8b37f5e7a3451e5659b8cb3db1e31f40f0a06d7 endif else ifeq ($(ARCH),mips) PKG_SOURCE:=chinadns-ng@mips-linux-musl@mips32+soft_float@fast+lto - PKG_HASH:=0b36f20641eef9430a71203a0a2b28f875cea2b13d1a537557236d4cab546643 + PKG_HASH:=18970e6191661c3f2398a18ce8b003758c6a6c0f3c5d164a566fb108ab5bc1da else ifeq ($(ARCH),mipsel) PKG_SOURCE:=chinadns-ng@mipsel-linux-musl@mips32+soft_float@fast+lto - PKG_HASH:=eef2bc033bd87ec00af96bb212f51eb83940ec2f49eaf0e9b3097fb22665dc67 + PKG_HASH:=26aa029b141a3d25e078c4b92c06c93a87c06b0516e86c13d32a9ee865dd2ca2 else ifeq ($(ARCH),i386) PKG_SOURCE:=chinadns-ng@i386-linux-musl@i686@fast+lto - PKG_HASH:=fef4eeb0533dbec588cdbc768e9eaa6d6087eb484f0a693a4ec677e06d3caa46 + PKG_HASH:=4147e3be49f5ef5c0200b6c62cb8036e7944b4f0729ede83faef33c828d6ff91 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=chinadns-ng@x86_64-linux-musl@x86_64@fast+lto - PKG_HASH:=f2cb388d150b836228dc114d25867fc649fdd56a6ff04d35c1ef6df5025f0888 + PKG_HASH:=ea17998c450eaf08cf82b8b2bc3767bd39f0d7686a53e1c5ad972b48db750974 else PKG_SOURCE:=dummy PKG_HASH:=dummy diff --git a/small/shadowsocksr-libev/Makefile b/small/shadowsocksr-libev/Makefile index f4b96be160..46e46d4727 100644 --- a/small/shadowsocksr-libev/Makefile +++ b/small/shadowsocksr-libev/Makefile @@ -1,20 +1,12 @@ -# SPDX-License-Identifier: GPL-2.0-only -# -# Copyright (C) 2017-2020 Yousong Zhou -# Copyright (C) 2018 Lean -# Copyright (C) 2021 ImmortalWrt.org - include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocksr-libev -PKG_VERSION:=2.5.6 -PKG_RELEASE:=10 +PKG_VERSION:=2.5.3 +PKG_RELEASE:=1 -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/shadowsocksrr/shadowsocksr-libev -PKG_SOURCE_DATE:=2018-03-07 -PKG_SOURCE_VERSION:=d63ff863800a5645aca4309d5dd5962bd1e95543 -PKG_MIRROR_HASH:=34308ed827a5dd4f4e35619914102d55b00604faa44fda051d1d25fb4a319325 +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/shadowsocksrr/shadowsocksr-libev/tar.gz/$(PKG_VERSION)? +PKG_HASH:=3fc11a0a132aa6f229285f459e8ce391c20bf86b731b757b0de4dbc96c12301c PKG_LICENSE:=GPL-3.0 PKG_LICENSE_FILES:=LICENSE diff --git a/small/trojan-plus/Makefile b/small/trojan-plus/Makefile index 0f859a5bd0..6cdbf3046c 100644 --- a/small/trojan-plus/Makefile +++ b/small/trojan-plus/Makefile @@ -1,20 +1,12 @@ -# -# Copyright (C) 2018-2019 wongsyrone -# -# This is free software, licensed under the GNU General Public License v3. -# See /LICENSE for more information. -# include $(TOPDIR)/rules.mk PKG_NAME:=trojan-plus PKG_VERSION:=10.0.3 -PKG_RELEASE:=2 +PKG_RELEASE:=3 -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/peter-tank/trojan-plus.git -PKG_SOURCE_DATE:=2020-09-06 -PKG_SOURCE_VERSION:=a6394cdd718669b0c7491493a78e61f6f0f899b3 -PKG_MIRROR_HASH:=2d37d09fe6d39d7981116ad387706f58f2b30b74a34e27fc5608f267dacc9208 +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/peter-tank/trojan-plus/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=0240f5b4d2a37074ab33b414a8b60d5f5b4778bd226586a2bd9a5c87a12896ed PKG_BUILD_PARALLEL:=1 PKG_BUILD_DEPENDS:=openssl diff --git a/small/v2ray-geodata/Makefile b/small/v2ray-geodata/Makefile index 0abdf6f1dc..25751fb4d0 100644 --- a/small/v2ray-geodata/Makefile +++ b/small/v2ray-geodata/Makefile @@ -30,13 +30,13 @@ define Download/geosite HASH:=402d4bdbec16f1d3fce3f5a29dcd5a08725b8e071a507a4b2650d2c2e72f0e9d endef -GEOSITE_IRAN_VER:=202403180026 +GEOSITE_IRAN_VER:=202403250026 GEOSITE_IRAN_FILE:=iran.dat.$(GEOSITE_IRAN_VER) define Download/geosite-ir URL:=https://github.com/bootmortis/iran-hosted-domains/releases/download/$(GEOSITE_IRAN_VER)/ URL_FILE:=iran.dat FILE:=$(GEOSITE_IRAN_FILE) - HASH:=05a237974747656807fe9811ec554230e35899c944c7ba8eda11df5f6a3b5da3 + HASH:=faebfa53a941ad7d364a475381029615bbffcbd3745064e222f61512d96ef105 endef define Package/v2ray-geodata/template diff --git a/suyu/.ci/scripts/android/build.sh b/suyu/.ci/scripts/android/build.sh index d0811adf7b..935919b6de 100755 --- a/suyu/.ci/scripts/android/build.sh +++ b/suyu/.ci/scripts/android/build.sh @@ -1,6 +1,7 @@ #!/bin/bash -ex # SPDX-FileCopyrightText: 2023 yuzu Emulator Project +# SPDX-FileCopyrightText: 2024 suyu Emulator Project # SPDX-License-Identifier: GPL-3.0-or-later export NDK_CCACHE="$(which ccache)" @@ -9,7 +10,7 @@ ccache -s BUILD_FLAVOR="mainline" BUILD_TYPE="release" -if [ "${GITHUB_REPOSITORY}" == "suyu-emu/suyu" ]; then +if [ "${GITHUB_REPOSITORY}" == "suyu/suyu" ]; then BUILD_TYPE="relWithDebInfo" fi diff --git a/suyu/.ci/scripts/android/upload.sh b/suyu/.ci/scripts/android/upload.sh index 05ccff2aa9..1db05bec11 100755 --- a/suyu/.ci/scripts/android/upload.sh +++ b/suyu/.ci/scripts/android/upload.sh @@ -11,7 +11,7 @@ BUILD_FLAVOR="mainline" BUILD_TYPE_LOWER="release" BUILD_TYPE_UPPER="Release" -if [ "${GITHUB_REPOSITORY}" == "suyu-emu/suyu" ]; then +if [ "${GITHUB_REPOSITORY}" == "suyu/suyu" ]; then BUILD_TYPE_LOWER="relWithDebInfo" BUILD_TYPE_UPPER="RelWithDebInfo" fi diff --git a/suyu/.ci/scripts/clang/docker.sh b/suyu/.ci/scripts/clang/docker.sh index 7b5c6ec4df..57fbb97544 100755 --- a/suyu/.ci/scripts/clang/docker.sh +++ b/suyu/.ci/scripts/clang/docker.sh @@ -1,19 +1,22 @@ #!/bin/bash -ex # SPDX-FileCopyrightText: 2021 yuzu Emulator Project +# SPDX-FileCopyrightText: 2024 suyu Emulator Project # SPDX-License-Identifier: GPL-2.0-or-later # Exit on error, rather than continuing with the rest of the script. set -e -ccache -s +ccache -sv mkdir build || true && cd build cmake .. \ -DCMAKE_BUILD_TYPE=Release \ + -DSUYU_USE_PRECOMPILED_HEADERS=OFF \ + -DDYNARMIC_USE_PRECOMPILED_HEADERS=OFF \ -DCMAKE_CXX_FLAGS="-march=x86-64-v2" \ - -DCMAKE_CXX_COMPILER=/usr/lib/ccache/clang++ \ - -DCMAKE_C_COMPILER=/usr/lib/ccache/clang \ + -DCMAKE_CXX_COMPILER=/usr/bin/clang++ \ + -DCMAKE_C_COMPILER=/usr/bin/clang \ -DCMAKE_INSTALL_PREFIX="/usr" \ -DDISPLAY_VERSION=$1 \ -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \ @@ -22,11 +25,12 @@ cmake .. \ -DSUYU_CRASH_DUMPS=ON \ -DSUYU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \ -DSUYU_USE_BUNDLED_FFMPEG=ON \ + -DSUYU_USE_FASTER_LD=ON \ -GNinja ninja -ccache -s +ccache -sv ctest -VV -C Release diff --git a/suyu/.ci/scripts/linux/docker.sh b/suyu/.ci/scripts/linux/docker.sh index b6b8efeea4..82432bd835 100755 --- a/suyu/.ci/scripts/linux/docker.sh +++ b/suyu/.ci/scripts/linux/docker.sh @@ -6,7 +6,7 @@ # Exit on error, rather than continuing with the rest of the script. set -e -ccache -s +ccache -sv mkdir build || true && cd build cmake .. \ @@ -15,8 +15,8 @@ cmake .. \ -DSUYU_USE_PRECOMPILED_HEADERS=OFF \ -DDYNARMIC_USE_PRECOMPILED_HEADERS=OFF \ -DCMAKE_CXX_FLAGS="-march=x86-64-v2" \ - -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \ - -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \ + -DCMAKE_CXX_COMPILER=/usr/local/bin/g++ \ + -DCMAKE_C_COMPILER=/usr/local/bin/gcc \ -DCMAKE_INSTALL_PREFIX="/usr" \ -DDISPLAY_VERSION=$1 \ -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=OFF \ @@ -24,14 +24,14 @@ cmake .. \ -DUSE_DISCORD_PRESENCE=ON \ -DSUYU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \ -DSUYU_USE_BUNDLED_FFMPEG=ON \ - -DSUYU_ENABLE_LTO=ON \ + -DSUYU_ENABLE_LTO=OFF \ -DSUYU_CRASH_DUMPS=ON \ -DSUYU_USE_FASTER_LD=ON \ -GNinja ninja -ccache -s +ccache -sv ctest -VV -C Release diff --git a/suyu/.forgejo/workflows/ci.yml b/suyu/.forgejo/workflows/reuse.yml similarity index 100% rename from suyu/.forgejo/workflows/ci.yml rename to suyu/.forgejo/workflows/reuse.yml diff --git a/suyu/.forgejo/workflows/verify.yml b/suyu/.forgejo/workflows/verify.yml index 0e9263fbb4..f89166dbde 100644 --- a/suyu/.forgejo/workflows/verify.yml +++ b/suyu/.forgejo/workflows/verify.yml @@ -14,9 +14,10 @@ on: - 'CMakeModules/**' - 'dist/**' - 'externals/**' + - 'CMakeLists.txt' - 'vcpkg.json' - paths-ignore: - - 'src/android/**' + # paths-ignore: + # - 'src/android/**' push: branches: [ "dev" ] paths: @@ -24,13 +25,15 @@ on: - 'CMakeModules/**' - 'dist/**' - 'externals/**' + - 'CMakeLists.txt' - 'vcpkg.json' - paths-ignore: - - 'src/android/**' + - '.forgejo/workflows/verify.yml' + - '.ci/**' + # paths-ignore: + # - 'src/android/**' env: PR_NUMBER: pr${{ github.event.number }} - CCACHE_DIR: '.ccache' jobs: format: @@ -60,8 +63,8 @@ jobs: image: linux-fresh - type: linux image: linux-fresh - - type: windows - image: linux-mingw + # - type: windows + # image: linux-mingw container: fijxu/build-environments:${{ matrix.image }} # User 1001 doesn't exists on the images. # options: -u 1001 @@ -74,13 +77,13 @@ jobs: uses: https://code.forgejo.org/actions/cache@v3 id: ccache-restore with: - path: .ccache + path: ~/.ccache key: ${{ runner.os }}-${{ matrix.type }}-${{ github.sha }} restore-keys: | ${{ runner.os }}-${{ matrix.type }}- - name: Create ccache directory if: steps.ccache-restore.outputs.cache-hit != 'true' - run: mkdir -p .ccache + run: mkdir -p ~/.ccache - name: Build run: ./.ci/scripts/${{ matrix.type }}/docker.sh env: @@ -173,6 +176,7 @@ jobs: # path: ${{ env.INDIVIDUAL_EXE }} android: runs-on: ubuntu-latest + container: fijxu/build-environments:android needs: format steps: - uses: https://code.forgejo.org/actions/checkout@v3 @@ -190,17 +194,13 @@ jobs: path: | ~/.gradle/caches ~/.gradle/wrapper - .ccache + ~/.ccache key: ${{ runner.os }}-android-${{ github.sha }} restore-keys: | ${{ runner.os }}-android- - name: Query tag name uses: https://github.com/olegtarasov/get-tag@v2.1.2 id: tagName - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y ccache apksigner glslang-dev glslang-tools - name: Build run: ./.ci/scripts/android/build.sh - name: Copy and sign artifacts diff --git a/suyu/.reuse/dep5 b/suyu/.reuse/dep5 index 926ddd097d..b39bc42fb7 100644 --- a/suyu/.reuse/dep5 +++ b/suyu/.reuse/dep5 @@ -9,7 +9,8 @@ Files: dist/english_plurals/* dist/qt_themes/*/icons/48x48/sd_card.png dist/qt_themes/*/icons/index.theme dist/qt_themes/default/style.qss -Copyright: suyu Emulator Project +Copyright: yuzu Emulator Project + suyu Emulator Project License: GPL-2.0-or-later Files: dist/qt_themes/default/icons/256x256/suyu.png @@ -159,3 +160,23 @@ License: BSD-3-Clause Files: src/android/app/debug.keystore Copyright: 2023 yuzu Emulator Project License: GPL-3.0-or-later + +Files: .github-archive/ISSUE_TEMPLATE/* +Copyright: 2022 yuzu Emulator Project +License: GPL-2.0-or-later + +Files: .forgejo/ISSUE_TEMPLATE/* +Copyright: 2024 suyu Emulator Project +License: GPL-3.0-or-later + +Files: .gitea/ISSUE_TEMPLATE/* +Copyright: 2024 suyu Emulator Project +License: GPL-3.0-or-later + +Files: .gitlab-ci.yml +Copyright: 2024 suyu Emulator Project +License: GPL-3.0-or-later + +Files: dist/icns_generator.sh +Copyright: 2024 suyu Emulator Project +License: GPL-3.0-or-later diff --git a/suyu/CMakeLists.txt b/suyu/CMakeLists.txt index 6fec995c6d..42e8615e57 100644 --- a/suyu/CMakeLists.txt +++ b/suyu/CMakeLists.txt @@ -132,7 +132,7 @@ if (SUYU_USE_BUNDLED_VCPKG) set(VCPKG_DOWNLOADS_PATH ${PROJECT_SOURCE_DIR}/externals/vcpkg/downloads) set(NASM_VERSION "2.16.01") set(NASM_DESTINATION_PATH ${VCPKG_DOWNLOADS_PATH}/nasm-${NASM_VERSION}-win64.zip) - set(NASM_DOWNLOAD_URL "https://gitlab.com/suyu-emu/ext-windows-bin/raw/master/nasm/nasm-${NASM_VERSION}-win64.zip") + set(NASM_DOWNLOAD_URL "https://git.suyu.dev/suyu/ext-windows-bin/raw/branch/master/nasm/nasm-${NASM_VERSION}-win64.zip") if (NOT EXISTS ${NASM_DESTINATION_PATH}) file(DOWNLOAD ${NASM_DOWNLOAD_URL} ${NASM_DESTINATION_PATH} SHOW_PROGRESS STATUS NASM_STATUS) @@ -374,8 +374,6 @@ if(ENABLE_QT6 AND Qt6_LOCATION) list(APPEND CMAKE_PREFIX_PATH "${Qt6_LOCATION}") endif() -# QT6 searches for Vulkan::Headers, too, so we have to define it before QT6 has a chance to do it. -add_subdirectory(externals) function(set_suyu_qt_components) # Best practice is to ask for all components at once, so they are from the same version @@ -632,7 +630,7 @@ if (NOT CLANG_FORMAT) message(STATUS "Clang format not found! Downloading...") set(CLANG_FORMAT "${PROJECT_BINARY_DIR}/externals/clang-format${CLANG_FORMAT_POSTFIX}.exe") file(DOWNLOAD - https://gitlab.com/suyu-emu/ext-windows-bin/raw/master/clang-format${CLANG_FORMAT_POSTFIX}.exe + https://git.suyu.dev/suyu/ext-windows-bin/raw/branch/master/clang-format${CLANG_FORMAT_POSTFIX}.exe "${CLANG_FORMAT}" SHOW_PROGRESS STATUS DOWNLOAD_SUCCESS) if (NOT DOWNLOAD_SUCCESS EQUAL 0) @@ -712,6 +710,7 @@ if (SUYU_USE_FASTER_LD AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") endif() endif() +add_subdirectory(externals) add_subdirectory(src) # Set suyu project or suyu-cmd project as default StartUp Project in Visual Studio depending on whether QT is enabled or not diff --git a/suyu/CMakeModules/DownloadExternals.cmake b/suyu/CMakeModules/DownloadExternals.cmake index 2498773e61..858bce8771 100644 --- a/suyu/CMakeModules/DownloadExternals.cmake +++ b/suyu/CMakeModules/DownloadExternals.cmake @@ -7,21 +7,21 @@ # prefix_var: name of a variable which will be set with the path to the extracted contents function(download_bundled_external remote_path lib_name prefix_var) -set(package_base_url "https://git.suyu.dev/suyu") +set(package_base_url "https://git.suyu.dev/suyu/") set(package_repo "no_platform") set(package_extension "no_platform") set(package_head "?ref_type=heads") if (WIN32) - set(package_repo "ext-windows-bin/-/raw/master/") + set(package_repo "ext-windows-bin/raw/branch/master/") set(package_extension ".7z") elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") - set(package_repo "ext-linux-bin/-/raw/main/") + set(package_repo "ext-linux-bin/raw/branch/main/") set(package_extension ".tar.xz") # elseif (APPLE) # set(package_repo "ext-osx-bin/-/raw/main/") # set(package_extension ".dmg") elseif (ANDROID) - set(package_repo "ext-android-bin/-/raw/main/") + set(package_repo "ext-android-bin/raw/branch/main/") set(package_extension ".tar.xz") else() message(FATAL_ERROR "No package available for this platform") diff --git a/suyu/LICENSES/CC-BY-NC-SA-4.0.txt b/suyu/LICENSES/CC-BY-NC-SA-4.0.txt new file mode 100644 index 0000000000..7cdbe0b482 --- /dev/null +++ b/suyu/LICENSES/CC-BY-NC-SA-4.0.txt @@ -0,0 +1,438 @@ +Attribution-NonCommercial-ShareAlike 4.0 International + +======================================================================= + +Creative Commons Corporation ("Creative Commons") is not a law firm and +does not provide legal services or legal advice. Distribution of +Creative Commons public licenses does not create a lawyer-client or +other relationship. Creative Commons makes its licenses and related +information available on an "as-is" basis. Creative Commons gives no +warranties regarding its licenses, any material licensed under their +terms and conditions, or any related information. Creative Commons +disclaims all liability for damages resulting from their use to the +fullest extent possible. + +Using Creative Commons Public Licenses + +Creative Commons public licenses provide a standard set of terms and +conditions that creators and other rights holders may use to share +original works of authorship and other material subject to copyright +and certain other rights specified in the public license below. The +following considerations are for informational purposes only, are not +exhaustive, and do not form part of our licenses. + + Considerations for licensors: Our public licenses are + intended for use by those authorized to give the public + permission to use material in ways otherwise restricted by + copyright and certain other rights. Our licenses are + irrevocable. Licensors should read and understand the terms + and conditions of the license they choose before applying it. + Licensors should also secure all rights necessary before + applying our licenses so that the public can reuse the + material as expected. Licensors should clearly mark any + material not subject to the license. This includes other CC- + licensed material, or material used under an exception or + limitation to copyright. More considerations for licensors: + wiki.creativecommons.org/Considerations_for_licensors + + Considerations for the public: By using one of our public + licenses, a licensor grants the public permission to use the + licensed material under specified terms and conditions. If + the licensor's permission is not necessary for any reason--for + example, because of any applicable exception or limitation to + copyright--then that use is not regulated by the license. Our + licenses grant only permissions under copyright and certain + other rights that a licensor has authority to grant. Use of + the licensed material may still be restricted for other + reasons, including because others have copyright or other + rights in the material. A licensor may make special requests, + such as asking that all changes be marked or described. + Although not required by our licenses, you are encouraged to + respect those requests where reasonable. More considerations + for the public: + wiki.creativecommons.org/Considerations_for_licensees + +======================================================================= + +Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International +Public License + +By exercising the Licensed Rights (defined below), You accept and agree +to be bound by the terms and conditions of this Creative Commons +Attribution-NonCommercial-ShareAlike 4.0 International Public License +("Public License"). To the extent this Public License may be +interpreted as a contract, You are granted the Licensed Rights in +consideration of Your acceptance of these terms and conditions, and the +Licensor grants You such rights in consideration of benefits the +Licensor receives from making the Licensed Material available under +these terms and conditions. + + +Section 1 -- Definitions. + + a. Adapted Material means material subject to Copyright and Similar + Rights that is derived from or based upon the Licensed Material + and in which the Licensed Material is translated, altered, + arranged, transformed, or otherwise modified in a manner requiring + permission under the Copyright and Similar Rights held by the + Licensor. For purposes of this Public License, where the Licensed + Material is a musical work, performance, or sound recording, + Adapted Material is always produced where the Licensed Material is + synched in timed relation with a moving image. + + b. Adapter's License means the license You apply to Your Copyright + and Similar Rights in Your contributions to Adapted Material in + accordance with the terms and conditions of this Public License. + + c. BY-NC-SA Compatible License means a license listed at + creativecommons.org/compatiblelicenses, approved by Creative + Commons as essentially the equivalent of this Public License. + + d. Copyright and Similar Rights means copyright and/or similar rights + closely related to copyright including, without limitation, + performance, broadcast, sound recording, and Sui Generis Database + Rights, without regard to how the rights are labeled or + categorized. For purposes of this Public License, the rights + specified in Section 2(b)(1)-(2) are not Copyright and Similar + Rights. + + e. Effective Technological Measures means those measures that, in the + absence of proper authority, may not be circumvented under laws + fulfilling obligations under Article 11 of the WIPO Copyright + Treaty adopted on December 20, 1996, and/or similar international + agreements. + + f. Exceptions and Limitations means fair use, fair dealing, and/or + any other exception or limitation to Copyright and Similar Rights + that applies to Your use of the Licensed Material. + + g. License Elements means the license attributes listed in the name + of a Creative Commons Public License. The License Elements of this + Public License are Attribution, NonCommercial, and ShareAlike. + + h. Licensed Material means the artistic or literary work, database, + or other material to which the Licensor applied this Public + License. + + i. Licensed Rights means the rights granted to You subject to the + terms and conditions of this Public License, which are limited to + all Copyright and Similar Rights that apply to Your use of the + Licensed Material and that the Licensor has authority to license. + + j. Licensor means the individual(s) or entity(ies) granting rights + under this Public License. + + k. NonCommercial means not primarily intended for or directed towards + commercial advantage or monetary compensation. For purposes of + this Public License, the exchange of the Licensed Material for + other material subject to Copyright and Similar Rights by digital + file-sharing or similar means is NonCommercial provided there is + no payment of monetary compensation in connection with the + exchange. + + l. Share means to provide material to the public by any means or + process that requires permission under the Licensed Rights, such + as reproduction, public display, public performance, distribution, + dissemination, communication, or importation, and to make material + available to the public including in ways that members of the + public may access the material from a place and at a time + individually chosen by them. + + m. Sui Generis Database Rights means rights other than copyright + resulting from Directive 96/9/EC of the European Parliament and of + the Council of 11 March 1996 on the legal protection of databases, + as amended and/or succeeded, as well as other essentially + equivalent rights anywhere in the world. + + n. You means the individual or entity exercising the Licensed Rights + under this Public License. Your has a corresponding meaning. + + +Section 2 -- Scope. + + a. License grant. + + 1. Subject to the terms and conditions of this Public License, + the Licensor hereby grants You a worldwide, royalty-free, + non-sublicensable, non-exclusive, irrevocable license to + exercise the Licensed Rights in the Licensed Material to: + + a. reproduce and Share the Licensed Material, in whole or + in part, for NonCommercial purposes only; and + + b. produce, reproduce, and Share Adapted Material for + NonCommercial purposes only. + + 2. Exceptions and Limitations. For the avoidance of doubt, where + Exceptions and Limitations apply to Your use, this Public + License does not apply, and You do not need to comply with + its terms and conditions. + + 3. Term. The term of this Public License is specified in Section + 6(a). + + 4. Media and formats; technical modifications allowed. The + Licensor authorizes You to exercise the Licensed Rights in + all media and formats whether now known or hereafter created, + and to make technical modifications necessary to do so. The + Licensor waives and/or agrees not to assert any right or + authority to forbid You from making technical modifications + necessary to exercise the Licensed Rights, including + technical modifications necessary to circumvent Effective + Technological Measures. For purposes of this Public License, + simply making modifications authorized by this Section 2(a) + (4) never produces Adapted Material. + + 5. Downstream recipients. + + a. Offer from the Licensor -- Licensed Material. Every + recipient of the Licensed Material automatically + receives an offer from the Licensor to exercise the + Licensed Rights under the terms and conditions of this + Public License. + + b. Additional offer from the Licensor -- Adapted Material. + Every recipient of Adapted Material from You + automatically receives an offer from the Licensor to + exercise the Licensed Rights in the Adapted Material + under the conditions of the Adapter's License You apply. + + c. No downstream restrictions. You may not offer or impose + any additional or different terms or conditions on, or + apply any Effective Technological Measures to, the + Licensed Material if doing so restricts exercise of the + Licensed Rights by any recipient of the Licensed + Material. + + 6. No endorsement. Nothing in this Public License constitutes or + may be construed as permission to assert or imply that You + are, or that Your use of the Licensed Material is, connected + with, or sponsored, endorsed, or granted official status by, + the Licensor or others designated to receive attribution as + provided in Section 3(a)(1)(A)(i). + + b. Other rights. + + 1. Moral rights, such as the right of integrity, are not + licensed under this Public License, nor are publicity, + privacy, and/or other similar personality rights; however, to + the extent possible, the Licensor waives and/or agrees not to + assert any such rights held by the Licensor to the limited + extent necessary to allow You to exercise the Licensed + Rights, but not otherwise. + + 2. Patent and trademark rights are not licensed under this + Public License. + + 3. To the extent possible, the Licensor waives any right to + collect royalties from You for the exercise of the Licensed + Rights, whether directly or through a collecting society + under any voluntary or waivable statutory or compulsory + licensing scheme. In all other cases the Licensor expressly + reserves any right to collect such royalties, including when + the Licensed Material is used other than for NonCommercial + purposes. + + +Section 3 -- License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the +following conditions. + + a. Attribution. + + 1. If You Share the Licensed Material (including in modified + form), You must: + + a. retain the following if it is supplied by the Licensor + with the Licensed Material: + + i. identification of the creator(s) of the Licensed + Material and any others designated to receive + attribution, in any reasonable manner requested by + the Licensor (including by pseudonym if + designated); + + ii. a copyright notice; + + iii. a notice that refers to this Public License; + + iv. a notice that refers to the disclaimer of + warranties; + + v. a URI or hyperlink to the Licensed Material to the + extent reasonably practicable; + + b. indicate if You modified the Licensed Material and + retain an indication of any previous modifications; and + + c. indicate the Licensed Material is licensed under this + Public License, and include the text of, or the URI or + hyperlink to, this Public License. + + 2. You may satisfy the conditions in Section 3(a)(1) in any + reasonable manner based on the medium, means, and context in + which You Share the Licensed Material. For example, it may be + reasonable to satisfy the conditions by providing a URI or + hyperlink to a resource that includes the required + information. + 3. If requested by the Licensor, You must remove any of the + information required by Section 3(a)(1)(A) to the extent + reasonably practicable. + + b. ShareAlike. + + In addition to the conditions in Section 3(a), if You Share + Adapted Material You produce, the following conditions also apply. + + 1. The Adapter's License You apply must be a Creative Commons + license with the same License Elements, this version or + later, or a BY-NC-SA Compatible License. + + 2. You must include the text of, or the URI or hyperlink to, the + Adapter's License You apply. You may satisfy this condition + in any reasonable manner based on the medium, means, and + context in which You Share Adapted Material. + + 3. You may not offer or impose any additional or different terms + or conditions on, or apply any Effective Technological + Measures to, Adapted Material that restrict exercise of the + rights granted under the Adapter's License You apply. + + +Section 4 -- Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that +apply to Your use of the Licensed Material: + + a. for the avoidance of doubt, Section 2(a)(1) grants You the right + to extract, reuse, reproduce, and Share all or a substantial + portion of the contents of the database for NonCommercial purposes + only; + + b. if You include all or a substantial portion of the database + contents in a database in which You have Sui Generis Database + Rights, then the database in which You have Sui Generis Database + Rights (but not its individual contents) is Adapted Material, + including for purposes of Section 3(b); and + + c. You must comply with the conditions in Section 3(a) if You Share + all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not +replace Your obligations under this Public License where the Licensed +Rights include other Copyright and Similar Rights. + + +Section 5 -- Disclaimer of Warranties and Limitation of Liability. + + a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE + EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS + AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF + ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, + IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, + WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR + PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT + KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT + ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. + + b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE + TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, + NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, + INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, + COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR + USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN + ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR + DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR + IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. + + c. The disclaimer of warranties and limitation of liability provided + above shall be interpreted in a manner that, to the extent + possible, most closely approximates an absolute disclaimer and + waiver of all liability. + + +Section 6 -- Term and Termination. + + a. This Public License applies for the term of the Copyright and + Similar Rights licensed here. However, if You fail to comply with + this Public License, then Your rights under this Public License + terminate automatically. + + b. Where Your right to use the Licensed Material has terminated under + Section 6(a), it reinstates: + + 1. automatically as of the date the violation is cured, provided + it is cured within 30 days of Your discovery of the + violation; or + + 2. upon express reinstatement by the Licensor. + + For the avoidance of doubt, this Section 6(b) does not affect any + right the Licensor may have to seek remedies for Your violations + of this Public License. + + c. For the avoidance of doubt, the Licensor may also offer the + Licensed Material under separate terms or conditions or stop + distributing the Licensed Material at any time; however, doing so + will not terminate this Public License. + + d. Sections 1, 5, 6, 7, and 8 survive termination of this Public + License. + + +Section 7 -- Other Terms and Conditions. + + a. The Licensor shall not be bound by any additional or different + terms or conditions communicated by You unless expressly agreed. + + b. Any arrangements, understandings, or agreements regarding the + Licensed Material not stated herein are separate from and + independent of the terms and conditions of this Public License. + + +Section 8 -- Interpretation. + + a. For the avoidance of doubt, this Public License does not, and + shall not be interpreted to, reduce, limit, restrict, or impose + conditions on any use of the Licensed Material that could lawfully + be made without permission under this Public License. + + b. To the extent possible, if any provision of this Public License is + deemed unenforceable, it shall be automatically reformed to the + minimum extent necessary to make it enforceable. If the provision + cannot be reformed, it shall be severed from this Public License + without affecting the enforceability of the remaining terms and + conditions. + + c. No term or condition of this Public License will be waived and no + failure to comply consented to unless expressly agreed to by the + Licensor. + + d. Nothing in this Public License constitutes or may be interpreted + as a limitation upon, or waiver of, any privileges and immunities + that apply to the Licensor or You, including from the legal + processes of any jurisdiction or authority. + +======================================================================= + +Creative Commons is not a party to its public +licenses. Notwithstanding, Creative Commons may elect to apply one of +its public licenses to material it publishes and in those instances +will be considered the “Licensor.” The text of the Creative Commons +public licenses is dedicated to the public domain under the CC0 Public +Domain Dedication. Except for the limited purpose of indicating that +material is shared under a Creative Commons public license or as +otherwise permitted by the Creative Commons policies published at +creativecommons.org/policies, Creative Commons does not authorize the +use of the trademark "Creative Commons" or any other trademark or logo +of Creative Commons without its prior written consent including, +without limitation, in connection with any unauthorized modifications +to any of its public licenses or any other arrangements, +understandings, or agreements concerning use of licensed material. For +the avoidance of doubt, this paragraph does not form part of the +public licenses. + +Creative Commons may be contacted at creativecommons.org. + diff --git a/suyu/README.md b/suyu/README.md index b59a4bf8db..6334f02b2c 100644 --- a/suyu/README.md +++ b/suyu/README.md @@ -57,6 +57,8 @@ You can also contact any of the developers on Discord to learn more about the cu * __macOS__: [Releases](https://git.suyu.dev/suyu/suyu/releases) * __Android__: [Releases](https://git.suyu.dev/suyu/suyu/releases) +If you want daily builds then go here. https://git.suyu.dev/suyu/suyu/actions + We have official builds [here.](https://git.suyu.dev/suyu/suyu/releases) If any website or person is claiming to have a build for suyu, take that with a grain of salt. ## Building diff --git a/suyu/dist/readme/suyu__Logo-Pill.svg b/suyu/dist/readme/suyu__Logo-Pill.svg index e34ab989c8..673732798a 100644 --- a/suyu/dist/readme/suyu__Logo-Pill.svg +++ b/suyu/dist/readme/suyu__Logo-Pill.svg @@ -1,3 +1,8 @@ + + diff --git a/suyu/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SettingsItem.kt b/suyu/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SettingsItem.kt index 8aa8a477de..f59f4ebf53 100644 --- a/suyu/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SettingsItem.kt +++ b/suyu/src/android/app/src/main/java/org/suyu/suyu_emu/features/settings/model/view/SettingsItem.kt @@ -241,6 +241,8 @@ abstract class SettingsItem( IntSetting.FSR_SHARPENING_SLIDER, titleId = R.string.fsr_sharpness, descriptionId = R.string.fsr_sharpness_description, + min = 0, + max = 200, units = "%" ) ) @@ -327,6 +329,8 @@ abstract class SettingsItem( ByteSetting.AUDIO_VOLUME, titleId = R.string.audio_volume, descriptionId = R.string.audio_volume_description, + min = 0, + max = 120, units = "%" ) ) diff --git a/suyu/src/android/app/src/main/res/values/arrays.xml b/suyu/src/android/app/src/main/res/values/arrays.xml index 1bd6455b4c..8537488d4e 100644 --- a/suyu/src/android/app/src/main/res/values/arrays.xml +++ b/suyu/src/android/app/src/main/res/values/arrays.xml @@ -142,6 +142,7 @@ @string/ratio_force_four_three @string/ratio_force_twenty_one_nine @string/ratio_force_sixteen_ten + @string/ratio_force_thirty_two_nine @string/ratio_stretch @@ -151,6 +152,7 @@ 2 3 4 + 5 diff --git a/suyu/src/android/app/src/main/res/values/strings.xml b/suyu/src/android/app/src/main/res/values/strings.xml index a2487f4f11..5331f2b419 100644 --- a/suyu/src/android/app/src/main/res/values/strings.xml +++ b/suyu/src/android/app/src/main/res/values/strings.xml @@ -601,6 +601,7 @@ Force 4:3 Force 21:9 Force 16:10 + Force 32:9 Stretch to window diff --git a/suyu/src/android/gradlew b/suyu/src/android/gradlew index 766b044aac..afa1279664 100755 --- a/suyu/src/android/gradlew +++ b/suyu/src/android/gradlew @@ -1,65 +1,12 @@ -#!/bin/sh +#!/usr/bin/env sh -# -# Copyright © 2015-2021 the original authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# +# SPDX-FileCopyrightText: 2023 yuzu Emulator Project +# SPDX-License-Identifier: GPL-3.0-or-later ############################################################################## -# -# Gradle start up script for POSIX generated by Gradle. -# -# Important for running: -# -# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is -# noncompliant, but you have some other compliant shell such as ksh or -# bash, then to run this script, type that shell name before the whole -# command line, like: -# -# ksh Gradle -# -# Busybox and similar reduced shells will NOT work, because this script -# requires all of these POSIX shell features: -# * functions; -# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», -# «${var#prefix}», «${var%suffix}», and «$( cmd )»; -# * compound commands having a testable exit status, especially «case»; -# * various built-in commands including «command», «set», and «ulimit». -# -# Important for patching: -# -# (2) This script targets any POSIX shell, so it avoids extensions provided -# by Bash, Ksh, etc; in particular arrays are avoided. -# -# The "traditional" practice of packing multiple parameters into a -# space-separated string is a well documented source of bugs and security -# problems, so this is (mostly) avoided, by progressively accumulating -# options in "$@", and eventually passing that to Java. -# -# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, -# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; -# see the in-line comments for details. -# -# There are tweaks for specific operating systems such as AIX, CygWin, -# Darwin, MinGW, and NonStop. -# -# (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt -# within the Gradle project. -# -# You can find Gradle at https://github.com/gradle/gradle/. -# +## +## Gradle start up script for UN*X +## ############################################################################## # Attempt to set APP_HOME diff --git a/suyu/src/android/gradlew.bat b/suyu/src/android/gradlew.bat index fec6cb2bdd..be152d1088 100644 --- a/suyu/src/android/gradlew.bat +++ b/suyu/src/android/gradlew.bat @@ -1,20 +1,7 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem +@rem SPDX-FileCopyrightText: 2023 yuzu Emulator Project +@rem SPDX-License-Identifier: GPL-3.0-or-later -@if "%DEBUG%"=="" @echo off +@if "%DEBUG%" == "" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows diff --git a/suyu/src/core/hle/service/am/service/library_applet_creator.cpp b/suyu/src/core/hle/service/am/service/library_applet_creator.cpp index 3ffb03bc97..c2d9b43639 100644 --- a/suyu/src/core/hle/service/am/service/library_applet_creator.cpp +++ b/suyu/src/core/hle/service/am/service/library_applet_creator.cpp @@ -47,53 +47,6 @@ bool ShouldCreateGuestApplet(AppletId applet_id) { return true; } -AppletProgramId AppletIdToProgramId(AppletId applet_id) { - switch (applet_id) { - case AppletId::OverlayDisplay: - return AppletProgramId::OverlayDisplay; - case AppletId::QLaunch: - return AppletProgramId::QLaunch; - case AppletId::Starter: - return AppletProgramId::Starter; - case AppletId::Auth: - return AppletProgramId::Auth; - case AppletId::Cabinet: - return AppletProgramId::Cabinet; - case AppletId::Controller: - return AppletProgramId::Controller; - case AppletId::DataErase: - return AppletProgramId::DataErase; - case AppletId::Error: - return AppletProgramId::Error; - case AppletId::NetConnect: - return AppletProgramId::NetConnect; - case AppletId::ProfileSelect: - return AppletProgramId::ProfileSelect; - case AppletId::SoftwareKeyboard: - return AppletProgramId::SoftwareKeyboard; - case AppletId::MiiEdit: - return AppletProgramId::MiiEdit; - case AppletId::Web: - return AppletProgramId::Web; - case AppletId::Shop: - return AppletProgramId::Shop; - case AppletId::PhotoViewer: - return AppletProgramId::PhotoViewer; - case AppletId::Settings: - return AppletProgramId::Settings; - case AppletId::OfflineWeb: - return AppletProgramId::OfflineWeb; - case AppletId::LoginShare: - return AppletProgramId::LoginShare; - case AppletId::WebAuth: - return AppletProgramId::WebAuth; - case AppletId::MyPage: - return AppletProgramId::MyPage; - default: - return static_cast(0); - } -} - std::shared_ptr CreateGuestApplet(Core::System& system, WindowSystem& window_system, std::shared_ptr caller_applet, @@ -163,6 +116,53 @@ std::shared_ptr CreateFrontendApplet(Core::System& syste } // namespace +AppletProgramId AppletIdToProgramId(AppletId applet_id) { + switch (applet_id) { + case AppletId::OverlayDisplay: + return AppletProgramId::OverlayDisplay; + case AppletId::QLaunch: + return AppletProgramId::QLaunch; + case AppletId::Starter: + return AppletProgramId::Starter; + case AppletId::Auth: + return AppletProgramId::Auth; + case AppletId::Cabinet: + return AppletProgramId::Cabinet; + case AppletId::Controller: + return AppletProgramId::Controller; + case AppletId::DataErase: + return AppletProgramId::DataErase; + case AppletId::Error: + return AppletProgramId::Error; + case AppletId::NetConnect: + return AppletProgramId::NetConnect; + case AppletId::ProfileSelect: + return AppletProgramId::ProfileSelect; + case AppletId::SoftwareKeyboard: + return AppletProgramId::SoftwareKeyboard; + case AppletId::MiiEdit: + return AppletProgramId::MiiEdit; + case AppletId::Web: + return AppletProgramId::Web; + case AppletId::Shop: + return AppletProgramId::Shop; + case AppletId::PhotoViewer: + return AppletProgramId::PhotoViewer; + case AppletId::Settings: + return AppletProgramId::Settings; + case AppletId::OfflineWeb: + return AppletProgramId::OfflineWeb; + case AppletId::LoginShare: + return AppletProgramId::LoginShare; + case AppletId::WebAuth: + return AppletProgramId::WebAuth; + case AppletId::MyPage: + return AppletProgramId::MyPage; + default: + return static_cast(0); + } +} + ILibraryAppletCreator::ILibraryAppletCreator(Core::System& system_, std::shared_ptr applet, WindowSystem& window_system) : ServiceFramework{system_, "ILibraryAppletCreator"}, diff --git a/suyu/src/core/hle/service/am/service/library_applet_creator.h b/suyu/src/core/hle/service/am/service/library_applet_creator.h index a10a769828..80ea6bd1af 100644 --- a/suyu/src/core/hle/service/am/service/library_applet_creator.h +++ b/suyu/src/core/hle/service/am/service/library_applet_creator.h @@ -35,4 +35,6 @@ private: const std::shared_ptr m_applet; }; +AppletProgramId AppletIdToProgramId(AppletId applet_id); + } // namespace Service::AM diff --git a/suyu/src/suyu/discord_impl.cpp b/suyu/src/suyu/discord_impl.cpp index f5a6448d82..b72b9e41e3 100644 --- a/suyu/src/suyu/discord_impl.cpp +++ b/suyu/src/suyu/discord_impl.cpp @@ -24,7 +24,8 @@ DiscordImpl::DiscordImpl(Core::System& system_) : system{system_} { DiscordEventHandlers handlers{}; // The number is the client ID for suyu, it's used for images and the // application name - Discord_Initialize("712465656758665259", &handlers, 1, nullptr); + // NOTE: This application is owned by million1156 (million@alyocord.com) + Discord_Initialize("1221314350216646828", &handlers, 1, nullptr); } DiscordImpl::~DiscordImpl() { diff --git a/suyu/src/suyu/main.cpp b/suyu/src/suyu/main.cpp index fc0028b45d..9a3ee7f662 100644 --- a/suyu/src/suyu/main.cpp +++ b/suyu/src/suyu/main.cpp @@ -1756,11 +1756,10 @@ bool GMainWindow::LoadROM(const QString& filename, Service::AM::FrontendAppletPa } if (!ContentManager::AreKeysPresent()) { - QMessageBox::warning(this, tr("Derivation Components Missing"), - tr("Encryption keys are missing. " - "In order to use this emulator, " - "you need to provide your own encryption keys " - "in order to play them.")); + QMessageBox::warning( + this, tr("Encryption Keys Missing"), + tr("In order to use suyu you need to provide your own encryption keys. " + "You can install them by going to Tools -> Install encryption keys.")); return false; } } diff --git a/suyu/src/suyu_cmd/suyu.cpp b/suyu/src/suyu_cmd/suyu.cpp index eb46bb4e39..c9c35464e6 100644 --- a/suyu/src/suyu_cmd/suyu.cpp +++ b/suyu/src/suyu_cmd/suyu.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include @@ -23,9 +24,12 @@ #include "core/core_timing.h" #include "core/cpu_manager.h" #include "core/crypto/key_manager.h" +#include "core/file_sys/content_archive.h" +#include "core/file_sys/nca_metadata.h" #include "core/file_sys/registered_cache.h" #include "core/file_sys/vfs/vfs_real.h" #include "core/hle/service/am/applet_manager.h" +#include "core/hle/service/am/service/library_applet_creator.h" #include "core/hle/service/filesystem/filesystem.h" #include "core/loader/loader.h" #include "frontend_common/config.h" @@ -68,7 +72,7 @@ __declspec(dllexport) int AmdPowerXpressRequestHighPerformance = 1; static void PrintHelp(const char* argv0) { std::cout << "Usage: " << argv0 - << " [options] \n" + << " [options]\n" "-c, --config Load the specified configuration file\n" "-f, --fullscreen Start in fullscreen mode\n" "-g, --game File path of the game to load\n" @@ -77,7 +81,13 @@ static void PrintHelp(const char* argv0) { " Nickname, password, address and port for multiplayer\n" "-p, --program Pass following string as arguments to executable\n" "-u, --user Select a specific user profile from 0 to 7\n" - "-v, --version Output version information and exit\n"; + "-v, --version Output version information and exit\n" + "-l, " + "--applet-params=" + "\"program_id,applet_id,applet_type,launch_type,prog_index,prev_prog_index\"\n" + " Numerical parameters for launching an applet. If no\n" + " game is provided, then the applet will launch off of\n" + " the applet_id.\n"; } static void PrintVersion() { @@ -212,6 +222,7 @@ int main(int argc, char** argv) { bool use_multiplayer = false; bool fullscreen = false; + Service::AM::FrontendAppletParameters load_parameters{}; std::string nickname{}; std::string password{}; std::string address{}; @@ -223,6 +234,7 @@ int main(int argc, char** argv) { {"fullscreen", no_argument, 0, 'f'}, {"help", no_argument, 0, 'h'}, {"game", required_argument, 0, 'g'}, + {"applet-params", optional_argument, 0, 'l'}, {"multiplayer", required_argument, 0, 'm'}, {"program", optional_argument, 0, 'p'}, {"user", required_argument, 0, 'u'}, @@ -232,7 +244,7 @@ int main(int argc, char** argv) { }; while (optind < argc) { - int arg = getopt_long(argc, argv, "g:fhvp::c:u:", long_options, &option_index); + int arg = getopt_long(argc, argv, "g:fhvp::c:u:l::", long_options, &option_index); if (arg != -1) { switch (static_cast(arg)) { case 'c': @@ -250,6 +262,27 @@ int main(int argc, char** argv) { filepath = str_arg; break; } + case 'l': { + std::string str_arg(argv[optind++]); + str_arg.append(",0"); // FALLBACK: if string is partially completed ("1234,3") + // this will set all those unset to 0. otherwise we get + // all 3s. + std::stringstream stream(str_arg); + std::string sub; + std::getline(stream, sub, ','); + load_parameters.program_id = std::stoull(sub); + std::getline(stream, sub, ','); + load_parameters.applet_id = static_cast(std::stoul(sub)); + std::getline(stream, sub, ','); + load_parameters.applet_type = static_cast(std::stoi(sub)); + std::getline(stream, sub, ','); + load_parameters.launch_type = static_cast(std::stoi(sub)); + std::getline(stream, sub, ','); + load_parameters.program_index = std::stoi(sub); + std::getline(stream, sub, ','); + load_parameters.previous_program_index = std::stoi(sub); + break; + } case 'm': { use_multiplayer = true; const std::string str_arg(optarg); @@ -331,7 +364,7 @@ int main(int argc, char** argv) { Common::ConfigureNvidiaEnvironmentFlags(); - if (filepath.empty()) { + if (filepath.empty() && !static_cast(load_parameters.applet_id)) { LOG_CRITICAL(Frontend, "Failed to load ROM: No ROM specified"); return -1; } @@ -367,9 +400,27 @@ int main(int argc, char** argv) { system.GetFileSystemController().CreateFactories(*system.GetFilesystem()); system.GetUserChannel().clear(); - Service::AM::FrontendAppletParameters load_parameters{ - .applet_id = Service::AM::AppletId::Application, - }; + if (static_cast(load_parameters.applet_id)) { + // code below based off of suyu/main.cpp : GMainWindow::OnHomeMenu() + Service::AM::AppletProgramId applet_prog_id = + Service::AM::AppletIdToProgramId(load_parameters.applet_id); + auto sysnand = system.GetFileSystemController().GetSystemNANDContents(); + if (!sysnand) { + LOG_CRITICAL(Frontend, "Failed to load applet: Firmware not installed."); + return -1; + } + + auto user_applet_nca = sysnand->GetEntry(static_cast(applet_prog_id), + FileSys::ContentRecordType::Program); + if (!user_applet_nca) { + LOG_CRITICAL(Frontend, "Failed to load applet: applet cannot be found."); + return -1; + } + if (filepath.empty()) + filepath = user_applet_nca->GetFullPath(); + } else { + load_parameters.applet_id = Service::AM::AppletId::Application; + } const Core::SystemResultStatus load_result{system.Load(*emu_window, filepath, load_parameters)}; switch (load_result) { diff --git a/xray-core/go.mod b/xray-core/go.mod index ac01776ec9..1e13ef5432 100644 --- a/xray-core/go.mod +++ b/xray-core/go.mod @@ -12,7 +12,7 @@ require ( github.com/pires/go-proxyproto v0.7.0 github.com/quic-go/quic-go v0.42.0 github.com/refraction-networking/utls v1.6.3 - github.com/sagernet/sing v0.3.6 + github.com/sagernet/sing v0.3.8 github.com/sagernet/sing-shadowsocks v0.2.6 github.com/seiflotfy/cuckoofilter v0.0.0-20220411075957-e3b120b3f5fb github.com/stretchr/testify v1.9.0 diff --git a/xray-core/go.sum b/xray-core/go.sum index 59753582bf..9da6b4aeea 100644 --- a/xray-core/go.sum +++ b/xray-core/go.sum @@ -119,8 +119,8 @@ github.com/refraction-networking/utls v1.6.3/go.mod h1:yil9+7qSl+gBwJqztoQseO6Pr github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 h1:f/FNXud6gA3MNr8meMVVGxhp+QBTqY91tM8HjEuMjGg= github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3/go.mod h1:HgjTstvQsPGkxUsCd2KWxErBblirPizecHcpD3ffK+s= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= -github.com/sagernet/sing v0.3.6 h1:dsEdYLKBQlrxUfw1a92x0VdPvR1/BOxQ+HIMyaoEJsQ= -github.com/sagernet/sing v0.3.6/go.mod h1:+60H3Cm91RnL9dpVGWDPHt0zTQImO9Vfqt9a4rSambI= +github.com/sagernet/sing v0.3.8 h1:gm4JKalPhydMYX2zFOTnnd4TXtM/16WFRqSjMepYQQk= +github.com/sagernet/sing v0.3.8/go.mod h1:+60H3Cm91RnL9dpVGWDPHt0zTQImO9Vfqt9a4rSambI= github.com/sagernet/sing-shadowsocks v0.2.6 h1:xr7ylAS/q1cQYS8oxKKajhuQcchd5VJJ4K4UZrrpp0s= github.com/sagernet/sing-shadowsocks v0.2.6/go.mod h1:j2YZBIpWIuElPFL/5sJAj470bcn/3QQ5lxZUNKLDNAM= github.com/seiflotfy/cuckoofilter v0.0.0-20220411075957-e3b120b3f5fb h1:XfLJSPIOUX+osiMraVgIrMR27uMXnRJWGm1+GL8/63U= diff --git a/xray-core/infra/conf/xray.go b/xray-core/infra/conf/xray.go index 645da473d0..e48e04b21b 100644 --- a/xray-core/infra/conf/xray.go +++ b/xray-core/infra/conf/xray.go @@ -481,6 +481,10 @@ func (c *Config) Override(o *Config, fn string) { c.Observatory = o.Observatory } + if o.BurstObservatory != nil { + c.BurstObservatory = o.BurstObservatory + } + // deprecated attrs... keep them for now if o.InboundConfig != nil { c.InboundConfig = o.InboundConfig