nylas / nylas-mail

:love_letter: An extensible desktop mail app built on the modern web. Forks welcome!
https://nylas.com/nylas-mail/
MIT License
24.81k stars 1.37k forks source link

RPM packages for Fedora #107

Closed kylehayes closed 8 years ago

kylehayes commented 8 years ago

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.

bengotow commented 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 rpms available soon.

bengotow commented 8 years ago

I've been corrected by our systems team :-) We'll get rpm builds going soon. I'll keep you posted.

joseluisq commented 8 years ago

The same .deb file was downloaded on my Fedora workstation. rpm :+1:

okushchenko commented 8 years ago

+1 for rpm package

jutenga commented 8 years ago

+1 for rpm

jamesnetherton commented 8 years ago

+1 as a Fedora user

cmmata commented 8 years ago

Another one here :+1:

JesseFarebro commented 8 years ago

Looking forward to the RPM builds as well :+1:

Zeklandia commented 8 years ago

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.

jcuenod commented 8 years ago

Adding my voice to the rpmers... FC22 (for a few more days).

Zeklandia commented 8 years ago

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.

dmaglio commented 8 years ago

+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
pmatos commented 8 years ago

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.

joseluisq commented 8 years ago

@dmaglio @pmatos yep, Alien converts successfully .deb to .rpm, but libnode.so()(64bit) dependency was not found.

jcuenod commented 8 years ago

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
Zeklandia commented 8 years ago

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.
WimDeMeester commented 8 years ago

I am always interested in testing the rpms for fedora 21, fedora 22 and fedora 23.

Zeklandia commented 8 years ago

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)
sameerbagwe commented 8 years ago

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%]

pmatos commented 8 years ago

@sameerbagwe what's the sha1 of your rpm?

sameerbagwe commented 8 years ago

Below:

nylas-0.3.20-2.x86_64.rpm: Header SHA1 digest: OK (e5c6a0c2ad01a9031659acb51076f58fcd65d842) MD5 digest: OK (4d06fbedff3ccc16c51c27ecf6e382d2)

jamesnetherton commented 8 years ago

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....

Zeklandia commented 8 years ago

You can fix that by using rpmrebuild and editing out those directories from the files list.

Tuchkata commented 8 years ago

@sameerbagwe can you post the link to the rpm package?

Zeklandia commented 8 years ago

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.
sameerbagwe commented 8 years ago

@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.

jcuenod commented 8 years ago

@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.

sameerbagwe commented 8 years ago

@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.

profi248 commented 8 years ago

@sameerbagwe Same error as @jcuenod on Fedora 22 for me.

Tuchkata commented 8 years ago

I am gonna try it later today and write my comment.

nhr commented 8 years ago

+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

copyme commented 8 years ago

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.

fnkr commented 8 years ago

+1. Since N1 is built on Electron, maybe Atom's spec file is something useful?

alexmigf commented 8 years ago

+1 for rpm

egyptianbman commented 8 years ago

:+1:

rsalevsky commented 8 years ago

:+1:

etiktin commented 8 years ago

@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

mbilker commented 8 years ago

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/
profi248 commented 8 years ago

@mbilker Thanks a lot! Worked well

Tuchkata commented 8 years ago

So the RPM build for Fedora is now working correctly? With which Fedora version have you tried?

dmaglio commented 8 years ago

Thanks! Works correctly

Tuchkata commented 8 years ago

Works correctly for Fedora 22, thanks!

jutenga commented 8 years ago

It's working ! :+1:

dmaglio commented 8 years ago

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/
kadel commented 8 years ago

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)
dmaglio commented 8 years ago

@kadel : I think that you update nodejs to last release, i compile N1 with nodejs 5.1.0 in F23 (x86_64) and works.

kadel commented 8 years ago

works with 5.1.0, thx ;-)

mbilker commented 8 years ago

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.

alexmigf commented 8 years ago

Works great mbilker, thanks!

cmmata commented 8 years ago

Works fine in my Fedora 23, thanks! Anyway, it would be better with official builds :)