[Nix-dev] Help packaging BLAST?

James Cook james.cook at utoronto.ca
Wed Feb 25 07:35:54 CET 2015


On 24 February 2015 at 21:30, Jeffrey David Johnson <jefdaj at gmail.com> wrote:
> Hi! The existing BLAST package (https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/science/biology/ncbi-tools/default.nix) isn't working for me. Probably because it's broken on x64. So I'm trying to package the standalone executables from http://www.ncbi.nlm.nih.gov/books/NBK52640/ instead. I've created a package (https://github.com/jefdaj/nixpkgs/blob/master/pkgs/applications/science/biology/ncbi-blast/default.nix) but can't run the resulting programs. They all say something like:
>
> $ blastn
> bash: /run/current-system/sw/bin/blastn: No such file or directory
>
> Based on https://www.biostars.org/p/12298/ I think I have the right architecture:
>
> $ uname -a
> Linux acro 3.14.29 #1-NixOS SMP Thu Jan 1 00:00:01 UTC 1970 x86_64 GNU/Linux
>
> $ file blastn
> blastn: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
>
> The "dynamically linked" part worries me though. Do I need to add build inputs referencing a specific gcc or something? Also including the suggested readelf command for completeness:
>
> $ readelf -a blastn | head -n20
> ELF Header:
>   Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
>   Class:                             ELF64
>   Data:                              2's complement, little endian
>   Ident Version:                     1 (current)
>   OS/ABI:                            UNIX - System V
>   ABI Version:                       0
>   Type:                              EXEC (Executable file)
>   Machine:                           AMD x86-64
>   Version:                           1 (current)
>   Entry point address:               0xc95f20
>   Start of program headers:          64 (bytes into file)
>   Start of section headers:          32499288 (bytes into file)
>   Flags:
>   Size of this header:               64 (bytes)
>   Size of program header entries:    56 (bytes)
>   Number of program headers entries: 9
>   Size of section header entries:    64 (bytes)
>   Number of section headers entries: 32
>   Section header string table index: 31
>
> If this is a dead end, I could also try porting the Debian package right? How hard is that?
> Thanks
> Jeff

You probably have to run some patchelf command. Take a look at
networking/browsers/firefox-bin maybe (the firefox expression that
just downloads the official binary).

James


More information about the nix-dev mailing list