Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 fetchpatch, 6}: 7 8stdenv.mkDerivation rec { 9 pname = "libb64"; 10 version = "2.0.0.1"; 11 12 src = fetchFromGitHub { 13 owner = "libb64"; 14 repo = "libb64"; 15 rev = "v${version}"; 16 sha256 = "sha256-9loDftr769qnIi00MueO86kjha2EiG9pnCLogp0Iq3c="; 17 }; 18 19 patches = [ 20 # Fix parallel build failure: https://github.com/libb64/libb64/pull/9 21 # make[1]: *** No rule to make target 'libb64.a', needed by 'c-example1'. Stop. 22 (fetchpatch { 23 name = "parallel-make.patch"; 24 url = "https://github.com/libb64/libb64/commit/4fe47c052e9123da8f751545deb48be08c3411f6.patch"; 25 sha256 = "18b3np3gpyzimqmk6001riqv5n70wfbclky6zzsrvj5zl1dj4ljf"; 26 }) 27 # Fix i686-linux build failure. 28 (fetchpatch { 29 name = "elif.patch"; 30 url = "https://github.com/libb64/libb64/commit/819e43c8b34261ea3ee694bdc27865a033966083.patch"; 31 hash = "sha256-r2jI6Q3rWDtArLlkAuyy7vcjsuRvX+2fBd5yk8XOMcc"; 32 }) 33 (fetchpatch { 34 name = "size_t.patch"; 35 url = "https://github.com/libb64/libb64/commit/b5edeafc89853c48fa41a4c16393a1fdc8638ab6.patch"; 36 hash = "sha256-+bqfOOlT/t0FLQEMHuxW1BxJcx9rk0yYM3wD43mcymo"; 37 }) 38 # Fix build with Clang 16. 39 # https://github.com/libb64/libb64/pull/10 40 (fetchpatch { 41 name = "use-proper-function-prototype-for-main.patch"; 42 url = "https://github.com/libb64/libb64/commit/98eaf510f40e384b32c01ad4bd5c3a697fdd8560.patch"; 43 hash = "sha256-CGslJUw0og/bBBirLm0J5Q7cf2WW/vniVAkXHlb6lbQ="; 44 }) 45 ] 46 ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) (fetchpatch { 47 name = "0001-example-Do-not-run-the-tests.patch"; 48 url = "https://cgit.openembedded.org/meta-openembedded/plain/meta-oe/recipes-support/libb64/libb64/0001-example-Do-not-run-the-tests.patch?id=484e0de1e4ee107f21ae2a5c5f976ed987978baf"; 49 sha256 = "sha256-KTsiIWJe66BKlu/A43FWfW0XAu4E7lWX/RY4NITRrm4="; 50 }); 51 52 enableParallelBuilding = true; 53 54 installPhase = '' 55 mkdir -p $out $out/lib $out/bin $out/include 56 cp -r include/* $out/include/ 57 cp base64/base64 $out/bin/ 58 cp src/libb64.a src/cencode.o src/cdecode.o $out/lib/ 59 ''; 60 61 meta = { 62 description = "ANSI C routines for fast base64 encoding/decoding"; 63 homepage = "https://github.com/libb64/libb64"; 64 license = lib.licenses.publicDomain; 65 mainProgram = "base64"; 66 platforms = lib.platforms.unix; 67 }; 68}