Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 stdenv, 3 lib, 4 fetchFromGitHub, 5 cmake, 6 perl, 7 zlib, 8 libxml2, 9 eigen, 10 python3, 11 cairo, 12 pkg-config, 13 swig, 14 rapidjson, 15 boost, 16 maeparser, 17 coordgenlibs, 18}: 19 20stdenv.mkDerivation rec { 21 pname = "openbabel"; 22 version = "unstable-06-12-23"; 23 24 src = fetchFromGitHub { 25 owner = "openbabel"; 26 repo = pname; 27 rev = "32cf131444c1555c749b356dab44fb9fe275271f"; 28 hash = "sha256-V0wrZVrojCZ9Knc5H6cPzPoYWVosRZ6Sn4PX+UFEfHY="; 29 }; 30 31 postPatch = '' 32 sed '1i#include <ctime>' -i include/openbabel/obutil.h # gcc12 33 ''; 34 35 buildInputs = [ 36 perl 37 zlib 38 libxml2 39 eigen 40 python3 41 cairo 42 rapidjson 43 boost 44 maeparser 45 coordgenlibs 46 ]; 47 48 nativeBuildInputs = [ 49 cmake 50 swig 51 pkg-config 52 ]; 53 54 preConfigure = '' 55 cmakeFlagsArray+=( 56 "-DRUN_SWIG=ON" 57 "-DPYTHON_BINDINGS=ON" 58 "-DPYTHON_INSTDIR=$out/${python3.sitePackages}" 59 ) 60 ''; 61 62 # Setuptools only accepts PEP 440 version strings. The "unstable" identifier 63 # can not be used. Instead we pretend to be the 3.2 beta release. 64 postFixup = '' 65 cat << EOF > $out/${python3.sitePackages}/setup.py 66 from setuptools import setup 67 68 setup( 69 name = 'pyopenbabel', 70 version = '3.2b1', 71 packages = ['openbabel'], 72 package_data = {'openbabel' : ['_openbabel.so']} 73 ) 74 EOF 75 ''; 76 77 meta = with lib; { 78 description = "Toolbox designed to speak the many languages of chemical data"; 79 homepage = "http://openbabel.org"; 80 platforms = platforms.all; 81 license = licenses.gpl2Plus; 82 maintainers = with maintainers; [ danielbarter ]; 83 }; 84}