lol
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 143 lines 3.1 kB view raw
1{ 2 stdenvNoCC, 3 lib, 4 nixosTests, 5 fetchFromGitHub, 6 applyPatches, 7 bundlerEnv, 8 callPackage, 9 procps, 10 ruby, 11 postgresql, 12 jq, 13 moreutils, 14 nodejs, 15 pnpm_9, 16 cacert, 17 valkey, 18 dataDir ? "/var/lib/zammad", 19}: 20 21let 22 pname = "zammad"; 23 version = "6.5.2"; 24 25 src = applyPatches { 26 src = fetchFromGitHub (lib.importJSON ./source.json); 27 patches = [ 28 ./fix-sendmail-location.diff 29 ]; 30 31 postPatch = '' 32 sed -i -e "s|ruby '3.2.[0-9]\+'|ruby '${ruby.version}'|" Gemfile 33 sed -i -e "s|ruby 3.2.[0-9]\+p[0-9]\+|ruby ${ruby.version}|" Gemfile.lock 34 sed -i -e "s|3.2.[0-9]\+|${ruby.version}|" .ruby-version 35 ${jq}/bin/jq '. += {name: "Zammad", version: "${version}"}' package.json | ${moreutils}/bin/sponge package.json 36 ''; 37 }; 38 39 rubyEnv = bundlerEnv { 40 name = "zammad-gems-${version}"; 41 inherit version; 42 43 # Which ruby version to select: 44 # https://docs.zammad.org/en/latest/prerequisites/software.html#ruby-programming-language 45 inherit ruby; 46 47 gemdir = src; 48 gemset = ./gemset.nix; 49 groups = [ 50 "assets" 51 "unicorn" # server 52 "test" 53 "mysql" 54 "puma" 55 "development" 56 "postgres" # database 57 ]; 58 }; 59 60in 61stdenvNoCC.mkDerivation { 62 inherit pname version src; 63 64 buildInputs = [ 65 rubyEnv 66 rubyEnv.wrappedRuby 67 rubyEnv.bundler 68 ]; 69 70 nativeBuildInputs = [ 71 valkey 72 postgresql 73 pnpm_9.configHook 74 nodejs 75 procps 76 cacert 77 ]; 78 79 env.RAILS_ENV = "production"; 80 81 pnpmDeps = pnpm_9.fetchDeps { 82 inherit pname src; 83 84 fetcherVersion = 1; 85 hash = "sha256-mfdzb/LXQYL8kaQpWi9wD3OOroOOonDlJrhy9Dwl1no"; 86 }; 87 88 buildPhase = '' 89 mkdir redis-work 90 pushd redis-work 91 redis-server & 92 REDIS_PID=$! 93 popd 94 95 mkdir postgres-work 96 initdb -D postgres-work --encoding=utf8 97 pg_ctl start -D postgres-work -o "-k $PWD/postgres-work -h '''" 98 createuser -h $PWD/postgres-work zammad -R -S 99 createdb -h $PWD/postgres-work --encoding=utf8 --owner=zammad zammad 100 101 rake DATABASE_URL="postgresql:///zammad?host=$PWD/postgres-work" assets:precompile 102 103 kill $REDIS_PID 104 pg_ctl stop -D postgres-work -m immediate 105 rm -r redis-work postgres-work 106 ''; 107 108 installPhase = '' 109 cp -R . $out 110 rm -rf $out/config/database.yml $out/config/secrets.yml $out/tmp $out/log 111 # dataDir will be set in the module, and the package gets overriden there 112 ln -s ${dataDir}/config/database.yml $out/config/database.yml 113 ln -s ${dataDir}/config/secrets.yml $out/config/secrets.yml 114 ln -s ${dataDir}/tmp $out/tmp 115 ln -s ${dataDir}/log $out/log 116 ''; 117 118 passthru = { 119 inherit rubyEnv; 120 updateScript = [ 121 "${callPackage ./update.nix { }}/bin/update.sh" 122 pname 123 (toString ./.) 124 ]; 125 tests = { 126 inherit (nixosTests) zammad; 127 }; 128 }; 129 130 meta = { 131 description = "Web-based, open source user support/ticketing solution"; 132 homepage = "https://zammad.org"; 133 license = lib.licenses.agpl3Plus; 134 platforms = [ 135 "x86_64-linux" 136 "aarch64-linux" 137 ]; 138 maintainers = with lib.maintainers; [ 139 taeer 140 netali 141 ]; 142 }; 143}