flake.nix (3106B)
1 { 2 inputs = { 3 nixpkgs.url = "nixpkgs/release-26.05"; 4 systems.url = "github:nix-systems/default"; 5 self.submodules = true; 6 }; 7 8 outputs = { self, nixpkgs, systems, ... } @ inputs: 9 let 10 supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; 11 forEachSystem = nixpkgs.lib.genAttrs supportedSystems; 12 nixpkgsFor = forEachSystem (system: import nixpkgs { inherit system; }); 13 in 14 { 15 # This defines (installable) package derivations 16 # For use in flakes that use this flake as input in order 17 # to specify/use gnunet from git as a dependency 18 packages = forEachSystem (system: 19 let 20 pkgs = nixpkgsFor.${system}; 21 in { 22 gnunet = pkgs.stdenv.mkDerivation { 23 name = "gnunet"; 24 src = ./.; 25 nativeBuildInputs = [ 26 pkgs.gcc 27 pkgs.gnumake 28 pkgs.meson 29 pkgs.ninja 30 pkgs.pkg-config 31 pkgs.libtool 32 pkgs.git 33 ]; 34 propagatedBuildInputs = [ 35 pkgs.libsodium 36 pkgs.libtool 37 pkgs.libunistring 38 pkgs.libgcrypt 39 pkgs.sqlite 40 pkgs.curlWithGnuTls 41 pkgs.libmicrohttpd 42 pkgs.zlib 43 pkgs.jansson 44 pkgs.gmp 45 pkgs.gnutls 46 pkgs.libidn2 47 pkgs.gettext 48 pkgs.postgresql 49 pkgs.jose 50 pkgs.zbar 51 ]; 52 preConfigure = '' 53 ./bootstrap 54 ''; 55 }; 56 } 57 ); 58 defaultPackage = forEachSystem (system: self.packages.${system}.gnunet); 59 # This defines a development shell in which you can compile 60 # (and use) gnunet 61 devShells = forEachSystem 62 (system: 63 let 64 pkgs = nixpkgsFor.${system}; 65 in 66 { 67 default = pkgs.mkShell { 68 packages = [ 69 pkgs.gcc 70 pkgs.gnumake 71 pkgs.meson 72 pkgs.ninja 73 pkgs.pkg-config 74 pkgs.libsodium 75 pkgs.libtool 76 pkgs.libunistring 77 pkgs.libgcrypt 78 pkgs.sqlite 79 pkgs.curlWithGnuTls 80 pkgs.libmicrohttpd 81 pkgs.zlib 82 pkgs.jansson 83 pkgs.gmp 84 pkgs.gnutls 85 pkgs.libidn2 86 pkgs.codespell 87 pkgs.clang-tools 88 pkgs.gettext 89 pkgs.postgresql 90 pkgs.jose 91 pkgs.zbar 92 pkgs.uncrustify 93 pkgs.syft 94 pkgs.ngtcp2 95 pkgs.nghttp3 96 pkgs.bear 97 pkgs.fd 98 pkgs.gdb 99 ]; 100 101 shellHook = '' 102 echo "GNUnet environment loaded." 103 export CC=gcc 104 export CFLAGS="-O" 105 ''; 106 }; 107 }); 108 }; 109 }