package.nix (1606B)
1 { 2 lib, 3 stdenv, 4 fetchzip, 5 gcc-arm-embedded, 6 zip, 7 platform ? null, 8 platformsub ? null, 9 fi2key ? null, 10 fi2iv ? null, 11 }: 12 13 let 14 version = "1.6.1"; 15 revision = "6315"; # check on http://mighty-hoernsche.de/ 16 branch = "release-${lib.replaceStrings [ "." ] [ "_" ] (lib.versions.majorMinor version)}"; 17 optFI2 = fi2key != null && fi2iv != null; 18 batchBuild = platform == null || platformsub == null; 19 in 20 stdenv.mkDerivation { 21 pname = "chdk"; 22 inherit version; 23 24 __structuredAttrs = true; 25 26 src = fetchzip { 27 url = "https://app.assembla.com/spaces/chdk/subversion/source/${revision}/branches/${branch}?_format=zip"; 28 extension = "zip"; 29 stripRoot = false; 30 hash = "sha256-uka+Hn0gUoJS0XX5lqcY/crUx29KQSPrL2/OAg0vQKM="; 31 }; 32 33 nativeBuildInputs = [ 34 gcc-arm-embedded 35 zip 36 ]; 37 38 buildFlags = [ 39 "DEF_SVN_REF=${revision}" 40 "HOSTCC=${stdenv.cc.targetPrefix}cc" 41 ] 42 ++ lib.optionals (optFI2 && !batchBuild) [ 43 "OPT_FI2=1" 44 "FI2KEY=${fi2key}" 45 "FI2IV=${fi2iv}" 46 ] 47 ++ lib.optionals (!batchBuild) [ 48 "PLATFORM=${platform}" 49 "PLATFORMSUB=${platformsub}" 50 "firzipsubcomplete" 51 ] 52 ++ lib.optional batchBuild "batch-zip-complete"; 53 54 env.NIX_CFLAGS_COMPILE = "-Wno-format-security"; 55 56 installPhase = '' 57 runHook preInstall 58 install -Dm644 bin/*.zip -t $out 59 runHook postInstall 60 ''; 61 62 meta = { 63 description = "Canon Hack Development Kit"; 64 homepage = "https://chdk.fandom.com/wiki/CHDK"; 65 license = lib.licenses.gpl2; 66 platforms = lib.platforms.unix; 67 maintainers = [ lib.maintainers.sikmir ]; 68 skip.ci = true; 69 }; 70 }
