diff --git a/editors/vscode/Makefile b/editors/vscode/Makefile index 681c385255dd..40cc112e31a8 100644 --- a/editors/vscode/Makefile +++ b/editors/vscode/Makefile @@ -1,322 +1,322 @@ PORTNAME= vscode -DISTVERSION= 1.101.0 +DISTVERSION= 1.101.1 CATEGORIES= editors MASTER_SITES= https://github.com/tagattie/FreeBSD-VSCode/releases/download/${DISTVERSION}/:node_modules DISTFILES= vscode-node-modules-${DISTVERSION}${EXTRACT_SUFX}:node_modules \ vscode-marketplace-exts-${DISTVERSION}${EXTRACT_SUFX}:node_modules DIST_SUBDIR= ${PORTNAME} MAINTAINER= tagattie@FreeBSD.org COMMENT= Visual Studio Code - Open Source ("Code - OSS") WWW= https://code.visualstudio.com/ LICENSE= MIT LICENSE_FILE= ${WRKSRC}/LICENSE.txt ONLY_FOR_ARCHS= amd64 EXTRACT_DEPENDS=jq:textproc/jq \ node${NODEJS_VERSION}>0:www/node${NODEJS_VERSION} BUILD_DEPENDS= zip:archivers/zip \ electron${ELECTRON_VER_MAJOR}:devel/electron${ELECTRON_VER_MAJOR} \ jq:textproc/jq \ rg:textproc/ripgrep \ npm${NODEJS_SUFFIX}>0:www/npm${NODEJS_SUFFIX} LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-core \ libatspi.so:accessibility/at-spi2-core \ libasound.so:audio/alsa-lib \ libFLAC.so:audio/flac \ libopus.so:audio/opus \ libsndio.so:audio/sndio \ libdbus-1.so:devel/dbus \ libicuuc.so:devel/icu \ libepoll-shim.so:devel/libepoll-shim \ libevent.so:devel/libevent \ libffi.so:devel/libffi \ libnotify.so:devel/libnotify \ libpci.so:devel/libpci \ libnspr4.so:devel/nspr \ libpcre2-8.so:devel/pcre2 \ libre2.so:devel/re2 \ liblcms2.so:graphics/lcms2 \ libdrm.so:graphics/libdrm \ libpng.so:graphics/png \ libwayland-client.so:graphics/wayland \ libwebp.so:graphics/webp \ libdav1d.so:multimedia/dav1d \ libvpx.so:multimedia/libvpx \ libopenh264.so:multimedia/openh264 \ libpipewire-0.3.so:multimedia/pipewire \ libcups.so:print/cups \ libfreetype.so:print/freetype2 \ libharfbuzz.so:print/harfbuzz \ libsecret-1.so:security/libsecret \ libnss3.so:security/nss \ libexpat.so:textproc/expat2 \ libxkbcommon.so:x11/libxkbcommon \ libxshmfence.so:x11/libxshmfence \ libfontconfig.so:x11-fonts/fontconfig RUN_DEPENDS= xdg-open:devel/xdg-utils \ bash:shells/bash TEST_DEPENDS= electron${ELECTRON_VER_MAJOR}:devel/electron${ELECTRON_VER_MAJOR} \ bash:shells/bash USES= desktop-file-utils gl gmake gnome gssapi:mit iconv:wchar_t \ jpeg localbase:ldflags nodejs:22,build pkgconfig python:build \ shebangfix xorg USE_GITHUB= yes GH_ACCOUNT= microsoft -SOURCE_COMMIT_HASH= dfaf44141ea9deb3b4096f7cd6d24e00c147a4b1 +SOURCE_COMMIT_HASH= 18e3a1ec544e6907be1e944a94c496e302073435 BINARY_ALIAS= python=${PYTHON_CMD} USE_XORG= x11 xcb xcomposite xcursor xdamage xext xfixes xi xkbfile \ xrandr xrender xscrnsaver xtst USE_GL= gbm gl glesv2 USE_GNOME= atk cairo pango gdkpixbuf gtk30 libxml2 libxslt SHEBANG_REGEX= ./(extensions|node_modules|resources|scripts|src)/.*\.sh$$ PATHFIX_FILES= src/vs/workbench/contrib/debug/node/terminals.ts DATADIR= ${PREFIX}/share/code-oss TMPDIR= ${WRKDIR} BUNDLE_LIBS= yes MAKE_ENV+= BUILD_SOURCEVERSION=${SOURCE_COMMIT_HASH} # Don't download electron binary distribution on electron node_modules installation MAKE_ENV+= ELECTRON_SKIP_BINARY_DOWNLOAD=1 # Don't download browser binaries on playwright node_modules installation MAKE_ENV+= PLAYWRIGHT_BROWSERS_PATH=${WRKDIR}/pw-browsers \ PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 # Don't create __pycache__ directory when executing node-gyp # This is a workaround to avoid filesystem violations during poudriere build MAKE_ENV+= PYTHONDONTWRITEBYTECODE=1 TEST_ENV= ${MAKE_ENV:C/TMPDIR=.*//} NODEJS_DIR= ${.CURDIR:H:H}/www/node22 .include "${NODEJS_DIR}/Makefile.version" ELECTRON_DIR= ${.CURDIR:H:H}/devel/electron35 .include "${ELECTRON_DIR}/Makefile.version" ELECTRON_DOWNLOAD_URL= https://github.com/electron/electron/releases/download/v${ELECTRON_VER} ELECTRON_DOWNLOAD_URL_HASH!= /sbin/sha256 -q -s ${ELECTRON_DOWNLOAD_URL} ELECTRON_ARCH= ${ARCH:S/aarch64/arm64/:S/amd64/x64/:S/i386/ia32/} pre-everything:: @${ECHO_MSG} "" @${ECHO_MSG} "The limit imposed by poudriere(8) for the maximum number of files allowed to be" @${ECHO_MSG} "opened by a jail (default 1024) is exceeded during the build of ${PORTNAME}." @${ECHO_MSG} "To successfully build ${PORTNAME} with poudriere(8), you must add the following" @${ECHO_MSG} "line to poudriere.conf:" @${ECHO_MSG} "MAX_FILES_${PORTNAME}=8192" @${ECHO_MSG} "" post-extract: @${CP} ${WRKSRC}/build/.moduleignore.linux \ ${WRKSRC}/build/.moduleignore.freebsd @${ECHO_MSG} "===> Installing node modules in ${WRKSRC}" @${TAR} -xzf ${WRKDIR}/vscode-.-node-modules${EXTRACT_SUFX} -C ${WRKSRC} @for dir in `node -p "JSON.stringify(require('${WRKSRC}/build/npm/dirs').dirs)" | jq -r '.[]'`; do \ if [ -f ${WRKDIR}/vscode-`echo $${dir} | tr _ __ | tr / _`-node-modules${EXTRACT_SUFX} ]; then \ ${ECHO_MSG} "===> Installing node modules in ${WRKSRC}/$${dir}"; \ ${TAR} -xzf ${WRKDIR}/vscode-`echo $${dir} | tr _ __ | tr / _`-node-modules${EXTRACT_SUFX} -C ${WRKSRC}/$${dir}; \ fi; \ done post-patch: @${REINPLACE_CMD} -E 's|^(target=").*(")$$|\1${ELECTRON_VER}\2|' \ ${WRKSRC}/.npmrc @${REINPLACE_CMD} -E 's|^(target=").*(")$$|\1${NODEJS_PORTVERSION}\2|' \ ${WRKSRC}/remote/.npmrc @(cd ${WRKSRC} && \ ${FIND} -E . -type f -iregex '${SHEBANG_REGEX}' \ -exec ${SED} -i '' -e "s|/usr/bin/pgrep|/bin/pgrep|g" {} ';') @(cd ${WRKSRC} && \ ${FIND} ${PATHFIX_FILES} -type f \ -exec ${SED} -i '' -e "s|/usr/bin/pgrep|/bin/pgrep|g" {} ';') @${REINPLACE_CMD} -e 's/@@NAME_LONG@@/Code - OSS/; \ s/@@NAME_SHORT@@/Code - OSS/; \ s/@@PRODNAME@@/Code - OSS/; \ s/@@NAME@@/code-oss/g; \ s|@@EXEC@@|${PREFIX}/bin/code-oss|; \ s/@@ICON@@/com.visualstudio.code.oss/; \ s/@@URLPROTOCOL@@/code-oss/; \ s/@@LICENSE@@/MIT/; \ s/@@APPNAME@@/code-oss/g; \ s|/usr/share|${PREFIX}/share|' \ ${WRKSRC}/resources/completions/bash/code \ ${WRKSRC}/resources/completions/zsh/_code \ ${WRKSRC}/resources/linux/bin/code.sh \ ${WRKSRC}/resources/linux/code.appdata.xml \ ${WRKSRC}/resources/linux/code.desktop \ ${WRKSRC}/resources/linux/code-url-handler.desktop @(cd ${WRKDIR}/builtInExtensions && \ ${FIND} . -type f -name '*.sh' \ -exec ${SED} -i '' -e "s|/usr/bin/pgrep|/bin/pgrep|g" \ -e 's|#!/bin/bash|#!${LOCALBASE}/bin/bash|' {} ';') pre-build: # rebuild native node modules in top directory @for subdir in `${FIND} ${WRKSRC}/node_modules -type f -name binding.gyp -exec ${DIRNAME} {} ';'`; do \ ${ECHO_MSG} "===> Rebuilding native modules in $${subdir}"; \ cd $${subdir} && \ ${SETENV} ${MAKE_ENV} \ npm_config_runtime=electron \ npm_config_target=${ELECTRON_VER} \ npm_config_nodedir=${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR}/node_headers \ node-gyp --userconfig=${WRKSRC}/.npmrc rebuild; \ done # rebuild native node modules in subdirectories @for dir in `node -p "JSON.stringify(require('${WRKSRC}/build/npm/dirs').dirs)" | jq -r '.[]'`; do \ for subdir in `${FIND} ${WRKSRC}/$${dir}/node_modules -type f -name binding.gyp -exec ${DIRNAME} {} ';' 2> /dev/null`; do \ ${ECHO_MSG} "===> Rebuilding native modules in $${subdir}"; \ if [ "`${ECHO_CMD} $${subdir} | ${GREP} /build/`" ]; then \ cd $${subdir} && \ ${SETENV} ${MAKE_ENV} \ npm_config_runtime=node \ npm_config_target=${NODEJS_PORTVERSION} \ npm_config_nodedir=${LOCALBASE} \ node-gyp --userconfig=${WRKSRC}/build/.npmrc rebuild; \ elif [ "`${ECHO_CMD} $${subdir} | ${GREP} /remote/`" ]; then \ cd $${subdir} && \ ${SETENV} ${MAKE_ENV} \ npm_config_runtime=node \ npm_config_target=${NODEJS_PORTVERSION} \ npm_config_nodedir=${LOCALBASE} \ node-gyp --userconfig=${WRKSRC}/remote/.npmrc rebuild; \ else \ cd $${subdir} && \ ${SETENV} ${MAKE_ENV} \ npm_config_runtime=electron \ npm_config_target=${ELECTRON_VER} \ npm_config_nodedir=${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR}/node_headers \ node-gyp --userconfig=${WRKSRC}/.npmrc rebuild; \ fi; \ done; \ done # copy rg binary file to @vscode/ripgrep node module directory @${MKDIR} ${WRKSRC}/node_modules/@vscode/ripgrep/bin @${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/node_modules/@vscode/ripgrep/bin @${MKDIR} ${WRKSRC}/build/node_modules/@vscode/ripgrep/bin @${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/build/node_modules/@vscode/ripgrep/bin @${MKDIR} ${WRKSRC}/remote/node_modules/@vscode/ripgrep/bin @${CP} ${LOCALBASE}/bin/rg ${WRKSRC}/remote/node_modules/@vscode/ripgrep/bin do-build: # setup download cache for gulp-atom-electron @${MKDIR} ${WRKDIR}/.cache/electron/${ELECTRON_DOWNLOAD_URL_HASH} @cd ${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR} && \ zip -q -r ${WRKDIR}/.cache/electron/${ELECTRON_DOWNLOAD_URL_HASH}/electron-v${ELECTRON_VER}-linux-${ELECTRON_ARCH}.zip . @cd ${WRKDIR}/.cache/electron/${ELECTRON_DOWNLOAD_URL_HASH} && \ ${SHA256} -r *-v${ELECTRON_VER}-linux-*.zip | \ ${SED} -e 's/ / */' > SHASUMS256.txt # add newline character at the end of the file if not already @${AWK} '1' ${WRKSRC}/build/checksums/electron.txt > \ ${WRKSRC}/build/checksums/electron.txt.new @${MV} -f ${WRKSRC}/build/checksums/electron.txt.new \ ${WRKSRC}/build/checksums/electron.txt @cd ${WRKDIR}/.cache/electron/${ELECTRON_DOWNLOAD_URL_HASH} && \ ${SHA256} -r *-v${ELECTRON_VER}-linux-*.zip | \ ${SED} -e 's/ / */' >> ${WRKSRC}/build/checksums/electron.txt # remove backup files so that they are not included in the package @${FIND} ${WRKSRC} -type f \( -name '*.orig' -o -name '*~' \) -delete # build and package vscode cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} npx tsc -p build/tsconfig.build.json cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ npm_config_runtime=electron \ npm_config_target=${ELECTRON_VER} \ npm_config_nodedir=${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR}/node_headers \ npm --userconfig=${WRKSRC}/.npmrc run gulp vscode-linux-${ELECTRON_ARCH}-min # move marketplace extensions @${MV} ${WRKDIR}/builtInExtensions/* ${WRKDIR}/VSCode-linux-${ELECTRON_ARCH}/resources/app/extensions do-install: @${MKDIR} ${STAGEDIR}${PREFIX}/etc/bash_completion.d ${INSTALL_DATA} ${WRKSRC}/resources/completions/bash/code \ ${STAGEDIR}${PREFIX}/etc/bash_completion.d/code-oss @${MKDIR} ${STAGEDIR}${PREFIX}/share/zsh/site-functions ${INSTALL_DATA} ${WRKSRC}/resources/completions/zsh/_code \ ${STAGEDIR}${PREFIX}/share/zsh/site-functions/_code-oss @${MKDIR} ${STAGEDIR}${PREFIX}/share/appdata ${INSTALL_DATA} ${WRKSRC}/resources/linux/code.appdata.xml \ ${STAGEDIR}${PREFIX}/share/appdata/code-oss.appdata.xml @${MKDIR} ${STAGEDIR}${PREFIX}/share/applications .for f in code.desktop code-url-handler.desktop ${INSTALL_DATA} ${WRKSRC}/resources/linux/${f} \ ${STAGEDIR}${PREFIX}/share/applications/${f:S/code/code-oss/} .endfor @${MKDIR} ${STAGEDIR}${PREFIX}/share/pixmaps ${INSTALL_DATA} ${WRKSRC}/resources/linux/code.png \ ${STAGEDIR}${PREFIX}/share/pixmaps/com.visualstudio.code.oss.png @${MKDIR} ${STAGEDIR}${DATADIR} ${TAR} -cf - -C ${WRKDIR}/VSCode-linux-${ELECTRON_ARCH} . | \ ${TAR} -xf - -C ${STAGEDIR}${DATADIR} @${FIND} ${STAGEDIR}${DATADIR}/resources/app -type f -exec ${FILE} {} ';' | \ ${GREP} 'ELF.*FreeBSD' | ${AWK} -F ': ' '{print $$1}' | ${XARGS} ${STRIP_CMD} .for f in chromedriver mksnapshot v8_context_snapshot_generator @${RM} ${STAGEDIR}${DATADIR}/${f} .endfor @${RM} -r ${STAGEDIR}${DATADIR}/gen @${RM} -r ${STAGEDIR}${DATADIR}/node_headers @${RM} -r ${STAGEDIR}${DATADIR}/resources/completions ${RLN} ${STAGEDIR}${DATADIR}/bin/code-oss ${STAGEDIR}${PREFIX}/bin ${INSTALL_SCRIPT} ${FILESDIR}/wrapper.sh ${STAGEDIR}${PREFIX}/bin/${PORTNAME} pre-test: # setup electron dependency for unit tests @${MKDIR} ${WRKSRC}/.build/electron @${TAR} -cf - -C ${LOCALBASE}/share/electron${ELECTRON_VER_MAJOR} . | \ ${TAR} -xf - -C ${WRKSRC}/.build/electron @cd ${WRKSRC}/.build/electron && ${MV} -f electron code-oss do-test: # Note: Xvfb or something similar is necessary for headless testing # unit tests cd ${WRKSRC} && ${SETENV} ${TEST_ENV} ./scripts/test.sh --build || ${TRUE} # UI smoke tests cd ${WRKSRC} && ${SETENV} ${TEST_ENV} npm run smoketest build-remote-extension-host: configure pre-build # setup download cache for node @${MKDIR} ${WRKSRC}/.build/node/v${NODEJS_PORTVERSION}/linux-${ELECTRON_ARCH} @${CP} ${LOCALBASE}/bin/node ${WRKSRC}/.build/node/v${NODEJS_PORTVERSION}/linux-${ELECTRON_ARCH} # build vscode remote extension host cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \ npm_config_runtime=node \ npm_config_target=${NODEJS_PORTVERSION} \ npm_config_nodedir=${LOCALBASE} \ npm --userconfig=${WRKSRC}/remote/.npmrc run gulp vscode-reh-linux-${ELECTRON_ARCH}-min @${MKDIR} ${WRKDIR}/vscode-reh/bin/${SOURCE_COMMIT_HASH} ${TAR} -cf - -C ${WRKDIR}/vscode-reh-linux-${ELECTRON_ARCH} . | \ ${TAR} -xf - -C ${WRKDIR}/vscode-reh/bin/${SOURCE_COMMIT_HASH} @${FIND} ${WRKDIR}/vscode-reh -type f -exec ${FILE} {} ';' | \ ${GREP} 'ELF.*FreeBSD' | ${AWK} -F ': ' '{print $$1}' | ${XARGS} ${STRIP_CMD} ${TAR} -czf ${WRKDIR}/vscode-reh-${DISTVERSION}-${OPSYS:tl}${OSREL:R}-${ARCH}.tar.gz -C ${WRKDIR}/vscode-reh . # cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} npm run gulp vscode-reh-web-linux-${ELECTRON_ARCH}-min ### targets for port maintainer(s) make-node-modules-archive: extract @${ECHO_MSG} "===> Fetching and installing node modules in ${WRKSRC}" @cd ${WRKSRC} && \ ${SETENV} ${MAKE_ENV} npm install --ignore-scripts --no-progress --no-audit --no-fund && \ ${TAR} -czf ${WRKDIR}/vscode-.-node-modules${EXTRACT_SUFX} node_modules @for dir in `node -p "JSON.stringify(require('${WRKSRC}/build/npm/dirs').dirs)" | jq -r '.[]'`; do \ cd ${WRKSRC}/$${dir} && \ ${ECHO_MSG} "===> Fetching and installing node modules in ${WRKSRC}/$${dir}" && \ ${SETENV} ${MAKE_ENV} npm install --ignore-scripts --no-progress --no-audit --no-fund && \ if [ -d node_modules ]; then \ ${TAR} -czf ${WRKDIR}/vscode-`echo $${dir} | tr _ __ | tr / _`-node-modules${EXTRACT_SUFX} node_modules; \ fi; \ done @cd ${WRKDIR} && \ ${TAR} -czf vscode-node-modules-${DISTVERSION}${EXTRACT_SUFX} vscode-*-node-modules.tar.gz make-marketplace-exts-archive: extract @${RM} -r ${WRKSRC}/.build/builtInExtensions @cd ${WRKSRC} && \ ${SETENV} ${MAKE_ENV} npm run download-builtin-extensions @${TAR} -czf ${WRKDIR}/vscode-marketplace-exts-${DISTVERSION}${EXTRACT_SUFX} -C ${WRKSRC}/.build builtInExtensions .include diff --git a/editors/vscode/distinfo b/editors/vscode/distinfo index 35e567e31b67..6abb2ca8eea5 100644 --- a/editors/vscode/distinfo +++ b/editors/vscode/distinfo @@ -1,7 +1,7 @@ -TIMESTAMP = 1749769265 -SHA256 (vscode/vscode-node-modules-1.101.0.tar.gz) = 19b88e65696f4c30b688e78baacfd4041c56bd047bef153afb81d741357bf358 -SIZE (vscode/vscode-node-modules-1.101.0.tar.gz) = 395032316 -SHA256 (vscode/vscode-marketplace-exts-1.101.0.tar.gz) = 10333830c690095bd4d8e802846a991ec42c72718495b0517e236e6bc2ddf324 -SIZE (vscode/vscode-marketplace-exts-1.101.0.tar.gz) = 1708375 -SHA256 (vscode/microsoft-vscode-1.101.0_GH0.tar.gz) = f0890a88193722c201406f9738f483b3348c414b8dbabc079934a6073d069409 -SIZE (vscode/microsoft-vscode-1.101.0_GH0.tar.gz) = 22853199 +TIMESTAMP = 1750365794 +SHA256 (vscode/vscode-node-modules-1.101.1.tar.gz) = 7fdee8be7622f42be9d0658076c0d8c077d79a86250eda38d97dcda98111d1a7 +SIZE (vscode/vscode-node-modules-1.101.1.tar.gz) = 395119485 +SHA256 (vscode/vscode-marketplace-exts-1.101.1.tar.gz) = 13c6bd8b7ca7535e6ae1fa5178f56a703b1de7a484ff01d60931a692ec1924c5 +SIZE (vscode/vscode-marketplace-exts-1.101.1.tar.gz) = 1708576 +SHA256 (vscode/microsoft-vscode-1.101.1_GH0.tar.gz) = fc015daead5b5a14422944af9b04eb241c78d5b7273888c46bb184d6651a7a2b +SIZE (vscode/microsoft-vscode-1.101.1_GH0.tar.gz) = 22852405 diff --git a/editors/vscode/files/patch-build_lib_snapshotLoader.ts b/editors/vscode/files/patch-build_lib_snapshotLoader.ts index 2495de98ca7c..81cb08da4a47 100644 --- a/editors/vscode/files/patch-build_lib_snapshotLoader.ts +++ b/editors/vscode/files/patch-build_lib_snapshotLoader.ts @@ -1,11 +1,10 @@ ---- build/lib/snapshotLoader.ts.orig 2022-07-05 18:15:23 UTC +--- build/lib/snapshotLoader.ts.orig 2025-06-11 13:47:56 UTC +++ build/lib/snapshotLoader.ts -@@ -25,7 +25,7 @@ namespace snaps { - break; +@@ -26,6 +26,7 @@ export namespace snaps { case 'win32': -- case 'linux': -+ case 'linux': case 'freebsd': + case 'linux': ++ case 'freebsd': loaderFilepath = `VSCode-${process.platform}-${arch}/resources/app/out/vs/loader.js`; startupBlobFilepath = `VSCode-${process.platform}-${arch}/snapshot_blob.bin`; break; diff --git a/editors/vscode/files/patch-node__modules__at_vscode_deviceid_dist_index.js b/editors/vscode/files/patch-node__modules__at_vscode_deviceid_dist_index.js new file mode 100644 index 000000000000..ff8ea52e2aa3 --- /dev/null +++ b/editors/vscode/files/patch-node__modules__at_vscode_deviceid_dist_index.js @@ -0,0 +1,15 @@ +--- node_modules/@vscode/deviceid/dist/index.js.orig 2025-06-19 08:48:56 UTC ++++ node_modules/@vscode/deviceid/dist/index.js +@@ -20,8 +20,9 @@ if (process.platform !== "win32" && + Object.defineProperty(exports, "__esModule", { value: true }); + if (process.platform !== "win32" && + process.platform !== "darwin" && +- process.platform !== "linux") { ++ process.platform !== "linux" && ++ process.platform !== "freebsd") { + throw new Error("Unsupported platform"); + } + __exportStar(require("./devdeviceid.js"), exports); +-//# sourceMappingURL=index.js.map +\ No newline at end of file ++//# sourceMappingURL=index.js.map diff --git a/editors/vscode/files/patch-node__modules__at_vscode_deviceid_dist_storage.js b/editors/vscode/files/patch-node__modules__at_vscode_deviceid_dist_storage.js new file mode 100644 index 000000000000..544b9ab8a0a7 --- /dev/null +++ b/editors/vscode/files/patch-node__modules__at_vscode_deviceid_dist_storage.js @@ -0,0 +1,18 @@ +--- node_modules/@vscode/deviceid/dist/storage.js.orig 2025-06-19 08:49:17 UTC ++++ node_modules/@vscode/deviceid/dist/storage.js +@@ -42,7 +42,7 @@ function getDirectory() { + if (process.platform === "darwin") { + folder = path.join(process.env.HOME, "Library", "Application Support"); + } +- else if (process.platform === "linux") { ++ else if (process.platform === "linux" || process.platform === "freebsd") { + folder = + process.env.XDG_CACHE_HOME ?? path.join(process.env.HOME, ".cache"); + } +@@ -78,4 +78,4 @@ exports.setDeviceId = setDeviceId; + } + } + exports.setDeviceId = setDeviceId; +-//# sourceMappingURL=storage.js.map +\ No newline at end of file ++//# sourceMappingURL=storage.js.map diff --git a/editors/vscode/files/patch-remote_node__modules__at_vscode_deviceid_dist_index.js b/editors/vscode/files/patch-remote_node__modules__at_vscode_deviceid_dist_index.js new file mode 100644 index 000000000000..7759e309ac2d --- /dev/null +++ b/editors/vscode/files/patch-remote_node__modules__at_vscode_deviceid_dist_index.js @@ -0,0 +1,15 @@ +--- remote/node_modules/@vscode/deviceid/dist/index.js.orig 2025-06-19 08:49:40 UTC ++++ remote/node_modules/@vscode/deviceid/dist/index.js +@@ -20,8 +20,9 @@ if (process.platform !== "win32" && + Object.defineProperty(exports, "__esModule", { value: true }); + if (process.platform !== "win32" && + process.platform !== "darwin" && +- process.platform !== "linux") { ++ process.platform !== "linux" && ++ process.platform !== "freebsd") { + throw new Error("Unsupported platform"); + } + __exportStar(require("./devdeviceid.js"), exports); +-//# sourceMappingURL=index.js.map +\ No newline at end of file ++//# sourceMappingURL=index.js.map diff --git a/editors/vscode/files/patch-remote_node__modules__at_vscode_deviceid_dist_storage.js b/editors/vscode/files/patch-remote_node__modules__at_vscode_deviceid_dist_storage.js new file mode 100644 index 000000000000..14c2e4690dd4 --- /dev/null +++ b/editors/vscode/files/patch-remote_node__modules__at_vscode_deviceid_dist_storage.js @@ -0,0 +1,18 @@ +--- remote/node_modules/@vscode/deviceid/dist/storage.js.orig 2025-06-19 08:49:56 UTC ++++ remote/node_modules/@vscode/deviceid/dist/storage.js +@@ -42,7 +42,7 @@ function getDirectory() { + if (process.platform === "darwin") { + folder = path.join(process.env.HOME, "Library", "Application Support"); + } +- else if (process.platform === "linux") { ++ else if (process.platform === "linux" || process.platform === "freebsd") { + folder = + process.env.XDG_CACHE_HOME ?? path.join(process.env.HOME, ".cache"); + } +@@ -78,4 +78,4 @@ exports.setDeviceId = setDeviceId; + } + } + exports.setDeviceId = setDeviceId; +-//# sourceMappingURL=storage.js.map +\ No newline at end of file ++//# sourceMappingURL=storage.js.map diff --git a/editors/vscode/files/patch-scripts_code-perf.js b/editors/vscode/files/patch-scripts_code-perf.js deleted file mode 100644 index 50a32a8d434a..000000000000 --- a/editors/vscode/files/patch-scripts_code-perf.js +++ /dev/null @@ -1,11 +0,0 @@ ---- scripts/code-perf.js.orig 2024-03-01 05:22:09 UTC -+++ scripts/code-perf.js -@@ -65,7 +65,7 @@ function getExePath(buildPath) { - case 'darwin': - relativeExePath = path.join('Contents', 'MacOS', 'Electron'); - break; -- case 'linux': { -+ case 'linux': case 'freebsd': { - const product = require(path.join(buildPath, 'resources', 'app', 'product.json')); - relativeExePath = product.applicationName; - break; diff --git a/editors/vscode/files/patch-src_vs_base_node_ps.ts b/editors/vscode/files/patch-src_vs_base_node_ps.ts index 3608d03c2d1c..3d0cdab9e6bf 100644 --- a/editors/vscode/files/patch-src_vs_base_node_ps.ts +++ b/editors/vscode/files/patch-src_vs_base_node_ps.ts @@ -1,21 +1,11 @@ --- src/vs/base/node/ps.ts.orig 2025-06-11 13:47:56 UTC +++ src/vs/base/node/ps.ts -@@ -210,7 +210,7 @@ export function listProcesses(rootPid: number): Promis - - exec('which ps', {}, (err, stdout, stderr) => { - if (err || stderr) { -- if (process.platform !== 'linux') { -+ if (process.platform !== 'linux' && process.platform !== 'freebsd') { - reject(err || new Error(stderr.toString())); - } else { - const cmd = JSON.stringify(FileAccess.asFileUri('vs/base/node/ps.sh').fsPath); -@@ -225,7 +225,8 @@ export function listProcesses(rootPid: number): Promis +@@ -225,7 +225,7 @@ export function listProcesses(rootPid: number): Promis } } else { const ps = stdout.toString().trim(); - const args = '-ax -o pid=,ppid=,pcpu=,pmem=,command='; -+ // const args = '-ax -o pid=,ppid=,pcpu=,pmem=,command='; + const args = '-ax -o pid= -o ppid= -o pcpu= -o pmem= -o command='; // Set numeric locale to ensure '.' is used as the decimal separator exec(`${ps} ${args}`, { maxBuffer: 1000 * 1024, env: { LC_NUMERIC: 'en_US.UTF-8' } }, (err, stdout, stderr) => { diff --git a/editors/vscode/files/patch-src_vs_code_electron-main_app.ts b/editors/vscode/files/patch-src_vs_code_electron-main_app.ts deleted file mode 100644 index c9f26abc8701..000000000000 --- a/editors/vscode/files/patch-src_vs_code_electron-main_app.ts +++ /dev/null @@ -1,11 +0,0 @@ ---- src/vs/code/electron-main/app.ts.orig 2025-05-07 12:32:30 UTC -+++ src/vs/code/electron-main/app.ts -@@ -989,7 +989,7 @@ export class CodeApplication extends Disposable { - services.set(IUpdateService, new SyncDescriptor(Win32UpdateService)); - break; - -- case 'linux': -+ case 'linux': case 'freebsd': - if (isLinuxSnap) { - services.set(IUpdateService, new SyncDescriptor(SnapUpdateService, [process.env['SNAP'], process.env['SNAP_REVISION']])); - } else { diff --git a/editors/vscode/files/patch-src_vs_platform_environment_node_userDataPath.ts b/editors/vscode/files/patch-src_vs_platform_environment_node_userDataPath.ts index 2dd62b78597e..f7b469c06459 100644 --- a/editors/vscode/files/patch-src_vs_platform_environment_node_userDataPath.ts +++ b/editors/vscode/files/patch-src_vs_platform_environment_node_userDataPath.ts @@ -1,11 +1,10 @@ --- src/vs/platform/environment/node/userDataPath.ts.orig 2025-06-11 13:47:56 UTC +++ src/vs/platform/environment/node/userDataPath.ts -@@ -86,7 +86,7 @@ function doGetUserDataPath(cliArgs: NativeParsedArgs, - case 'darwin': +@@ -87,6 +87,7 @@ function doGetUserDataPath(cliArgs: NativeParsedArgs, appDataPath = join(homedir(), 'Library', 'Application Support'); break; -- case 'linux': -+ case 'linux': case 'freebsd': + case 'linux': ++ case 'freebsd': appDataPath = process.env['XDG_CONFIG_HOME'] || join(homedir(), '.config'); break; default: diff --git a/editors/vscode/files/patch-src_vs_workbench_api_browser_mainThreadTask.ts b/editors/vscode/files/patch-src_vs_workbench_api_browser_mainThreadTask.ts index a645b7288214..0a8f39531ffe 100644 --- a/editors/vscode/files/patch-src_vs_workbench_api_browser_mainThreadTask.ts +++ b/editors/vscode/files/patch-src_vs_workbench_api_browser_mainThreadTask.ts @@ -1,11 +1,10 @@ ---- src/vs/workbench/api/browser/mainThreadTask.ts.orig 2025-04-09 23:39:47 UTC +--- src/vs/workbench/api/browser/mainThreadTask.ts.orig 2025-06-11 13:47:56 UTC +++ src/vs/workbench/api/browser/mainThreadTask.ts -@@ -726,7 +726,7 @@ export class MainThreadTask extends Disposable impleme - case 'darwin': +@@ -727,6 +727,7 @@ export class MainThreadTask extends Disposable impleme platform = Platform.Platform.Mac; break; -- case 'linux': -+ case 'linux': case 'freebsd': + case 'linux': ++ case 'freebsd': platform = Platform.Platform.Linux; break; default: diff --git a/editors/vscode/files/patch-src_vs_workbench_services_actions_common_menusExtensionPoint.ts b/editors/vscode/files/patch-src_vs_workbench_services_actions_common_menusExtensionPoint.ts index bfa7d3c484ad..7f52910c6fbe 100644 --- a/editors/vscode/files/patch-src_vs_workbench_services_actions_common_menusExtensionPoint.ts +++ b/editors/vscode/files/patch-src_vs_workbench_services_actions_common_menusExtensionPoint.ts @@ -1,11 +1,14 @@ ---- src/vs/workbench/services/actions/common/menusExtensionPoint.ts.orig 2025-04-09 23:39:47 UTC +--- src/vs/workbench/services/actions/common/menusExtensionPoint.ts.orig 2025-06-11 13:47:56 UTC +++ src/vs/workbench/services/actions/common/menusExtensionPoint.ts -@@ -1153,7 +1153,7 @@ class CommandsTableRenderer extends Disposable impleme +@@ -1153,7 +1153,10 @@ class CommandsTableRenderer extends Disposable impleme switch (platform) { case 'win32': key = rawKeyBinding.win; break; - case 'linux': key = rawKeyBinding.linux; break; -+ case 'linux': case 'freebsd': key = rawKeyBinding.linux; break; ++ case 'linux': ++ case 'freebsd': ++ key = rawKeyBinding.linux; ++ break; case 'darwin': key = rawKeyBinding.mac; break; } diff --git a/editors/vscode/files/patch-test_automation_src_electron.ts b/editors/vscode/files/patch-test_automation_src_electron.ts index 5278a38c8fc8..5952d2a91663 100644 --- a/editors/vscode/files/patch-test_automation_src_electron.ts +++ b/editors/vscode/files/patch-test_automation_src_electron.ts @@ -1,20 +1,20 @@ ---- test/automation/src/electron.ts.orig 2025-05-07 12:32:30 UTC +--- test/automation/src/electron.ts.orig 2025-06-11 13:47:56 UTC +++ test/automation/src/electron.ts -@@ -84,7 +84,7 @@ export function getDevElectronPath(): string { - switch (process.platform) { +@@ -85,6 +85,7 @@ export function getDevElectronPath(): string { case 'darwin': return join(buildPath, 'electron', `${product.nameLong}.app`, 'Contents', 'MacOS', 'Electron'); -- case 'linux': -+ case 'linux': case 'freebsd': + case 'linux': ++ case 'freebsd': return join(buildPath, 'electron', `${product.applicationName}`); case 'win32': return join(buildPath, 'electron', `${product.nameShort}.exe`); -@@ -97,7 +97,7 @@ export function getBuildElectronPath(root: string): st +@@ -97,7 +98,8 @@ export function getBuildElectronPath(root: string): st switch (process.platform) { case 'darwin': return join(root, 'Contents', 'MacOS', 'Electron'); - case 'linux': { -+ case 'linux': case 'freebsd': { ++ case 'linux': ++ case 'freebsd': { const product = require(join(root, 'resources', 'app', 'product.json')); return join(root, product.applicationName); }