From 03efe65029f6067d4f0cd25ca4afbe8254b477d9 Mon Sep 17 00:00:00 2001 From: Dom Rodriguez Date: Wed, 15 Oct 2025 20:55:11 +0100 Subject: [PATCH] davmail: Build from source with `ant` Rather than building the derivation from a binary archive, this PR builds from a GitHub-tagged release. Other changes include: - Using the new `finalAttrs` methodology instead of `rec`. - Removing `fetchzip` and replacing with `fetchFromGitHub`. - Removing `rev` from the let-binding, as we build from GitHub. - Adding `ant` and `jre'` as a `nativeBuildInput` and `buildInput`, respectively. - Removing `unzip`. This is a BREAKING CHANGE for consumers, and should be communicated to downstream users. --- pkgs/by-name/da/davmail/package.nix | 35 +++++++++++++++++++---------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/pkgs/by-name/da/davmail/package.nix b/pkgs/by-name/da/davmail/package.nix index 426b710f7faa..5dd8ca419701 100644 --- a/pkgs/by-name/da/davmail/package.nix +++ b/pkgs/by-name/da/davmail/package.nix @@ -1,12 +1,12 @@ { stdenv, - fetchzip, + fetchFromGitHub, lib, makeWrapper, - unzip, glib, gtk2, gtk3, + ant, jdk, libXtst, coreutils, @@ -17,34 +17,45 @@ }: let - rev = 3755; jre' = (if preferZulu then zulu else jdk).override { enableJavaFX = true; }; gtk' = if preferGtk3 then gtk3 else gtk2; in -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "davmail"; version = "6.4.0"; - src = fetchzip { - url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}-${toString rev}.zip"; - hash = "sha256-cGuAxSIkhkcpRXlv5f3utH/1zZ1aYbLQN/OLuN80JdM="; - stripRoot = false; + src = fetchFromGitHub { + owner = "mguessan"; + repo = "davmail"; + tag = finalAttrs.version; + hash = "sha256-dj+7e0b8GcyoDzEWGG1SEMijqRBo1IJUFtgxkt9XNRU="; }; - postPatch = '' + buildPhase = '' + runHook preBuild + + ant compile prepare-dist + cp -Rv dist/{lib,davmail{,.jar}} . sed -i -e '/^JAVA_OPTS/d' davmail + + runHook postBuild ''; nativeBuildInputs = [ makeWrapper - unzip + ant + ]; + + buildInputs = [ + jre' ]; installPhase = '' runHook preInstall mkdir -p $out/share/davmail - cp -vR ./* $out/share/davmail + cp -vR ./{lib,davmail{,.jar}} $out/share/davmail + chmod +x $out/share/davmail/davmail makeWrapper $out/share/davmail/davmail $out/bin/davmail \ --set-default JAVA_OPTS "-Xmx512M -Dsun.net.inetaddr.ttl=60 -Djdk.gtk.version=${lib.versions.major gtk'.version}" \ --prefix PATH : ${ @@ -73,4 +84,4 @@ stdenv.mkDerivation rec { platforms = platforms.all; mainProgram = "davmail"; }; -} +})