mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-22 19:44:21 +01:00
development/atom: Updated for version 1.14.3.
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
2969e98596
commit
04ddd3aa73
6 changed files with 315 additions and 21 deletions
|
@ -13,11 +13,21 @@ If you use apmd package you need rename apm tool.
|
|||
|
||||
Optional building features:
|
||||
* Disable compiling metrics module for Google Analytics
|
||||
for poeple who love your privacy
|
||||
for people who love your privacy
|
||||
https://github.com/atom/metrics
|
||||
DISABLE_METRICS=yes|no (default: no)
|
||||
* Delete temporary data cached after building package
|
||||
DELETE_CACHE=yes|no (default: no)
|
||||
* Use atom with some version of electron previously
|
||||
installed in the system. This feature don't make
|
||||
a distributable binary, and you can use like as node
|
||||
script application. This requires electron
|
||||
available in SBo
|
||||
ELECTRON=yes|no (default=no)
|
||||
|
||||
If you need to use any option do something like:
|
||||
|
||||
ELECTRON=yes ./atom.SlackBuild
|
||||
|
||||
NOTE:
|
||||
Atom may failed to build at first attempt.
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
PRGNAM=atom
|
||||
VERSION=${VERSION:-1.14.1}
|
||||
VERSION=${VERSION:-1.14.3}
|
||||
BUILD=${BUILD:-1}
|
||||
TAG=${TAG:-_SBo}
|
||||
|
||||
|
@ -31,6 +31,8 @@ TAG=${TAG:-_SBo}
|
|||
DISABLE_METRICS=${DISABLE_METRICS:-no}
|
||||
#Clean cache data after building
|
||||
DELETE_CACHE=${DELETE_CACHE:-no}
|
||||
#Use pre-installed electron from SBo
|
||||
ELECTRON=${ELECTRON:-no}
|
||||
|
||||
if [ -z "$ARCH" ]; then
|
||||
case "$( uname -m )" in
|
||||
|
@ -45,21 +47,17 @@ TMP=${TMP:-/tmp/SBo}
|
|||
PKG=$TMP/package-$PRGNAM
|
||||
OUTPUT=${OUTPUT:-/tmp}
|
||||
|
||||
if [ "$ARCH" = "i586" ]; then
|
||||
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
|
||||
LIBDIRSUFFIX=""
|
||||
NPMARCH="ia32"
|
||||
elif [ "$ARCH" = "i686" ]; then
|
||||
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
|
||||
if [[ "$ARCH" = "i"?"86" ]]; then
|
||||
LIBDIRSUFFIX=""
|
||||
NPMARCH="ia32"
|
||||
ARCH_OUTPUT="i386" # for detect output directory
|
||||
elif [ "$ARCH" = "x86_64" ]; then
|
||||
SLKCFLAGS="-O2 -fPIC"
|
||||
LIBDIRSUFFIX="64"
|
||||
NPMARCH="x86_64"
|
||||
ARCH_OUTPUT="amd64" # for detect output directory
|
||||
else
|
||||
SLKCFLAGS="-O2"
|
||||
LIBDIRSUFFIX=""
|
||||
echo "Your platform $ARCH is not supported."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -e
|
||||
|
@ -77,6 +75,21 @@ find -L . \
|
|||
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
|
||||
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
|
||||
|
||||
if [ "$ELECTRON" != "no" ]; then
|
||||
# test if electron is installed
|
||||
ELECTRON_VERSION=$(electron --version | tr -d 'v')
|
||||
fi
|
||||
|
||||
if [ "${ELECTRON_VERSION}" != "" ]; then
|
||||
# change electron version in package.json
|
||||
sed -i -E -e 's/"electronVersion": "[0-9.]+"/"electronVersion": "'${ELECTRON_VERSION}'"/g' package.json
|
||||
# patch for use electron pre-installed
|
||||
patch -p1 < $CWD/use-system-electron.patch
|
||||
patch -p1 < $CWD/fix-atom.sh.patch
|
||||
# patch for IME events from ARCH AUR PKGBuild
|
||||
patch -p1 < $CWD/fix-ime-events-handler-electron-1.4.patch
|
||||
fi
|
||||
|
||||
if [ "$DISABLE_METRICS" = "yes" ]; then
|
||||
sed -i '/"metrics":/d' package.json
|
||||
fi
|
||||
|
@ -93,16 +106,24 @@ PYTHON=python2 \
|
|||
# Manual installation since --install-dir option is deleted
|
||||
# Installation based on spec file from official RPM package from atom
|
||||
install -d $PKG/usr/{bin,doc,share}
|
||||
install -d $PKG/usr/share/atom/
|
||||
|
||||
# detect output directory
|
||||
ARCH_OUTPUT="i386"
|
||||
if [ "$ARCH" = "x86_64" ]; then
|
||||
ARCH_OUTPUT="amd64"
|
||||
if [ "${ELECTRON_VERSION}" != "" ]; then
|
||||
cp -r out/app $PKG/usr/share/atom
|
||||
# apm - manually installation to upstream recommended place
|
||||
ATOM_RESOURCES=/usr/share/atom/resources/app
|
||||
install -d $PKG/$ATOM_RESOURCES
|
||||
cp -r apm $PKG/$ATOM_RESOURCES
|
||||
# fix paths for apm
|
||||
sed -i -e 's#'$TMP/$PRGNAM-$VERSION'#'$ATOM_RESOURCES'#g' \
|
||||
$PKG/$ATOM_RESOURCES/apm/node_modules/atom-package-manager/package.json
|
||||
sed -i -e 's#resources/app.asar##g' \
|
||||
$PKG/$ATOM_RESOURCES/apm/node_modules/atom-package-manager/lib/apm.js
|
||||
else
|
||||
# packaged installation
|
||||
cp -r out/$PRGNAM-$VERSION-$ARCH_OUTPUT $PKG/usr/share/atom
|
||||
fi
|
||||
|
||||
install -Dm755 atom.sh $PKG/usr/bin/atom
|
||||
cp -r out/$PRGNAM-$VERSION-$ARCH_OUTPUT/* $PKG/usr/share/atom/
|
||||
(
|
||||
cd $PKG/usr/bin
|
||||
ln -sf ../share/atom/resources/app/apm/node_modules/.bin/apm apm
|
||||
|
@ -111,7 +132,7 @@ cp -r out/$PRGNAM-$VERSION-$ARCH_OUTPUT/* $PKG/usr/share/atom/
|
|||
find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
|
||||
| cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true
|
||||
|
||||
# use only if you use apmd package from slackware pastures
|
||||
# use only if you use apmd package from Slackware pastures
|
||||
# mv $PKG/usr/bin/apm $PKG/usr/bin/atom-apm
|
||||
|
||||
# move and configure icons and .desktop file
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
PRGNAM="atom"
|
||||
VERSION="1.14.1"
|
||||
VERSION="1.14.3"
|
||||
HOMEPAGE="https://atom.io/"
|
||||
DOWNLOAD="https://codeload.github.com/atom/atom/tar.gz/v1.14.1"
|
||||
MD5SUM="cc3948e576cc267a78d8cbe4a35a0e5f"
|
||||
DOWNLOAD="https://codeload.github.com/atom/atom/tar.gz/v1.14.3"
|
||||
MD5SUM="5a7370a2261f3f654c128a6c628c7d13"
|
||||
DOWNLOAD_x86_64=""
|
||||
MD5SUM_x86_64=""
|
||||
REQUIRES="nodejs"
|
||||
|
|
115
development/atom/fix-atom.sh.patch
Normal file
115
development/atom/fix-atom.sh.patch
Normal file
|
@ -0,0 +1,115 @@
|
|||
diff -Naur a/atom.sh c/atom.sh
|
||||
--- a/atom.sh 2017-02-17 10:53:06.000000000 -0600
|
||||
+++ c/atom.sh 2017-02-24 23:45:17.745685040 -0600
|
||||
@@ -1,14 +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
|
||||
-
|
||||
if [ "$(basename $0)" == 'atom-beta' ]; then
|
||||
BETA_VERSION=true
|
||||
else
|
||||
@@ -54,79 +45,29 @@
|
||||
export ELECTRON_ENABLE_LOGGING=1
|
||||
fi
|
||||
|
||||
-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
|
||||
-
|
||||
- if [ -n "$BETA_VERSION" ]; then
|
||||
- ATOM_EXECUTABLE_NAME="Atom Beta"
|
||||
- else
|
||||
- ATOM_EXECUTABLE_NAME="Atom"
|
||||
- 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)/..)
|
||||
-
|
||||
- if [ -n "$BETA_VERSION" ]; then
|
||||
- ATOM_PATH="$USR_DIRECTORY/share/atom-beta/atom"
|
||||
- else
|
||||
- ATOM_PATH="$USR_DIRECTORY/share/atom/atom"
|
||||
- fi
|
||||
-
|
||||
- ATOM_HOME="${ATOM_HOME:-$HOME/.atom}"
|
||||
- mkdir -p "$ATOM_HOME"
|
||||
+if [ -n "$BETA_VERSION" ]; then
|
||||
+ ATOM_PATH="electron --app=/usr/share/atom-beta/atom"
|
||||
+else
|
||||
+ ATOM_PATH="electron --app=/usr/share/atom"
|
||||
+fi
|
||||
|
||||
- : ${TMPDIR:=/tmp}
|
||||
+ATOM_HOME="${ATOM_HOME:-$HOME/.atom}"
|
||||
+mkdir -p "$ATOM_HOME"
|
||||
|
||||
- [ -x "$ATOM_PATH" ] || ATOM_PATH="$TMPDIR/atom-build/Atom/atom"
|
||||
+: ${TMPDIR:=/tmp}
|
||||
|
||||
- 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
|
47
development/atom/fix-ime-events-handler-electron-1.4.patch
Normal file
47
development/atom/fix-ime-events-handler-electron-1.4.patch
Normal file
|
@ -0,0 +1,47 @@
|
|||
--- a/src/text-editor-component.coffee
|
||||
+++ b/src/text-editor-component.coffee
|
||||
@@ -110,6 +110,7 @@ class TextEditorComponent
|
||||
@updateSync()
|
||||
@checkForVisibilityChange()
|
||||
@initialized = true
|
||||
+ @checkpointForIME = null
|
||||
|
||||
destroy: ->
|
||||
@mounted = false
|
||||
@@ -305,19 +306,20 @@ class TextEditorComponent
|
||||
# User escape to cancel
|
||||
# 4. compositionend fired
|
||||
# OR User chooses a completion
|
||||
- # 4. compositionend fired
|
||||
- # 5. textInput fired; event.data == the completion string
|
||||
+ # 4. textInput fired; event.data == the completion string
|
||||
+ # 5. compositionend fired
|
||||
|
||||
- checkpoint = null
|
||||
@domNode.addEventListener 'compositionstart', =>
|
||||
if @openedAccentedCharacterMenu
|
||||
@editor.selectLeft()
|
||||
@openedAccentedCharacterMenu = false
|
||||
- checkpoint = @editor.createCheckpoint()
|
||||
+ @checkpointForIME = @editor.createCheckpoint()
|
||||
@domNode.addEventListener 'compositionupdate', (event) =>
|
||||
@editor.insertText(event.data, select: true)
|
||||
@domNode.addEventListener 'compositionend', (event) =>
|
||||
- @editor.revertToCheckpoint(checkpoint)
|
||||
+ if @checkpointForIME
|
||||
+ @editor.revertToCheckpoint(@checkpointForIME)
|
||||
+ @checkpointForIME = null
|
||||
event.target.value = ''
|
||||
|
||||
# Listen for selection changes and store the currently selected text
|
||||
@@ -354,6 +356,10 @@ class TextEditorComponent
|
||||
onTextInput: (event) =>
|
||||
event.stopPropagation()
|
||||
|
||||
+ if @checkpointForIME
|
||||
+ @editor.revertToCheckpoint(@checkpointForIME)
|
||||
+ @checkpointForIME = null
|
||||
+
|
||||
# WARNING: If we call preventDefault on the input of a space character,
|
||||
# then the browser interprets the spacebar keypress as a page-down command,
|
||||
# causing spaces to scroll elements containing editors. This is impossible
|
101
development/atom/use-system-electron.patch
Normal file
101
development/atom/use-system-electron.patch
Normal file
|
@ -0,0 +1,101 @@
|
|||
diff -Naur a/script/build b/script/build
|
||||
--- a/script/build 2017-02-17 10:53:06.000000000 -0600
|
||||
+++ b/script/build 2017-02-22 23:35:29.241396450 -0600
|
||||
@@ -23,7 +23,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 compressArtifacts = require('./lib/compress-artifacts')
|
||||
@@ -48,7 +47,6 @@
|
||||
process.exit(1)
|
||||
})
|
||||
|
||||
-checkChromedriverVersion()
|
||||
cleanOutputDirectory()
|
||||
copyAssets()
|
||||
transpileBabelPaths()
|
||||
@@ -60,46 +58,3 @@
|
||||
generateMetadata()
|
||||
generateAPIDocs()
|
||||
dumpSymbols()
|
||||
- .then(packageApplication)
|
||||
- .then(packagedAppPath => {
|
||||
- if (process.platform === 'darwin') {
|
||||
- if (argv.codeSign) {
|
||||
- codeSignOnMac(packagedAppPath)
|
||||
- } else {
|
||||
- console.log('Skipping code-signing. Specify the --code-sign option to perform code-signing'.gray)
|
||||
- }
|
||||
- } else if (process.platform === 'win32') {
|
||||
- if (argv.createWindowsInstaller) {
|
||||
- return createWindowsInstaller(packagedAppPath, argv.codeSign).then(() => packagedAppPath)
|
||||
- }
|
||||
- else {
|
||||
- console.log('Skipping creating installer. Specify the --create-windows-installer option to create a Squirrel-based Windows installer. Code-signing was skipped too.'.gray)
|
||||
- }
|
||||
- } else if (process.platform === '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)
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- 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) {
|
||||
- installApplication(packagedAppPath)
|
||||
- } else {
|
||||
- console.log('Skipping installation. Specify the --install option to install Atom'.gray)
|
||||
- }
|
||||
- })
|
||||
diff -Naur a/script/package.json b/script/package.json
|
||||
--- a/script/package.json 2017-02-17 10:53:06.000000000 -0600
|
||||
+++ b/script/package.json 2017-02-22 23:36:47.888097996 -0600
|
||||
@@ -8,7 +8,6 @@
|
||||
"colors": "1.1.2",
|
||||
"csslint": "1.0.2",
|
||||
"donna": "1.0.13",
|
||||
- "electron-chromedriver": "~1.3",
|
||||
"electron-packager": "7.3.0",
|
||||
"electron-winstaller": "2.5.1",
|
||||
"fs-extra": "0.30.0",
|
||||
diff -Naur a/src/main-process/atom-application.coffee b/src/main-process/atom-application.coffee
|
||||
--- a/src/main-process/atom-application.coffee 2017-02-17 10:53:06.000000000 -0600
|
||||
+++ b/src/main-process/atom-application.coffee 2017-02-22 23:33:19.542590377 -0600
|
||||
@@ -797,7 +797,7 @@
|
||||
@restart()
|
||||
|
||||
restart: ->
|
||||
- args = []
|
||||
+ args = ["--app=/usr/share/atom"]
|
||||
args.push("--safe") if @safeMode
|
||||
args.push("--log-file=#{@logFile}") if @logFile?
|
||||
args.push("--socket-path=#{@socketPath}") if @socketPath?
|
||||
diff -Naur a/src/package-manager.coffee b/src/package-manager.coffee
|
||||
--- a/src/package-manager.coffee 2017-02-17 10:53:06.000000000 -0600
|
||||
+++ b/src/package-manager.coffee 2017-02-25 02:23:32.459106058 -0600
|
||||
@@ -145,7 +145,7 @@
|
||||
apmRoot = path.join(process.resourcesPath, 'app', 'apm')
|
||||
@apmPath = path.join(apmRoot, 'bin', commandName)
|
||||
unless fs.isFileSync(@apmPath)
|
||||
- @apmPath = path.join(apmRoot, 'node_modules', 'atom-package-manager', 'bin', commandName)
|
||||
+ @apmPath = path.join('/usr/share/atom/resources/app/apm', 'node_modules', 'atom-package-manager', 'bin', commandName)
|
||||
@apmPath
|
||||
|
||||
# Public: Get the paths being used to look for packages.
|
Loading…
Reference in a new issue