diff options
author | Aaron McDaniel | 2018-10-23 16:53:17 -0500 |
---|---|---|
committer | Aaron McDaniel | 2018-10-23 16:53:17 -0500 |
commit | acbcdd821bdd0078e992483fcf83c40c708adaad (patch) | |
tree | bcc0ff89b3b5f0585f2d2ff3a09061196a6a7aeb | |
parent | 77954060fd3775c2f28c2ba47a076f18f94ce99a (diff) | |
download | aur-acbcdd821bdd0078e992483fcf83c40c708adaad.tar.gz |
Updated with arch community fixes by Nicola
-rw-r--r-- | .SRCINFO | 51 | ||||
-rw-r--r-- | PKGBUILD | 165 | ||||
-rw-r--r-- | atom-git | 75 | ||||
-rw-r--r-- | atom-git.install | 11 | ||||
-rw-r--r-- | atom.desktop (renamed from atom-git.desktop) | 4 | ||||
-rw-r--r-- | atom.js | 33 | ||||
-rw-r--r-- | dugite-use-system-git.patch | 33 | ||||
-rw-r--r-- | fix-atom-sh.patch | 138 | ||||
-rw-r--r-- | fix-license-path.patch | 22 | ||||
-rw-r--r-- | fix-restart.patch | 11 | ||||
-rw-r--r-- | symbols-view-use-system-ctags.patch | 11 | ||||
-rw-r--r-- | use-system-apm.patch | 32 | ||||
-rw-r--r-- | use-system-electron.patch | 177 |
13 files changed, 589 insertions, 174 deletions
@@ -1,32 +1,43 @@ -# Generated by mksrcinfo v8 -# Wed Nov 1 12:45:39 UTC 2017 pkgbase = atom-editor-git - pkgdesc = Hackable text editor for the 21st Century, based on web technologies - git channel. - pkgver = 1.23.0.dev.33610 + pkgdesc = Hackable text editor for the 21st Century - git channel. + pkgver = 1.6.0.beta0.r8187.gec945d03c pkgrel = 1 - url = https://github.com/atom/atom - install = atom-git.install + url = https://atom.io/ arch = x86_64 arch = i686 - license = MIT - makedepends = git - makedepends = npm - depends = alsa-lib + license = MIT, + license = custom depends = gconf - depends = gtk2 - depends = libgnome-keyring - depends = libnotify - depends = libxtst depends = nodejs - depends = nss + depends = npm + depends = libsecret depends = python2 + depends = libx11 + depends = libxkbfile + depends = electron + depends = apm optdepends = gvfs: file deletion support - source = git+https://github.com/atom/atom.git - source = atom-git.desktop - source = atom-git + optdepends = ctags: symbol indexing support + source = atom-editor-git::git+https://github.com/atom/atom.git + source = dugite-use-system-git.patch + source = fix-atom-sh.patch + source = fix-license-path.patch + source = fix-restart.patch + source = symbols-view-use-system-ctags.patch + source = use-system-apm.patch + source = use-system-electron.patch + source = atom.js + source = atom.desktop sha256sums = SKIP - sha256sums = b172e3f81eb42eeb1ad6ef70300c33a79a2015110ea87c413b5857c9694d10e9 - sha256sums = 20d3c386dd60e85977511f9138e32921af051fd7e573d3052822219bd7210be9 + sha256sums = 530b46d31df0f5e8f5881e1608a66fe75d549092a6db2e72ba3ad69c48714153 + sha256sums = ab9eed3d4c8bfefea256953428379ab1e636b9c7d4c4af30ddc3f485330183c2 + sha256sums = c8a931f36af3722c57c4d1b70c1e58aa1a18372e8e26c28a4e01253e05295205 + sha256sums = 1f48c84f30ffefaef7235d8231af7357b801d66de9f09921d0ee0dd5849595ca + sha256sums = 3c68e6b3751313e1d386e721f8f819fb051351fb2cf8e753b1d773a0f475fef8 + sha256sums = 32e27c6245237a794b15eaf7dbfb81196455865af8ed9157aca763ed21a2fef3 + sha256sums = 8427b38936c4f01ceed4d171528ee375ce211fac01fb220b1596d3a074b31663 + sha256sums = cdf87ab82cfcf69e8904684c59b08c35a68540ea16ab173fce06037ac341efcd + sha256sums = bf7778fa5084027f94cb9c15d2df3b3651ff4749e7d8c0d0c50226400b75efe7 pkgname = atom-editor-git @@ -1,88 +1,121 @@ +# Maintainer: Aaron McDaniel (mcd1992) <'aur' at the domain 'fgthou.se'> # Contributor: Matheus de Alcantara <matheus.de.alcantara@gmail.com> -# Maintainer: Brenton Horne <brentonhorne77 at gmail dot com> +# Contributor: Brenton Horne <brentonhorne77 at gmail dot com> +# Contributor: Nicola Squartini <tensor5@gmail.com> -_pkgname=atom -_version=git - -pkgname=${_pkgname}-editor-${_version} -pkgver=1.23.0.dev.33610 +pkgname=atom-editor-git +pkgver=1.6.0.beta0.r8187.gec945d03c pkgrel=1 -pkgdesc='Hackable text editor for the 21st Century, based on web technologies - git channel.' +pkgdesc='Hackable text editor for the 21st Century - git channel.' +url="https://atom.io/" arch=('x86_64' 'i686') -url="https://github.com/${_pkgname}/${_pkgname}" -license=('MIT') -depends=('alsa-lib' 'gconf' 'gtk2' 'libgnome-keyring' 'libnotify' 'libxtst' 'nodejs' 'nss' 'python2') -optdepends=('gvfs: file deletion support') -makedepends=('git' 'npm') -install=${_pkgname}-${_version}.install -source=("git+${url}.git" -"${_pkgname}-${_version}.desktop" -"${_pkgname}-${_version}") +license=('MIT', 'custom') +depends=('gconf' 'nodejs' 'npm' 'libsecret' 'python2' 'libx11' 'libxkbfile' 'electron' 'apm') +optdepends=('gvfs: file deletion support' + 'ctags: symbol indexing support') +source=("${pkgname}::git+https://github.com/atom/atom.git" + 'dugite-use-system-git.patch' + 'fix-atom-sh.patch' + 'fix-license-path.patch' + 'fix-restart.patch' + 'symbols-view-use-system-ctags.patch' + 'use-system-apm.patch' + 'use-system-electron.patch' + 'atom.js' + 'atom.desktop') sha256sums=('SKIP' - 'b172e3f81eb42eeb1ad6ef70300c33a79a2015110ea87c413b5857c9694d10e9' - '20d3c386dd60e85977511f9138e32921af051fd7e573d3052822219bd7210be9') - + '530b46d31df0f5e8f5881e1608a66fe75d549092a6db2e72ba3ad69c48714153' + 'ab9eed3d4c8bfefea256953428379ab1e636b9c7d4c4af30ddc3f485330183c2' + 'c8a931f36af3722c57c4d1b70c1e58aa1a18372e8e26c28a4e01253e05295205' + '1f48c84f30ffefaef7235d8231af7357b801d66de9f09921d0ee0dd5849595ca' + '3c68e6b3751313e1d386e721f8f819fb051351fb2cf8e753b1d773a0f475fef8' + '32e27c6245237a794b15eaf7dbfb81196455865af8ed9157aca763ed21a2fef3' + '8427b38936c4f01ceed4d171528ee375ce211fac01fb220b1596d3a074b31663' + 'cdf87ab82cfcf69e8904684c59b08c35a68540ea16ab173fce06037ac341efcd' + 'bf7778fa5084027f94cb9c15d2df3b3651ff4749e7d8c0d0c50226400b75efe7') pkgver() { - cd $srcdir/$_pkgname - _basever=$(cat package.json | grep version | sed 's/version//g' | sed 's/://g' | sed 's/ //g' | sed 's/"//g' | sed 's/,//g' | sed 's/-/./g') - _commitno=$(git rev-list --count HEAD) - printf "${_basever}.${_commitno}" + cd ${pkgname} + # Remove 'v' prefix on tags; prefix revision with 'r'; replace all '-' with '.' + git describe --long | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g' } prepare() { - cd "$srcdir/${_pkgname}" + cd ${pkgname} - sed -i -e 's@node script/bootstrap@node script/bootstrap --no-quiet@g' \ - ./script/build || die "Fail fixing verbosity of script/build" + patch -Np1 -i "${srcdir}"/fix-atom-sh.patch + patch -Np1 -i "${srcdir}"/use-system-electron.patch + patch -Np1 -i "${srcdir}"/use-system-apm.patch + patch -Np1 -i "${srcdir}"/fix-license-path.patch + patch -Np1 -i "${srcdir}"/fix-restart.patch } build() { - # Fix : GYP does not support python3 but uses python, not python2 - export PYTHON=/usr/bin/python2 - cd "${srcdir}" - mkdir -p pypath - ln -fs /usr/bin/python2 ./pypath/python - export PATH=$(pwd)/pypath:$PATH + cd ${pkgname} +# export PYTHON=/usr/bin/python2 +# export IOJS_ORG_MIRROR=https://atom.io/download/electron +# export npm_config_python=/usr/bin/python2 + + ATOM_RESOURCE_PATH="${PWD}" npm_config_target=$(tail -c +2 /usr/lib/electron/version) apm install + + # Use system ctags + cd "${srcdir}/${pkgname}/node_modules/symbols-view" + patch -Np1 -i "${srcdir}"/symbols-view-use-system-ctags.patch + rm -r vendor + + # Use system git + cd "${srcdir}/${pkgname}/node_modules/dugite" + patch -Np1 -i "${srcdir}"/dugite-use-system-git.patch + rm -r git - cd "${srcdir}/${_pkgname}" - # Cleanup a non-clean srcdir - rm -f ./apm/package-lock.json ./node_modules/github/node_modules.bak - ./script/build # use until ./script/build; do :; done instead if network errors occur + cd "${srcdir}/${pkgname}/script" + npm install + ./build } package() { - cd "$srcdir/${_pkgname}" + cd ${pkgname} - _ver=$(cat package.json | grep version | sed 's/version//g' | sed 's/://g' | sed 's/ //g' | sed 's/"//g' | sed 's/,//g') - _commit=$(git rev-parse --short HEAD) + ls -la + pwd + echo "$pkgdir" + echo "$srcdir" - _arch=amd64 - if [ "${CARCH}" = "i686" ]; then - _arch=i386 - fi - install -dm755 ${pkgdir}/usr/bin - install -dm755 ${pkgdir}/usr/share/${_pkgname}-${_version} - install -dm755 ${pkgdir}/usr/share/applications - install -dm755 ${pkgdir}/usr/share/licenses/$pkgname - install -dm755 ${pkgdir}/usr/share/pixmaps + install -d -m 755 "${pkgdir}"/usr/lib + cp -r out/app "${pkgdir}"/usr/lib/atom + install -m 644 out/startup.js "${pkgdir}"/usr/lib/atom + install -m 755 "${srcdir}/atom.js" "${pkgdir}"/usr/lib/atom/atom + install -d -m 755 "${pkgdir}/usr/share/applications" + install -m 644 "${srcdir}/atom.desktop" "${pkgdir}/usr/share/applications/atom.desktop" - cp -r out/atom-${_ver}-${_commit}-${_arch}/* ${pkgdir}/usr/share/${_pkgname}-${_version}/ - mv ${pkgdir}/usr/share/${_pkgname}-${_version}/atom.png ${pkgdir}/usr/share/pixmaps/${_pkgname}-${_version}.png - mv ${pkgdir}/usr/share/${_pkgname}-${_version}/LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE - install -Dm755 $srcdir/${_pkgname}-${_version} ${pkgdir}/usr/bin/${_pkgname}-${_version} - install -Dm644 $srcdir/${_pkgname}-${_version}.desktop ${pkgdir}/usr/share/applications/${_pkgname}-${_version}.desktop - rm ${pkgdir}/usr/share/${_pkgname}-${_version}/resources/app/atom.sh - rm -rf ${pkgdir}/usr/share/${_pkgname}-${_version}/resources/app.asar.unpacked/resources - ln -sf "/usr/share/${_pkgname}-${_version}/resources/app/apm/node_modules/.bin/apm" "${pkgdir}/usr/bin/apm-${_version}" +# sed -e "s|<%= appName %>|Atom|" \ +# -e "s/<%= description %>/${pkgdesc}/" \ +# -e "s|<%= installDir %>/share/<%= appFileName %>/atom|/usr/lib/atom/atom|" \ +# -e "s|<%= iconPath %>|atom|" \ +# resources/linux/atom.desktop.in > "${pkgdir}/usr/share/applications/atom.desktop" - find "$pkgdir" \ - -name "*.a" -exec rm '{}' \; \ - -or -name "*.bat" -exec rm '{}' \; \ - -or -name "benchmark" -prune -exec rm -r '{}' \; \ - -or -name "doc" -prune -exec rm -r '{}' \; \ - -or -name "html" -prune -exec rm -r '{}' \; \ - -or -name "man" -prune -exec rm -r '{}' \; \ - -or -path "*/less/gradle" -prune -exec rm -r '{}' \; \ - -or -path "*/task-lists/src" -prune -exec rm -r '{}' \; \ - -or -name "package.json" -exec sed -i -e "s|${srcdir}/atom/apm|/usr/share/${_pkgname}-${_version}/resources/app/apm|g" '{}' + + + for size in 16 24 32 48 64 128 256 512 1024; do + install -D -m 644 resources/app-icons/stable/png/${size}.png \ + "${pkgdir}"/usr/share/icons/hicolor/${size}x${size}/apps/atom.png + done + ln -sf ../../../share/icons/hicolor/1024x1024/apps/atom.png \ + "${pkgdir}"/usr/lib/atom/resources/atom.png + + install -D -m 755 atom.sh "${pkgdir}/usr/bin/atom" + + install -d -m 755 "${pkgdir}/usr/share/licenses/${pkgname}" + node -e "require('./script/lib/get-license-text')().then((licenseText) => require('fs').writeFileSync('${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.md', licenseText))" + + # Remove useless stuff + find "${pkgdir}"/usr/lib/atom/node_modules \ + -name "*.a" -exec rm '{}' \; \ + -or -name "*.bat" -exec rm '{}' \; \ + -or -name "*.node" -exec chmod a-x '{}' \; \ + -or -name "benchmark" -prune -exec rm -r '{}' \; \ + -or -name "doc" -prune -exec rm -r '{}' \; \ + -or -name "html" -prune -exec rm -r '{}' \; \ + -or -name "man" -prune -exec rm -r '{}' \; \ + -or -name "scripts" -prune -exec rm -r '{}' \; \ + -or -path "*/less/gradle" -prune -exec rm -r '{}' \; \ + -or -path "*/task-lists/src" -prune -exec rm -r '{}' \; } diff --git a/atom-git b/atom-git deleted file mode 100644 index 69ef3f07024a..000000000000 --- a/atom-git +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash - -# Always disable environment shell grab, causes lockups -export ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT=true - -while getopts ":wtfvh-:" opt; do - case "$opt" in - -) - case "${OPTARG}" in - wait) - WAIT=1 - ;; - help|version) - REDIRECT_STDERR=1 - EXPECT_OUTPUT=1 - ;; - foreground|test) - EXPECT_OUTPUT=1 - ;; - esac - ;; - w) - WAIT=1 - ;; - h|v) - REDIRECT_STDERR=1 - EXPECT_OUTPUT=1 - ;; - f|t) - EXPECT_OUTPUT=1 - ;; - esac -done - -if [ $REDIRECT_STDERR ]; then - exec 2> /dev/null -fi - -if [ $EXPECT_OUTPUT ]; then - export ELECTRON_ENABLE_LOGGING=1 -fi - -SCRIPT=$(readlink -f "$0") -USR_DIRECTORY=$(readlink -f $(dirname $SCRIPT)/..) - -ATOM_PATH="$USR_DIRECTORY/share/atom-git/atom" - -ATOM_HOME="${ATOM_HOME:-$HOME/.atom}" -mkdir -p "$ATOM_HOME" - -if [ $EXPECT_OUTPUT ]; then - "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" - exit $? -else - ( - nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$ATOM_HOME/nohup.out" 2>&1 - if [ $? -ne 0 ]; then - cat "$ATOM_HOME/nohup.out" - exit $? - fi - ) & -fi - -# Exits this process when Atom is used as $EDITOR -on_die() { - exit 0 -} -trap 'on_die' SIGQUIT SIGTERM - -# If the wait flag is set, don't exit this process until Atom tells it to. -if [ $WAIT ]; then - while true; do - sleep 1 - done -fi diff --git a/atom-git.install b/atom-git.install deleted file mode 100644 index e111ef946053..000000000000 --- a/atom-git.install +++ /dev/null @@ -1,11 +0,0 @@ -post_install() { - update-desktop-database -q -} - -post_upgrade() { - post_install -} - -post_remove() { - post_install -} diff --git a/atom-git.desktop b/atom.desktop index 8797eac8555f..b316bd4bc528 100644 --- a/atom-git.desktop +++ b/atom.desktop @@ -1,9 +1,9 @@ [Desktop Entry] Name=Atom Git -Comment=Hackable text editor for the 21st Century, based on web technologies and built from the latest git source code +Comment=Hackable text editor for the 21st Century - git GenericName=Text Editor Exec=/usr/bin/atom-git %U -Icon=atom-git.png +Icon=atom Type=Application StartupNotify=true Categories=GTK;Utility;TextEditor;Development; diff --git a/atom.js b/atom.js new file mode 100644 index 000000000000..386929835763 --- /dev/null +++ b/atom.js @@ -0,0 +1,33 @@ +#!/usr/bin/electron + +const name = "atom"; + +const {app} = require("electron"); +const fs = require("fs"); +const Module = require("module"); +const {join} = require("path"); +const vm = require("vm"); + +// Change command name. +const fd = fs.openSync("/proc/self/comm", fs.constants.O_WRONLY); +fs.writeSync(fd, name); +fs.closeSync(fd); + +// Remove first command line argument (/usr/bin/electron). +process.argv.splice(0, 1); + +// Set application paths. +const appPath = __dirname; +const packageJson = require(join(appPath, "package.json")); +const productName = packageJson.productName; +app.setAppPath(appPath); +app.setDesktopName(name + ".desktop"); +app.setName(productName); +app.setPath("userCache", join(app.getPath("cache"), productName)); +app.setPath("userData", join(app.getPath("appData"), productName)); +app.setVersion(packageJson.version); + +// Run the application. +const startupJs = fs.readFileSync(join(appPath, "startup.js"), "utf-8"); +vm.runInThisContext(startupJs); +Module._load(appPath, Module, true); diff --git a/dugite-use-system-git.patch b/dugite-use-system-git.patch new file mode 100644 index 000000000000..c28ccd0968b2 --- /dev/null +++ b/dugite-use-system-git.patch @@ -0,0 +1,33 @@ +--- a/build/lib/git-environment.js ++++ b/build/lib/git-environment.js +@@ -24,7 +24,7 @@ + return path.resolve(process.env.LOCAL_GIT_DIRECTORY); + } + else { +- return resolveEmbeddedGitDir(); ++ return '/usr'; + } + } + /** +@@ -57,7 +57,7 @@ + return path.join(gitDir, 'mingw32', 'libexec', 'git-core'); + } + else { +- return path.join(gitDir, 'libexec', 'git-core'); ++ return path.join(gitDir, 'lib', 'git-core'); + } + } + /** +@@ -108,9 +108,9 @@ + if (!env.GIT_SSL_CAINFO && !env.LOCAL_GIT_DIRECTORY) { + // use the SSL certificate bundle included in the distribution only + // when using embedded Git and not providing your own bundle +- const distDir = resolveEmbeddedGitDir(); +- const sslCABundle = `${distDir}/ssl/cacert.pem`; +- env.GIT_SSL_CAINFO = sslCABundle; ++ // const distDir = resolveEmbeddedGitDir(); ++ // const sslCABundle = `${distDir}/ssl/cacert.pem`; ++ // env.GIT_SSL_CAINFO = sslCABundle; + } + } + return { env, gitLocation }; diff --git a/fix-atom-sh.patch b/fix-atom-sh.patch new file mode 100644 index 000000000000..6d7106a9b316 --- /dev/null +++ b/fix-atom-sh.patch @@ -0,0 +1,138 @@ +--- a/atom.sh ++++ b/atom.sh +@@ -1,29 +1,5 @@ + #!/bin/bash + +-if [ "$(uname)" == 'Darwin' ]; then +- OS='Mac' +-elif [ "$(expr substr $(uname -s) 1 5)" == 'Linux' ]; then +- OS='Linux' +-else +- echo "Your platform ($(uname -a)) is not supported." +- exit 1 +-fi +- +-case $(basename $0) in +- atom-beta) +- CHANNEL=beta +- ;; +- atom-nightly) +- CHANNEL=nightly +- ;; +- atom-dev) +- CHANNEL=dev +- ;; +- *) +- CHANNEL=stable +- ;; +-esac +- + export ATOM_DISABLE_SHELLING_OUT_FOR_ENVIRONMENT=true + + while getopts ":wtfvh-:" opt; do +@@ -65,95 +41,19 @@ + ATOM_HOME="${ATOM_HOME:-$HOME/.atom}" + mkdir -p "$ATOM_HOME" + +-if [ $OS == 'Mac' ]; then +- if [ -L "$0" ]; then +- SCRIPT="$(readlink "$0")" +- else +- SCRIPT="$0" +- fi +- ATOM_APP="$(dirname "$(dirname "$(dirname "$(dirname "$SCRIPT")")")")" +- if [ "$ATOM_APP" == . ]; then +- unset ATOM_APP +- else +- ATOM_PATH="$(dirname "$ATOM_APP")" +- ATOM_APP_NAME="$(basename "$ATOM_APP")" +- fi ++ATOM_PATH="/usr/lib/atom/atom" + +- if [ ! -z "${ATOM_APP_NAME}" ]; then +- # If ATOM_APP_NAME is known, use it as the executable name +- ATOM_EXECUTABLE_NAME="${ATOM_APP_NAME%.*}" +- else +- # Else choose it from the inferred channel name +- if [ "$CHANNEL" == 'beta' ]; then +- ATOM_EXECUTABLE_NAME="Atom Beta" +- elif [ "$CHANNEL" == 'nightly' ]; then +- ATOM_EXECUTABLE_NAME="Atom Nightly" +- elif [ "$CHANNEL" == 'dev' ]; then +- ATOM_EXECUTABLE_NAME="Atom Dev" +- else +- ATOM_EXECUTABLE_NAME="Atom" +- fi +- fi +- +- if [ -z "${ATOM_PATH}" ]; then +- # If ATOM_PATH isn't set, check /Applications and then ~/Applications for Atom.app +- if [ -x "/Applications/$ATOM_APP_NAME" ]; then +- ATOM_PATH="/Applications" +- elif [ -x "$HOME/Applications/$ATOM_APP_NAME" ]; then +- ATOM_PATH="$HOME/Applications" +- else +- # We haven't found an Atom.app, use spotlight to search for Atom +- ATOM_PATH="$(mdfind "kMDItemCFBundleIdentifier == 'com.github.atom'" | grep -v ShipIt | head -1 | xargs -0 dirname)" +- +- # Exit if Atom can't be found +- if [ ! -x "$ATOM_PATH/$ATOM_APP_NAME" ]; then +- echo "Cannot locate ${ATOM_APP_NAME}, it is usually located in /Applications. Set the ATOM_PATH environment variable to the directory containing ${ATOM_APP_NAME}." +- exit 1 +- fi +- fi +- fi +- +- if [ $EXPECT_OUTPUT ]; then +- "$ATOM_PATH/$ATOM_APP_NAME/Contents/MacOS/$ATOM_EXECUTABLE_NAME" --executed-from="$(pwd)" --pid=$$ "$@" +- exit $? +- else +- open -a "$ATOM_PATH/$ATOM_APP_NAME" -n --args --executed-from="$(pwd)" --pid=$$ --path-environment="$PATH" "$@" +- fi +-elif [ $OS == 'Linux' ]; then +- SCRIPT=$(readlink -f "$0") +- USR_DIRECTORY=$(readlink -f $(dirname $SCRIPT)/..) +- +- case $CHANNEL in +- beta) +- ATOM_PATH="$USR_DIRECTORY/share/atom-beta/atom" +- ;; +- nightly) +- ATOM_PATH="$USR_DIRECTORY/share/atom-nightly/atom" +- ;; +- dev) +- ATOM_PATH="$USR_DIRECTORY/share/atom-dev/atom" +- ;; +- *) +- ATOM_PATH="$USR_DIRECTORY/share/atom/atom" +- ;; +- esac +- +- : ${TMPDIR:=/tmp} +- +- [ -x "$ATOM_PATH" ] || ATOM_PATH="$TMPDIR/atom-build/Atom/atom" +- +- if [ $EXPECT_OUTPUT ]; then +- "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" ++if [ $EXPECT_OUTPUT ]; then ++ "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" ++ exit $? ++else ++ ( ++ nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$ATOM_HOME/nohup.out" 2>&1 ++ if [ $? -ne 0 ]; then ++ cat "$ATOM_HOME/nohup.out" + exit $? +- else +- ( +- nohup "$ATOM_PATH" --executed-from="$(pwd)" --pid=$$ "$@" > "$ATOM_HOME/nohup.out" 2>&1 +- if [ $? -ne 0 ]; then +- cat "$ATOM_HOME/nohup.out" +- exit $? +- fi +- ) & + fi ++ ) & + fi + + # Exits this process when Atom is used as $EDITOR diff --git a/fix-license-path.patch b/fix-license-path.patch new file mode 100644 index 000000000000..4580353b9126 --- /dev/null +++ b/fix-license-path.patch @@ -0,0 +1,22 @@ +--- a/src/main-process/atom-application.js ++++ b/src/main-process/atom-application.js +@@ -416,7 +416,7 @@ + this.openPathOnEvent('application:open-your-keymap', 'atom://.atom/keymap') + this.openPathOnEvent('application:open-your-snippets', 'atom://.atom/snippets') + this.openPathOnEvent('application:open-your-stylesheet', 'atom://.atom/stylesheet') +- this.openPathOnEvent('application:open-license', path.join(process.resourcesPath, 'LICENSE.md')) ++ this.openPathOnEvent('application:open-license', '/usr/share/licenses/atom/LICENSE.md') + + this.configFile.onDidChange(settings => { + for (let window of this.getAllWindows()) { +--- a/src/workspace.js ++++ b/src/workspace.js +@@ -1132,7 +1132,7 @@ + + // Open Atom's license in the active pane. + openLicense () { +- return this.open(path.join(process.resourcesPath, 'LICENSE.md')) ++ return this.open('/usr/share/licenses/atom/LICENSE.md') + } + + // Synchronously open the given URI in the active pane. **Only use this method diff --git a/fix-restart.patch b/fix-restart.patch new file mode 100644 index 000000000000..5f5d18def99d --- /dev/null +++ b/fix-restart.patch @@ -0,0 +1,11 @@ +--- a/src/main-process/atom-application.js ++++ b/src/main-process/atom-application.js +@@ -1350,7 +1350,7 @@ + } + + restart () { +- const args = [] ++ const args = ['/usr/lib/atom/atom'] + if (this.safeMode) args.push('--safe') + if (this.logFile != null) args.push(`--log-file=${this.logFile}`) + if (this.socketPath != null) args.push(`--socket-path=${this.socketPath}`) diff --git a/symbols-view-use-system-ctags.patch b/symbols-view-use-system-ctags.patch new file mode 100644 index 000000000000..cd9ff5e2dcd4 --- /dev/null +++ b/symbols-view-use-system-ctags.patch @@ -0,0 +1,11 @@ +--- a/lib/tag-generator.js ++++ b/lib/tag-generator.js +@@ -79,7 +79,7 @@ export default class TagGenerator { + generate() { + let tags = {}; + const packageRoot = this.getPackageRoot(); +- const command = path.join(packageRoot, 'vendor', `ctags-${process.platform}`); ++ const command = 'ctags'; + const defaultCtagsFile = path.join(packageRoot, 'lib', 'ctags-config'); + const args = [`--options=${defaultCtagsFile}`, '--fields=+KS']; + diff --git a/use-system-apm.patch b/use-system-apm.patch new file mode 100644 index 000000000000..04246bd0416d --- /dev/null +++ b/use-system-apm.patch @@ -0,0 +1,32 @@ +--- a/script/lib/run-apm-install.js ++++ b/script/lib/run-apm-install.js +@@ -8,11 +8,8 @@ + const installEnv = Object.assign({}, process.env) + // Set resource path so that apm can load metadata related to Atom. + installEnv.ATOM_RESOURCE_PATH = CONFIG.repositoryRootPath +- // Set our target (Electron) version so that node-pre-gyp can download the +- // proper binaries. +- installEnv.npm_config_target = CONFIG.appMetadata.electronVersion + childProcess.execFileSync( +- CONFIG.getApmBinPath(), ++ 'apm', + ['--loglevel=error', ci ? 'ci' : 'install'], + {env: installEnv, cwd: packagePath, stdio: stdioOptions || 'inherit'} + ) +--- a/src/package-manager.js ++++ b/src/package-manager.js +@@ -167,13 +167,7 @@ + return configPath || this.apmPath + } + +- const commandName = process.platform === 'win32' ? 'apm.cmd' : 'apm' +- const apmRoot = path.join(process.resourcesPath, 'app', 'apm') +- this.apmPath = path.join(apmRoot, 'bin', commandName) +- if (!fs.isFileSync(this.apmPath)) { +- this.apmPath = path.join(apmRoot, 'node_modules', 'atom-package-manager', 'bin', commandName) +- } +- return this.apmPath ++ return '/usr/lib/node_modules/atom-package-manager/bin/apm' + } + + // Public: Get the paths being used to look for packages. diff --git a/use-system-electron.patch b/use-system-electron.patch new file mode 100644 index 000000000000..58c56d6d0d23 --- /dev/null +++ b/use-system-electron.patch @@ -0,0 +1,177 @@ +--- a/script/build ++++ b/script/build +@@ -2,10 +2,6 @@ + + 'use strict' + +-// Run bootstrap first to ensure all the dependencies used later in this script +-// are installed. +-require('./bootstrap') +- + // Needed so we can require src/module-cache.coffee during generateModuleCache + require('coffee-script/register') + require('colors') +@@ -28,7 +24,6 @@ + .wrap(yargs.terminalWidth()) + .argv + +-const checkChromedriverVersion = require('./lib/check-chromedriver-version') + const cleanOutputDirectory = require('./lib/clean-output-directory') + const codeSignOnMac = require('./lib/code-sign-on-mac') + const codeSignOnWindows = require('./lib/code-sign-on-windows') +@@ -60,7 +55,6 @@ + let binariesPromise = Promise.resolve() + + if (!argv.existingBinaries) { +- checkChromedriverVersion() + cleanOutputDirectory() + copyAssets() + transpilePackagesWithCustomTranspilerPaths() +@@ -79,67 +73,5 @@ + + if (!argv.generateApiDocs) { + binariesPromise +- .then(packageApplication) + .then(packagedAppPath => generateStartupSnapshot(packagedAppPath).then(() => packagedAppPath)) +- .then(packagedAppPath => { +- switch (process.platform) { +- case 'darwin': { +- if (argv.codeSign) { +- codeSignOnMac(packagedAppPath) +- } else { +- console.log('Skipping code-signing. Specify the --code-sign option to perform code-signing'.gray) +- } +- break +- } +- case 'win32': { +- if (argv.codeSign) { +- const executablesToSign = [ path.join(packagedAppPath, 'Atom.exe') ] +- if (argv.createWindowsInstaller) { +- executablesToSign.push(path.join(__dirname, 'node_modules', 'electron-winstaller', 'vendor', 'Update.exe')) +- } +- codeSignOnWindows(executablesToSign) +- } else { +- console.log('Skipping code-signing. Specify the --code-sign option to perform code-signing'.gray) +- } +- if (argv.createWindowsInstaller) { +- return createWindowsInstaller(packagedAppPath) +- .then((installerPath) => { +- argv.codeSign && codeSignOnWindows([installerPath]) +- return packagedAppPath +- }) +- } else { +- console.log('Skipping creating installer. Specify the --create-windows-installer option to create a Squirrel-based Windows installer.'.gray) +- } +- break +- } +- case 'linux': { +- if (argv.createDebianPackage) { +- createDebianPackage(packagedAppPath) +- } else { +- console.log('Skipping creating debian package. Specify the --create-debian-package option to create it.'.gray) +- } +- +- if (argv.createRpmPackage) { +- createRpmPackage(packagedAppPath) +- } else { +- console.log('Skipping creating rpm package. Specify the --create-rpm-package option to create it.'.gray) +- } +- break +- } +- } +- +- return Promise.resolve(packagedAppPath) +- }).then(packagedAppPath => { +- if (argv.compressArtifacts) { +- compressArtifacts(packagedAppPath) +- } else { +- console.log('Skipping artifacts compression. Specify the --compress-artifacts option to compress Atom binaries (and symbols on macOS)'.gray) +- } +- +- if (argv.install != null) { +- installApplication(packagedAppPath, argv.install) +- } else { +- console.log('Skipping installation. Specify the --install option to install Atom'.gray) +- } +- }) + } +--- a/script/lib/generate-startup-snapshot.js ++++ b/script/lib/generate-startup-snapshot.js +@@ -80,7 +80,7 @@ + } else if (process.platform === 'win32') { + nodeBundledInElectronPath = path.join(packagedAppPath, 'atom.exe') + } else { +- nodeBundledInElectronPath = path.join(packagedAppPath, 'atom') ++ nodeBundledInElectronPath = 'electron' + } + childProcess.execFileSync( + nodeBundledInElectronPath, +@@ -88,6 +88,7 @@ + {env: Object.assign({}, process.env, {ELECTRON_RUN_AS_NODE: 1})} + ) + ++/* + const generatedStartupBlobPath = path.join(CONFIG.buildOutputPath, 'snapshot_blob.bin') + console.log(`Generating startup blob at "${generatedStartupBlobPath}"`) + childProcess.execFileSync( +@@ -105,5 +106,6 @@ + console.log(`Moving generated startup blob into "${startupBlobDestinationPath}"`) + fs.unlinkSync(startupBlobDestinationPath) + fs.renameSync(generatedStartupBlobPath, startupBlobDestinationPath) ++*/ + }) + } +--- a/script/package.json ++++ b/script/package.json +@@ -9,9 +9,7 @@ + "coffeelint": "1.15.7", + "colors": "1.1.2", + "donna": "1.0.16", +- "electron-chromedriver": "~2.0", + "electron-link": "0.2.2", +- "electron-mksnapshot": "~2.0", + "electron-packager": "7.3.0", + "electron-winstaller": "2.6.4", + "fs-admin": "^0.1.5", +--- a/src/package-manager.js ++++ b/src/package-manager.js +@@ -808,7 +808,7 @@ module.exports = class PackageManager { + } + + isBundledPackagePath (packagePath) { +- if (this.devMode && !this.resourcePath.startsWith(`${process.resourcesPath}${path.sep}`)) { ++ if (this.devMode && this.resourcePath !== '/usr/lib/atom') { + return false + } + +--- a/src/task-bootstrap.js ++++ b/src/task-bootstrap.js +@@ -3,7 +3,7 @@ const [compileCachePath, taskPath] = process.argv.slice(2) + + const CompileCache = require('./compile-cache') + CompileCache.setCacheDirectory(compileCachePath) +-CompileCache.install(`${process.resourcesPath}`, require) ++CompileCache.install('/usr/lib/atom', require) + + const setupGlobals = function () { + global.attachEvent = function () {} +--- a/static/index.js ++++ b/static/index.js +@@ -23,7 +23,7 @@ + process.resourcesPath = path.normalize(process.resourcesPath) + + setupAtomHome() +- const devMode = getWindowLoadSettings().devMode || !getWindowLoadSettings().resourcePath.startsWith(process.resourcesPath + path.sep) ++ const devMode = getWindowLoadSettings().devMode || !getWindowLoadSettings().resourcePath.startsWith('/usr/lib/atom') + useSnapshot = !devMode && typeof snapshotResult !== 'undefined' + + if (devMode) { +@@ -90,7 +90,7 @@ + function setupWindow () { + const CompileCache = useSnapshot ? snapshotResult.customRequire('../src/compile-cache.js') : require('../src/compile-cache') + CompileCache.setAtomHomeDirectory(process.env.ATOM_HOME) +- CompileCache.install(process.resourcesPath, require) ++ CompileCache.install('/usr/lib/atom', require) + + const ModuleCache = useSnapshot ? snapshotResult.customRequire('../src/module-cache.js') : require('../src/module-cache') + ModuleCache.register(getWindowLoadSettings()) |