Closed kylehayes closed 8 years ago
Hey @kylehayes —thanks for reporting this. Right now, we have Mac, Windows, and Linux CI servers, but the Linux box is running Ubuntu. I think we'd have to spin up a RedHat VM to build .rpm files? I'll look into this—we definitely intend to make rpm
s available soon.
I've been corrected by our systems team :-) We'll get rpm
builds going soon. I'll keep you posted.
The same .deb
file was downloaded on my Fedora workstation.
rpm
:+1:
+1 for rpm package
+1 for rpm
+1 as a Fedora user
Another one here :+1:
Looking forward to the RPM builds as well :+1:
I've been trying to build it myself but it always fails at script/grunt mkrpm
:
Running "mkrpm" task
cp: cannot stat ‘/tmp/nylas-build/Nylas/*’: No such file or directory Warning: null Use --force to continue.
Aborted due to warnings.
I checked the folder /tmp/nylas-build/Nylas/
and it is always empty.
Adding my voice to the rpmers... FC22 (for a few more days).
I ended up just doing the install command as root. However, when I ran script/rpmbuild
I got a more detailed error report. It fails because publish-build
is not registered as a task.
+1 to RPM. I try to convert with alien, but
[davidemaglio@thinkpad-t450s Scaricati]$ sudo dnf install nylas-0.3.19-2.x86_64.rpm
Last metadata expiration check performed 0:41:27 ago on Mon Oct 26 09:06:30 2015.
Dipendenze risolte.
======================================================================================================================================================================
Pacchetto Arch Versione Repository Dim.
======================================================================================================================================================================
Installazione in corso:
nylas x86_64 0.3.19-2 @commandline 52 M
Riepilogo della transazione
======================================================================================================================================================================
Install 1 Package
Dimensione totale: 52 M
Dimensione installata: 197 M
Procedere [s/N]: s
Download dei pacchetti:
Esecuzione del controllo di transazione
Test di transazione eseguito con successo.
Test di transazione in corso
Errore: Errore nel controllo transazione:
il file / dell'installazione di nylas-0.3.19-2.x86_64 entra in conflitto con il file del pacchetto filesystem-3.2-32.fc22.x86_64
il file /usr/bin dell'installazione di nylas-0.3.19-2.x86_64 entra in conflitto con il file del pacchetto filesystem-3.2-32.fc22.x86_64
Alien conversion successful, but installation fails. This is Fedora 22.
$ sudo alien --scripts -r Downloads/N1.deb
nylas-0.3.19-2.x86_64.rpm generated
$ sudo rpm -i nylas-0.3.19-2.x86_64.rpm
error: Failed dependencies:
libnode.so()(64bit) is needed by nylas-0.3.19-2.x86_64
+1 for native rpm.
@dmaglio @pmatos yep, Alien converts successfully .deb
to .rpm
, but libnode.so()(64bit)
dependency was not found.
My problem with alien is like @dmaglio:
Error: Transaction check error:
file / from install of nylas-0.3.17-2.x86_64 conflicts with file from package filesystem-3.2-32.fc22.x86_64
file /usr/bin from install of nylas-0.3.17-2.x86_64 conflicts with file from package filesystem-3.2-32.fc22.x86_64
I changed the name of script/tasks/publish-nylas-build-task.coffee
(and it's name in grunt.registerTask()
) and tried to build and then instead of the usual error I got:
Running "peg:glob_to_multiple" (peg) task
Running "generate-license:save" (generate-license) task
Running "generate-module-cache" task
Running "compile-packages-slug" task
Running "set-version" task
Running "generate-asar" task
Done, without errors.
Running "mkrpm" task
>> + umask 022
>> + cd /root/rpmbuild/BUILD
>> + '[' /root/rpmbuild/BUILDROOT/nylas-0.3.19-0.1.fc23.x86_64 '!=' / ']'
>> + rm -rf /root/rpmbuild/BUILDROOT/nylas-0.3.19-0.1.fc23.x86_64
>> ++ dirname /root/rpmbuild/BUILDROOT/nylas-0.3.19-0.1.fc23.x86_64
>> + mkdir -p /root/rpmbuild/BUILDROOT
>> + mkdir /root/rpmbuild/BUILDROOT/nylas-0.3.19-0.1.fc23.x86_64
>> + mkdir -p /root/rpmbuild/BUILDROOT/nylas-0.3.19-0.1.fc23.x86_64/usr/local/share/Nylas
>> + cp -r /tmp/nylas-build/Nylas/LICENSE /tmp/nylas-build/Nylas/content_shell.pak /tmp/nylas-build/Nylas/icudtl.dat /tmp/nylas-build/Nylas/libffmpegsumo.so /tmp/nylas-build/Nylas/libgcrypt.so.11 /tmp/nylas-build/Nylas/libnode.so /tmp/nylas-build/Nylas/libnotify.so.4 /tmp/nylas-build/Nylas/locales /tmp/nylas-build/Nylas/natives_blob.bin /tmp/nylas-build/Nylas/nylas /tmp/nylas-build/Nylas/resources /tmp/nylas-build/Nylas/snapshot_blob.bin /tmp/nylas-build/Nylas/version /root/rpmbuild/BUILDROOT/nylas-0.3.19-0.1.fc23.x86_64/usr/local/share/Nylas
>> + mkdir -p /root/rpmbuild/BUILDROOT/nylas-0.3.19-0.1.fc23.x86_64/usr/local/bin/
>> + ln -sf /usr/local/share/nylas/resources/app/apm/node_modules/.bin/apm /root/rpmbuild/BUILDROOT/nylas-0.3.19-0.1.fc23.x86_64/usr/local/bin/apm
>> + cp N1.sh /root/rpmbuild/BUILDROOT/nylas-0.3.19-0.1.fc23.x86_64/usr/local/bin/nylas
>> + chmod 755 nylas
>> + mkdir -p /root/rpmbuild/BUILDROOT/nylas-0.3.19-0.1.fc23.x86_64/usr/local/share/applications/
>> + mv nylas.desktop /root/rpmbuild/BUILDROOT/nylas-0.3.19-0.1.fc23.x86_64/usr/local/share/applications/
>> + '[' '%{buildarch}' = noarch ']'
>> + QA_CHECK_RPATHS=1
>> + case "${QA_CHECK_RPATHS:-}" in
>> + /usr/lib/rpm/check-rpaths
>> + /usr/lib/rpm/check-buildroot
>> + /usr/lib/rpm/brp-compress
>> + /usr/lib/rpm/brp-strip /usr/bin/strip
>> + /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
>> + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip
>> + /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
>> + /usr/lib/rpm/brp-python-hardlink
>> + /usr/lib/rpm/redhat/brp-java-repack-jars
>> error: Directory not found: /root/rpmbuild/BUILDROOT/nylas-0.3.19-0.1.fc23.x86_64/usr/local/share/nylas
>> Directory not found: /root/rpmbuild/BUILDROOT/nylas-0.3.19-0.1.fc23.x86_64/usr/local/share/nylas
Warning: null Use --force to continue.
Error: null
at ChildProcess.<anonymous> (/home/Zeklandia/dev/git/N1/build/tasks/task-helpers.coffee:58:37)
at ChildProcess.emit (events.js:98:17)
at maybeClose (child_process.js:766:16)
at Process.ChildProcess._handle.onexit (child_process.js:833:5)
Aborted due to warnings.
I am always interested in testing the rpms for fedora 21, fedora 22 and fedora 23.
I was able to get it to build an RPM!!!! However, it failed to on the last step (publish-build
). I am forking N1 right now and I will make a pull request when I am done. Here is the log I had:
...
script/bootstrap completed successfully. You can start
N1 via ./N1.sh --dev, or run tests with ./N1.sh --test
Running "download-electron" task
Running "build" task
Running "coffee:glob_to_multiple" (coffee) task
>> 200 files created.
Running "cjsx:glob_to_multiple" (cjsx) task
...
>> 12 files compiled to JSON.
Running "peg:glob_to_multiple" (peg) task
Running "generate-license:save" (generate-license) task
Running "generate-module-cache" task
Running "compile-packages-slug" task
Running "set-version" task
Running "generate-asar" task
Done, without errors.
Running "mkrpm" task
>> Created rpm package in /tmp/nylas-build/rpm
Running "publish-build" task
>> Please set the AWS_ACCESS_KEY_ID environment variable
Warning: Task "publish-build" failed. Use --force to continue.
Error: Task "publish-build" failed.
at Task.<anonymous> (/home/Zeklandia/dev/git/N1/build/node_modules/grunt/lib/util/task.js:205:15)
at Task.runTaskFn (/home/Zeklandia/dev/git/N1/build/node_modules/grunt/lib/util/task.js:254:9)
at Task.<anonymous> (/home/Zeklandia/dev/git/N1/build/node_modules/grunt/lib/util/task.js:300:12)
at /home/Zeklandia/dev/git/N1/build/node_modules/grunt/lib/util/task.js:227:11
at process._tickDomainCallback (node.js:486:13)
It downloaded .deb package. But I was able to successfully generate .rpm package using Alien on Opensuse 13.2
rpm -ivh nylas-0.3.20-2.x86_64.rpm Preparing... ################################# [100%] Updating / installing... 1:nylas-0.3.20-2 ################################# [100%]
@sameerbagwe what's the sha1 of your rpm?
Below:
nylas-0.3.20-2.x86_64.rpm: Header SHA1 digest: OK (e5c6a0c2ad01a9031659acb51076f58fcd65d842) MD5 digest: OK (4d06fbedff3ccc16c51c27ecf6e382d2)
Hacking up the RPM with Alien looks pretty dodgy to me. One of the directories the generated RPM includes is '/'. When you come to remove the package, it'll attempt to delete your root partition (but likely fail to do so). Not ideal....
You can fix that by using rpmrebuild
and editing out those directories from the files list.
@sameerbagwe can you post the link to the rpm package?
With the latest changes, when trying to run script/rpmbuild
I get:
...
Running "peg:glob_to_multiple" (peg) task
Running "generate-license:save" (generate-license) task
Running "generate-module-cache" task
Running "compile-packages-slug" task
Running "set-version" task
Running "generate-asar" task
Done, without errors.
Warning: Task "publish-build" not found. Use --force to continue.
Error: Task "publish-build" not found.
at Task.run (/home/Zeklandia/dev/git/N1/build/node_modules/grunt/lib/util/task.js:179:28)
at /home/Zeklandia/dev/git/N1/build/node_modules/grunt/lib/grunt.js:161:39
at Array.forEach (native)
at Object.grunt.tasks (/home/Zeklandia/dev/git/N1/build/node_modules/grunt/lib/grunt.js:161:9)
at Object.module.exports [as cli] (/home/Zeklandia/dev/git/N1/build/node_modules/grunt/lib/grunt/cli.js:38:9)
at Object.<anonymous> (/home/Zeklandia/dev/git/N1/build/node_modules/grunt-cli/bin/grunt:45:20)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:929:3
Aborted due to warnings.
@Tuchkata Here:
https://dl.dropboxusercontent.com/u/432788/nylas-0.3.20-2.x86_64.rpm
Note: Uploaded and sharing on this community as the app requires Invite code on startup and won't be useful to those who haven't received the invite. If it still violates any rules I can remove the rpm.
@sameerbagwe I get the same error with your package as when I use alien (conflicts with file from package filesystem-3.2-32.fc22.x86_64
). I could compile it for myself but to be honest, that's why I signed up for the test period - I don't have time to wade through dependency issues right now.
@jcuenod
I converted and installed this rpm successfully on OpenSuse 13.2. Currently evaluating the App. More interested with Corporate Exchange Server as I strictly use Linux on my office laptop.
Hopefully this App wont disappoint me like Thunderbird and Evolution.
@sameerbagwe Same error as @jcuenod on Fedora 22 for me.
I am gonna try it later today and write my comment.
+1 on the RPM. I've tried to build from source on an F22 system but midway through script/bootstrap
I hit a string of failures^1
Why do not you just start a project on build.opensuse.org? It allows you to automatically build, test packages and create repositories for openSUSE, Fedora, Ubuntu, Debian, Arch, etc. Very easy you can provide a support for many distributes in one place.
+1. Since N1 is built on Electron, maybe Atom's spec file is something useful?
+1 for rpm
:+1:
:+1:
@bengotow you might want to check out FPM for generating .deb and .rpm packages.
Usage example from Electron SuperKit: https://github.com/Aluxian/electron-superkit/blob/master/tasks/pack.coffee#L69
Here you go guys:
sudo dnf install rpmdevtools fedora-packager nodejs npm libgit2-devel libgnome-keyring-devel
sudo npm install -g npm@2
sudo npm install -g inherits@2
git clone https://github.com/nylas/N1
script/build (takes a very long time)
script/grunt mkrpm
find rpm in /tmp/nylas-build/rpm/
@mbilker Thanks a lot! Worked well
So the RPM build for Fedora is now working correctly? With which Fedora version have you tried?
Thanks! Works correctly
Works correctly for Fedora 22, thanks!
It's working ! :+1:
the rpm compilation could not copy the file nylas.png fix:
# mkdir -p /usr/local/share/nylas/resources/app/resources/
# cp build/resources/nylas.png /usr/local/share/nylas/resources/app/resources/
Fedora 23 :(
# script/build
Node: v0.10.36
npm: v3.3.10
---> Installing N1 build tools
This goes inside the `build` folder and runs `npm install`
It will use the system `npm` to bootstrap our own N1 npm.
Our build tools (like Grunt) need to be compiled against Node via `npm`.
Everything else needs to be compiled against Chromium with `apm`.
$ npm --userconfig="/n1/.npmrc" install --loglevel error --cwd=/n1/build --ignoreStdout=true
---> Installing apm
This installs apm via N1's `npm`
We use this local apm copy to install all N1 dependencies & packages
$ "/n1/build/node_modules/.bin/npm" --userconfig="/n1/.npmrc" --target=0.10.40 install --loglevel error --cwd=/n1/apm --ignoreStdout=true
---> Flattening apm package tree
This runs `npm dedupe` on apm's `npm` dependency.
We use this to prevent paths over 260 characters on Windows.
$ "/n1/build/node_modules/.bin/npm" --userconfig="/n1/.npmrc" --target=0.10.40 dedupe --cwd=/n1/apm/node_modules/npm --ignoreStderr=true --ignoreStdout=true
---> Cleaning apm via `apm clean`
module.js:340
throw err;
^
Error: Cannot find module '../build/Release/git.node'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/n1/apm/node_modules/git-utils/lib/git.js:8:16)
at Object.<anonymous> (/n1/apm/node_modules/git-utils/lib/git.js:371:4)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
@kadel : I think that you update nodejs to last release, i compile N1 with nodejs 5.1.0 in F23 (x86_64) and works.
works with 5.1.0, thx ;-)
You need to install the whole dnf/yum line I wrote. Libgit2-devel fixes the issue On Wed, Nov 25, 2015 at 6:33 AM Tomas Kral notifications@github.com wrote:
works with 5.1.0, thx ;-)
— Reply to this email directly or view it on GitHub https://github.com/nylas/N1/issues/107#issuecomment-159579105.
Works great mbilker, thanks!
Works fine in my Fedora 23, thanks! Anyway, it would be better with official builds :)
I tried to download on a RedHat 7.2 workstation but a
.deb
file was downloaded. On RedHat, I would expect to get a.rpm
.