From 9c081c4653f7e40dd30ba88fa898891100223c36 Mon Sep 17 00:00:00 2001 From: Sam Estep Date: Sat, 23 May 2026 00:34:03 -0400 Subject: [PATCH] atlauncher: fix aarch64-linux build Assisted-by: Codex:gpt-5.5 --- pkgs/by-name/at/atlauncher/package.nix | 8 ++- .../at/atlauncher/remove-launch4j.patch | 71 +++++++++++++++++++ 2 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 pkgs/by-name/at/atlauncher/remove-launch4j.patch diff --git a/pkgs/by-name/at/atlauncher/package.nix b/pkgs/by-name/at/atlauncher/package.nix index 89e037f04f70..523c3b8bd504 100644 --- a/pkgs/by-name/at/atlauncher/package.nix +++ b/pkgs/by-name/at/atlauncher/package.nix @@ -36,6 +36,12 @@ stdenvNoCC.mkDerivation (finalAttrs: { hash = "sha256-pRYXzFUbVXYwD7edhBoVcVo/QDo6QSJJQd58Hf3rBGo="; }; + patches = [ + # Launch4j does not publish the Linux workdir artifact selected on aarch64. + # Nixpkgs only needs the cross-platform jar, so remove the Windows exe task. + ./remove-launch4j.patch + ]; + nativeBuildInputs = [ gradle makeWrapper @@ -52,8 +58,6 @@ stdenvNoCC.mkDerivation (finalAttrs: { gradleFlags = [ "-Dorg.gradle.java.home=${jdk17_headless.home}" - "--exclude-task" - "createExe" ]; installPhase = diff --git a/pkgs/by-name/at/atlauncher/remove-launch4j.patch b/pkgs/by-name/at/atlauncher/remove-launch4j.patch new file mode 100644 index 000000000000..c4b4b46a8494 --- /dev/null +++ b/pkgs/by-name/at/atlauncher/remove-launch4j.patch @@ -0,0 +1,71 @@ +diff --git a/build.gradle b/build.gradle +index 474c0c0..59fc2d2 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -24,7 +24,6 @@ plugins { + id 'org.cadixdev.licenser' version '0.6.1' + id 'com.adarshr.test-logger' version '4.0.0' + id 'edu.sc.seis.macAppBundle' version '2.3.0' +- id 'edu.sc.seis.launch4j' version '3.0.6' + id 'de.undercouch.download' version '5.6.0' + id 'com.github.johnrengelman.shadow' version '8.1.1' + id 'com.github.ben-manes.versions' version '0.52.0' +@@ -282,34 +281,15 @@ def currentYear() { + return df.format(new Date()) + } + +-launch4j { +- outfile = "ATLauncher-${project.version}.exe" +- jreMinVersion = "${project.targetCompatibility.toString()}" +- mainClassName = 'com.atlauncher.App' +- icon = "${projectDir}/src/main/resources/assets/image/icon.ico" +- version = "${project.version}" +- textVersion = "${project.version}" +- copyright = "2013-${currentYear()} ${project.name}" +- companyName = "${project.name}" +- bundledJrePath = "jre/;%JAVA_HOME%;%PATH%" +- jvmOptions = [ +- "-Djna.nosys=true", +- "-Djava.net.preferIPv4Stack=true", +- "-Dawt.useSystemAAFontSettings=on", +- "-Dswing.aatext=true" +- ] +-} + + artifacts { + archives shadowJar +- archives file(project.tasks.jar.getArchivePath().getPath().replace('.jar', '.exe').replace('libs', 'launch4j')) + archives file(project.tasks.jar.getArchivePath().getPath().replace('.jar', '.zip').replace('libs', 'distributions')) + } + + task copyArtifacts(type: Copy) { + dependsOn build + from shadowJar +- from file(project.tasks.jar.getArchivePath().getPath().replace('.jar', '.exe').replace('libs', 'launch4j')) + from file(project.tasks.jar.getArchivePath().getPath().replace('.jar', '.zip').replace('libs', 'distributions')) + into "${projectDir}/dist" + } +@@ -368,14 +348,6 @@ clean.doFirst { + delete "${projectDir}/dist" + } + +-project.afterEvaluate { +- tasks.check { +- dependsOn -= tasks.find { +- it.name.equals("checkLicenses") +- } +- } +-} +- + def shouldIgnoreUpdate = { String version -> return ['ALPHA', 'BETA', 'RC', '-M'].any { it -> version.toUpperCase(Locale.ENGLISH).contains(it) } } + tasks.named("dependencyUpdates").configure { + rejectVersionIf { +@@ -385,8 +357,6 @@ tasks.named("dependencyUpdates").configure { + + build.finalizedBy copyArtifacts + shadowJar.dependsOn jar +-build.dependsOn createExe, createMacApp + startScripts.dependsOn shadowJar +-createExe.dependsOn shadowJar + createAppZip.dependsOn downloadNewerUniversalJavaApplicationStub + createDmg.dependsOn downloadNewerUniversalJavaApplicationStub