chore: make use of electron-builder to build GNU/Linux packages (#1520)

Change-Type: patch
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
This commit is contained in:
Juan Cruz Viotti 2017-06-23 20:10:51 -04:00 committed by GitHub
parent 4f87079f12
commit a7ac28b717
19 changed files with 150 additions and 877 deletions

183
Makefile
View File

@ -26,7 +26,10 @@ COMPANY_NAME = Resinio Ltd
APPLICATION_NAME = $(shell jq -r '.build.productName' package.json)
APPLICATION_DESCRIPTION = $(shell jq -r '.description' package.json)
APPLICATION_COPYRIGHT = $(shell jq -r '.build.copyright' package.json)
APPLICATION_FILES = lib,assets
# ---------------------------------------------------------------------
# Release type
# ---------------------------------------------------------------------
# Add the current commit to the version if release type is "snapshot"
RELEASE_TYPE ?= snapshot
@ -141,6 +144,17 @@ endif
ELECTRON_BUILDER_OPTIONS = --$(TARGET_ARCH_ELECTRON_BUILDER) --extraMetadata.version=$(APPLICATION_VERSION)
# ---------------------------------------------------------------------
# Updates
# ---------------------------------------------------------------------
DISABLE_UPDATES_ELECTRON_BUILDER_OPTIONS = --extraMetadata.analytics.updates.enabled=false
ifdef DISABLE_UPDATES
$(warning Update notification dialog has been disabled (DISABLE_UPDATES is set))
ELECTRON_BUILDER_OPTIONS += $(DISABLE_UPDATES_ELECTRON_BUILDER_OPTIONS)
endif
# ---------------------------------------------------------------------
# Analytics
# ---------------------------------------------------------------------
@ -157,21 +171,14 @@ else
ELECTRON_BUILDER_OPTIONS += --extraMetadata.analytics.mixpanel.token=$(ANALYTICS_MIXPANEL_TOKEN)
endif
# ---------------------------------------------------------------------
# Updates
# ---------------------------------------------------------------------
ifdef DISABLE_UPDATES
$(warning Update notification dialog has been disabled (DISABLE_UPDATES is set))
ELECTRON_BUILDER_OPTIONS += --extraMetadata.updates.enabled=false
endif
# ---------------------------------------------------------------------
# Extra variables
# ---------------------------------------------------------------------
TARGET_ARCH_DEBIAN = $(shell ./scripts/build/architecture-convert.sh -r $(TARGET_ARCH) -t debian)
TARGET_ARCH_REDHAT = $(shell ./scripts/build/architecture-convert.sh -r $(TARGET_ARCH) -t redhat)
TARGET_ARCH_APPIMAGE = $(shell ./scripts/build/architecture-convert.sh -r $(TARGET_ARCH) -t appimage)
TARGET_ARCH_ELECTRON_BUILDER = $(shell ./scripts/build/architecture-convert.sh -r $(TARGET_ARCH) -t electron-builder)
PRODUCT_NAME = etcher
APPLICATION_NAME_LOWERCASE = $(shell echo $(APPLICATION_NAME) | tr A-Z a-z)
@ -181,8 +188,6 @@ APPLICATION_VERSION_REDHAT = $(shell echo $(APPLICATION_VERSION) | tr "-" "~")
# Fix hard link Appveyor issues
CPRF = cp -RLf
TARGET_ARCH_ELECTRON_BUILDER = $(shell ./scripts/build/architecture-convert.sh -r $(TARGET_ARCH) -t electron-builder)
# ---------------------------------------------------------------------
# Rules
# ---------------------------------------------------------------------
@ -206,15 +211,9 @@ $(BUILD_TEMPORARY_DIRECTORY): | $(BUILD_DIRECTORY)
$(BUILD_OUTPUT_DIRECTORY): | $(BUILD_DIRECTORY)
mkdir $@
$(BUILD_DIRECTORY)/electron-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies: package.json npm-shrinkwrap.json \
| $(BUILD_DIRECTORY)
mkdir $@
./scripts/build/dependencies-npm.sh -p \
-r "$(TARGET_ARCH)" \
-v "$(ELECTRON_VERSION)" \
-x $@ \
-t electron \
-s "$(TARGET_PLATFORM)"
# ---------------------------------------------------------------------
# CLI
# ---------------------------------------------------------------------
$(BUILD_DIRECTORY)/node-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies: package.json npm-shrinkwrap.json \
| $(BUILD_DIRECTORY)
@ -227,51 +226,6 @@ $(BUILD_DIRECTORY)/node-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies: package.
-s "$(TARGET_PLATFORM)"
git apply --directory $@/node_modules/lzma-native patches/cli/lzma-native-index-static-addon-require.patch
$(BUILD_DIRECTORY)/electron-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH)-app: \
$(BUILD_DIRECTORY)/electron-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies \
| $(BUILD_DIRECTORY) $(BUILD_TEMPORARY_DIRECTORY)
./scripts/build/electron-create-resources-app.sh -s . -o $@ \
-v $(APPLICATION_VERSION) \
-f "$(APPLICATION_FILES)"
$(CPRF) $</* $@
ifdef ANALYTICS_SENTRY_TOKEN
./scripts/build/jq-insert.sh \
-p "analytics.sentry.token" \
-v "\"$(ANALYTICS_SENTRY_TOKEN)\"" \
-f $@/package.json \
-t $(BUILD_TEMPORARY_DIRECTORY)
endif
ifdef ANALYTICS_MIXPANEL_TOKEN
./scripts/build/jq-insert.sh \
-p "analytics.mixpanel.token" \
-v "\"$(ANALYTICS_MIXPANEL_TOKEN)\"" \
-f $@/package.json \
-t $(BUILD_TEMPORARY_DIRECTORY)
endif
ifdef DISABLE_UPDATES
./scripts/build/jq-insert.sh \
-p "updates.enabled" \
-v "false" \
-f $@/package.json \
-t $(BUILD_TEMPORARY_DIRECTORY)
endif
$(BUILD_DIRECTORY)/electron-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH)-app.asar: \
$(BUILD_DIRECTORY)/electron-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH)-app \
| $(BUILD_DIRECTORY)
./scripts/build/electron-create-asar.sh -d $< -o $@
$(BUILD_DIRECTORY)/electron-$(ELECTRON_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip: \
| $(BUILD_DIRECTORY)
./scripts/build/electron-download-package.sh \
-r "$(TARGET_ARCH)" \
-v "$(ELECTRON_VERSION)" \
-s "$(TARGET_PLATFORM)" \
-o $@
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH)-app: \
package.json lib \
$(BUILD_DIRECTORY)/node-$(TARGET_PLATFORM)-$(TARGET_ARCH)-dependencies \
@ -326,17 +280,19 @@ endif
endif
endif
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH): \
$(BUILD_DIRECTORY)/electron-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH)-app.asar \
$(BUILD_DIRECTORY)/electron-$(ELECTRON_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip \
| $(BUILD_DIRECTORY) $(BUILD_TEMPORARY_DIRECTORY)
ifeq ($(TARGET_PLATFORM),linux)
./scripts/build/electron-configure-package-linux.sh -p $(word 2,$^) -a $< \
-n "$(APPLICATION_NAME)" \
-v "$(APPLICATION_VERSION)" \
-l LICENSE \
-o $@
endif
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip: \
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH) \
| $(BUILD_OUTPUT_DIRECTORY)
./scripts/build/zip-file.sh -f $< -s $(TARGET_PLATFORM) -o $@
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).tar.gz: \
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH) \
| $(BUILD_OUTPUT_DIRECTORY)
./scripts/build/tar-gz-file.sh -f $< -o $@
# ---------------------------------------------------------------------
# GUI
# ---------------------------------------------------------------------
assets/osx/installer.tiff: assets/osx/installer.png assets/osx/installer@2x.png
tiffutil -cathidpicheck $^ -out $@
@ -353,40 +309,33 @@ $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-darwin-$(TA
$(NPX) build --mac zip $(ELECTRON_BUILDER_OPTIONS)
mv $(BUILD_DIRECTORY)/$(notdir $@) $@
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH).AppDir: \
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH) \
APPLICATION_NAME_ELECTRON = $(APPLICATION_NAME_LOWERCASE)-electron
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_ELECTRON)-$(APPLICATION_VERSION_REDHAT).$(TARGET_ARCH_REDHAT).rpm: \
| $(BUILD_OUTPUT_DIRECTORY)
$(NPX) build --linux rpm $(ELECTRON_BUILDER_OPTIONS) \
--extraMetadata.name=$(APPLICATION_NAME_ELECTRON) \
--extraMetadata.version=$(APPLICATION_VERSION_REDHAT) \
$(DISABLE_UPDATES_ELECTRON_BUILDER_OPTIONS)
mv $(BUILD_DIRECTORY)/$(notdir $@) $@
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_ELECTRON)_$(APPLICATION_VERSION_DEBIAN)_$(TARGET_ARCH_DEBIAN).deb: \
| $(BUILD_OUTPUT_DIRECTORY)
$(NPX) build --linux deb $(ELECTRON_BUILDER_OPTIONS) \
--extraMetadata.name=$(APPLICATION_NAME_ELECTRON) \
--extraMetadata.version=$(APPLICATION_VERSION_DEBIAN) \
$(DISABLE_UPDATES_ELECTRON_BUILDER_OPTIONS)
mv $(BUILD_DIRECTORY)/$(notdir $@) $@
$(BUILD_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-$(APPLICATION_VERSION)-$(TARGET_ARCH_APPIMAGE).AppImage: \
| $(BUILD_DIRECTORY)
./scripts/build/electron-create-appdir.sh -p $< -o $@ \
-n "$(APPLICATION_NAME)" \
-d "$(APPLICATION_DESCRIPTION)" \
-r "$(TARGET_ARCH)" \
-b "$(APPLICATION_NAME_LOWERCASE)" \
-i assets/icon.png
$(NPX) build --linux AppImage $(ELECTRON_BUILDER_OPTIONS)
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH).AppImage: \
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH).AppDir \
| $(BUILD_DIRECTORY) $(BUILD_TEMPORARY_DIRECTORY)
./scripts/build/electron-create-appimage-linux.sh -d $< -o $@ \
-r "$(TARGET_ARCH)" \
-w "$(BUILD_TEMPORARY_DIRECTORY)"
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH).zip: \
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH).AppImage \
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH).zip: \
$(BUILD_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-$(APPLICATION_VERSION)-$(TARGET_ARCH_APPIMAGE).AppImage \
| $(BUILD_OUTPUT_DIRECTORY)
./scripts/build/zip-file.sh -f $< -s $(TARGET_PLATFORM) -o $@
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-electron_$(APPLICATION_VERSION_DEBIAN)_$(TARGET_ARCH_DEBIAN).deb: \
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH) \
| $(BUILD_OUTPUT_DIRECTORY)
./scripts/build/electron-installer-debian-linux.sh -p $< -r "$(TARGET_ARCH)" -o $| \
-c scripts/build/debian/config.json
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-electron_$(APPLICATION_VERSION_REDHAT)_$(TARGET_ARCH_REDHAT).rpm: \
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-linux-$(TARGET_ARCH) \
| $(BUILD_OUTPUT_DIRECTORY)
./scripts/build/electron-installer-redhat-linux.sh -p $< -r "$(TARGET_ARCH)" -o $| \
-c scripts/build/redhat/config.json
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-win32-$(TARGET_ARCH)-portable.exe: \
| $(BUILD_OUTPUT_DIRECTORY)
CSC_LINK=$(CODE_SIGN_CERTIFICATE) CSC_KEY_PASSWORD=$(CODE_SIGN_CERTIFICATE_PASSWORD) TARGET_ARCH=$(TARGET_ARCH) \
@ -399,16 +348,6 @@ $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-win32-$(TAR
$(NPX) build --win nsis $(ELECTRON_BUILDER_OPTIONS)
mv $(BUILD_DIRECTORY)/$(notdir $@) $@
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip: \
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH) \
| $(BUILD_OUTPUT_DIRECTORY)
./scripts/build/zip-file.sh -f $< -s $(TARGET_PLATFORM) -o $@
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).tar.gz: \
$(BUILD_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH) \
| $(BUILD_OUTPUT_DIRECTORY)
./scripts/build/tar-gz-file.sh -f $< -o $@
# ---------------------------------------------------------------------
# Phony targets
# ---------------------------------------------------------------------
@ -459,9 +398,9 @@ PUBLISH_AWS_S3 += \
endif
ifeq ($(TARGET_PLATFORM),linux)
electron-installer-appimage: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip
electron-installer-debian: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-electron_$(APPLICATION_VERSION_DEBIAN)_$(TARGET_ARCH_DEBIAN).deb
electron-installer-redhat: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-electron_$(APPLICATION_VERSION_REDHAT)_$(TARGET_ARCH_REDHAT).rpm
electron-installer-appimage: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip
electron-installer-debian: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_ELECTRON)_$(APPLICATION_VERSION_DEBIAN)_$(TARGET_ARCH_DEBIAN).deb
electron-installer-redhat: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_ELECTRON)-$(APPLICATION_VERSION_REDHAT).$(TARGET_ARCH_REDHAT).rpm
cli-installer-tar-gz: $(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).tar.gz
TARGETS += \
electron-installer-appimage \
@ -469,12 +408,12 @@ TARGETS += \
electron-installer-redhat \
cli-installer-tar-gz
PUBLISH_AWS_S3 += \
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip \
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).zip \
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME)-cli-$(APPLICATION_VERSION)-$(TARGET_PLATFORM)-$(TARGET_ARCH).tar.gz
PUBLISH_BINTRAY_DEBIAN += \
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-electron_$(APPLICATION_VERSION_DEBIAN)_$(TARGET_ARCH_DEBIAN).deb
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_ELECTRON)_$(APPLICATION_VERSION_DEBIAN)_$(TARGET_ARCH_DEBIAN).deb
PUBLISH_BINTRAY_REDHAT += \
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_LOWERCASE)-electron_$(APPLICATION_VERSION_REDHAT)_$(TARGET_ARCH_REDHAT).rpm
$(BUILD_OUTPUT_DIRECTORY)/$(APPLICATION_NAME_ELECTRON)-$(APPLICATION_VERSION_REDHAT).$(TARGET_ARCH_REDHAT).rpm
endif
ifeq ($(TARGET_PLATFORM),win32)

View File

@ -96,12 +96,6 @@ make electron-installer-zip
make electron-installer-nsis
```
Disabling updates
-----------------
You can disable updates in the final artifact by passing `DISABLE_UPDATES=1` to
the `make` targets described above.
Publishing to Bintray
---------------------

View File

@ -49,7 +49,13 @@ const DEFAULT_STATE = Immutable.fromJS({
errorReporting: true,
unmountOnSuccess: true,
validateWriteOnSuccess: true,
updatesEnabled: Boolean(packageJSON.updates.enabled),
// The purpose of JSON.parse() is to convert strings such as "false"
// into boolean values, given that electron-builder is only able to
// inject strings into package.json.
// See https://github.com/electron-userland/electron-builder/issues/1674
updatesEnabled: Boolean(JSON.parse(packageJSON.updates.enabled)),
includeUnstableUpdateChannel: !release.isStableRelease(packageJSON.version),
lastSleptUpdateNotifier: null,
lastSleptUpdateNotifierVersion: null
@ -539,7 +545,7 @@ module.exports = _.merge(redux.createStore(
// is not very elegant, nor performant, so we decide
// to intentionally ignore this little flaw since
// adding extra properties makes no damage at all.
return state.set(PERSISTED_PATH, subset);
return state.set(PERSISTED_PATH, state.get(PERSISTED_PATH).merge(subset));
}

View File

@ -69,6 +69,63 @@
"portable": {
"artifactName": "${productName}-${version}-win32-${env.TARGET_ARCH}-portable.${ext}",
"requestExecutionLevel": "user"
},
"linux": {
"category": "Utility",
"packageCategory": "utils",
"executableName": "etcher-electron",
"synopsis": "Etcher is a powerful OS image flasher built with web technologies to ensure flashing an SDCard or USB drive is a pleasant and safe experience. It protects you from accidentally writing to your hard-drives, ensures every byte of data was written correctly and much more."
},
"deb": {
"icon": "assets/icon.png",
"priority": "optional",
"depends": [
"gconf2",
"gconf-service",
"libappindicator1",
"libasound2",
"libatk1.0-0",
"libc6",
"libcairo2",
"libcups2",
"libdbus-1-3",
"libexpat1",
"libfontconfig1",
"libfreetype6",
"libgcc1",
"libgconf-2-4",
"libgdk-pixbuf2.0-0",
"libglib2.0-0",
"libgtk2.0-0",
"liblzma5",
"libnotify4",
"libnspr4",
"libnss3",
"libpango1.0-0",
"libstdc++6",
"libx11-6",
"libxcomposite1",
"libxcursor1",
"libxdamage1",
"libxext6",
"libxfixes3",
"libxi6",
"libxrandr2",
"libxrender1",
"libxss1",
"libxtst6",
"polkit-1-auth-agent | policykit-1-gnome | polkit-kde-1"
]
},
"rpm": {
"icon": "assets/icon.png",
"depends": [
"lsb",
"libXScrnSaver"
]
},
"appimage": {
"icon": "assets/icon.png"
}
},
"scripts": {

View File

@ -71,6 +71,12 @@ elif [ "$ARGV_TYPE" == "debian" ]; then
RESULT=armhf
fi
elif [ "$ARGV_TYPE" == "redhat" ]; then
if [ "$ARGV_ARCHITECTURE" == "x86" ]; then
RESULT=i686
elif [ "$ARGV_ARCHITECTURE" == "x64" ]; then
RESULT='x86_64'
fi
elif [ "$ARGV_TYPE" == "appimage" ]; then
if [ "$ARGV_ARCHITECTURE" == "x86" ]; then
RESULT=i386
elif [ "$ARGV_ARCHITECTURE" == "x64" ]; then

View File

@ -1,52 +0,0 @@
{
"name": "etcher-electron",
"productName": "Etcher",
"genericName": "Etcher",
"homepage": "https://etcher.io/",
"icon": "assets/icon.png",
"bin": "etcher",
"categories": [
"Utility"
],
"depends": [
"gconf-service",
"libasound2",
"libatk1.0-0",
"libc6",
"libcairo2",
"libcups2",
"libdbus-1-3",
"libexpat1",
"libfontconfig1",
"libfreetype6",
"libgcc1",
"libgconf-2-4",
"libgdk-pixbuf2.0-0",
"libglib2.0-0",
"libgtk2.0-0",
"liblzma5",
"libnspr4",
"libnss3",
"libpango1.0-0",
"libstdc++6",
"libx11-6",
"libxcomposite1",
"libxcursor1",
"libxdamage1",
"libxext6",
"libxfixes3",
"libxi6",
"libxrandr2",
"libxrender1",
"libxss1",
"libxtst6",
"polkit-1-auth-agent | policykit-1-gnome | polkit-kde-1"
],
"recommends": [
"libnotify4"
],
"suggests": [],
"lintianOverrides": [
"changelog-file-missing-in-native-package"
]
}

View File

@ -14,6 +14,8 @@ RUN apt-get update \
curl \
fuse \
git \
graphicsmagick \
icnsutils \
jq \
libasound2 \
libgconf-2-4 \
@ -28,8 +30,10 @@ RUN apt-get update \
python-dev \
python-software-properties \
unzip \
xorriso \
xvfb \
zip \
xz-utils \
zip \
rpm
# Install a C++11 compiler
@ -45,7 +49,7 @@ RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - \
RUN npm config set unsafe-perm=true
RUN npm config set spin=false
RUN npm install -g uglify-es@3.0.3 electron-installer-debian@0.5.1 electron-installer-redhat@0.5.0
RUN npm install -g uglify-es@3.0.3
# Python
COPY requirements.txt requirements.txt

View File

@ -13,6 +13,8 @@ RUN apt-get update \
curl \
fuse \
git \
graphicsmagick \
icnsutils \
jq \
libasound2 \
libgconf-2-4 \
@ -27,8 +29,10 @@ RUN apt-get update \
python-dev \
python-software-properties \
unzip \
xorriso \
xvfb \
zip \
xz-utils \
zip \
rpm
# Install a C++11 compiler
@ -44,7 +48,7 @@ RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - \
RUN npm config set unsafe-perm=true
RUN npm config set spin=false
RUN npm install -g uglify-es@3.0.3 electron-installer-debian@0.5.1 electron-installer-redhat@0.5.0
RUN npm install -g uglify-es@3.0.3
# Python
COPY requirements.txt requirements.txt

View File

@ -16,6 +16,8 @@ RUN apt-get update \
curl \
fuse \
git \
graphicsmagick \
icnsutils \
jq \
libasound2 \
libgconf-2-4 \
@ -30,9 +32,10 @@ RUN apt-get update \
python-dev \
python-software-properties \
unzip \
xorriso \
xvfb \
zip \
xz-utils \
zip \
rpm
# Install a C++11 compiler
@ -48,7 +51,7 @@ RUN curl -sL https://deb.nodesource.com/setup_6.x | bash - \
RUN npm config set unsafe-perm=true
RUN npm config set spin=false
RUN npm install -g uglify-es@3.0.3 electron-installer-debian@0.5.1 electron-installer-redhat@0.5.0
RUN npm install -g uglify-es@3.0.3
# Python
COPY requirements.txt requirements.txt

View File

@ -1,84 +0,0 @@
#!/bin/bash
###
# Copyright 2016 resin.io
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
###
set -u
set -e
OS=$(uname)
if [[ "$OS" != "Linux" ]]; then
echo "This script is only meant to be run in GNU/Linux" 1>&2
exit 1
fi
./scripts/build/check-dependency.sh unzip
function usage() {
echo "Usage: $0"
echo ""
echo "Options"
echo ""
echo " -p <electron package>"
echo " -n <application name>"
echo " -v <application version>"
echo " -l <application license file>"
echo " -a <application asar (.asar)>"
echo " -o <output directory>"
exit 1
}
ARGV_ELECTRON_PACKAGE=""
ARGV_APPLICATION_NAME=""
ARGV_VERSION=""
ARGV_LICENSE=""
ARGV_ASAR=""
ARGV_OUTPUT=""
while getopts ":p:n:v:l:a:o:" option; do
case $option in
p) ARGV_ELECTRON_PACKAGE="$OPTARG" ;;
n) ARGV_APPLICATION_NAME="$OPTARG" ;;
v) ARGV_VERSION="$OPTARG" ;;
l) ARGV_LICENSE="$OPTARG" ;;
a) ARGV_ASAR="$OPTARG" ;;
o) ARGV_OUTPUT="$OPTARG" ;;
*) usage ;;
esac
done
if [ -z "$ARGV_ELECTRON_PACKAGE" ] \
|| [ -z "$ARGV_APPLICATION_NAME" ] \
|| [ -z "$ARGV_VERSION" ] \
|| [ -z "$ARGV_LICENSE" ] \
|| [ -z "$ARGV_ASAR" ] \
|| [ -z "$ARGV_OUTPUT" ]
then
usage
fi
unzip "$ARGV_ELECTRON_PACKAGE" -d "$ARGV_OUTPUT"
mv $ARGV_OUTPUT/electron $ARGV_OUTPUT/$(echo "$ARGV_APPLICATION_NAME" | tr '[:upper:]' '[:lower:]')
cp $ARGV_LICENSE $ARGV_OUTPUT/LICENSE
echo "$ARGV_VERSION" > $ARGV_OUTPUT/version
rm $ARGV_OUTPUT/resources/default_app.asar
cp "$ARGV_ASAR" "$ARGV_OUTPUT/resources/app.asar"
if [ -d "$ARGV_ASAR.unpacked" ]; then
cp -rf "$ARGV_ASAR.unpacked" "$ARGV_OUTPUT/resources/app.asar.unpacked"
fi

View File

@ -1,109 +0,0 @@
#!/bin/bash
###
# Copyright 2016 resin.io
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
###
set -u
set -e
function usage() {
echo "Usage: $0"
echo ""
echo "Options"
echo ""
echo " -n <application name>"
echo " -d <application description>"
echo " -p <application package>"
echo " -r <application architecture>"
echo " -b <application binary name>"
echo " -i <application icon (.png)>"
echo " -o <output>"
exit 1
}
ARGV_APPLICATION_NAME=""
ARGV_DESCRIPTION=""
ARGV_PACKAGE=""
ARGV_ARCHITECTURE=""
ARGV_BINARY=""
ARGV_ICON=""
ARGV_OUTPUT=""
while getopts ":n:d:p:r:b:i:o:" option; do
case $option in
n) ARGV_APPLICATION_NAME="$OPTARG" ;;
d) ARGV_DESCRIPTION="$OPTARG" ;;
p) ARGV_PACKAGE="$OPTARG" ;;
r) ARGV_ARCHITECTURE="$OPTARG" ;;
b) ARGV_BINARY="$OPTARG" ;;
i) ARGV_ICON="$OPTARG" ;;
o) ARGV_OUTPUT="$OPTARG" ;;
*) usage ;;
esac
done
if [ -z "$ARGV_APPLICATION_NAME" ] \
|| [ -z "$ARGV_DESCRIPTION" ] \
|| [ -z "$ARGV_PACKAGE" ] \
|| [ -z "$ARGV_ARCHITECTURE" ] \
|| [ -z "$ARGV_BINARY" ] \
|| [ -z "$ARGV_ICON" ] \
|| [ -z "$ARGV_OUTPUT" ]
then
usage
fi
# Create AppDir
mkdir -p "$ARGV_OUTPUT"
APPDIR_ICON_FILENAME=icon
cat >"$ARGV_OUTPUT/$ARGV_APPLICATION_NAME.desktop" <<EOF
[Desktop Entry]
Name=$ARGV_APPLICATION_NAME
Exec=$ARGV_BINARY.wrapper
Comment=$ARGV_DESCRIPTION
Icon=$APPDIR_ICON_FILENAME
Type=Application
EOF
cp "$ARGV_ICON" "$ARGV_OUTPUT/$APPDIR_ICON_FILENAME.png"
mkdir -p "$ARGV_OUTPUT/usr/bin"
cp -rf "$ARGV_PACKAGE"/* "$ARGV_OUTPUT/usr/bin"
APPIMAGES_TAG=6
APPIMAGES_GITHUB_RAW_BASE_URL=https://raw.githubusercontent.com/probonopd/AppImageKit/$APPIMAGES_TAG
APPIMAGES_GITHUB_RELEASE_BASE_URL=https://github.com/probonopd/AppImageKit/releases/download/$APPIMAGES_TAG
./scripts/build/download-tool.sh -x \
-u "$APPIMAGES_GITHUB_RAW_BASE_URL/desktopintegration" \
-c "bf321258134fa1290b3b3c005332d2aa04ca241e65c21c16c0ab76e892ef6044" \
-o "$ARGV_OUTPUT/usr/bin/$ARGV_BINARY.wrapper"
if [ "$ARGV_ARCHITECTURE" == "x64" ]; then
APPIMAGES_ARCHITECTURE="x86_64"
APPRUN_CHECKSUM=28b9c59facd7d0211ef5d825cc00873324cc75163902c48e80e34bf314c910c4
elif [ "$ARGV_ARCHITECTURE" == "x86" ]; then
APPIMAGES_ARCHITECTURE="i686"
APPRUN_CHECKSUM=44a56d8a654891030bab57cee4670550ed550f6c63aa7d82377a25828671088b
else
echo "Invalid architecture: $ARGV_ARCHITECTURE" 1>&2
exit 1
fi
./scripts/build/download-tool.sh -x \
-u "$APPIMAGES_GITHUB_RELEASE_BASE_URL/AppRun_$APPIMAGES_TAG-$APPIMAGES_ARCHITECTURE" \
-c "$APPRUN_CHECKSUM" \
-o "$ARGV_OUTPUT/AppRun"

View File

@ -1,85 +0,0 @@
#!/bin/bash
###
# Copyright 2016 resin.io
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
###
set -u
set -e
OS=$(uname)
if [[ "$OS" != "Linux" ]]; then
echo "This script is only meant to be run in GNU/Linux" 1>&2
exit 1
fi
function usage() {
echo "Usage: $0"
echo ""
echo "Options"
echo ""
echo " -d <appdir>"
echo " -r <application architecture>"
echo " -w <download directory>"
echo " -o <output>"
exit 1
}
ARGV_APPDIR=""
ARGV_ARCHITECTURE=""
ARGV_DOWNLOAD_DIRECTORY=""
ARGV_OUTPUT=""
while getopts ":d:r:w:o:" option; do
case $option in
d) ARGV_APPDIR="$OPTARG" ;;
r) ARGV_ARCHITECTURE="$OPTARG" ;;
w) ARGV_DOWNLOAD_DIRECTORY="$OPTARG" ;;
o) ARGV_OUTPUT="$OPTARG" ;;
*) usage ;;
esac
done
if [ -z "$ARGV_APPDIR" ] \
|| [ -z "$ARGV_ARCHITECTURE" ] \
|| [ -z "$ARGV_DOWNLOAD_DIRECTORY" ] \
|| [ -z "$ARGV_OUTPUT" ]
then
usage
fi
if [ "$ARGV_ARCHITECTURE" == "x64" ]; then
APPIMAGES_ARCHITECTURE="x86_64"
APPIMAGEASSISTANT_CHECKSUM=e792fa6ba1dd81de6438844fde39aa12d6b6d15238154ec46baf01da1c92d59f
elif [ "$ARGV_ARCHITECTURE" == "x86" ]; then
APPIMAGES_ARCHITECTURE="i686"
APPIMAGEASSISTANT_CHECKSUM=0faade0c009e703c221650e414f3b4ea8d03abbd8b9f1f065aef46156ee15dd0
else
echo "Invalid architecture: $ARGV_ARCHITECTURE" 1>&2
exit 1
fi
APPIMAGES_TAG=6
APPIMAGES_GITHUB_RELEASE_BASE_URL=https://github.com/probonopd/AppImageKit/releases/download/$APPIMAGES_TAG
APPIMAGEASSISTANT_PATH=$ARGV_DOWNLOAD_DIRECTORY/AppImageAssistant-$ARGV_ARCHITECTURE.AppImage
mkdir -p "$ARGV_DOWNLOAD_DIRECTORY"
./scripts/build/download-tool.sh -x \
-u "$APPIMAGES_GITHUB_RELEASE_BASE_URL/AppImageAssistant_$APPIMAGES_TAG-$APPIMAGES_ARCHITECTURE.AppImage" \
-c "$APPIMAGEASSISTANT_CHECKSUM" \
-o "$APPIMAGEASSISTANT_PATH"
# Generate AppImage
mkdir -p "$(dirname "$ARGV_OUTPUT")"
$APPIMAGEASSISTANT_PATH "$ARGV_APPDIR" "$ARGV_OUTPUT"

View File

@ -1,55 +0,0 @@
#!/bin/bash
###
# Copyright 2016 resin.io
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
###
set -u
set -e
ASAR="./node_modules/.bin/asar"
./scripts/build/check-dependency.sh "$ASAR"
function usage() {
echo "Usage: $0"
echo ""
echo "Options"
echo ""
echo " -d <directory>"
echo " -o <output>"
exit 1
}
ARGV_DIRECTORY=""
ARGV_OUTPUT=""
while getopts ":d:o:" option; do
case $option in
d) ARGV_DIRECTORY=$OPTARG ;;
o) ARGV_OUTPUT=$OPTARG ;;
*) usage ;;
esac
done
if [ -z "$ARGV_DIRECTORY" ] || [ -z "$ARGV_OUTPUT" ]; then
usage
fi
# Omit `*.dll` and `*.node` files from the
# asar package, otherwise `process.dlopen` and
# `module.require` can't load them correctly.
"$ASAR" pack "$ARGV_DIRECTORY" "$ARGV_OUTPUT" \
--unpack "{*.dll,*.node}"

View File

@ -1,64 +0,0 @@
#!/bin/bash
###
# Copyright 2016 resin.io
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
###
set -u
set -e
./scripts/build/check-dependency.sh jq
function usage() {
echo "Usage: $0"
echo ""
echo "Options"
echo ""
echo " -s <source directory>"
echo " -v <application version>"
echo " -f <extra files (comma separated)>"
echo " -o <output>"
exit 1
}
ARGV_SOURCE_DIRECTORY=""
ARGV_APPLICATION_VERSION=""
ARGV_FILES=""
ARGV_OUTPUT=""
while getopts ":s:v:f:o:" option; do
case $option in
s) ARGV_SOURCE_DIRECTORY=$OPTARG ;;
v) ARGV_APPLICATION_VERSION=$OPTARG ;;
f) ARGV_FILES=$OPTARG ;;
o) ARGV_OUTPUT=$OPTARG ;;
*) usage ;;
esac
done
if [ -z "$ARGV_SOURCE_DIRECTORY" ] ||
[ -z "$ARGV_APPLICATION_VERSION" ] || \
[ -z "$ARGV_FILES" ] || \
[ -z "$ARGV_OUTPUT" ]; then
usage
fi
mkdir -p "$ARGV_OUTPUT"
jq ".version = \"$ARGV_APPLICATION_VERSION\"" "$ARGV_SOURCE_DIRECTORY/package.json" > "$ARGV_OUTPUT/package.json"
for file in $(echo "$ARGV_FILES" | sed "s/,/ /g"); do
cp -rf "$file" "$ARGV_OUTPUT"
done

View File

@ -1,68 +0,0 @@
#!/bin/bash
###
# Copyright 2016 resin.io
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
###
set -u
set -e
./scripts/build/check-dependency.sh curl
function usage() {
echo "Usage: $0"
echo ""
echo "Options"
echo ""
echo " -r <architecture>"
echo " -v <electron version>"
echo " -s <electron operating system>"
echo " -o <output directory>"
exit 1
}
ARGV_ARCHITECTURE=""
ARGV_ELECTRON_VERSION=""
ARGV_OPERATING_SYSTEM=""
ARGV_OUTPUT=""
while getopts ":r:v:s:o:" option; do
case $option in
r) ARGV_ARCHITECTURE=$OPTARG ;;
v) ARGV_ELECTRON_VERSION=$OPTARG ;;
s) ARGV_OPERATING_SYSTEM=$OPTARG ;;
o) ARGV_OUTPUT=$OPTARG ;;
*) usage ;;
esac
done
if [ -z "$ARGV_ARCHITECTURE" ] \
|| [ -z "$ARGV_ELECTRON_VERSION" ] \
|| [ -z "$ARGV_OPERATING_SYSTEM" ] \
|| [ -z "$ARGV_OUTPUT" ]
then
usage
fi
ELECTRON_ARCHITECTURE=$(./scripts/build/architecture-convert.sh -r "$ARGV_ARCHITECTURE" -t node)
ELECTRON_GITHUB_REPOSITORY=https://github.com/electron/electron
ELECTRON_DOWNLOADS_BASEURL="$ELECTRON_GITHUB_REPOSITORY/releases/download/v$ARGV_ELECTRON_VERSION"
ELECTRON_FILENAME="electron-v$ARGV_ELECTRON_VERSION-$ARGV_OPERATING_SYSTEM-$ELECTRON_ARCHITECTURE.zip"
ELECTRON_CHECKSUM=$(curl --location "$ELECTRON_DOWNLOADS_BASEURL/SHASUMS256.txt" | grep "$ELECTRON_FILENAME" | cut -d ' ' -f 1)
./scripts/build/download-tool.sh \
-u "$ELECTRON_DOWNLOADS_BASEURL/$ELECTRON_FILENAME" \
-c "$ELECTRON_CHECKSUM" \
-o "$ARGV_OUTPUT"

View File

@ -1,74 +0,0 @@
#!/bin/bash
###
# Copyright 2016 resin.io
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
###
set -u
set -e
OS=$(uname)
if [[ "$OS" != "Linux" ]]; then
echo "This script is only meant to be run in GNU/Linux" 1>&2
exit 1
fi
./scripts/build/check-dependency.sh electron-installer-debian
# electron-installer-debian is documented as requiring the fakeroot and dpkg commands
./scripts/build/check-dependency.sh fakeroot
./scripts/build/check-dependency.sh dpkg
function usage() {
echo "Usage: $0"
echo ""
echo "Options"
echo ""
echo " -p <application directory>"
echo " -r <architecture>"
echo " -c <debian configuration (.json)>"
echo " -o <output directory>"
exit 1
}
ARGV_DIRECTORY=""
ARGV_ARCHITECTURE=""
ARGV_DEBIAN_CONFIGURATION=""
ARGV_OUTPUT=""
while getopts ":p:r:c:o:" option; do
case $option in
p) ARGV_DIRECTORY="$OPTARG" ;;
r) ARGV_ARCHITECTURE="$OPTARG" ;;
c) ARGV_DEBIAN_CONFIGURATION="$OPTARG" ;;
o) ARGV_OUTPUT="$OPTARG" ;;
*) usage ;;
esac
done
if [ -z "$ARGV_DIRECTORY" ] \
|| [ -z "$ARGV_ARCHITECTURE" ] \
|| [ -z "$ARGV_DEBIAN_CONFIGURATION" ] \
|| [ -z "$ARGV_OUTPUT" ]
then
usage
fi
DEBIAN_ARCHITECTURE=$(./scripts/build/architecture-convert.sh -r "$ARGV_ARCHITECTURE" -t debian)
electron-installer-debian \
--src "$ARGV_DIRECTORY" \
--dest "$ARGV_OUTPUT" \
--config "$ARGV_DEBIAN_CONFIGURATION" \
--arch "$DEBIAN_ARCHITECTURE"

View File

@ -1,74 +0,0 @@
#!/bin/bash
###
# Copyright 2017 resin.io
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
###
set -u
set -e
OS=$(uname)
if [[ "$OS" != "Linux" ]]; then
echo "This script is only meant to be run in GNU/Linux" 1>&2
exit 1
fi
./scripts/build/check-dependency.sh electron-installer-redhat
# electron-installer-redhat is documented as requiring the rpmbuild commands
./scripts/build/check-dependency.sh rpmbuild
function usage() {
echo "Usage: $0"
echo ""
echo "Options"
echo ""
echo " -p <application directory>"
echo " -r <architecture>"
echo " -c <redhat configuration (.json)>"
echo " -o <output directory>"
exit 1
}
ARGV_DIRECTORY=""
ARGV_ARCHITECTURE=""
ARGV_REDHAT_CONFIGURATION=""
ARGV_OUTPUT=""
while getopts ":p:r:c:o:" option; do
case $option in
p) ARGV_DIRECTORY="$OPTARG" ;;
r) ARGV_ARCHITECTURE="$OPTARG" ;;
c) ARGV_REDHAT_CONFIGURATION="$OPTARG" ;;
o) ARGV_OUTPUT="$OPTARG" ;;
*) usage ;;
esac
done
if [ -z "$ARGV_DIRECTORY" ] \
|| [ -z "$ARGV_ARCHITECTURE" ] \
|| [ -z "$ARGV_REDHAT_CONFIGURATION" ] \
|| [ -z "$ARGV_OUTPUT" ]
then
usage
fi
REDHAT_ARCHITECTURE=$(./scripts/build/architecture-convert.sh -r "$ARGV_ARCHITECTURE" -t redhat)
electron-installer-redhat \
--src "$ARGV_DIRECTORY" \
--dest "$ARGV_OUTPUT" \
--config "$ARGV_REDHAT_CONFIGURATION" \
--arch "$REDHAT_ARCHITECTURE"

View File

@ -1,60 +0,0 @@
#!/bin/bash
###
# Copyright 2016 resin.io
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
###
set -u
set -e
./scripts/build/check-dependency.sh jq
function usage() {
echo "Usage: $0"
echo ""
echo "Options"
echo ""
echo " -p <property>"
echo " -v <value>"
echo " -f <file>"
echo " -t <temporary directory>"
exit 1
}
ARGV_PROPERTY=""
ARGV_VALUE=""
ARGV_FILE=""
ARGV_TEMPORARY_DIRECTORY=""
while getopts ":p:v:f:t:" option; do
case $option in
p) ARGV_PROPERTY=$OPTARG ;;
v) ARGV_VALUE=$OPTARG ;;
f) ARGV_FILE=$OPTARG ;;
t) ARGV_TEMPORARY_DIRECTORY="$OPTARG" ;;
*) usage ;;
esac
done
if [ -z "$ARGV_PROPERTY" ] ||
[ -z "$ARGV_VALUE" ] ||
[ -z "$ARGV_FILE" ] ||
[ -z "$ARGV_TEMPORARY_DIRECTORY" ]; then
usage
fi
TEMPORARY_FILE="$ARGV_TEMPORARY_DIRECTORY/$(basename "$ARGV_FILE").TMP"
cat "$ARGV_FILE" | jq ".$ARGV_PROPERTY=$ARGV_VALUE" > "$TEMPORARY_FILE"
mv "$TEMPORARY_FILE" "$ARGV_FILE"

View File

@ -1,15 +0,0 @@
{
"name": "etcher-electron",
"productName": "Etcher",
"genericName": "Etcher",
"homepage": "https://etcher.io/",
"icon": "assets/icon.png",
"bin": "etcher",
"categories": [
"Utility"
],
"requires": [
"lsb",
"libXScrnSaver"
]
}