diff options
author | Joe Hermaszewski <git@monoid.al> | 2021-04-14 11:38:51 +0800 |
---|---|---|
committer | Joe Hermaszewski <git@monoid.al> | 2021-04-22 19:07:19 +0800 |
commit | 78bdfddde198664f5b2e04c4b7c070bd34d4a33f (patch) | |
tree | 28475f4308525b4b8c22c3cf38bec2b4cdfe1ba5 /pkgs/applications/networking/instant-messengers/signald | |
parent | a71b18f5d48e5c6aa2b8effc797b3d381deaeab5 (diff) | |
download | nixpkgs-78bdfddde198664f5b2e04c4b7c070bd34d4a33f.tar nixpkgs-78bdfddde198664f5b2e04c4b7c070bd34d4a33f.tar.gz nixpkgs-78bdfddde198664f5b2e04c4b7c070bd34d4a33f.tar.bz2 nixpkgs-78bdfddde198664f5b2e04c4b7c070bd34d4a33f.tar.lz nixpkgs-78bdfddde198664f5b2e04c4b7c070bd34d4a33f.tar.xz nixpkgs-78bdfddde198664f5b2e04c4b7c070bd34d4a33f.tar.zst nixpkgs-78bdfddde198664f5b2e04c4b7c070bd34d4a33f.zip |
signald: init at 0.13.1
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/signald')
3 files changed, 122 insertions, 0 deletions
diff --git a/pkgs/applications/networking/instant-messengers/signald/default.nix b/pkgs/applications/networking/instant-messengers/signald/default.nix new file mode 100644 index 00000000000..593e63d32f5 --- /dev/null +++ b/pkgs/applications/networking/instant-messengers/signald/default.nix @@ -0,0 +1,87 @@ +{ lib, stdenv, fetchurl, fetchgit, jre, coreutils, gradle_6, git, perl +, makeWrapper }: + +let + pname = "signald"; + + version = "0.13.1"; + + # This package uses the .git directory + src = fetchgit { + url = "https://gitlab.com/signald/signald"; + rev = version; + sha256 = "1ilmg0i1kw2yc7m3hxw1bqdpl3i9wwbj8623qmz9cxhhavbcd5i7"; + leaveDotGit = true; + }; + + buildConfigJar = fetchurl { + url = "https://dl.bintray.com/mfuerstenau/maven/gradle/plugin/de/fuerstenau/BuildConfigPlugin/1.1.8/BuildConfigPlugin-1.1.8.jar"; + sha256 = "0y1f42y7ilm3ykgnm6s3ks54d71n8lsy5649xgd9ahv28lj05x9f"; + }; + + patches = [ ./git-describe-always.patch ./gradle-plugin.patch ]; + + postPatch = '' + patchShebangs gradlew + sed -i -e 's|BuildConfig.jar|${buildConfigJar}|' build.gradle + ''; + + # fake build to pre-download deps into fixed-output derivation + deps = stdenv.mkDerivation { + name = "${pname}-deps"; + inherit src version postPatch patches; + nativeBuildInputs = [ gradle_6 perl ]; + buildPhase = '' + export GRADLE_USER_HOME=$(mktemp -d) + gradle --no-daemon build + ''; + # 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 =~ s/-jvm//r)}" #e' \ + | sh + ''; + # Don't move info to share/ + forceShare = [ "dummy" ]; + outputHashAlgo = "sha256"; + outputHashMode = "recursive"; + outputHash = "0w8ixp1l0ch1jc2dqzxdx3ljlh17hpgns2ba7qvj43nr4prl71l7"; + }; + +in stdenv.mkDerivation rec { + inherit pname src version postPatch patches; + + buildPhase = '' + export GRADLE_USER_HOME=$(mktemp -d) + + # Use the local packages from -deps + sed -i -e 's|mavenCentral()|mavenLocal(); maven { url uri("${deps}") }|' build.gradle + + gradle --offline --no-daemon distTar + ''; + + installPhase = '' + mkdir -p $out + tar xvf ./build/distributions/signald.tar --strip-components=1 --directory $out/ + wrapProgram $out/bin/signald \ + --prefix PATH : ${lib.makeBinPath [ coreutils ]} \ + --set JAVA_HOME "${jre}" + ''; + + nativeBuildInputs = [ git gradle_6 makeWrapper ]; + + doCheck = true; + + meta = with lib; { + description = "Unofficial daemon for interacting with Signal"; + longDescription = '' + Signald is a daemon that facilitates communication over Signal. It is + unofficial, unapproved, and not nearly as secure as the real Signal + clients. + ''; + homepage = "https://signald.org"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ expipiplus1 ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch b/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch new file mode 100644 index 00000000000..2f4830e27dd --- /dev/null +++ b/pkgs/applications/networking/instant-messengers/signald/git-describe-always.patch @@ -0,0 +1,9 @@ +diff --git a/version.sh b/version.sh +index 7aeeb3c..060cba3 100755 +--- a/version.sh ++++ b/version.sh +@@ -1,3 +1,3 @@ + #!/bin/sh +-VERSION=$(git describe --exact-match 2> /dev/null) || VERSION=$(git describe --abbrev=0)+git$(date +%Y-%m-%d)r$(git rev-parse --short=8 HEAD).$(git rev-list $(git describe --abbrev=0)..HEAD --count) ++VERSION=$(git describe --exact-match 2> /dev/null) || VERSION=$(git describe --always --abbrev=0)+git$(date +%Y-%m-%d)r$(git rev-parse --short=8 HEAD).$(git rev-list $(git describe --always --abbrev=0)..HEAD --count) + echo $VERSION diff --git a/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch b/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch new file mode 100644 index 00000000000..6952654758d --- /dev/null +++ b/pkgs/applications/networking/instant-messengers/signald/gradle-plugin.patch @@ -0,0 +1,26 @@ +diff --git a/build.gradle b/build.gradle +index 11d7a99..66805bb 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -3,9 +3,12 @@ import org.gradle.nativeplatform.platform.internal.OperatingSystemInternal + import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform + import org.xml.sax.SAXParseException + +-plugins { +- id 'de.fuerstenau.buildconfig' version '1.1.8' ++buildscript { ++ dependencies { ++ classpath files ("BuildConfig.jar") ++ } + } ++apply plugin: 'de.fuerstenau.buildconfig' + + apply plugin: 'java' + apply plugin: 'application' +@@ -185,4 +188,4 @@ task integrationTest(type: Test) { + testClassesDirs = sourceSets.integrationTest.output.classesDirs + classpath = sourceSets.integrationTest.runtimeClasspath + outputs.upToDateWhen { false } +-} +\ No newline at end of file ++} |