From 28df3554c05b31386e1e0ab33c3ed8db56990eea Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Fri, 25 Feb 2022 14:07:11 +0100 Subject: surtr: ma1sd: ... --- hosts/surtr/matrix/default.nix | 2 +- hosts/surtr/postgresql.nix | 8 +++--- overlays/ma1sd.nix | 60 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 overlays/ma1sd.nix diff --git a/hosts/surtr/matrix/default.nix b/hosts/surtr/matrix/default.nix index 9f076757..5b5b0112 100644 --- a/hosts/surtr/matrix/default.nix +++ b/hosts/surtr/matrix/default.nix @@ -258,7 +258,7 @@ storage = { backend = "postgresql"; provider.postgresql = { - database = "//file%3A%2F%2F%2Frun%2Fpostgresql%2F.s.PGSQL.5432/ma1sd?socketFactory=org.newsclub.net.unix.AFUNIXSocketFactory%24URIScheme"; + database = "//file%3A%2F%2F%2Frun%2Fpostgresql%2F.s.PGSQL.5432/mxisd?socketFactory=org.newsclub.net.unix.AFUNIXSocketFactory%24URIScheme"; }; }; forward.servers = ["matrix.org"]; diff --git a/hosts/surtr/postgresql.nix b/hosts/surtr/postgresql.nix index 88430823..e622f4e9 100644 --- a/hosts/surtr/postgresql.nix +++ b/hosts/surtr/postgresql.nix @@ -10,10 +10,10 @@ GRANT ALL PRIVILEGES ON DATABASE "matrix-synapse" TO "matrix-synapse"; GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "matrix-synapse"; - CREATE DATABASE "ma1sd" WITH TEMPLATE "template0" ENCODING "UTF8" LOCALE "C"; - CREATE USER "ma1sd"; - GRANT ALL PRIVILEGES ON DATABASE "ma1sd" TO "ma1sd"; - GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "ma1sd"; + CREATE DATABASE "mxisd" WITH TEMPLATE "template0" ENCODING "UTF8" LOCALE "C"; + CREATE USER "mxisd"; + GRANT ALL PRIVILEGES ON DATABASE "mxisd" TO "mxisd"; + GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO "mxisd"; ''; }; }; diff --git a/overlays/ma1sd.nix b/overlays/ma1sd.nix new file mode 100644 index 00000000..3218879b --- /dev/null +++ b/overlays/ma1sd.nix @@ -0,0 +1,60 @@ +final: prev: { + ma1sd = let + pname = "ma1sd"; + version = "2.5.0"; + rev = version; + + src = prev.fetchFromGitHub { + inherit rev; + owner = "ma1uta"; + repo = "ma1sd"; + hash = "sha256-K3kaujAhWsRQuTMW3SZOnE7Rmu8+tDXaxpLrb45OI4A="; + }; + + + deps = prev.stdenv.mkDerivation { + pname = "${pname}-deps"; + inherit src version; + nativeBuildInputs = with final; [ gradle_6 perl git ]; + + buildPhase = '' + export MA1SD_BUILD_VERSION=${rev} + export GRADLE_USER_HOME=$(mktemp -d); + gradle --no-daemon build -x test + ''; + + # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar) + installPhase = '' + find $GRADLE_USER_HOME/caches/modules-2 -type f -regex '.*\.\(jar\|pom\)' \ + | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \ + | sh + ''; + + dontStrip = true; + + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "sha256-P81aY1rOnZdb2UskPIrBe8dfWAicJ3TivBv/NEns5ro="; + }; + in prev.stdenv.mkDerivation { + inherit pname src version; + nativeBuildInputs = with final; [ gradle_6 perl makeWrapper ]; + buildInputs = with final; [ jre ]; + + buildPhase = '' + runHook preBuild + export MA1SD_BUILD_VERSION=${rev} + export GRADLE_USER_HOME=$(mktemp -d) + sed -ie "s#mavenCentral()#mavenLocal(); maven { url '${deps}' }#g; s#mavenCentral()##g" build.gradle + gradle --offline --no-daemon build -x test + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + install -D build/libs/source.jar $out/lib/ma1sd.jar + makeWrapper ${final.jre}/bin/java $out/bin/ma1sd --add-flags "-jar $out/lib/ma1sd.jar" + runHook postInstall + ''; + }; +} -- cgit v1.2.3