-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linux support #70
Comments
Hi @wearhere. I'm very interested in adding Linux support to Implemented:
Roadmap:
Problems found:
Tomorrow next round. Can you give some hints on what are the remote updates (app updates, electron updates)? I've started today with this package and electron and I'm a bit lost. BTW, any volunteer(s) to lend a hand will be welcome! |
Hey @cgalvarez, neat to see this! Thanks for the thorough testing.
Hm, I don't think the UI framework would matter since this package loads your app from the root URL specified in settings/environment variables, i.e. if your root URL is https://myapp.com and you can load that in the browser, it should load just fine in meteor-electron.
Remote updates are for updating the part of the app that interfaces with the OS—to change the app icon, to add a menu bar icon, etc. For updating your app's UI, hot code push will work just like it does on the web, since the app is loading the UI from the web. |
@wearhere You're right. The UI framework has nothing to do. It was my fault (set the wrong Regarding the linux packages for downloading, I think the best way to accomplish this is through the NPM packages electron-installer-debian and electron-installer-redhat. They seem to build rpm (redhat/fedora) and deb (debian/ubuntu) packages from electron-packager builds, so the integration should work fine. Going to start with them. Checklists updated. Any approach/ideas will be welcome. |
I've added a new subfolder next to "builds" called "installers". It acts as intermediate folder where all the installers are saved. Now In order to build a deb/rpm installer, the system must have some packages installed. When using Ubuntu, if these packages are not installed ( I've installed the built There is an error in the code because the app shows with the name "Electron". This is due to There is a new option An example of these new parameters could be: {
"electron": {
...
"name": "meteoric-electron",
"installer": {
"linux": {
"license": "MIT",
"maintainer": "Carlos Garcia",
"productName": "Meteoric Electron!"
}
}
} |
Looking into electron autoUpdater docs, I can confirm what @wearhere have heard:
That's absolutely horrible! Your hint on updating the app via the system package manager (which is the recommendation from the electron docs too) requires:
Anyone interested can check steps here. IMO, this seems too much interaction and steps for both, the developer and the user. Some steps could be automated, but following the spirit of keeping things simple, I did some research and came across electron-asar-updater. It's a NPM package that handles updates of the asar file of the app. The filesizes for the app I'm using for testing are as follows:
Holy s***! So I'm definitely going with I think it is the best way to do this, but I'm open to other suggestions or different approaches. I'm looking into a way of copy the asar file directly to the Meteor's public folder with a token to restrict updates to signed apps (like Suggestions/improvements are welcome! |
Just discovered electron-builder, which can build linux installers too. Windows installers can be built from Linux installing some prerequisites (cool!), and building dmg for OS X should be possible with appdmg, but the last ones can't be signed) can't be signed, so my happiness in a hole 😭). It is also worth reading the multi platform build at electron-builder wiki. Windows installers can also be built from Linux with NPM package electron-installer-windows, developed by the same author as the other two NPM packages I've already used to build deb/rpm. Reading this issue I found the AppImage which is a portable self-executable format (no need to install) running all common Linux distributions. Seems very interesting. |
Downloading installers working now! I had to adapt code due to the multiple formats available for Linux. One question for @wearhere: I had no router package installed (neither In addition, No one else has happened this issue? BTW, still need to fix the remote auto-updates before making the pull request, but please, everyone interested in this can test it by simply cloning the fork in the
Meteor will use the fork without affecting your current |
@cgalvarez Try the Atom AppImage to find out whether this might be an option for you: |
@probonopd thanks for pointing me in the right direction. I've found the AppImageKit wiki and your AppImages project, which contains your recipe for Atom. I will give it a chance, for sure, since Atom is also based on Electron. Thank you very much again! |
Remote updates working now for Linux. Keep working on the found issues. |
@cgalvarez electron-builder will support AppImage target next week. |
Also, electron-builder provides docker images to build Linux on Windows or just to avoid any setup. https://github.com/electron-userland/electron-builder/tree/master/docker |
@wearhere Just made a pull request for adding Linux support (first complete version). Building Windows installers from Linux and support for AppImage are in my roadmap. |
@develar Thanks! I'll take a look at it asap. |
@cgalvarez, hi! Why your PR is closed now? Could we just use your fork for now while it isnt in official package? |
Hi @mrzafod. I closed the PR because I found some bugs just after pulling it, so I closed it, fixed those bugs and went on making more improvements. I didn't pull it again because still cannot build Windows installers from Linux (not implemented). My fork is fully functional and documented (in readme and with jsdoc blocks). You can use it, of course. Clone the repo with Please, provide feedback after using it. I've enabled the issues for my fork, so if you found any related issue, please open it there, so we don't pollute the official project 😉 |
(Copied from #62 (comment))
I don't need to support Linux at the moment, but I'd definitely take a pull request. A rough sketch of tasks:
Meteor.settings.electron.build
just worksOn the last note, I've heard that Electron's auto-updater framework doesn't actually support Linux—it's recommended that you update the app just via the system package manager. In that case, I don't know if there's anything for
meteor-electron
to do, I'd just want to document this in its README.The text was updated successfully, but these errors were encountered: