From ce587047e63ea6c44b55d915af4863d41d985b31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20G=C3=BCntner?= Date: Sun, 1 Sep 2019 16:34:17 +0200 Subject: [PATCH] ma1sd: init at 2.1.1 ma1sd is a fork of mxisd which is already packaged but EOL. --- pkgs/servers/ma1sd/0001-gradle.patch | 20 ++++++++ pkgs/servers/ma1sd/default.nix | 70 ++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 3 files changed, 92 insertions(+) create mode 100644 pkgs/servers/ma1sd/0001-gradle.patch create mode 100644 pkgs/servers/ma1sd/default.nix diff --git a/pkgs/servers/ma1sd/0001-gradle.patch b/pkgs/servers/ma1sd/0001-gradle.patch new file mode 100644 index 000000000000..0980ec9a5df8 --- /dev/null +++ b/pkgs/servers/ma1sd/0001-gradle.patch @@ -0,0 +1,20 @@ +--- a/build.gradle 2019-09-01 16:17:17.815513296 +0200 ++++ b/build.gradle 2019-09-01 16:21:14.688832785 +0200 +@@ -73,7 +73,7 @@ + + buildscript { + repositories { +- jcenter() ++REPLACE + } + + dependencies { +@@ -83,7 +83,7 @@ + } + + repositories { +- jcenter() ++REPLACE + } + + dependencies { diff --git a/pkgs/servers/ma1sd/default.nix b/pkgs/servers/ma1sd/default.nix new file mode 100644 index 000000000000..f35bc3bb3024 --- /dev/null +++ b/pkgs/servers/ma1sd/default.nix @@ -0,0 +1,70 @@ +{ stdenv, fetchFromGitHub, jre, git, gradle_5, perl, makeWrapper }: + +let + name = "ma1sd-${version}"; + version = "2.1.1"; + rev = "a112a5e57cb38ad282939d2dcb9c1476e038af39"; + + src = fetchFromGitHub { + inherit rev; + owner = "ma1uta"; + repo = "ma1sd"; + sha256 = "1qibn6m6mvxwnbiypxlgkaqg6in358vkf0q47410rv1dx1gjcnv5"; + }; + + + deps = stdenv.mkDerivation { + name = "${name}-deps"; + inherit src; + nativeBuildInputs = [ gradle_5 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 = "1w9cxq0rlzyh7bzqr3v3vn2cjhpn7hhc5lk9qzwj7sdj4jn2qxq6"; + }; + +in +stdenv.mkDerivation { + inherit name src version; + nativeBuildInputs = [ gradle_5 perl makeWrapper ]; + buildInputs = [ jre ]; + + patches = [ ./0001-gradle.patch ]; + + buildPhase = '' + export MA1SD_BUILD_VERSION=${rev} + export GRADLE_USER_HOME=$(mktemp -d) + + sed -ie "s#REPLACE#mavenLocal(); maven { url '${deps}' }#g" build.gradle + gradle --offline --no-daemon build -x test + ''; + + installPhase = '' + install -D build/libs/source.jar $out/lib/ma1sd.jar + makeWrapper ${jre}/bin/java $out/bin/ma1sd --add-flags "-jar $out/lib/ma1sd.jar" + ''; + + meta = with stdenv.lib; { + description = "a federated matrix identity server; fork of mxisd"; + homepage = https://github.com/ma1uta/ma1sd; + license = licenses.agpl3; + maintainers = with maintainers; [ mguentner ]; + platforms = platforms.all; + }; + +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 67a338e5a793..9bcf5ab52919 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -4331,6 +4331,8 @@ in kzipmix = pkgsi686Linux.callPackage ../tools/compression/kzipmix { }; + ma1sd = callPackage ../servers/ma1sd { }; + mailcatcher = callPackage ../development/web/mailcatcher { }; makebootfat = callPackage ../tools/misc/makebootfat { };