Commit c68a0358 authored by pizzamig's avatar pizzamig
Browse files

devel/electron6: Add electron 6.x port

This port is an additional step to support electronjs on FreeBSD.
Moreover, it's a needed requirement for VSCode.

Submitted by:	maintainer (Hiroki Tagato)
parent 7fcb9927
......@@ -528,6 +528,7 @@
SUBDIR += egypt
SUBDIR += eiffelstudio
SUBDIR += electron4
SUBDIR += electron6
SUBDIR += elf
SUBDIR += elfio
SUBDIR += elfkickers
......
# $FreeBSD$
PORTNAME= electron
DISTVERSIONPREFIX= v
DISTVERSION= ${ELECTRON_VER:S/-beta./.b/}
CATEGORIES= devel java
MASTER_SITES= https://github.com/tagattie/FreeBSD-Electron/releases/download/v6.0.9/:chromium \
https://commondatastorage.googleapis.com/chromium-browser-official/:chromium_official \
https://commondatastorage.googleapis.com/chromium-nodejs/:chromium_node \
https://commondatastorage.googleapis.com/chromium-fonts/:chromium_testfonts
PKGNAMESUFFIX= 6
DISTFILES= chromium-${CHROMIUM_VER}${EXTRACT_SUFX}:chromium \
chromium-${CHROMIUM_OFFICIAL_VER}${EXTRACT_SUFX}:chromium_official \
${CHROMIUM_NODE_MODULES_HASH}:chromium_node \
electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX}:prefetch
DIST_SUBDIR= ${PORTNAME}
MAINTAINER= tagattie@yandex.com
COMMENT= Build cross-platform desktop apps with JavaScript, HTML, and CSS
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/electron/LICENSE
FETCH_DEPENDS= yarn:www/yarn-node12
EXTRACT_DEPENDS= yarn:www/yarn-node12
PATCH_DEPENDS= git:devel/git
BUILD_DEPENDS= ${LOCALBASE}/bin/ar:devel/binutils \
gperf:devel/gperf \
yasm:devel/yasm \
${LOCALBASE}/include/linux/videodev2.h:multimedia/v4l_compat \
node:www/node12 \
npm:www/npm-node12
LIB_DEPENDS= libatk-bridge-2.0.so:accessibility/at-spi2-atk \
libsnappy.so:archivers/snappy \
libFLAC.so:audio/flac \
libopus.so:audio/opus \
libdbus-1.so:devel/dbus \
libnotify.so:devel/libnotify \
libpci.so:devel/libpci \
libnspr4.so:devel/nspr \
libre2.so:devel/re2 \
libdrm.so:graphics/libdrm \
libwebp.so:graphics/webp \
libavcodec.so:multimedia/ffmpeg \
libvpx.so:multimedia/libvpx \
libopenh264.so:multimedia/openh264 \
libfreetype.so:print/freetype2 \
libharfbuzz.so:print/harfbuzz \
libsecret-1.so:security/libsecret \
libnss3.so:security/nss \
libexpat.so:textproc/expat2 \
libfontconfig.so:x11-fonts/fontconfig
RUN_DEPENDS= xdg-open:devel/xdg-utils
TEST_DEPENDS= yarn:www/yarn-node12
USES= bison dos2unix gettext-tools gl gnome jpeg localbase:ldflags \
ninja pkgconfig python:2.7,build tar:xz xorg
CONFLICTS_INSTALL= electron4 electron5
USE_GITHUB= yes
GH_TAGNAME= ${DISTVERSIONPREFIX}${ELECTRON_VER}
GH_TUPLE= nodejs:node:v${NODE_VER}:node
# boto:boto:f7574aa6cc2c819430c1f05e9a1a1a666ef8169b:boto \
# yaml:pyyaml:3.12:pyyaml \
# kennethreitz:requests:e4d59bedfd3c7f4f254f4f5d036587bcd8152458:requests
ELECTRON_VER= 6.1.4
# Official chromium version containing "gn" which is known to work
CHROMIUM_OFFICIAL_VER= 76.0.3809.132
# See ${WRKSRC}/electron/DEPS for CHROMIUM_VER
CHROMIUM_VER= 76.0.3809.146
# See ${WRKSRC}/third_party/node/node_modules.tar.gz.sha1 for CHROMIUM_NODE_MODULES_HASH
CHROMIUM_NODE_MODULES_HASH= 2dd750e768cec597fc018509009637819ae4549c
# See ${WRKSRC}/third_party/test_fonts/test_fonts.tar.gz.sha1 for CHROMIUM_TEST_FONTS_HASH
CHROMIUM_TEST_FONTS_HASH= a22de844e32a3f720d219e3911c3da3478039f89
# See ${WRKSRC}/electron/DEPS for NODE_VER
NODE_VER= 12.4.0
NO_WRKSUBDIR= yes
WRKSRC_SUBDIR= src
DOS2UNIX_FILES= third_party/skia/third_party/vulkanmemoryallocator/include/vk_mem_alloc.h
BINARY_ALIAS= python=${PYTHON_CMD}
USE_XORG= x11 xcb xcomposite xcursor xdamage xext xfixes xi xrandr \
xrender xscrnsaver xtst
USE_GL= gl glesv2
USE_GNOME= atk cairo pango gdkpixbuf2 gtk30 libxml2 libxslt
USE_JAVA= yes
JAVA_VERSION= 1.8
JAVA_BUILD= yes
USE_LDCONFIG= ${DATADIR}
GN_ARGS+= clang_use_chrome_plugins=false \
enable_hangout_services_extension=true \
enable_nacl=false \
enable_remoting=false \
fieldtrial_testing_like_official_build=true \
is_clang=true \
toolkit_views=true \
treat_warnings_as_errors=false \
use_allocator="none" \
use_allocator_shim=false \
use_aura=true \
use_custom_libcxx=false \
use_gnome_keyring=false \
use_jumbo_build=true \
use_lld=true \
use_sysroot=false \
use_system_freetype=true \
use_system_harfbuzz=true \
use_system_lcms2=true \
use_system_libdrm=true \
use_system_libjpeg=true \
extra_cxxflags="${CXXFLAGS}" \
extra_ldflags="${LDFLAGS}"
GN_BOOTSTRAP_FLAGS= --no-clean --no-rebuild --skip-generate-buildfiles
ALL_TARGET= electron
MAKE_ARGS= -C out/${BUILDTYPE}
MAKE_ENV+= C_INCLUDE_PATH=${LOCALBASE}/include \
CPLUS_INCLUDE_PATH=${LOCALBASE}/include
OPTIONS_DEFINE= CUPS DEBUG DIST DRIVER KERBEROS TEST
DIST_DESC= Build distribution zip files
DRIVER_DESC= Install chromedriver
OPTIONS_GROUP= AUDIO
OPTIONS_GROUP_AUDIO= ALSA PULSEAUDIO
OPTIONS_DEFAULT= CUPS DRIVER KERBEROS ALSA
OPTIONS_SUB= yes
.if make(makesum)
.MAKEFLAGS: WITH="${OPTIONS_DEFINE}"
.endif
ALSA_LIB_DEPENDS= libasound.so:audio/alsa-lib
ALSA_RUN_DEPENDS= ${LOCALBASE}/lib/alsa-lib/libasound_module_pcm_oss.so:audio/alsa-plugins
ALSA_VARS= GN_ARGS+=use_alsa=true
ALSA_VARS_OFF= GN_ARGS+=use_alsa=false
CUPS_LIB_DEPENDS= libcups.so:print/cups
CUPS_VARS= GN_ARGS+=use_cups=true
CUPS_VARS_OFF= GN_ARGS+=use_cups=false
DEBUG_VARS= BUILDTYPE=Debug \
GN_ARGS+=is_component_build=false
DEBUG_VARS_OFF= BUILDTYPE=Release
DIST_IMPLIES= DRIVER
DRIVER_ALL_TARGET= chromedriver
KERBEROS_VARS= GN_ARGS+=use_kerberos=true
KERBEROS_VARS_OFF= GN_ARGS+=use_kerberos=false
PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PULSEAUDIO_VARS= GN_ARGS+=use_pulseaudio=true
PULSEAUDIO_VARS_OFF= GN_ARGS+=use_pulseaudio=false
.include "Makefile.tests"
TEST_DISTFILES= ${CHROMIUM_TEST_FONTS_HASH}:chromium_testfonts
TEST_ALL_TARGET= ${TEST_TARGETS}
TEST_ALL_TARGET+= third_party/electron_node:headers
POST_BUILD_TARGETS= licenses version
POST_BUILD_DIST_TARGETS= dist.zip chromedriver.zip mksnapshot.zip
YARN_TIMESTAMP= 1573637891
PLIST_SUB= ELECTRON_VER=${ELECTRON_VER}
.include <bsd.port.pre.mk>
.if ${ARCH} == "amd64"
PLIST_SUB+= AMD64=""
.else
PLIST_SUB+= AMD64="@comment "
.endif
.if ${ARCH} == "i386"
PLIST_SUB+= I386=""
.else
PLIST_SUB+= I386="@comment "
.endif
pre-fetch:
@${MKDIR} ${DISTDIR}/${DIST_SUBDIR}
if [ ! -f ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} ]; \
then ${MKDIR} ${WRKDIR}; \
${SED} -e 's|$${WRKDIR}|${WRKDIR}|' \
${FILESDIR}/yarnrc-offline-mirror >> ${WRKDIR}/.yarnrc; \
${CP} ${FILESDIR}/package.json ${FILESDIR}/yarn.lock ${WRKDIR}; \
cd ${WRKDIR} && ${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache \
yarn --frozen-lockfile; \
${MTREE_CMD} -cbnSp yarn-offline-cache | ${MTREE_CMD} -C | ${SED} \
-e 's:time=[0-9.]*:time=${YARN_TIMESTAMP}.000000000:' \
-e 's:\([gu]id\)=[0-9]*:\1=0:g' \
-e 's:flags=.*:flags=none:' \
-e 's:^\.:./yarn-offline-cache:' > yarn-offline-cache.mtree; \
${TAR} cJf ${DISTDIR}/${DIST_SUBDIR}/electron-yarn-cache-${ELECTRON_VER}${EXTRACT_SUFX} \
@yarn-offline-cache.mtree; \
${RM} -r ${WRKDIR}; \
fi
post-extract:
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/chromium-${CHROMIUM_VER} ${WRKSRC}
${RM} -r ${WRKSRC}/tools/gn
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/chromium-${CHROMIUM_OFFICIAL_VER}/tools/gn \
${WRKSRC}/tools/gn
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${PORTNAME}-${ELECTRON_VER} ${WRKSRC}/electron
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_node}-${NODE_VER} \
${WRKSRC}/third_party/electron_node
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/yarn-offline-cache ${WRKDIR}
${SED} -e 's|$${WRKDIR}|${WRKDIR}|' ${FILESDIR}/yarnrc-offline-mirror >> ${WRKSRC}/electron/.yarnrc
cd ${WRKSRC}/electron && \
${SETENV} HOME=${WRKDIR} XDG_CACHE_HOME=${WRKDIR}/.cache yarn --frozen-lockfile --offline
# ${RMDIR} ${WRKSRC}/electron/vendor/${GH_PROJECT_boto}
# ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_boto}-${GH_TAGNAME_boto} \
# ${WRKSRC}/electron/vendor/${GH_PROJECT_boto}
# ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_pyyaml}-${GH_TAGNAME_pyyaml} \
# ${WRKSRC}/electron/vendor/${GH_PROJECT_pyyaml}
# ${RMDIR} ${WRKSRC}/electron/vendor/${GH_PROJECT_requests}
# ${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/${GH_PROJECT_requests}-${GH_TAGNAME_requests} \
# ${WRKSRC}/electron/vendor/${GH_PROJECT_requests}
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/node_modules ${WRKSRC}/third_party/node
post-extract-TEST-on:
${MV} ${WRKDIR}/${PORTNAME}-${ELECTRON_VER}/test_fonts ${WRKSRC}/third_party/test_fonts
pre-patch:
${SH} ${FILESDIR}/apply-electron-patches.sh ${WRKSRC}
# ${FIND} ${WRKSRC} -type f -name '*.orig' -print -delete
# ${FIND} ${WRKSRC} -type f -name '*~' -print -delete
pre-configure:
# cd ${WRKSRC}/electron/vendor/${GH_PROJECT_boto} && \
# ${PYTHON_CMD} setup.py build
# cd ${WRKSRC}/electron/vendor/${GH_PROJECT_requests} && \
# ${PYTHON_CMD} setup.py build
# We used to remove bundled libraries to be sure that chromium uses
# system libraries and not shipped ones.
# cd ${WRKSRC} && ${PYTHON_CMD} \
#./build/linux/unbundle/remove_bundled_libraries.py [list of preserved]
cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ${PYTHON_CMD} \
./build/linux/unbundle/replace_gn_files.py --system-libraries \
ffmpeg flac fontconfig freetype harfbuzz-ng libdrm libjpeg \
libusb libvpx libwebp libxml libxslt openh264 opus re2 snappy \
yasm || ${FALSE}
do-configure:
# GN generator bootstrapping and generating ninja files
cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} CC=${CC} CXX=${CXX} LD=${CXX} \
READELF=${READELF} AR=${AR} NM=${NM} ${PYTHON_CMD} \
./tools/gn/bootstrap/bootstrap.py ${GN_BOOTSTRAP_FLAGS}
cd ${WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ./out/${BUILDTYPE}/gn gen out/${BUILDTYPE} \
--args='import("//electron/build/args/${BUILDTYPE:tl}.gn") ${GN_ARGS}'
# Setup nodejs dependency
${MKDIR} ${WRKSRC}/third_party/node/freebsd/node-freebsd-x64/bin
${LN} -sf ${LOCALBASE}/bin/node ${WRKSRC}/third_party/node/freebsd/node-freebsd-x64/bin/node
# Setup java dependency
${MKDIR} ${WRKDIR}/bin
${LN} -sf ${LOCALBASE}/openjdk8/bin/java ${WRKDIR}/bin/java
# do-build:
# cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} ninja -C out/${BUILDTYPE} ${ALL_TARGET}
post-build:
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_TARGETS}
post-build-DIST-on:
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} \
${MAKE_CMD} ${MAKE_ARGS} ${POST_BUILD_DIST_TARGETS}
cd ${WRKSRC}/out/${BUILDTYPE} && \
${CP} chromedriver.zip chromedriver-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \
${CP} dist.zip electron-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \
${CP} mksnapshot.zip mksnapshot-v${ELECTRON_VER}-freebsd-${ARCH:S/amd64/x64/:S/i386/ia32/}.zip && \
${SHA256} -r *-v${ELECTRON_VER}-freebsd-*.zip | ${SED} -e 's/ / */' > SHASUMS256.txt
do-install:
${MKDIR} ${STAGEDIR}${DATADIR}
.for f in electron mksnapshot v8_context_snapshot_generator
${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR}
.endfor
.for f in libEGL.so libGLESv2.so
${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR}
.endfor
${MKDIR} ${STAGEDIR}${DATADIR}/swiftshader
.for f in libEGL.so libGLESv2.so
${INSTALL_LIB} ${WRKSRC}/out/${BUILDTYPE}/swiftshader/${f} ${STAGEDIR}${DATADIR}/swiftshader
.endfor
.for f in LICENSE LICENSES.chromium.html icudtl.dat natives_blob.bin snapshot_blob.bin v8_context_snapshot.bin version
${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR}
.endfor
.for f in chrome_100_percent.pak chrome_200_percent.pak resources.pak
${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/${f} ${STAGEDIR}${DATADIR}
.endfor
${MKDIR} ${STAGEDIR}${DATADIR}/locales
${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/locales/*.pak ${STAGEDIR}${DATADIR}/locales
${MKDIR} ${STAGEDIR}${DATADIR}/resources
.for f in default_app.asar electron.asar
${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/resources/${f} ${STAGEDIR}${DATADIR}/resources
.endfor
${RLN} ${STAGEDIR}${DATADIR}/electron ${STAGEDIR}${PREFIX}/bin
post-install-DIST-on:
${MKDIR} ${STAGEDIR}${DATADIR}/releases
${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/SHASUMS256.txt ${STAGEDIR}${DATADIR}/releases
${INSTALL_DATA} ${WRKSRC}/out/${BUILDTYPE}/*-v${ELECTRON_VER}-freebsd-*.zip ${STAGEDIR}${DATADIR}/releases
post-install-DRIVER-on:
${INSTALL_PROGRAM} ${WRKSRC}/out/${BUILDTYPE}/chromedriver ${STAGEDIR}${DATADIR}
do-test-TEST-on:
# chromium unit tests
# .for t in ${TEST_ALL_TARGET}
# cd ${WRKSRC}/out/${BUILDTYPE} && ${SETENV} LC_ALL=en_US.UTF-8 \
# ./${t} --gtest_filter=-${EXCLUDE_${t}:ts:} || ${TRUE}
# .endfor
# electron unit tests
# Note 1: "npm install" will run before actual tests are executed
# Note 2: Xvfb or something similar is necessary for headless testing
# **Note 3: unit test won't run yet. (robotjs doesn't build with node 12).**
.for t in ${TEST_MODULES}
cd ${WRKSRC}/electron && \
${SETENV} ${TEST_ENV} ELECTRON_OUT_DIR=${BUILDTYPE} \
npm run test -- --ci -g '${t}' || ${TRUE}
.endfor
.include <bsd.port.post.mk>
# $FreeBSD$
TEST_TARGETS= base_unittests \
chromedriver_unittests \
crypto_unittests \
printing_unittests \
url_unittests
# capture_unittests \
# cc_unittests \
# compositor_unittests \
# content_unittests \
# dbus_unittests \
# display_unittests \
# events_unittests \
# gin_unittests \
# gl_unittests \
# gpu_unittests \
# headless_unittests \
# media_unittests \
# media_mojo_unittests \
# midi_unittests \
# mojo_unittests \
# net_unittests \
# ppapi_unittests \
# skia_unittests \
# sql_unittests \
# storage_unittests \
# ui_base_unittests \
# url_ipc_unittests \
# unittests \
TEST_MODULES= electron\ module \
app\ module \
default\ behavior \
webContents\ module \
autoUpdater\ module \
BrowserView\ module \
BrowserWindow\ with\ affinity\ module \
BrowserWindow\ module \
CallbacksRegistry\ module \
clipboard\ module \
contentTracing \
debugger\ module \
deprecations \
desktopCapturer \
dialog\ module \
globalShortcut\ module \
ipc\ main\ module \
ipc\ renderer\ module \
MenuItems \
Menu\ module \
nativeImage\ module \
netLog\ module \
net\ module \
Notification\ module \
powerMonitor \
powerSaveBlocker\ module \
process\ module \
protocol\ module \
remote\ module \
screen\ module \
session\ module \
shell\ module \
renderer\ nodeIntegrationInSubFrames \
systemPreferences\ module \
TouchBar\ module \
tray\ module \
View \
WebContentsView \
webFrame\ module \
webRequest\ module \
asar\ package \
chrome\ api \
chromium\ feature \
font\ fallback \
chrome\ extension\ content\ scripts \
feature-string\ parsing \
modules\ support \
node\ feature \
security\ warnings \
bump-version\ utils \
bump-version\ script \
<webview>\ tag
# crashReporter\ module \
# inAppPurchase\ module \
TIMESTAMP = 1573639983
SHA256 (electron/chromium-76.0.3809.146.tar.xz) = 1538c7118fb94c1ba6b6da18f4b8f6a6d303dee855ee0e5c3f9025f17563f3cd
SIZE (electron/chromium-76.0.3809.146.tar.xz) = 1355929024
SHA256 (electron/chromium-76.0.3809.132.tar.xz) = d54e4640b5e399d170dffbc5bcff65157eb1b29314b94b5d808f727d9ce45241
SIZE (electron/chromium-76.0.3809.132.tar.xz) = 728899912
SHA256 (electron/2dd750e768cec597fc018509009637819ae4549c) = d63b5953e3e8a0d6b7ed344043f9ffe7a49ddcf4e591d59aebaf87e299360730
SIZE (electron/2dd750e768cec597fc018509009637819ae4549c) = 4182260
SHA256 (electron/electron-yarn-cache-6.1.4.tar.xz) = f05c5ed9d00bdb28351867f1172af488fc0ff040dece628ebe9e3841b2927d1b
SIZE (electron/electron-yarn-cache-6.1.4.tar.xz) = 36875872
SHA256 (electron/a22de844e32a3f720d219e3911c3da3478039f89) = 6e331676d098a57c53c1250821dc47ed84c47f823901bf30c4704df90d8a34be
SIZE (electron/a22de844e32a3f720d219e3911c3da3478039f89) = 17469927
SHA256 (electron/electron-electron-v6.1.4_GH0.tar.gz) = 881ca1f9e0904b0cd193b38b063e878c63926b48317ce356bcaf35aec97e3ad7
SIZE (electron/electron-electron-v6.1.4_GH0.tar.gz) = 4152215
SHA256 (electron/nodejs-node-v12.4.0_GH0.tar.gz) = fc7df2a5cdb43b7a186f07a04e6b0f5c5c3b4c117f08185ffec3345613c71d94
SIZE (electron/nodejs-node-v12.4.0_GH0.tar.gz) = 70296027
#! /bin/sh
PATH=/bin:/usr/bin:/usr/local/bin
PATCH_CMD="git apply"
#PATCH_FLAGS="--numstat --check" # for debugging
PATCH_FLAGS="--verbose --reject"
WRKSRC=$1
PATCH_CONF=${WRKSRC}/electron/patches/common/config.json
PATCHD_REPOD_PAIRS=$(sed -e '1d; $d; /^$/d; s/[",]//g; s/: */:/' "${PATCH_CONF}")
for prp in ${PATCHD_REPOD_PAIRS}; do
pd=$(echo "${prp}" | awk -F: '{print $1}' | sed -e 's/src/./')
rd=$(echo "${prp}" | awk -F: '{print $2}' | sed -e 's/src/./')
(cd "${WRKSRC}/${rd}" && \
while read -r p; do
${PATCH_CMD} ${PATCH_FLAGS} "${WRKSRC}/${pd}/${p}"
done < "${WRKSRC}/${pd}/.patches")
done
{
"name": "electron",
"version": "6.1.4",
"repository": "https://github.com/electron/electron",
"description": "Build cross platform desktop apps with JavaScript, HTML, and CSS",
"devDependencies": {
"@octokit/rest": "^16.3.2",
"@types/chai": "^4.1.7",
"@types/chai-as-promised": "^7.1.0",
"@types/express": "^4.16.1",
"@types/fs-extra": "^5.0.5",
"@types/mocha": "^5.2.6",
"@types/node": "^10.12.21",
"@types/split": "^1.0.0",
"@typescript-eslint/eslint-plugin": "^1.4.2",
"@typescript-eslint/parser": "^1.4.2",
"aliasify": "^2.1.0",
"asar": "^1.0.0",
"browserify": "^16.2.3",
"check-for-leaks": "^1.0.2",
"clang-format": "^1.2.3",
"colors": "^1.1.2",
"dotenv-safe": "^4.0.4",
"dugite": "^1.45.0",
"electron-docs-linter": "^3.0.1",
"electron-typescript-definitions": "^8.2.2",
"eslint": "^5.13.0",
"eslint-config-standard": "^12.0.0",
"eslint-plugin-import": "^2.17.2",
"eslint-plugin-mocha": "^5.2.0",
"eslint-plugin-node": "^8.0.1",
"eslint-plugin-standard": "^4.0.0",
"eslint-plugin-typescript": "^0.14.0",
"express": "^4.16.4",
"folder-hash": "^2.1.1",
"fs-extra": "^7.0.1",
"husky": "^0.14.3",
"klaw": "^3.0.0",
"lint": "^1.1.2",
"lint-staged": "^8.1.0",
"minimist": "^1.2.0",
"nugget": "^2.0.1",
"octicons": "^7.3.0",
"plist": "^3.0.1",
"pre-flight": "^1.1.0",
"remark-cli": "^4.0.0",
"remark-preset-lint-markdown-style-guide": "^2.1.1",
"request": "^2.88.0",
"semver": "^5.6.0",
"serve": "^6.5.8",
"shx": "^0.3.2",
"standard-markdown": "^5.0.0",
"sumchecker": "^2.0.2",
"temp": "^0.8.3",
"ts-node": "^6.0.3",
"tsify": "^4.0.1",
"typescript": "~3.3.3333"
},
"private": true,
"scripts": {
"asar": "asar",
"browserify": "browserify",
"bump-version": "./script/bump-version.js",
"check-tls": "python ./script/tls.py",
"clang-format": "find atom/ chromium_src/ -iname *.h -o -iname *.cc -o -iname *.mm | xargs clang-format -i",
"lint": "node ./script/lint.js && npm run lint:clang-format && npm run lint:docs",
"lint:js": "node ./script/lint.js --js",
"lint:clang-format": "python script/run-clang-format.py -r -c atom/ chromium_src/ || (echo \"\\nCode not formatted correctly.\" && exit 1)",
"lint:cpp": "node ./script/lint.js --cc",
"lint:py": "node ./script/lint.js --py",
"lint:gn": "node ./script/lint.js --gn",
"lint:docs": "remark docs -qf && npm run lint:js-in-markdown && npm run create-typescript-definitions && npm run lint:docs-relative-links && npm run lint:check-trailing-whitespace",
"lint:docs-relative-links": "python ./script/check-relative-doc-links.py",
"lint:check-trailing-whitespace": "python ./script/check-trailing-whitespace.py",
"lint:js-in-markdown": "standard-markdown docs",
"create-api-json": "electron-docs-linter docs --outfile=electron-api.json",
"create-typescript-definitions": "npm run create-api-json && electron-typescript-definitions --in=electron-api.json --out=electron.d.ts && node spec/ts-smoke/runner.js",
"gn-typescript-definitions": "npm run create-typescript-definitions && shx cp electron.d.ts",
"pre-flight": "pre-flight",
"preinstall": "node -e 'process.exit(0)'",
"precommit": "lint-staged",
"prepack": "check-for-leaks",
"prepush": "check-for-leaks",
"repl": "node ./script/start.js --interactive",
"start": "node ./script/start.js",
"test": "node ./script/spec-runner.js",
"tsc": "tsc"
},
"license": "MIT",
"author": "Electron Community",
"keywords": [
"electron"
],
"aliasify": {
"replacements": {
"@electron/internal/(.+)": "./lib/$1"
},
"appliesTo": {
"includeExtensions": [
".js",
".ts"
]
}
},
"lint-staged": {
"*.{js,ts}": [
"node script/lint.js --js --fix --only --",
"git add"
],
"*.{js,ts,d.ts}": [
"node script/gen-filenames.js",
"git add"
],
"*.{cc,mm,c,h}": [
"python script/run-clang-format.py -r -c --fix",
"git add"
],
"*.md": [
"remark -qf"
],
"*.{gn,gni}": [
"python script/run-gn-format.py",
"git add"
],
"*.py": [
"node script/lint.js --py --fix --only --",
"git add"
],
"docs/api/**/*.md": [
"node script/gen-filenames.js",
"python script/check-trailing-whitespace.py --fix",
"git add filenames.auto.gni"
]
}
}
--- BUILD.gn.orig 2019-09-10 11:13:30 UTC
+++ BUILD.gn
@@ -386,7 +386,7 @@ group("gn_all") {
]
}
- if (is_linux || is_android) {
+ if ((is_linux && !is_bsd) || is_android) {
deps += [