Nixpkgs: package request: coinomi

Created on 2 Aug 2019  ·  13Comments  ·  Source: NixOS/nixpkgs

I'm not vouching for this, but it looks like an interesting wallet application: https://www.coinomi.com/en/#

packaging request

All 13 comments

Label should be 0.kind: packaging request? :slightly_smiling_face:

I did a quick test and their Binary won't run on my machine:

stanislas@nixpsla ~/Downloads> wget https://binaries.coinomi.com/desktop/coinomi-wallet-1.0.11-linux64.tar.gz
--2019-08-02 18:10:04--  https://binaries.coinomi.com/desktop/coinomi-wallet-1.0.11-linux64.tar.gz
Resolving binaries.coinomi.com (binaries.coinomi.com)... 78.140.178.148, 206.54.163.134, 88.85.80.150
Connecting to binaries.coinomi.com (binaries.coinomi.com)|78.140.178.148|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 123400957 (118M) [application/x-tar]
Saving to: ‘coinomi-wallet-1.0.11-linux64.tar.gz’

coinomi-wallet-1.0.11-linux64.tar.gz            100%[=====================================================================================================>] 117,68M  1,14MB/s    in 81s     

2019-08-02 18:11:25 (1,46 MB/s) - ‘coinomi-wallet-1.0.11-linux64.tar.gz’ saved [123400957/123400957]

stanislas@nixpsla ~/Downloads> tar xaf coinomi-wallet-1.0.11-linux64.tar.gz
stanislas@nixpsla ~/Downloads> cd Coinomi/
stanislas@nixpsla ~/D/Coinomi> ./Coinomi
Failed to execute process './Coinomi'. Reason:
The file './Coinomi' does not exist or could not be executed.
stanislas@nixpsla ~/D/Coinomi> ll
drwxr-xr-x    - stanislas users  2 août  18:11 jre/
.rwxr--r--  86k stanislas users 11 juil.  9:36 Coinomi*
.rw-r--r--  79M stanislas users 11 juil.  9:34 coinomi-wallet-linux64.jar
.rw-r--r--  188 stanislas users 11 juil.  9:36 coinomi-wallet.desktop
.rw-r--r--  141 stanislas users 11 juil.  9:36 config.json
.rw-r--r-- 281k stanislas users  2 janv. 23:57 icons.icns
stanislas@nixpsla ~/D/Coinomi> file Coinomi
Coinomi: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=b66a5b80c86e626aa41006e4719afcf199a483d6, with debug_info, not stripped

It should work out of the box though: https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=coinomi-desktop

Wouldn't it need to be patched like most pre-built binaries running on a NixOS system? Also, I don't have labeling permission and it was auto-labeled.

correct, it most likely isn't able to link to needed libraries

the binary needs to be linked to libstdc++.so.6, also i notice jar files, so it will need the jre at runtime.

```
$ ldd ./Coinomi
linux-vdso.so.1 (0x00007ffdf6f82000)
libdl.so.2 => /nix/store/iykxb0bmfjmi7s53kfg6pjbfpd8jmza6-glibc-2.27/lib/libdl.so.2 (0x00007f7e1cd11000)
libstdc++.so.6 => not found
libpthread.so.0 => /nix/store/iykxb0bmfjmi7s53kfg6pjbfpd8jmza6-glibc-2.27/lib/libpthread.so.0 (0x00007f7e1ccf0000)
libc.so.6 => /nix/store/iykxb0bmfjmi7s53kfg6pjbfpd8jmza6-glibc-2.27/lib/libc.so.6 (0x00007f7e1cb3a000)
/lib64/ld-linux-x86-64.so.2 => /nix/store/iykxb0bmfjmi7s53kfg6pjbfpd8jmza6-glibc-2.27/lib64/ld-linux-x86-64.so.2 (0x00007f7e1cd18000)

I see! TIL. Any "patch" example? 🧐

example of using patchelf on a prebuilt binary: https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/dotnet/sdk/default.nix

however, I would probably move the buildPhase to an installPhase for moving the files, then do the patchelf in a postFixup phase.

Then you will probably want to wrap the program with jre on the path, you'll probably want to do something like:

wrapProgram $out/bin/Coinomi \
      --prefix PATH ":" "${stdenv.lib.makeBinPath [ jre ]}"

Thanks. I'll take a look at it next week.

See #66083. I need a bit of help :slightly_smiling_face:

I hate to have sent you on a wild goose chase, @angristan, but I'm going to close this request, and I'd prefer someone file a new issue if they still want to see it:

  1. I don't approve of the idea of closed-source wallets, not sure what I was thinking when I opened this.
  2. If for no other reason, it trying to download stuff at runtime is particularly concerning, among other general concerns given what a wallet does.
  3. Even with NixOS, I'm not convinced keeping private keys on a "live/online" desktop/laptop-type machine is a great idea.

No problem! I agree with you for the most part, and I'm stuck anyway, I won't invest more time on it :)

Too bad, it was my first expression from scratch :crying_cat_face:

nice try buddy :) there will always be a next time!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

tomberek picture tomberek  ·  3Comments

sid-kap picture sid-kap  ·  3Comments

grahamc picture grahamc  ·  3Comments

langston-barrett picture langston-barrett  ·  3Comments

ghost picture ghost  ·  3Comments