Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 78 lines 1.8 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchurl, 5 mysql_jdbc, 6 extensions ? { }, 7 libJars ? [ ], 8 nixosTests, 9 mysqlSupport ? true, 10}: 11let 12 inherit (lib) 13 concatStringsSep 14 licenses 15 maintainers 16 mapAttrsToList 17 optionalString 18 forEach 19 ; 20in 21stdenv.mkDerivation (finalAttrs: { 22 pname = "apache-druid"; 23 version = "33.0.0"; 24 25 src = fetchurl { 26 url = "mirror://apache/druid/${finalAttrs.version}/apache-druid-${finalAttrs.version}-bin.tar.gz"; 27 hash = "sha256-XuXdvMInODSvihjdFzsqBLmpEct85RYnnbYFeIq9fXk="; 28 }; 29 30 dontBuild = true; 31 32 loadExtensions = ( 33 concatStringsSep "\n" ( 34 mapAttrsToList ( 35 dir: files: 36 '' 37 if ! test -d $out/extensions/${dir}; then 38 mkdir $out/extensions/${dir}; 39 fi 40 '' 41 + concatStringsSep "\n" ( 42 forEach files (file: '' 43 if test -d ${file} ; then 44 cp ${file}/* $out/extensions/${dir}/ 45 else 46 cp ${file} $out/extensions/${dir}/ 47 fi 48 '') 49 ) 50 ) extensions 51 ) 52 ); 53 54 loadJars = concatStringsSep "\n" (forEach libJars (jar: "cp ${jar} $out/lib/")); 55 56 installPhase = '' 57 runHook preInstall 58 mkdir $out 59 mv * $out 60 ${optionalString mysqlSupport "ln -s ${mysql_jdbc}/share/java/mysql-connector-j.jar $out/extensions/mysql-metadata-storage"} 61 ${finalAttrs.loadExtensions} 62 ${finalAttrs.loadJars} 63 runHook postInstall 64 ''; 65 66 passthru = { 67 tests = nixosTests.druid.default.passthru.override { druidPackage = finalAttrs.finalPackage; }; 68 }; 69 70 meta = { 71 description = "Apache Druid: a high performance real-time analytics database"; 72 homepage = "https://github.com/apache/druid"; 73 license = licenses.asl20; 74 maintainers = with maintainers; [ vsharathchandra ]; 75 mainProgram = "druid"; 76 }; 77 78})