summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRepository mirror & CI <repomirrorci@gentoo.org>2024-05-11 18:03:43 +0000
committerRepository mirror & CI <repomirrorci@gentoo.org>2024-05-11 18:03:43 +0000
commit40518473ec4bc1788bb59f0d77f093efcbc1ca98 (patch)
tree59a3aa1ad67dab67e6a501a7db3342d23eda7ff0
parent2024-05-11 17:48:46 UTC (diff)
parentnet-misc/sunshine: Fix NPM issue by shipping pre-compiled assets (diff)
downloadgentoo-40518473ec4bc1788bb59f0d77f093efcbc1ca98.tar.gz
gentoo-40518473ec4bc1788bb59f0d77f093efcbc1ca98.tar.bz2
gentoo-40518473ec4bc1788bb59f0d77f093efcbc1ca98.zip
Merge updates from master
-rw-r--r--net-misc/sunshine/Manifest2
-rw-r--r--net-misc/sunshine/files/sunshine-find-npm.patch100
-rw-r--r--net-misc/sunshine/sunshine-0.23.1.ebuild16
-rw-r--r--net-misc/sunshine/sunshine-9999.ebuild16
4 files changed, 115 insertions, 19 deletions
diff --git a/net-misc/sunshine/Manifest b/net-misc/sunshine/Manifest
index 4392f4217e78..2efe3ef8929a 100644
--- a/net-misc/sunshine/Manifest
+++ b/net-misc/sunshine/Manifest
@@ -6,5 +6,5 @@ DIST moonlight-common-c-cbd0ec1b25edfb8ee8645fffa49ff95b6e04c70e.tar.gz 148691 B
DIST moonlight-enet-04e27590670a87a7cd40f5a05cda97467e4e25a3.tar.gz 86434 BLAKE2B 8a5535843e4c650b945882abac1542bf8c79dc420607b88433d239aa5a17380f02e77bb8f1fcbe45dcb8ef894e6c9b4d940f4d3b34b956ce42d86f6a8ca5227a SHA512 6d2e9447e546489365b1fb563ed52664a91981717a3a3a9faa9600ab62be5ac09bd24ee9dd505833d31981ce6222f5ef430268a9f92aa83fa288b5b8d681e2aa
DIST nanors-e9e242e98e27037830490b2a752895ca68f75f8b.tar.gz 194694 BLAKE2B 1effd7c0884ffd38b63d61a7872337797529ef2012f9de0950088a5004cb32a2fb2c14bcab2ec6719968864e5e6b9a67e96afa39466e2071bf4a0cd752ae4b29 SHA512 548be25650619a6c31944cd7a745fd40d5bc5008f2d7f91e0207a10b923764cb88fd2ddcb71eaed7c4863ec89b34d61011b666e292da071ac3b4429e4d7dd027
DIST sunshine-0.23.1.tar.gz 24503568 BLAKE2B 0c589f38a7d638c49af6385def2676de04af422f85d37228988bd7c822ffc006dbac0a1695e01527ac7a1d5ee28103cff00d78a97d57f61247772a6e6cc1fe18 SHA512 7a9150baf4ecdad1035666993c60744390e227ebeaf467447c53675dc0aecc7031cd9c9b253fbbbbac072f5592c3690c6acfde41f38d441497a17157417f1e16
-DIST sunshine-npm-cache-0.23.1.tar.xz 23477572 BLAKE2B 24674a6c6ebed1cc31e3fbee2ededef27c1c24cc7f1be63fba19023b1a6171b9e1a0e83363f7eabad1957a96eede471ae3df4df5e5ba66f5c80f57b56781bf52 SHA512 84ec1d393b1c2f333954bf0f5a42e491bf4d7ff2031c8065c56e06eb0eb7f7b750e2d2f6a1da321067212fdf55aa4c917b2ce0db7c957231821282a33966cd93
+DIST sunshine-assets-0.23.1.tar.xz 1269348 BLAKE2B 36dd00fbf4bb1bfa213d53fd9dc78ed1fee9e12efcfb138dbd54932c3f19447d832da506175a982be7564408e06b0699b0b7cb4b9811ab81b47e30681c915bab SHA512 9fe9e0ee29864faa0f67dd4d501d116be1476f2c7ec688646b91eb87cb38e9e9d2baecb8335df29075fd3f60bf05b900c20dcb8406306d68a62c30ff55d1b7aa
DIST wlr-protocols-2b8d43325b7012cc3f9b55c08d26e50e42beac7d.tar.bz2 19708 BLAKE2B fe20f21ee8282d7afcdbb8f3863e50b217fb71e7814f404f288b0d09d30c9e30135769b12342d9e9126a8cb2ab35d6ced0c5562807d274b1d97224f5f3d02511 SHA512 7935b5089820304aa8cb0e1a8f4e0db6ccd5285973a3f3554ccc935dd88e379eb03c3b2dd199da97b6ff8dfbbbf124ca65fb1c12821a168d34bd7e26d8514edb
diff --git a/net-misc/sunshine/files/sunshine-find-npm.patch b/net-misc/sunshine/files/sunshine-find-npm.patch
new file mode 100644
index 000000000000..42b91299cca5
--- /dev/null
+++ b/net-misc/sunshine/files/sunshine-find-npm.patch
@@ -0,0 +1,100 @@
+From 0fa3273af349089b7d62c996fcaea67b10ed2a0c Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Sat, 4 May 2024 23:32:29 +0100
+Subject: [PATCH 1/2] build: Unify asset building by leveraging CMake's env
+ command
+
+`add_custom_target` can also accept multiple commands to be run in
+sequence. It isn't clear how quoting applies here, but I've tested it,
+and it seems to be behave as expected when spaces are present.
+---
+ cmake/targets/common.cmake | 7 +++++++
+ cmake/targets/unix.cmake | 6 ------
+ cmake/targets/windows.cmake | 6 ------
+ 3 files changed, 7 insertions(+), 12 deletions(-)
+
+diff --git a/cmake/targets/common.cmake b/cmake/targets/common.cmake
+index ee79528c..04d8e954 100644
+--- a/cmake/targets/common.cmake
++++ b/cmake/targets/common.cmake
+@@ -15,6 +15,13 @@ else()
+ set(NPM_BUILD_HOMEBREW "")
+ endif()
+
++#WebUI build
++add_custom_target(web-ui ALL
++ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
++ COMMENT "Installing NPM Dependencies and Building the Web UI"
++ COMMAND npm install
++ COMMAND "${CMAKE_COMMAND}" -E env "SUNSHINE_BUILD_HOMEBREW=${NPM_BUILD_HOMEBREW}" "SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR}" "SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR}" npm run build) # cmake-lint: disable=C0301
++
+ # platform specific target definitions
+ if(WIN32)
+ include(${CMAKE_MODULE_PATH}/targets/windows.cmake)
+diff --git a/cmake/targets/unix.cmake b/cmake/targets/unix.cmake
+index 5527a987..047a0b3d 100644
+--- a/cmake/targets/unix.cmake
++++ b/cmake/targets/unix.cmake
+@@ -1,8 +1,2 @@
+ # unix specific target definitions
+ # put anything here that applies to both linux and macos
+-
+-#WebUI build
+-add_custom_target(web-ui ALL
+- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+- COMMENT "Installing NPM Dependencies and Building the Web UI"
+- COMMAND sh -c \"npm install && SUNSHINE_BUILD_HOMEBREW=${NPM_BUILD_HOMEBREW} SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR} SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR} npm run build\") # cmake-lint: disable=C0301
+diff --git a/cmake/targets/windows.cmake b/cmake/targets/windows.cmake
+index e429feaa..341d7c2e 100644
+--- a/cmake/targets/windows.cmake
++++ b/cmake/targets/windows.cmake
+@@ -4,9 +4,3 @@ set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll")
+ find_library(ZLIB ZLIB1)
+ list(APPEND SUNSHINE_EXTERNAL_LIBRARIES
+ Wtsapi32.lib)
+-
+-#WebUI build
+-add_custom_target(web-ui ALL
+- WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+- COMMENT "Installing NPM Dependencies and Building the Web UI"
+- COMMAND cmd /C "npm install && set \"SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR}\" && set \"SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR}\" && npm run build") # cmake-lint: disable=C0301
+--
+2.44.0
+
+
+From f7f93c787bc7c6e82296f0b28c1684ba93cb0956 Mon Sep 17 00:00:00 2001
+From: James Le Cuirot <chewi@gentoo.org>
+Date: Sun, 5 May 2024 23:30:36 +0100
+Subject: [PATCH 2/2] build: Use find_program to find NPM so it can be
+ overridden
+
+This is useful for Gentoo, which needs to be able to do entirely offline
+builds, because it can override this with `true` while shipping
+pre-compiled assets. Gentoo has tried to ship cached NPM modules
+instead, but it turns out these are very sensitive to the NPM version.
+---
+ cmake/targets/common.cmake | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/cmake/targets/common.cmake b/cmake/targets/common.cmake
+index 04d8e954..5c489551 100644
+--- a/cmake/targets/common.cmake
++++ b/cmake/targets/common.cmake
+@@ -16,11 +16,12 @@ else()
+ endif()
+
+ #WebUI build
++find_program(NPM npm REQUIRED)
+ add_custom_target(web-ui ALL
+ WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
+ COMMENT "Installing NPM Dependencies and Building the Web UI"
+- COMMAND npm install
+- COMMAND "${CMAKE_COMMAND}" -E env "SUNSHINE_BUILD_HOMEBREW=${NPM_BUILD_HOMEBREW}" "SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR}" "SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR}" npm run build) # cmake-lint: disable=C0301
++ COMMAND "${NPM}" install
++ COMMAND "${CMAKE_COMMAND}" -E env "SUNSHINE_BUILD_HOMEBREW=${NPM_BUILD_HOMEBREW}" "SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR}" "SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR}" "${NPM}" run build) # cmake-lint: disable=C0301
+
+ # platform specific target definitions
+ if(WIN32)
+--
+2.44.0
+
diff --git a/net-misc/sunshine/sunshine-0.23.1.ebuild b/net-misc/sunshine/sunshine-0.23.1.ebuild
index 7b106a011c0a..a708fffba539 100644
--- a/net-misc/sunshine/sunshine-0.23.1.ebuild
+++ b/net-misc/sunshine/sunshine-0.23.1.ebuild
@@ -13,13 +13,10 @@ SWS_COMMIT="27b41f5ee154cca0fce4fe2955dd886d04e3a4ed"
WLRP_COMMIT="2b8d43325b7012cc3f9b55c08d26e50e42beac7d"
FFMPEG_VERSION="6.1.1"
-# To make the node-modules tarball:
+# To make the assets tarball:
# PV=
-# git fetch
-# git checkout v$PV
-# rm -rf node_modules npm_cache package-lock.json
-# npm_config_cache="${PWD}"/npm_cache npm install --logs-max=0 --omit=optional
-# XZ_OPT=-9 tar --xform="s:^:Sunshine-$PV/:" -Jcf /var/cache/distfiles/sunshine-npm-cache-$PV.tar.xz npm_cache package-lock.json
+# EGIT_OVERRIDE_COMMIT_LIZARDBYTE_SUNSHINE=v$PV ebuild sunshine-9999.ebuild clean compile
+# XZ_OPT=-9 tar --xform="s:^:Sunshine-$PV/:" -Jcf /var/cache/distfiles/sunshine-assets-$PV.tar.xz -C /var/tmp/portage/net-misc/sunshine-9999/work/sunshine-9999 assets/
if [[ ${PV} = 9999* ]]; then
inherit git-r3
@@ -40,7 +37,7 @@ else
https://gitlab.com/eidheim/Simple-Web-Server/-/archive/${SWS_COMMIT}/Simple-Web-Server-${SWS_COMMIT}.tar.bz2
https://gitlab.freedesktop.org/wlroots/wlr-protocols/-/archive/${WLRP_COMMIT}/wlr-protocols-${WLRP_COMMIT}.tar.bz2
https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.xz
- https://dev.gentoo.org/~chewi/distfiles/${PN}-npm-cache-${PV}.tar.xz
+ https://dev.gentoo.org/~chewi/distfiles/${PN}-assets-${PV}.tar.xz
"
KEYWORDS="~amd64 ~arm64"
S="${WORKDIR}/Sunshine-${PV}"
@@ -181,6 +178,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-custom-ffmpeg.patch
"${FILESDIR}"/${PN}-0.22.0-nvcodec.patch
+ "${FILESDIR}"/${PN}-find-npm.patch
)
# Make this mess a bit simpler.
@@ -188,7 +186,6 @@ CMAKE_IN_SOURCE_BUILD=1
# Make npm behave.
export npm_config_audit=false
-export npm_config_cache="${S}"/npm_cache
export npm_config_color=false
export npm_config_foreground_scripts=true
export npm_config_loglevel=verbose
@@ -353,6 +350,7 @@ src_configure() {
-DSYSTEMD_USER_UNIT_INSTALL_DIR=$(systemd_get_userunitdir)
-DUDEV_RULES_INSTALL_DIR=$(get_udevdir)/rules.d
)
+ [[ ${PV} = 9999* ]] || mycmakeargs+=( -DNPM="${BROOT}"/bin/true )
CMAKE_USE_DIR="${S}" cmake_src_configure
}
@@ -361,7 +359,7 @@ src_compile() {
emake -C "${WORKDIR}"/ffmpeg-build V=1 install
CMAKE_USE_DIR="${WORKDIR}/build-deps" cmake_src_compile
CMAKE_USE_DIR="${WORKDIR}/build-deps" cmake_build install
- CMAKE_USE_DIR="${S}" npm_config_offline=1 cmake_src_compile
+ CMAKE_USE_DIR="${S}" cmake_src_compile
}
pkg_postinst() {
diff --git a/net-misc/sunshine/sunshine-9999.ebuild b/net-misc/sunshine/sunshine-9999.ebuild
index 7b106a011c0a..a708fffba539 100644
--- a/net-misc/sunshine/sunshine-9999.ebuild
+++ b/net-misc/sunshine/sunshine-9999.ebuild
@@ -13,13 +13,10 @@ SWS_COMMIT="27b41f5ee154cca0fce4fe2955dd886d04e3a4ed"
WLRP_COMMIT="2b8d43325b7012cc3f9b55c08d26e50e42beac7d"
FFMPEG_VERSION="6.1.1"
-# To make the node-modules tarball:
+# To make the assets tarball:
# PV=
-# git fetch
-# git checkout v$PV
-# rm -rf node_modules npm_cache package-lock.json
-# npm_config_cache="${PWD}"/npm_cache npm install --logs-max=0 --omit=optional
-# XZ_OPT=-9 tar --xform="s:^:Sunshine-$PV/:" -Jcf /var/cache/distfiles/sunshine-npm-cache-$PV.tar.xz npm_cache package-lock.json
+# EGIT_OVERRIDE_COMMIT_LIZARDBYTE_SUNSHINE=v$PV ebuild sunshine-9999.ebuild clean compile
+# XZ_OPT=-9 tar --xform="s:^:Sunshine-$PV/:" -Jcf /var/cache/distfiles/sunshine-assets-$PV.tar.xz -C /var/tmp/portage/net-misc/sunshine-9999/work/sunshine-9999 assets/
if [[ ${PV} = 9999* ]]; then
inherit git-r3
@@ -40,7 +37,7 @@ else
https://gitlab.com/eidheim/Simple-Web-Server/-/archive/${SWS_COMMIT}/Simple-Web-Server-${SWS_COMMIT}.tar.bz2
https://gitlab.freedesktop.org/wlroots/wlr-protocols/-/archive/${WLRP_COMMIT}/wlr-protocols-${WLRP_COMMIT}.tar.bz2
https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.xz
- https://dev.gentoo.org/~chewi/distfiles/${PN}-npm-cache-${PV}.tar.xz
+ https://dev.gentoo.org/~chewi/distfiles/${PN}-assets-${PV}.tar.xz
"
KEYWORDS="~amd64 ~arm64"
S="${WORKDIR}/Sunshine-${PV}"
@@ -181,6 +178,7 @@ BDEPEND="
PATCHES=(
"${FILESDIR}"/${PN}-custom-ffmpeg.patch
"${FILESDIR}"/${PN}-0.22.0-nvcodec.patch
+ "${FILESDIR}"/${PN}-find-npm.patch
)
# Make this mess a bit simpler.
@@ -188,7 +186,6 @@ CMAKE_IN_SOURCE_BUILD=1
# Make npm behave.
export npm_config_audit=false
-export npm_config_cache="${S}"/npm_cache
export npm_config_color=false
export npm_config_foreground_scripts=true
export npm_config_loglevel=verbose
@@ -353,6 +350,7 @@ src_configure() {
-DSYSTEMD_USER_UNIT_INSTALL_DIR=$(systemd_get_userunitdir)
-DUDEV_RULES_INSTALL_DIR=$(get_udevdir)/rules.d
)
+ [[ ${PV} = 9999* ]] || mycmakeargs+=( -DNPM="${BROOT}"/bin/true )
CMAKE_USE_DIR="${S}" cmake_src_configure
}
@@ -361,7 +359,7 @@ src_compile() {
emake -C "${WORKDIR}"/ffmpeg-build V=1 install
CMAKE_USE_DIR="${WORKDIR}/build-deps" cmake_src_compile
CMAKE_USE_DIR="${WORKDIR}/build-deps" cmake_build install
- CMAKE_USE_DIR="${S}" npm_config_offline=1 cmake_src_compile
+ CMAKE_USE_DIR="${S}" cmake_src_compile
}
pkg_postinst() {