141 Commits

Author SHA1 Message Date
Juan Cruz Viotti
68a71d89e2 chore: add Makefile to build OS X and GNU/Linux (#922)
This Makefile ties together all the build scripts we've been developing
so far. It currently only supports UNIX based operating systems, but
Windows support will be added soon.

Signed-off-by: Juan Cruz Viotti <jviotti@openmailbox.org>
2016-12-01 15:16:47 -04:00
Juan Cruz Viotti
d36509d995 Implement cross-platform build scripts (#395)
With the addition of native addons to Etcher, its no longer possible to
package the application for all operating system in a single host.

Given we need to build on Windows, we're creating cross-platform bash
and batch scripts and deprecating the original Makefile.

Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-05-10 16:07:18 -04:00
Juan Cruz Viotti
e7760e253f Lock electron development version, and re-use it in Makefile (#371)
By locking the electron version in `package.json`, we can require it
from the Makefile to ensure production and development are both running
the exact same electron version, and ensures they don't easily get out
of sync.

Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-04-27 11:48:35 -04:00
Juan Cruz Viotti
0ac79fa251 Deprecate tar.gz GNU/Linux "installers" (#356)
We're distributing AppImages now for convenience.

Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-04-25 11:44:50 -04:00
Juan Cruz Viotti
dcff257f20 Upgrade Electron to v0.37.6 (#350)
* Upgrade Electron to v0.37.6

The main motiviation for such upgrade is that an error manifesting
itself as `Cannot read property 'object' of undefined` on certain Linux
systems was fixed in v0.37.4.

See https://github.com/electron/electron/issues/5229
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>

* Make use of shell module by requiring `shell`

Otherwise we get a strange issue when trying to stub it:

    TypeError: Attempted to wrap undefined property openExternal as function

Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-04-21 10:26:29 -04:00
Juan Cruz Viotti
a462ee86c0 Add Makefile rule to generate an x86 AppImage for GNU/Linux (#349)
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-04-21 09:01:34 -04:00
Juan Cruz Viotti
f683b841fa Make use of AppImage desktop integration script (#346)
This is useful to prompt the user to install the `.desktop` file.

The `Description` key in `Etcher.desktop` was changed to `Comment` since
`desktop-file-validate` complained with:

    Etcher.desktop: error: file contains key "Description" in group "Desktop
    Entry", but keys extending the format should start with "X-"

After checking the desktop file format specification, the correct key
should be "Comment"
(https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s05.html).

See: bc6e519964 (commitcomment-17164442)
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-04-19 16:29:16 -04:00
Juan Cruz Viotti
bc6e519964 Generate AppImage package for GNU/Linux x86_64 (#345)
Fixes: https://github.com/resin-io/etcher/issues/323
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-04-19 13:29:32 -04:00
Juan Cruz Viotti
cda27982ef Publish ZIP versions of Etcher.app (#315)
`Squirrel.Mac` works with ZIP packages rather than DMGs.

Fixes: https://github.com/resin-io/etcher/issues/314
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-04-13 12:29:42 -04:00
Juan Cruz Viotti
ec7ad1304f Compress Linux executables and Windows DLLs with UPX (#286)
Before:

    118M   Etcher-linux-x64
    122M   Etcher-linux-x86
    142M   Etcher-win32-x64
    116M   Etcher-win32-x86

After:

    74M    Etcher-linux-x64
    74M    Etcher-linux-x86
    124M   Etcher-win32-x64
    102M   Etcher-win32-x86

Fixes: https://github.com/resin-io/etcher/issues/281
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-04-11 13:31:10 -04:00
Juan Cruz Viotti
2b1ef3d980 Move package ignore list computation to a separate script (#285)
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-04-11 12:30:00 -04:00
Juan Cruz Viotti
e1742859e1 Rename Linux binary to "etcher" (#282)
The capital letter is not very user friendly for command line people.

Fixes: https://github.com/resin-io/etcher/issues/278
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-04-11 10:56:07 -04:00
Juan Cruz Viotti
2e75b7f2bb Upgrade Electron to v0.36.11 (#275)
This version contains a fix for `resizable: false` not working on
GNU/Linux.

See: https://github.com/electron/electron/releases/tag/v0.36.11
Fixes: https://github.com/resin-io/etcher/issues/272
Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-04-10 23:22:51 -04:00
Juan Cruz Viotti
77d9fadc83 Codesign OS X app inside the DMG package
This PR fixes a frequent issue users were having where opening

`Etcher.app` would result in:



    "Etcher.app" is damaged and can't be opened. You should move it to

    the trash.



Checking the code-signature of the application returned the following

error message:



    $ spctl -a -v Etcher.app

    Etcher.app: invalid signature (code or signature have been modified)



The solution is based on the following paragraphs from Apple's "OS X

Code Signing in Depth" technical note:



https://developer.apple.com/library/mac/technotes/tn2206/_index.html



> Code signing uses extended attributes to store signatures in non-Mach-O

> executables such as script files. If the extended attributes are lost

> then the program's identity will be broken. Thus, when you ship your

> script, you must use a mechanism that preserves extended attributes.

>

> One way to guarantee preservation of extended attributes is by packing

> up your signed code in a read-write disk image (DMG) file before signing

> and then, after signing, converting to read-only. You probably don't

> need to use a disk image until the final package stage so another less

> heavy-handed method would be to use ZIP or XIP files.



In summary, what we now do is:



- Create a temporal read-write DMG image.

- Perform the code-signing *inside* the DMG image.

- Convert the temporal DMG image into a compressed read-only image.



Sadly, this custom workflow doesn't fit in `electron-packager` nor

`electron-builder`, so we had to re-implement the features those

packages provide us in a nice encapsulated way ourselves.



Signed-off-by: Juan Cruz Viotti <jviottidc@gmail.com>
2016-04-07 05:20:52 -04:00
Juan Cruz Viotti
05a5790400 Setup code-signing in Windows
Fixes: https://github.com/resin-io/etcher/issues/173
2016-03-28 13:06:13 -04:00
Juan Cruz Viotti
cb8da11b89 Add missing package metadata
- Legal copyright.
- Company name.
- File description.
- Original filename.
- Product name.
- Internal name.
2016-03-25 10:10:07 -04:00
Juan Cruz Viotti
8a9abc2c97 Wipe-out node_modules/ and force-install npm dependencies 2016-03-11 08:30:28 -04:00
Juan Cruz Viotti
c822cd07fe Add upload-all rule 2016-03-10 13:33:22 -04:00
Juan Cruz Viotti
c2dd89eadb Adhere to a more formal package naming convention
<name>-<os>-<arch>.<extension>
2016-03-10 13:32:17 -04:00
Juan Cruz Viotti
d5e58dd5b6 Add Makefile rules to publish to S3 2016-03-09 11:31:46 -04:00
Juan Cruz Viotti
95eff44af5 Move package.ignore contents to package.json
This allows `Makefile` to require and join the ignore entries easily
with NodeJS instead of relying on `tr` and `sed`.
2016-03-09 09:04:03 -04:00
Juan Cruz Viotti
9ee6df6016 Sign application in OS X using Resin's developer ID
Fixes: https://github.com/resin-io/etcher/issues/158
2016-03-02 11:04:38 -04:00
Juan Cruz Viotti
1f85fab840 Move display name setting from Makefile to package.json 2016-02-29 14:20:54 -04:00
Juan Cruz Viotti
669383712e Extend package metadata information, mainly in OS X 2016-02-29 10:36:04 -04:00
Juan Cruz Viotti
f4067bacb0 Upgrade Electron to v0.36.8
This version contains a fix to prevent dropping capabilities in renderer
threads.

See https://github.com/atom/electron/issues/3666
Fixes https://github.com/resin-io/etcher/issues/52
2016-02-19 11:01:16 -04:00
Juan Cruz Viotti
53aadb527d Rename release/ to etcher-release/
The `bluebird` module contains a directory called "release", which gets
omitted by `electron-packager`.

After some experimentation, there doesn't seems to be a way to make
`electron-packager` ignore a pattern only on the current directory,
therefore we change the name of our output directory to something that
can't possibly collide with something else.
2016-02-18 16:39:52 -04:00
Juan Cruz Viotti
eebe900be2 Implement release make rule 2016-02-09 10:42:08 -04:00
Juan Cruz Viotti
614293b0c2 Remove Makefile redundancy with functions 2016-02-09 10:34:41 -04:00
Juan Cruz Viotti
a306cf4461 Package Etcher for Linux for release 2016-02-09 10:28:49 -04:00
Juan Cruz Viotti
44ce11b338 Implement Windows installers
Partially Fixes: https://github.com/resin-io/etcher/issues/88
2016-02-09 09:12:35 -04:00
Juan Cruz Viotti
d73700cdd1 Implement OS X installer 2016-02-08 12:38:10 -04:00
Juan Cruz Viotti
d593478e45 Rename output package to "Etcher" instead of "Resin Etcher" 2016-02-08 10:05:08 -04:00
Juan Cruz Viotti
408a3096fc Rename Herostratus to Resin Etcher 2016-01-01 18:07:45 -04:00
Juan Cruz Viotti
2f914d283e Package application with electron v0.36.0 2015-12-14 16:44:50 -04:00
Juan Cruz Viotti
fce58a3ad0 Fix drivelist spawn issues inside asar package
The following libraries were upgraded to versions that include this fix:

- electron-prebuilt
- drivelist

Fixes: https://github.com/resin-io/herostratus/issues/35
Fixes: https://github.com/resin-io/herostratus/issues/18
2015-12-14 16:29:08 -04:00
Juan Cruz Viotti
fef79c6143 osx(package) Build without --asar
This change fixes the following issues:

- https://github.com/resin-io/herostratus/issues/17
- https://github.com/resin-io/herostratus/issues/18
2015-11-18 14:20:18 -04:00
Juan Cruz Viotti
4925d1d722 Merge pull request #13 from resin-io/jviotti/fix/package-electron
Package Electron with 0.31.2
2015-11-13 15:33:01 -04:00
Juan Cruz Viotti
abcf142379 Add application icon 2015-11-12 14:33:54 -04:00
Juan Cruz Viotti
f50c324170 Package Electron with 0.31.2
This was the last known version to work on Ubuntu.

See https://github.com/resin-io/herostratus/pull/10
2015-11-12 14:07:22 -04:00
Juan Cruz Viotti
b43fc6591e Ignore unnecessary files when packaging app 2015-10-30 16:15:45 -04:00
Juan Cruz Viotti
e793927e5a Package application for all supported oses 2015-10-30 15:11:48 -04:00