My collection of nix configurations
at main 165 lines 3.7 kB view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7 8with lib; 9 10let 11 cfg = config.programs.gitlab-dev; 12 ld_search_path = lib.makeSearchPath "lib" [ 13 pkgs.openssl.out 14 pkgs.icu 15 pkgs.libxml2.out 16 pkgs.libxslt.out 17 pkgs.libyaml 18 pkgs.zlib 19 pkgs.pcre2.out 20 pkgs.readline 21 pkgs.libffi 22 pkgs.krb5.lib 23 pkgs.re2 24 pkgs.gmp 25 pkgs.curl.out 26 pkgs.util-linuxMinimal.lib 27 ]; 28 includes_search_path = lib.makeSearchPath "include" [ 29 pkgs.openssl.dev 30 pkgs.icu.dev 31 pkgs.libxml2.dev 32 pkgs.libxslt.dev 33 pkgs.libyaml.dev 34 pkgs.pcre2.dev 35 pkgs.readline.dev 36 pkgs.libffi.dev 37 pkgs.krb5.dev 38 pkgs.re2.dev 39 pkgs.gmp.dev 40 pkgs.curl.dev 41 pkgs.pixman 42 pkgs.abseil-cpp.dev 43 pkgs.cairo.dev 44 pkgs.util-linuxMinimal.dev 45 pkgs.zlib.dev 46 ]; 47in 48{ 49 options.programs.gitlab-dev.enable = mkEnableOption "GitLab development environment"; 50 51 config = mkIf cfg.enable { 52 home.packages = with pkgs; [ 53 54 bat 55 opencode 56 ripgrep 57 gcc 58 gnumake 59 cmake 60 pkg-config 61 meson 62 ninja 63 autoconf 64 automake 65 libtool 66 67 git-lfs 68 69 neovim 70 71 icu 72 libxml2 73 libxslt 74 libyaml 75 openssl 76 zlib 77 pcre2 78 readline 79 krb5 80 re2 81 abseil-cpp 82 libffi 83 gmp 84 pixman 85 cairo 86 libclang 87 bison 88 flex 89 90 curl 91 wget 92 ed 93 rsync 94 graphicsmagick 95 exiftool 96 sqlite 97 gpgme 98 libgpg-error 99 100 gnutar 101 bzip2 102 rustPlatform.bindgenHook 103 ]; 104 105 home.sessionVariables = { 106 LD_LIBRARY_PATH = ld_search_path; 107 BINDGEN_HOOK = pkgs.rustPlatform.bindgenHook; 108 PKG_CONFIG_PATH = lib.strings.join ":" [ 109 (lib.makeSearchPath "lib/pkgconfig" [ 110 pkgs.openssl.dev 111 pkgs.icu.dev 112 pkgs.libxml2.dev 113 pkgs.libxslt.dev 114 pkgs.libyaml.dev 115 pkgs.pcre2.dev 116 pkgs.readline.dev 117 pkgs.libffi.dev 118 pkgs.krb5.dev 119 pkgs.re2.dev 120 pkgs.gmp.dev 121 pkgs.curl.dev 122 pkgs.pixman 123 pkgs.abseil-cpp.dev 124 pkgs.cairo.dev 125 pkgs.libpng.out 126 ]) 127 128 (lib.makeSearchPath "share/pkgconfig" [ pkgs.zlib.dev ]) 129 ]; 130 OPENSSL_DIR = "${pkgs.openssl.dev}"; 131 OPENSSL_LIB_DIR = "${pkgs.openssl.out}/lib"; 132 OPENSSL_INCLUDE_DIR = "${pkgs.openssl.dev}/include"; 133 LIBRARY_PATH = lib.makeLibraryPath [ 134 pkgs.re2 135 pkgs.abseil-cpp 136 ]; 137 CPATH = lib.makeSearchPath "include" [ 138 pkgs.re2.dev 139 pkgs.abseil-cpp.dev 140 ]; 141 }; 142 143 home.file.".asdf-postgres-configure-options".text = '' 144 POSTGRES_EXTRA_CONFIGURE_OPTIONS='--with-libraries=${ld_search_path} --with-includes=${includes_search_path}' 145 ''; 146 home.file.".bundle/config".text = '' 147 --- 148 BUNDLE_FORCE_RUBY_PLATFORM: "true" 149 BUNDLE_BUILD__CHARLOCK_HOLMES: "--with-z-lib=${pkgs.zlib}/lib --with-z-include=${pkgs.zlib.dev}/include" 150 BUNDLE_BUILD__TIMFEL___KRB5___AUTH: "--with-krb5-lib=${pkgs.krb5.lib}/lib --with-krb5-include=${pkgs.krb5.dev}/include" 151 BUNDLE_BUILD__RE2: "--enable-system-libraries --with-re2-lib=${pkgs.re2}/lib --with-re2-include=${pkgs.re2.dev}/include --with-abseil-dir=${pkgs.abseil-cpp} --with-abseil-lib=${pkgs.abseil-cpp}/lib --with-abseil-include=${pkgs.abseil-cpp.dev}/include" 152 BUNDLE_BUILD__GPGME: "--enable-system-libraries" 153 ''; 154 155 home.file."Repos/.gdk-envrc".text = '' 156 export CGO_CFLAGS="$(pkg-config --cflags krb5-gssapi)" 157 export CFLAGS="$(pkg-config --cflags libcurl)" 158 source $BINDGEN_HOOK/nix-support/setup-hook 159 populateBindgenEnv 160 161 ''; 162 163 }; 164 165}