From de079aea19108122ff772d176188e78166cbc502 Mon Sep 17 00:00:00 2001 From: Mitchell Skaggs Date: Wed, 19 Jun 2024 10:27:41 -0500 Subject: [PATCH 1/2] maintainers: add magneticflux- --- maintainers/maintainer-list.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 210887fdb6a7e..1c624d2a6d902 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -12310,6 +12310,13 @@ githubId = 1809783; name = "Marco Maggesi"; }; + magneticflux- = { + email = "skaggsm333@gmail.com"; + github = "magneticflux-"; + githubId = 9124288; + name = "Mitchell Skaggs"; + keys = [ { fingerprint = "CA2A 3324 43A7 BD99 8FCE DFC4 4EB0 FECB 84AE 8967"; } ]; + }; magnetophon = { email = "bart@magnetophon.nl"; github = "magnetophon"; From 275d289ddad3cf1236c243478b7241898078b310 Mon Sep 17 00:00:00 2001 From: Mitchell Skaggs Date: Wed, 19 Jun 2024 10:28:15 -0500 Subject: [PATCH 2/2] textidote: init at 0.8.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: éclairevoyant <848000+eclairevoyant@users.noreply.github.com> Co-authored-by: Anderson Torres --- pkgs/by-name/te/textidote/package.nix | 121 ++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 pkgs/by-name/te/textidote/package.nix diff --git a/pkgs/by-name/te/textidote/package.nix b/pkgs/by-name/te/textidote/package.nix new file mode 100644 index 0000000000000..aac2a7b99b6ad --- /dev/null +++ b/pkgs/by-name/te/textidote/package.nix @@ -0,0 +1,121 @@ +{ + lib, + stdenv, + fetchFromGitHub, + ant, + jdk11, + makeWrapper, + stripJavaArchivesHook, + testers, +}: + +let + pname = "textidote"; + version = "0.8.3"; + # We can't compile with > Java 11 yet because that's the last version that supports targeting Java 6 + jdk = jdk11; + + # Manually create a fixed-output derivation to populate the dependencies for the rest of the build + # The Ant buildscript downloads dependencies and stores them alongside the source code in a non-standard way + # https://github.com/sylvainhalle/AntRun + populated-src = stdenv.mkDerivation { + pname = "textidote-populated-src"; + inherit version; + + src = fetchFromGitHub { + owner = "sylvainhalle"; + repo = "textidote"; + rev = "refs/tags/v${version}"; + hash = "sha256-QMSoxk5jDn6qsdxffXJ/S4eTIzLjJdAEbdaK8MZIavI="; + }; + + nativeBuildInputs = [ + ant + jdk + ]; + + # Only run dependency-downloading tasks here to pre-download the dependencies for later + buildPhase = '' + runHook preBuild + + ant download-deps junit jacoco + + runHook postBuild + ''; + + # Copy the entire directory to the output including sources and resolved dependencies + installPhase = '' + runHook preInstall + + cp -a . $out + + runHook postInstall + ''; + + dontFixup = true; + outputHashMode = "recursive"; + outputHash = "sha256-LrFClt8zN/ma42+Yoqwoy03TCuC3JfAeb02vehkljBo="; + }; +in +stdenv.mkDerivation (finalAttrs: { + inherit pname version; + + src = populated-src; + + nativeBuildInputs = [ + ant + jdk + makeWrapper + stripJavaArchivesHook + ]; + + # `javac` encoding only defaults to UTF-8 after Java 18 + env.ANT_OPTS = "-Dfile.encoding=utf8"; + + buildPhase = '' + runHook preBuild + + ant jar + + runHook postBuild + ''; + + doCheck = true; + checkPhase = '' + runHook preCheck + + ant test + + runHook postCheck + ''; + + # Recreates the wrapper from the `.deb` + # The `.deb` seems to be manually created for every release; there's no script in the repo + installPhase = '' + runHook preInstall + + install -Dm644 textidote.jar $out/share/textidote/textidote.jar + + makeWrapper ${lib.getExe jdk} $out/bin/textidote \ + --add-flags "-jar $out/share/textidote/textidote.jar --name textidote" + + runHook postInstall + ''; + + passthru.tests = { + version = testers.testVersion { + package = finalAttrs.finalPackage; + version = "TeXtidote v${finalAttrs.version}"; + }; + }; + + meta = { + homepage = "https://sylvainhalle.github.io/textidote/"; + downloadPage = "https://github.com/sylvainhalle/textidote/releases"; + description = "Correction tool for LaTeX documents"; + license = lib.licenses.gpl3Only; + maintainers = with lib.maintainers; [ magneticflux- ]; + mainProgram = "textidote"; + inherit (jdk.meta) platforms; + }; +})