From 3d9220e6cafcf567238a00c8d615cc7b5edadb82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rolf=20Schr=C3=B6der?= Date: Tue, 4 Nov 2025 21:41:35 +0100 Subject: [PATCH 01/26] corretto21: 21.0.6.7.1 -> 21.0.9.11.1 Gradle7 is phased out in nixpkgs but corretto <= 21 does not support Gradle8. See https://github.com/corretto/corretto-21/issues/114#issuecomment-3198171683. Hence, ./corretto21-gradle8.patch is added. This patch is loosely based on https://github.com/corretto/corretto-jdk/pull/135. --- pkgs/development/compilers/corretto/21.nix | 16 +- .../corretto/corretto21-gradle8.patch | 340 ++++++++++++++++++ 2 files changed, 350 insertions(+), 6 deletions(-) create mode 100644 pkgs/development/compilers/corretto/corretto21-gradle8.patch diff --git a/pkgs/development/compilers/corretto/21.nix b/pkgs/development/compilers/corretto/21.nix index 8b566823c040..4dc8447de7b5 100644 --- a/pkgs/development/compilers/corretto/21.nix +++ b/pkgs/development/compilers/corretto/21.nix @@ -1,7 +1,6 @@ { - corretto21, fetchFromGitHub, - gradle_7, + gradle_8, jdk21, lib, stdenv, @@ -20,14 +19,19 @@ let testers ; jdk = jdk21; - gradle = gradle_7; - version = "21.0.6.7.1"; + gradle = gradle_8; + version = "21.0.9.11.1"; src = fetchFromGitHub { owner = "corretto"; repo = "corretto-21"; rev = version; - hash = "sha256-kF7Quf8bU5scfunmwfEYLkje/jEJOx7CFnBIUWCovzI="; + hash = "sha256-d62rXVgVlOM3M18c8GioFtMi/GhmCEMLQwy/EWAJW7I="; }; }; in -corretto +corretto.overrideAttrs (oldAttrs: { + patches = (oldAttrs.patches or [ ]) ++ [ + ./corretto21-gradle8.patch + ]; + +}) diff --git a/pkgs/development/compilers/corretto/corretto21-gradle8.patch b/pkgs/development/compilers/corretto/corretto21-gradle8.patch new file mode 100644 index 000000000000..c5a5c02e1d05 --- /dev/null +++ b/pkgs/development/compilers/corretto/corretto21-gradle8.patch @@ -0,0 +1,340 @@ +diff --git a/build.gradle b/build.gradle +index 61d5c8f8b48..2102e8921bd 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -257,7 +257,7 @@ project(':prebuild') { + def generateToolMain = "build.tools.generatecacerts.GenerateCacerts" + + task copyToolSrc(type: Copy) { +- description 'Copy utility tool source to the project root' ++ description = 'Copy utility tool source to the project root' + from fileTree("$rootDir/make/jdk/src/classes") { + include 'build/tools/generatecacerts/*' + } +@@ -267,7 +267,7 @@ project(':prebuild') { + task buildTool(type: JavaCompile) { + dependsOn copyToolSrc + source = fileTree(dir: preBuildSrc, include: '**/*.java') +- destinationDir = file(classPath) ++ destinationDirectory = file(classPath) + classpath = files(classPath) + } + +@@ -280,7 +280,7 @@ project(':prebuild') { + + // See commit for [JDK-8275252](https://github.com/corretto/corretto-jdk/commit/bd2b41dd7062c50f3aaebec2137d5fdd9546c120) + jvmArgs = ['-Dkeystore.pkcs12.certProtectionAlgorithm=NONE', '-Dkeystore.pkcs12.macAlgorithm=NONE'] +- main = generateToolMain ++ mainClass = generateToolMain + args = [jdkCaDir, project.caCerts] + } + +@@ -311,9 +311,9 @@ project(':openjdksrc') { + * Compresses a snapshot of the source code used to perform the build. + */ + task sourceDistributionTarball(type: Tar) { +- description 'Assemble source files required for building and distributing Corretto.' +- compression Compression.GZIP +- archiveName sourceTar ++ description = 'Assemble source files required for building and distributing Corretto.' ++ compression = Compression.GZIP ++ archiveFileName = sourceTar + def sourceTarRootFiles = ['LICENSE', + 'ADDITIONAL_LICENSE_INFO', + 'README', +diff --git a/installers/linux/al2/spec/build.gradle b/installers/linux/al2/spec/build.gradle +index 1df0004cbac..1b5dd56d7fd 100644 +--- a/installers/linux/al2/spec/build.gradle ++++ b/installers/linux/al2/spec/build.gradle +@@ -63,8 +63,8 @@ task inflateRpmSpec { + + task copySourceTar(type: Tar) { + dependsOn project.configurations.compile, inflateRpmSpec +- compression Compression.GZIP +- archiveName project.configurations.compile.singleFile.name ++ compression = Compression.GZIP ++ archiveFileName = project.configurations.compile.singleFile.name + from("$buildDir") { + include "java-${project.version.major}-amazon-corretto.spec" + into 'rpm' +diff --git a/installers/linux/alpine/tar/build.gradle b/installers/linux/alpine/tar/build.gradle +index 5b88041eebb..5b0c05f81d0 100644 +--- a/installers/linux/alpine/tar/build.gradle ++++ b/installers/linux/alpine/tar/build.gradle +@@ -131,9 +131,9 @@ task bundleThirdPartyBinaries { + + task packageTestImage(type: Tar) { + dependsOn createTestImage +- description 'Package test results' +- archiveName "amazon-corretto-testimage-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" +- compression Compression.GZIP ++ description = 'Package test results' ++ archiveFileName = "amazon-corretto-testimage-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" ++ compression = Compression.GZIP + from(testResultingImage) { + include '**' + } +@@ -142,9 +142,9 @@ task packageTestImage(type: Tar) { + + task packageDebugSymbols(type: Tar) { + dependsOn packageTestImage +- description 'Package debug symbols' +- archiveName "amazon-corretto-debugsymbols-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" +- compression Compression.GZIP ++ description = 'Package debug symbols' ++ archiveFileName = "amazon-corretto-debugsymbols-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" ++ compression = Compression.GZIP + from(jdkResultingImage) { + include 'bin/*.diz' + include 'lib/*.diz' +@@ -154,12 +154,12 @@ task packageDebugSymbols(type: Tar) { + } + + task packageBuildResults(type: Tar) { +- description 'Compresses the JDK image and puts the results in build/distributions.' ++ description = 'Compresses the JDK image and puts the results in build/distributions.' + dependsOn packageDebugSymbols + dependsOn executeBuild + dependsOn bundleThirdPartyBinaries +- archiveName "amazon-corretto-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" +- compression Compression.GZIP ++ archiveFileName = "amazon-corretto-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" ++ compression = Compression.GZIP + from(buildRoot) { + include project.rootFiles + } +@@ -178,7 +178,7 @@ task packageBuildResults(type: Tar) { + // See https://github.com/corretto/corretto-11/issues/129 + from(jdkResultingImage) { + include 'legal/**' +- fileMode 0444 ++ fileMode = 0444 + } + into "amazon-corretto-${project.version.full}-alpine-linux-${arch_alias}" + } +diff --git a/installers/linux/universal/deb/build.gradle b/installers/linux/universal/deb/build.gradle +index 4daf46e8b14..3376e3c58d1 100644 +--- a/installers/linux/universal/deb/build.gradle ++++ b/installers/linux/universal/deb/build.gradle +@@ -20,7 +20,7 @@ + */ + + plugins { +- id 'nebula.ospackage' version 'latest.release' ++ id 'com.netflix.nebula.ospackage' version 'latest.release' + } + + dependencies { +@@ -57,22 +57,22 @@ def jinfoName = ".${jdkInstallationDirName}.jinfo" + ospackage { + // Valid version must start with a digit and only contain [A-Za-z0-9.+:~-] + // See http://manpages.ubuntu.com/manpages/artful/en/man5/deb-version.5.html +- version project.version.upstream +- release project.version.revision +- +- url "${packageInfo.url}" +- vendor "${packageInfo.vendor}" +- packager "${packageInfo.packager}" +- license "${packageInfo.license}" +- buildHost "${packageInfo.buildHost}" +- maintainer "${packageInfo.maintainer}" +- packageGroup 'java' +- priority 'optional' +- user 'root' +- permissionGroup 'root' +- epoch 1 +- arch arch_deb +- multiArch SAME ++ version = project.version.upstream ++ release = project.version.revision ++ ++ url = "${packageInfo.url}" ++ vendor = "${packageInfo.vendor}" ++ packager = "${packageInfo.packager}" ++ license = "${packageInfo.license}" ++ buildHost = "${packageInfo.buildHost}" ++ maintainer = "${packageInfo.maintainer}" ++ packageGroup = 'java' ++ priority = 'optional' ++ user = 'root' ++ permissionGroup = 'root' ++ epoch = 1 ++ arch = arch_deb ++ multiArch = SAME + } + + /** +@@ -127,13 +127,13 @@ task inflateJinfoTemplate(type: Copy) { + * distributions folder. + */ + task generateJdkDeb(type: Deb) { +- description 'Create the DEB package for Corretto JDK' ++ description = 'Create the DEB package for Corretto JDK' + dependsOn inflateDebScriptTemplate + dependsOn inflateJinfoTemplate + +- packageName jdkPackageName +- packageDescription "Amazon Corretto\'s packaging of the OpenJDK ${project.version.major} code." +- summary "Amazon Corretto ${project.version.major} development environment" ++ packageName = jdkPackageName ++ packageDescription = "Amazon Corretto\'s packaging of the OpenJDK ${project.version.major} code." ++ summary = "Amazon Corretto ${project.version.major} development environment" + + postInstall file("$buildRoot/scripts/postin_jdk.sh") + preUninstall file("$buildRoot/scripts/preun_jdk.sh") +@@ -191,13 +191,13 @@ task generateJdkDeb(type: Deb) { + // See https://github.com/corretto/corretto-11/issues/129 + from("${jdkBinaryDir}/legal") { + into "${jdkHome}/legal" +- fileMode 0444 ++ fileMode = 0444 + } + + if (!project.excludeReadmeJavaSE) { + from("${jdkBinaryDir}/README.JAVASE") { + into jdkHome +- fileMode 0444 ++ fileMode = 0444 + } + } + +diff --git a/installers/linux/universal/rpm/build.gradle b/installers/linux/universal/rpm/build.gradle +index 50f55bb52c0..fbbe8f44bca 100644 +--- a/installers/linux/universal/rpm/build.gradle ++++ b/installers/linux/universal/rpm/build.gradle +@@ -20,7 +20,7 @@ + */ + + plugins { +- id 'nebula.ospackage' version 'latest.release' ++ id 'com.netflix.nebula.ospackage' version 'latest.release' + } + + dependencies { +@@ -51,20 +51,20 @@ def jdkBinaryDir = "${buildRoot}/${project.correttoJdkArchiveName}" + def jdkPackageName = "java-${project.version.major}-amazon-corretto-devel" + + ospackage { +- version project.version.upstream +- release project.version.revision +- +- url "${packageInfo.url}" +- vendor "${packageInfo.vendor}" +- packager "${packageInfo.packager}" +- license "${packageInfo.license}" +- buildHost "${packageInfo.buildHost}" +- user 'root' +- permissionGroup 'root' +- epoch 1 +- arch arch_redline +- os LINUX +- type BINARY ++ version = project.version.upstream ++ release = project.version.revision ++ ++ url = "${packageInfo.url}" ++ vendor = "${packageInfo.vendor}" ++ packager = "${packageInfo.packager}" ++ license = "${packageInfo.license}" ++ buildHost = "${packageInfo.buildHost}" ++ user = 'root' ++ permissionGroup = 'root' ++ epoch = 1 ++ arch = arch_redline ++ os = LINUX ++ type = BINARY + } + + /** +@@ -100,14 +100,14 @@ task inflateRpmScriptTemplate(type: Copy) { + * distributions folder. + */ + task generateJdkRpm(type: Rpm) { +- description 'Create the RPM package for Corretto JDK' ++ description = 'Create the RPM package for Corretto JDK' + dependsOn inflateRpmScriptTemplate +- packageName jdkPackageName +- packageDescription packageInfo.description +- summary "Amazon Corretto ${project.version.major} development environment" +- packageGroup 'Development/Tools' ++ packageName = jdkPackageName ++ packageDescription = packageInfo.description ++ summary = "Amazon Corretto ${project.version.major} development environment" ++ packageGroup = 'Development/Tools' + // Remove after https://github.com/nebula-plugins/gradle-ospackage-plugin/issues/401 is merged and released +- sourcePackage "${jdkPackageName}-${project.version.major}.${project.version.minor}.${project.version.security}.${project.version.build}-${project.version.revision}.src.rpm" ++ sourcePackage = "${jdkPackageName}-${project.version.major}.${project.version.minor}.${project.version.security}.${project.version.build}-${project.version.revision}.src.rpm" + + prefix(jdkHome) + postInstall file("$buildRoot/scripts/postin_java.sh") +@@ -146,13 +146,13 @@ task generateJdkRpm(type: Rpm) { + // See https://github.com/corretto/corretto-11/issues/129 + from("${jdkBinaryDir}/legal") { + into "${jdkHome}/legal" +- fileMode 0444 ++ fileMode = 0444 + } + + if (!project.excludeReadmeJavaSE) { + from("${jdkBinaryDir}/README.JAVASE") { + into jdkHome +- fileMode 0444 ++ fileMode = 0444 + } + } + } +diff --git a/installers/linux/universal/tar/build.gradle b/installers/linux/universal/tar/build.gradle +index be5be844e38..0480a6a34c9 100644 +--- a/installers/linux/universal/tar/build.gradle ++++ b/installers/linux/universal/tar/build.gradle +@@ -121,9 +121,9 @@ task bundleThirdPartyBinaries { + + task packageTestImage(type: Tar) { + dependsOn createTestImage +- description 'Package test results' +- archiveName "${project.correttoTestImageArchiveName}.tar.gz" +- compression Compression.GZIP ++ description = 'Package test results' ++ archiveFileName = "${project.correttoTestImageArchiveName}.tar.gz" ++ compression = Compression.GZIP + from(testResultingImage) { + include '**' + } +@@ -131,10 +131,10 @@ task packageTestImage(type: Tar) { + } + + task packageDebugSymbols(type: Tar) { +- description 'Package debug results' ++ description = 'Package debug results' + dependsOn packageTestImage +- archiveName "${project.correttoDebugSymbolsArchiveName}.tar.gz" +- compression Compression.GZIP ++ archiveFileName = "${project.correttoDebugSymbolsArchiveName}.tar.gz" ++ compression = Compression.GZIP + from(jdkResultingImage) { + include 'bin/*.diz' + include 'lib/*.diz' +@@ -144,11 +144,11 @@ task packageDebugSymbols(type: Tar) { + } + + task packageBuildResults(type: Tar) { +- description 'Compresses the JDK image and puts the results in build/distributions.' ++ description = 'Compresses the JDK image and puts the results in build/distributions.' + dependsOn packageDebugSymbols + dependsOn bundleThirdPartyBinaries +- archiveName "${project.correttoJdkArchiveName}.tar.gz" +- compression Compression.GZIP ++ archiveFileName = "${project.correttoJdkArchiveName}.tar.gz" ++ compression = Compression.GZIP + from(buildRoot) { + include project.rootFiles + into project.correttoJdkArchiveName +@@ -169,7 +169,7 @@ task packageBuildResults(type: Tar) { + // See https://github.com/corretto/corretto-11/issues/129 + from("${jdkResultingImage}/legal") { + include '**' +- fileMode 0444 ++ fileMode = 0444 + into "${project.correttoJdkArchiveName}/legal" + } + } From 0057e680db5820b2b20c793727b0ce380c6b1fb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rolf=20Schr=C3=B6der?= Date: Tue, 4 Nov 2025 22:05:57 +0100 Subject: [PATCH 02/26] corretto17: 17.0.14.7.1 -> 17.0.17.10.1 Gradle7 is phased out in nixpkgs but corretto <= 21 does not support Gradle8. See https://github.com/corretto/corretto-21/issues/114#issuecomment-3198171683. Hence, ./corretto17-gradle8.patch is added. This patch is loosely based on https://github.com/corretto/corretto-jdk/pull/135. --- pkgs/development/compilers/corretto/17.nix | 18 +- .../corretto/corretto17-gradle8.patch | 290 ++++++++++++++++++ 2 files changed, 300 insertions(+), 8 deletions(-) create mode 100644 pkgs/development/compilers/corretto/corretto17-gradle8.patch diff --git a/pkgs/development/compilers/corretto/17.nix b/pkgs/development/compilers/corretto/17.nix index de39f073df97..36b26337bbab 100644 --- a/pkgs/development/compilers/corretto/17.nix +++ b/pkgs/development/compilers/corretto/17.nix @@ -1,7 +1,7 @@ { fetchFromGitHub, fetchurl, - gradle_7, + gradle_8, jdk17, lib, stdenv, @@ -20,13 +20,13 @@ let testers ; jdk = jdk17; - gradle = gradle_7; - version = "17.0.14.7.1"; + gradle = gradle_8; + version = "17.0.17.10.1"; src = fetchFromGitHub { owner = "corretto"; repo = "corretto-17"; rev = version; - hash = "sha256-ohQrguEJ8QvTaNjyQxKFujGhXNxCQTGkLILurzD7cy0="; + hash = "sha256-Z8+g5jXjcWNTYU9Xvze7scu348okMauGMhSZwX1sS9w="; }; }; in @@ -35,9 +35,11 @@ corretto.overrideAttrs ( # Corretto17 has incorporated this patch already so it fails to apply. # We thus skip it here. # See https://github.com/corretto/corretto-17/pull/158 - patches = lib.remove (fetchurl { - url = "https://git.alpinelinux.org/aports/plain/community/openjdk17/FixNullPtrCast.patch?id=41e78a067953e0b13d062d632bae6c4f8028d91c"; - sha256 = "sha256-LzmSew51+DyqqGyyMw2fbXeBluCiCYsS1nCjt9hX6zo="; - }) (prev.patches or [ ]); + patches = + lib.remove (fetchurl { + url = "https://git.alpinelinux.org/aports/plain/community/openjdk17/FixNullPtrCast.patch?id=41e78a067953e0b13d062d632bae6c4f8028d91c"; + sha256 = "sha256-LzmSew51+DyqqGyyMw2fbXeBluCiCYsS1nCjt9hX6zo="; + }) (prev.patches or [ ]) + ++ [ ./corretto17-gradle8.patch ]; } ) diff --git a/pkgs/development/compilers/corretto/corretto17-gradle8.patch b/pkgs/development/compilers/corretto/corretto17-gradle8.patch new file mode 100644 index 000000000000..fbce320b53a1 --- /dev/null +++ b/pkgs/development/compilers/corretto/corretto17-gradle8.patch @@ -0,0 +1,290 @@ +diff --git a/build.gradle b/build.gradle +index f678379aa..62df526d4 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -231,7 +231,7 @@ project(':prebuild') { + def generateToolMain = "build.tools.generatecacerts.GenerateCacerts" + + task copyToolSrc(type: Copy) { +- description 'Copy utility tool source to the project root' ++ description = 'Copy utility tool source to the project root' + from fileTree("$rootDir/make/jdk/src/classes") { + include 'build/tools/generatecacerts/*' + } +@@ -241,7 +241,7 @@ project(':prebuild') { + task buildTool(type: JavaCompile) { + dependsOn copyToolSrc + source = fileTree(dir: preBuildSrc, include: '**/*.java') +- destinationDir = file(classPath) ++ destinationDirectory = file(classPath) + classpath = files(classPath) + } + +@@ -282,9 +282,9 @@ project(':openjdksrc') { + * Compresses a snapshot of the source code used to perform the build. + */ + task sourceDistributionTarball(type: Tar) { +- description 'Assemble source files required for building and distributing Corretto.' +- compression Compression.GZIP +- archiveName sourceTar ++ description = 'Assemble source files required for building and distributing Corretto.' ++ compression = Compression.GZIP ++ archiveFileName = sourceTar + from fileTree(rootDir) { + include 'LICENSE', + 'ADDITIONAL_LICENSE_INFO', +diff --git a/installers/linux/al2/spec/build.gradle b/installers/linux/al2/spec/build.gradle +index a5a1b9a7c..201283213 100644 +--- a/installers/linux/al2/spec/build.gradle ++++ b/installers/linux/al2/spec/build.gradle +@@ -62,8 +62,8 @@ task inflateRpmSpec { + + task copySourceTar(type: Tar) { + dependsOn project.configurations.compile, inflateRpmSpec +- compression Compression.GZIP +- archiveName project.configurations.compile.singleFile.name ++ compression = Compression.GZIP ++ archiveFileName = project.configurations.compile.singleFile.name + from("$buildDir") { + include "java-${project.version.major}-amazon-corretto.spec" + into 'rpm' +diff --git a/installers/linux/alpine/tar/build.gradle b/installers/linux/alpine/tar/build.gradle +index d0f95bd42..60bc9d40a 100644 +--- a/installers/linux/alpine/tar/build.gradle ++++ b/installers/linux/alpine/tar/build.gradle +@@ -132,9 +132,9 @@ task bundleThirdPartyBinaries { + + task packageTestImage(type: Tar) { + dependsOn createTestImage +- description 'Package test results' +- archiveName "amazon-corretto-testimage-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" +- compression Compression.GZIP ++ description = 'Package test results' ++ archiveFileName = "amazon-corretto-testimage-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" ++ compression = Compression.GZIP + from(testResultingImage) { + include '**' + } +@@ -143,9 +143,9 @@ task packageTestImage(type: Tar) { + + task packageDebugSymbols(type: Tar) { + dependsOn packageTestImage +- description 'Package debug symbols' +- archiveName "amazon-corretto-debugsymbols-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" +- compression Compression.GZIP ++ description = 'Package debug symbols' ++ archiveFileName = "amazon-corretto-debugsymbols-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" ++ compression = Compression.GZIP + from(jdkResultingImage) { + include 'bin/*.diz' + include 'lib/*.diz' +@@ -155,12 +155,12 @@ task packageDebugSymbols(type: Tar) { + } + + task packageBuildResults(type: Tar) { +- description 'Compresses the JDK image and puts the results in build/distributions.' ++ description = 'Compresses the JDK image and puts the results in build/distributions.' + dependsOn packageDebugSymbols + dependsOn executeBuild + dependsOn bundleThirdPartyBinaries +- archiveName "amazon-corretto-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" +- compression Compression.GZIP ++ archiveFileName = "amazon-corretto-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" ++ compression = Compression.GZIP + from(buildRoot) { + include 'ADDITIONAL_LICENSE_INFO' + include 'ASSEMBLY_EXCEPTION' +diff --git a/installers/linux/universal/deb/build.gradle b/installers/linux/universal/deb/build.gradle +index 118ad0b74..54f7e0c50 100644 +--- a/installers/linux/universal/deb/build.gradle ++++ b/installers/linux/universal/deb/build.gradle +@@ -20,7 +20,7 @@ + */ + + plugins { +- id 'nebula.ospackage' version 'latest.release' ++ id 'com.netflix.nebula.ospackage' version 'latest.release' + } + + dependencies { +@@ -54,22 +54,22 @@ def jinfoName = ".${jdkInstallationDirName}.jinfo" + ospackage { + // Valid version must start with a digit and only contain [A-Za-z0-9.+:~-] + // See http://manpages.ubuntu.com/manpages/artful/en/man5/deb-version.5.html +- version project.version.upstream +- release project.version.revision +- +- url "${packageInfo.url}" +- vendor "${packageInfo.vendor}" +- packager "${packageInfo.packager}" +- license "${packageInfo.license}" +- buildHost "${packageInfo.buildHost}" +- maintainer "${packageInfo.maintainer}" +- packageGroup 'java' +- priority 'optional' +- user 'root' +- permissionGroup 'root' +- epoch 1 +- arch arch_deb +- multiArch SAME ++ version = project.version.upstream ++ release = project.version.revision ++ ++ url = "${packageInfo.url}" ++ vendor = "${packageInfo.vendor}" ++ packager = "${packageInfo.packager}" ++ license = "${packageInfo.license}" ++ buildHost = "${packageInfo.buildHost}" ++ maintainer = "${packageInfo.maintainer}" ++ packageGroup = 'java' ++ priority = 'optional' ++ user = 'root' ++ permissionGroup = 'root' ++ epoch = 1 ++ arch = arch_deb ++ multiArch = SAME + } + + /** +@@ -124,13 +124,13 @@ task inflateJinfoTemplate(type: Copy) { + * distributions folder. + */ + task generateJdkDeb(type: Deb) { +- description 'Create the DEB package for Corretto JDK' ++ description = 'Create the DEB package for Corretto JDK' + dependsOn inflateDebScriptTemplate + dependsOn inflateJinfoTemplate + +- packageName jdkPackageName +- packageDescription "Amazon Corretto\'s packaging of the OpenJDK ${project.version.major} code." +- summary "Amazon Corretto ${project.version.major} development environment" ++ packageName = jdkPackageName ++ packageDescription = "Amazon Corretto\'s packaging of the OpenJDK ${project.version.major} code." ++ summary = "Amazon Corretto ${project.version.major} development environment" + + postInstall file("$buildRoot/scripts/postin_jdk.sh") + preUninstall file("$buildRoot/scripts/preun_jdk.sh") +diff --git a/installers/linux/universal/rpm/build.gradle b/installers/linux/universal/rpm/build.gradle +index 2883b16ac..ed914b679 100644 +--- a/installers/linux/universal/rpm/build.gradle ++++ b/installers/linux/universal/rpm/build.gradle +@@ -20,7 +20,7 @@ + */ + + plugins { +- id 'nebula.ospackage' version 'latest.release' ++ id 'com.netflix.nebula.ospackage' version 'latest.release' + } + + dependencies { +@@ -48,20 +48,20 @@ def jdkBinaryDir = "${buildRoot}/${project.correttoJdkArchiveName}" + def jdkPackageName = "java-${project.version.major}-amazon-corretto-devel" + + ospackage { +- version project.version.upstream +- release project.version.revision +- +- url "${packageInfo.url}" +- vendor "${packageInfo.vendor}" +- packager "${packageInfo.packager}" +- license "${packageInfo.license}" +- buildHost "${packageInfo.buildHost}" +- user 'root' +- permissionGroup 'root' +- epoch 1 +- arch arch_redline +- os LINUX +- type BINARY ++ version = project.version.upstream ++ release = project.version.revision ++ ++ url = "${packageInfo.url}" ++ vendor = "${packageInfo.vendor}" ++ packager = "${packageInfo.packager}" ++ license = "${packageInfo.license}" ++ buildHost = "${packageInfo.buildHost}" ++ user = 'root' ++ permissionGroup = 'root' ++ epoch = 1 ++ arch = arch_redline ++ os = LINUX ++ type = BINARY + } + + /** +@@ -97,14 +97,14 @@ task inflateRpmScriptTemplate(type: Copy) { + * distributions folder. + */ + task generateJdkRpm(type: Rpm) { +- description 'Create the RPM package for Corretto JDK' ++ description = 'Create the RPM package for Corretto JDK' + dependsOn inflateRpmScriptTemplate +- packageName jdkPackageName +- packageDescription packageInfo.description +- summary "Amazon Corretto ${project.version.major} development environment" +- packageGroup 'Development/Tools' ++ packageName = jdkPackageName ++ packageDescription = packageInfo.description ++ summary = "Amazon Corretto ${project.version.major} development environment" ++ packageGroup = 'Development/Tools' + // Remove after https://github.com/nebula-plugins/gradle-ospackage-plugin/issues/401 is merged and released +- sourcePackage "${jdkPackageName}-${project.version.major}.${project.version.minor}.${project.version.security}.${project.version.build}-${project.version.revision}.src.rpm" ++ sourcePackage = "${jdkPackageName}-${project.version.major}.${project.version.minor}.${project.version.security}.${project.version.build}-${project.version.revision}.src.rpm" + + prefix(jdkHome) + postInstall file("$buildRoot/scripts/postin_java.sh") +diff --git a/installers/linux/universal/tar/build.gradle b/installers/linux/universal/tar/build.gradle +index 17491d830..9ec3280e6 100644 +--- a/installers/linux/universal/tar/build.gradle ++++ b/installers/linux/universal/tar/build.gradle +@@ -122,9 +122,9 @@ task bundleThirdPartyBinaries { + + task packageTestImage(type: Tar) { + dependsOn createTestImage +- description 'Package test results' +- archiveName "${project.correttoTestImageArchiveName}.tar.gz" +- compression Compression.GZIP ++ description = 'Package test results' ++ archiveFileName = "${project.correttoTestImageArchiveName}.tar.gz" ++ compression = Compression.GZIP + from(testResultingImage) { + include '**' + } +@@ -132,10 +132,10 @@ task packageTestImage(type: Tar) { + } + + task packageDebugSymbols(type: Tar) { +- description 'Package debug results' ++ description = 'Package debug results' + dependsOn packageTestImage +- archiveName "${project.correttoDebugSymbolsArchiveName}.tar.gz" +- compression Compression.GZIP ++ archiveFileName = "${project.correttoDebugSymbolsArchiveName}.tar.gz" ++ compression = Compression.GZIP + from(jdkResultingImage) { + include 'bin/*.diz' + include 'lib/*.diz' +@@ -145,11 +145,11 @@ task packageDebugSymbols(type: Tar) { + } + + task packageBuildResults(type: Tar) { +- description 'Compresses the JDK image and puts the results in build/distributions.' ++ description = 'Compresses the JDK image and puts the results in build/distributions.' + dependsOn packageDebugSymbols + dependsOn bundleThirdPartyBinaries +- archiveName "${project.correttoJdkArchiveName}.tar.gz" +- compression Compression.GZIP ++ archiveFileName = "${project.correttoJdkArchiveName}.tar.gz" ++ compression = Compression.GZIP + from(buildRoot) { + include 'ADDITIONAL_LICENSE_INFO' + include 'ASSEMBLY_EXCEPTION' +@@ -175,7 +175,7 @@ task packageBuildResults(type: Tar) { + // See https://github.com/corretto/corretto-11/issues/129 + from("${jdkResultingImage}/legal") { + include '**' +- fileMode 0444 ++ fileMode = 0444 + into "${project.correttoJdkArchiveName}/legal" + } + } From 24232f2eeaec7b371bc7e155834ca0822abdef8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rolf=20Schr=C3=B6der?= Date: Tue, 4 Nov 2025 22:21:55 +0100 Subject: [PATCH 03/26] corretto11: 11.0.26.4.1 -> 11.0.29.7.1 Gradle7 is phased out in nixpkgs but corretto <= 21 does not support Gradle8. See https://github.com/corretto/corretto-21/issues/114#issuecomment-3198171683. Hence, ./corretto11-gradle8.patch is added. This patch is loosely based on https://github.com/corretto/corretto-jdk/pull/135. --- pkgs/development/compilers/corretto/11.nix | 15 +- .../corretto/corretto11-gradle8.patch | 337 ++++++++++++++++++ 2 files changed, 347 insertions(+), 5 deletions(-) create mode 100644 pkgs/development/compilers/corretto/corretto11-gradle8.patch diff --git a/pkgs/development/compilers/corretto/11.nix b/pkgs/development/compilers/corretto/11.nix index 5fbfee0bbf5c..295d5c6a3037 100644 --- a/pkgs/development/compilers/corretto/11.nix +++ b/pkgs/development/compilers/corretto/11.nix @@ -1,6 +1,6 @@ { fetchFromGitHub, - gradle_7, + gradle_8, jdk11, lib, stdenv, @@ -19,20 +19,25 @@ let testers ; jdk = jdk11; - gradle = gradle_7; + gradle = gradle_8; extraConfig = [ # jdk11 is built with --disable-warnings-as-errors (see openjdk/11.nix) # because of several compile errors. We need to include this parameter for # Corretto, too. "--disable-warnings-as-errors" ]; - version = "11.0.26.4.1"; + version = "11.0.29.7.1"; src = fetchFromGitHub { owner = "corretto"; repo = "corretto-11"; rev = version; - hash = "sha256-buJlSvmyOVeMwaP9oDcHhG+Sabr1exf0nRUt4O7MaIY="; + hash = "sha256-/VlV8tAo1deOZ5Trc4VlLNtpjWx352qUGZmfVbj7HuU="; }; }; in -corretto +corretto.overrideAttrs (oldAttrs: { + patches = (oldAttrs.patches or [ ]) ++ [ + ./corretto11-gradle8.patch + ]; + +}) diff --git a/pkgs/development/compilers/corretto/corretto11-gradle8.patch b/pkgs/development/compilers/corretto/corretto11-gradle8.patch new file mode 100644 index 000000000000..2a5ead90a045 --- /dev/null +++ b/pkgs/development/compilers/corretto/corretto11-gradle8.patch @@ -0,0 +1,337 @@ +diff --git a/build.gradle b/build.gradle +index a589bb568..6e0164562 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -240,7 +240,7 @@ project(':prebuild') { + def generateToolMain = "build.tools.generatecacerts.GenerateCacerts" + + task copyToolSrc(type: Copy) { +- description 'Copy utility tool source to the project root' ++ description = 'Copy utility tool source to the project root' + from fileTree("$rootDir/make/jdk/src/classes") { + include 'build/tools/generatecacerts/*' + } +@@ -250,7 +250,7 @@ project(':prebuild') { + task buildTool(type: JavaCompile) { + dependsOn copyToolSrc + source = fileTree(dir: preBuildSrc, include: '**/*.java') +- destinationDir = file(classPath) ++ destinationDirectory = file(classPath) + classpath = files(classPath) + } + +@@ -260,7 +260,7 @@ project(':prebuild') { + + description = 'Generate Cacerts from JDK source' + classpath = files(classPath) +- main = generateToolMain ++ mainClass = generateToolMain + args = [jdkCaDir, project.caCerts] + } + +@@ -291,9 +291,9 @@ project(':openjdksrc') { + * Compresses a snapshot of the source code used to perform the build. + */ + task sourceDistributionTarball(type: Tar) { +- description 'Assemble source files required for building and distributing Corretto.' +- compression Compression.GZIP +- archiveName sourceTar ++ description = 'Assemble source files required for building and distributing Corretto.' ++ compression = Compression.GZIP ++ archiveFileName = sourceTar + from fileTree(rootDir) { + include 'LICENSE', + 'ADDITIONAL_LICENSE_INFO', +diff --git a/installers/linux/al2/spec/build.gradle b/installers/linux/al2/spec/build.gradle +index 598d658de..b99e94d83 100644 +--- a/installers/linux/al2/spec/build.gradle ++++ b/installers/linux/al2/spec/build.gradle +@@ -62,8 +62,8 @@ task inflateRpmSpec { + + task copySourceTar(type: Tar) { + dependsOn project.configurations.compile, inflateRpmSpec +- compression Compression.GZIP +- archiveName project.configurations.compile.singleFile.name ++ compression = Compression.GZIP ++ archiveFileName = project.configurations.compile.singleFile.name + from("$buildDir") { + include "java-${project.version.major}-amazon-corretto.spec" + into 'rpm' +@@ -121,8 +121,8 @@ task inflateRpmSpecModular { + + task copySourceTarModular(type: Tar) { + dependsOn project.configurations.compile, inflateRpmSpecModular +- compression Compression.GZIP +- archiveName project.configurations.compile.singleFile.name ++ compression = Compression.GZIP ++ archiveFileName = project.configurations.compile.singleFile.name + from("$buildDir") { + include "java-${project.version.major}-amazon-corretto-modular.spec" + into 'rpm' +diff --git a/installers/linux/alpine/tar/build.gradle b/installers/linux/alpine/tar/build.gradle +index 4867205e5..0c850d15f 100644 +--- a/installers/linux/alpine/tar/build.gradle ++++ b/installers/linux/alpine/tar/build.gradle +@@ -143,9 +143,9 @@ task createTestImage(type: Exec) { + + task packageTestImage(type: Tar) { + dependsOn createTestImage +- description 'Package test results' +- archiveName "amazon-corretto-testimage-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" +- compression Compression.GZIP ++ description = 'Package test results' ++ archiveFileName = "amazon-corretto-testimage-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" ++ compression = Compression.GZIP + from(testResultingImage) { + include '**' + } +@@ -155,9 +155,9 @@ task packageTestImage(type: Tar) { + + task packageDebugSymbols(type: Tar) { + dependsOn packageTestImage +- description 'Package debug symbols' +- archiveName "amazon-corretto-debugsymbols-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" +- compression Compression.GZIP ++ description = 'Package debug symbols' ++ archiveFileName = "amazon-corretto-debugsymbols-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" ++ compression = Compression.GZIP + from(jdkResultingImage) { + include 'bin/*.diz' + include 'lib/*.diz' +@@ -167,12 +167,12 @@ task packageDebugSymbols(type: Tar) { + } + + task packageBuildResults(type: Tar) { +- description 'Compresses the JDK image and puts the results in build/distributions.' ++ description = 'Compresses the JDK image and puts the results in build/distributions.' + dependsOn packageDebugSymbols + dependsOn bundleThirdPartyBinaries + dependsOn importAmazonCacerts +- archiveName "amazon-corretto-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" +- compression Compression.GZIP ++ archiveFileName = "amazon-corretto-${project.version.full}-alpine-linux-${arch_alias}.tar.gz" ++ compression = Compression.GZIP + from(buildRoot) { + include 'ADDITIONAL_LICENSE_INFO' + include 'ASSEMBLY_EXCEPTION' +@@ -196,7 +196,7 @@ task packageBuildResults(type: Tar) { + // See https://github.com/corretto/corretto-11/issues/129 + from(jdkResultingImage) { + include 'legal/**' +- fileMode 0444 ++ fileMode = 0444 + } + into "amazon-corretto-${project.version.full}-alpine-linux-${arch_alias}" + } +diff --git a/installers/linux/universal/deb/build.gradle b/installers/linux/universal/deb/build.gradle +index 565cd7c2b..f2cc09982 100644 +--- a/installers/linux/universal/deb/build.gradle ++++ b/installers/linux/universal/deb/build.gradle +@@ -20,7 +20,7 @@ + */ + + plugins { +- id 'nebula.ospackage' version 'latest.release' ++ id 'com.netflix.nebula.ospackage' version 'latest.release' + } + + dependencies { +@@ -57,22 +57,22 @@ def jinfoName = ".${jdkInstallationDirName}.jinfo" + ospackage { + // Valid version must start with a digit and only contain [A-Za-z0-9.+:~-] + // See http://manpages.ubuntu.com/manpages/artful/en/man5/deb-version.5.html +- version project.version.upstream +- release project.version.revision +- +- url "${packageInfo.url}" +- vendor "${packageInfo.vendor}" +- packager "${packageInfo.packager}" +- license "${packageInfo.license}" +- buildHost "${packageInfo.buildHost}" +- maintainer "${packageInfo.maintainer}" +- packageGroup 'java' +- priority 'optional' +- user 'root' +- permissionGroup 'root' +- epoch 1 +- arch arch_deb +- multiArch SAME ++ version = project.version.upstream ++ release = project.version.revision ++ ++ url = "${packageInfo.url}" ++ vendor = "${packageInfo.vendor}" ++ packager = "${packageInfo.packager}" ++ license = "${packageInfo.license}" ++ buildHost = "${packageInfo.buildHost}" ++ maintainer = "${packageInfo.maintainer}" ++ packageGroup = 'java' ++ priority = 'optional' ++ user = 'root' ++ permissionGroup = 'root' ++ epoch = 1 ++ arch = arch_deb ++ multiArch = SAME + } + + /** +@@ -129,13 +129,13 @@ task inflateJinfoTemplate(type: Copy) { + * distributions folder. + */ + task generateJdkDeb(type: Deb) { +- description 'Create the DEB package for Corretto JDK' ++ description = 'Create the DEB package for Corretto JDK' + dependsOn inflateDebScriptTemplate + dependsOn inflateJinfoTemplate + +- packageName jdkPackageName +- packageDescription "Amazon Corretto\'s packaging of the OpenJDK ${project.version.major} code." +- summary "Amazon Corretto ${project.version.major} development environment" ++ packageName = jdkPackageName ++ packageDescription = "Amazon Corretto\'s packaging of the OpenJDK ${project.version.major} code." ++ summary = "Amazon Corretto ${project.version.major} development environment" + + postInstall file("$buildRoot/scripts/postin_jdk.sh") + preUninstall file("$buildRoot/scripts/preun_jdk.sh") +diff --git a/installers/linux/universal/rpm/build.gradle b/installers/linux/universal/rpm/build.gradle +index c309c8ddb..346bcc21e 100644 +--- a/installers/linux/universal/rpm/build.gradle ++++ b/installers/linux/universal/rpm/build.gradle +@@ -20,7 +20,7 @@ + */ + + plugins { +- id 'nebula.ospackage' version 'latest.release' ++ id 'com.netflix.nebula.ospackage' version 'latest.release' + } + + dependencies { +@@ -51,20 +51,20 @@ def jdkBinaryDir = "${buildRoot}/${project.correttoJdkArchiveName}" + def jdkPackageName = "java-${project.version.major}-amazon-corretto-devel" + + ospackage { +- version project.version.upstream +- release project.version.revision +- +- url "${packageInfo.url}" +- vendor "${packageInfo.vendor}" +- packager "${packageInfo.packager}" +- license "${packageInfo.license}" +- buildHost "${packageInfo.buildHost}" +- user 'root' +- permissionGroup 'root' +- epoch 1 +- arch arch_redline +- os LINUX +- type BINARY ++ version = project.version.upstream ++ release = project.version.revision ++ ++ url = "${packageInfo.url}" ++ vendor = "${packageInfo.vendor}" ++ packager = "${packageInfo.packager}" ++ license = "${packageInfo.license}" ++ buildHost = "${packageInfo.buildHost}" ++ user = 'root' ++ permissionGroup = 'root' ++ epoch = 1 ++ arch = arch_redline ++ os = LINUX ++ type = BINARY + } + + /** +@@ -101,14 +101,14 @@ task inflateRpmScriptTemplate(type: Copy) { + * distributions folder. + */ + task generateJdkRpm(type: Rpm) { +- description 'Create the RPM package for Corretto JDK' ++ description = 'Create the RPM package for Corretto JDK' + dependsOn inflateRpmScriptTemplate +- packageName jdkPackageName +- packageDescription packageInfo.description +- summary "Amazon Corretto ${project.version.major} development environment" +- packageGroup 'Development/Tools' ++ packageName = jdkPackageName ++ packageDescription = packageInfo.description ++ summary = "Amazon Corretto ${project.version.major} development environment" ++ packageGroup = 'Development/Tools' + // Remove after https://github.com/nebula-plugins/gradle-ospackage-plugin/issues/401 is merged and released +- sourcePackage "${jdkPackageName}-${project.version.major}.${project.version.minor}.${project.version.security}.${project.version.build}-${project.version.revision}.src.rpm" ++ sourcePackage = "${jdkPackageName}-${project.version.major}.${project.version.minor}.${project.version.security}.${project.version.build}-${project.version.revision}.src.rpm" + + prefix(jdkHome) + postInstall file("$buildRoot/scripts/postin_java.sh") +diff --git a/installers/linux/universal/tar/build.gradle b/installers/linux/universal/tar/build.gradle +index 72236d92c..e825a7594 100644 +--- a/installers/linux/universal/tar/build.gradle ++++ b/installers/linux/universal/tar/build.gradle +@@ -85,7 +85,7 @@ task copySource(type: Exec) { + "${project.rootDir}/", buildRoot + } + +-/** ++/** + * Scan the patches folder for any .patch that needs + * to be applied before start building. + */ +@@ -106,7 +106,7 @@ task configureBuild(type: Exec) { + workingDir "$buildRoot" + + def isArmv7 = project.hasProperty("armv7") ? Boolean.valueOf("${project.getProperty('armv7')}") : false +- def zlibFlag = isArmv7 ? "--with-zlib=bundled" : "--with-zlib=system" ++ def zlibFlag = isArmv7 ? "--with-zlib=bundled" : "--with-zlib=system" + + // Platform specific flags + def command = ['bash', 'configure', +@@ -156,9 +156,9 @@ task createTestImage(type: Exec) { + + task packageTestImage(type: Tar) { + dependsOn createTestImage +- description 'Package test results' +- archiveName "${project.correttoTestImageArchiveName}.tar.gz" +- compression Compression.GZIP ++ description = 'Package test results' ++ archiveFileName = "${project.correttoTestImageArchiveName}.tar.gz" ++ compression = Compression.GZIP + from(testResultingImage) { + include '**' + } +@@ -166,10 +166,10 @@ task packageTestImage(type: Tar) { + } + + task packageDebugSymbols(type: Tar) { +- description 'Package debug results' ++ description = 'Package debug results' + dependsOn packageTestImage +- archiveName "${project.correttoDebugSymbolsArchiveName}.tar.gz" +- compression Compression.GZIP ++ archiveFileName = "${project.correttoDebugSymbolsArchiveName}.tar.gz" ++ compression = Compression.GZIP + from(jdkResultingImage) { + include 'bin/*.diz' + include 'lib/*.diz' +@@ -179,11 +179,11 @@ task packageDebugSymbols(type: Tar) { + } + + task packageBuildResults(type: Tar) { +- description 'Compresses the JDK image and puts the results in build/distributions.' ++ description = 'Compresses the JDK image and puts the results in build/distributions.' + dependsOn packageDebugSymbols + dependsOn bundleThirdPartyBinaries +- archiveName "${project.correttoJdkArchiveName}.tar.gz" +- compression Compression.GZIP ++ archiveFileName = "${project.correttoJdkArchiveName}.tar.gz" ++ compression = Compression.GZIP + from(buildRoot) { + include 'ADDITIONAL_LICENSE_INFO' + include 'ASSEMBLY_EXCEPTION' +@@ -209,7 +209,7 @@ task packageBuildResults(type: Tar) { + // See https://github.com/corretto/corretto-11/issues/129 + from("${jdkResultingImage}/legal") { + include '**' +- fileMode 0444 ++ fileMode = 0444 + into "${project.correttoJdkArchiveName}/legal" + } + } From fca84bde0f7d29bbcce78ac75eb8735d5bc9629e Mon Sep 17 00:00:00 2001 From: Ingo Reitz <9l@9lo.re> Date: Sun, 14 Dec 2025 00:56:15 +0100 Subject: [PATCH 04/26] linux/common-config: Enable coreboot firmware drivers --- pkgs/os-specific/linux/kernel/common-config.nix | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 5ea3e16a8c55..c4f1181c64cd 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -1407,6 +1407,16 @@ let # Enable generic kernel watch queues # See https://docs.kernel.org/core-api/watch_queue.html WATCH_QUEUE = yes; + + # Enable coreboot firmware drivers. + # While these are called CONFIG_GOOGLE_*, they apply to coreboot systems in general. + GOOGLE_FIRMWARE = yes; + GOOGLE_CBMEM = whenAtLeast "6.2" module; + GOOGLE_COREBOOT_TABLE = module; + GOOGLE_MEMCONSOLE = module; + GOOGLE_MEMCONSOLE_COREBOOT = module; + GOOGLE_FRAMEBUFFER_COREBOOT = module; + GOOGLE_VPD = module; } // lib.optionalAttrs From 2228e7837e8df94645fd859bb51a1a7d95a82a0a Mon Sep 17 00:00:00 2001 From: Victor Engmark Date: Sat, 13 Dec 2025 17:17:15 +0100 Subject: [PATCH 05/26] nixos/test-driver: Document utility functions used in existing tests Co-authored-by: Jacek Galowicz --- .../src/test_driver/machine/__init__.py | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/nixos/lib/test-driver/src/test_driver/machine/__init__.py b/nixos/lib/test-driver/src/test_driver/machine/__init__.py index 31ea0d1364ae..2440fed2242e 100644 --- a/nixos/lib/test-driver/src/test_driver/machine/__init__.py +++ b/nixos/lib/test-driver/src/test_driver/machine/__init__.py @@ -292,12 +292,18 @@ class Machine: return self.booted and self.connected def log(self, msg: str) -> None: + """ + Log a message to console. + """ self.logger.log(msg, {"machine": self.name}) def log_serial(self, msg: str) -> None: self.logger.log_serial(msg, self.name) def nested(self, msg: str, attrs: dict[str, str] = {}) -> _GeneratorContextManager: + """ + Get nested logger, optionally with extra attributes. + """ my_attrs = {"machine": self.name} my_attrs.update(attrs) return self.logger.nested(msg, my_attrs) @@ -357,6 +363,9 @@ class Machine: retry(check_active, timeout) def get_unit_info(self, unit: str, user: str | None = None) -> dict[str, str]: + """ + Get a dictionary of systemd unit properties, as obtained via `systemctl show`. + """ status, lines = self.systemctl(f'--no-pager show "{unit}"', user) if status != 0: raise RequestedAssertionFailed( @@ -384,6 +393,9 @@ class Machine: property: str, user: str | None = None, ) -> str: + """ + Get the string value of a single systemd unit property + """ status, lines = self.systemctl( f'--no-pager show "{unit}" --property="{property}"', user, @@ -431,6 +443,9 @@ class Machine: return self.execute(f"systemctl {q}") def require_unit_state(self, unit: str, require_state: str = "active") -> None: + """ + Assert that the current state of a unit has a specific value. The default state is "active". + """ with self.nested( f"checking if unit '{unit}' has reached state '{require_state}'" ): @@ -648,6 +663,10 @@ class Machine: return output def wait_for_shutdown(self) -> None: + """ + Wait for the VM to power off. This does *not* initiate a shutdown; + that's usually done via `shutdown()`. + """ if not self.booted: return @@ -687,6 +706,9 @@ class Machine: raise TimeoutError def get_tty_text(self, tty: str) -> str: + """ + Get the output printed to a given TTY. + """ status, output = self.execute( f"fold -w$(stty -F /dev/tty{tty} size | awk '{{print $2}}') /dev/vcs{tty}" ) @@ -785,15 +807,25 @@ class Machine: retry(port_is_closed, timeout) def start_job(self, jobname: str, user: str | None = None) -> tuple[int, str]: + """ + Start systemd service. + """ return self.systemctl(f"start {jobname}", user) def stop_job(self, jobname: str, user: str | None = None) -> tuple[int, str]: + """ + Stop systemd service. + """ return self.systemctl(f"stop {jobname}", user) def wait_for_job(self, jobname: str) -> None: self.wait_for_unit(jobname) def connect(self) -> None: + """ + Wait for a connection to the guest root shell + """ + def shell_ready(timeout_secs: int) -> bool: """We sent some data from the backdoor service running on the guest to indicate that the backdoor shell is ready. From 7845da52672f22daef21f050b31d7cf3fe38a645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Tue, 16 Dec 2025 01:59:30 -0800 Subject: [PATCH 06/26] python3Packages.python-matter-server: 8.1.1 -> 8.1.2 Diff: https://github.com/home-assistant-libs/python-matter-server/compare/8.1.1...8.1.2 Changelog: https://github.com/home-assistant-libs/python-matter-server/releases/tag/8.1.2 --- .../python-modules/python-matter-server/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/python-matter-server/default.nix b/pkgs/development/python-modules/python-matter-server/default.nix index 811cebe76442..25b8939309bf 100644 --- a/pkgs/development/python-modules/python-matter-server/default.nix +++ b/pkgs/development/python-modules/python-matter-server/default.nix @@ -36,13 +36,13 @@ }: let - version = "8.1.1"; + version = "8.1.2"; src = fetchFromGitHub { owner = "home-assistant-libs"; repo = "python-matter-server"; tag = version; - hash = "sha256-vTJGe6OGFM+q9+iovsQMPwkrHNg2l4pw9BFEtSA/vmA="; + hash = "sha256-vnI57h/aesnaDYorq1PzcMCLmV0z0ZBJvMg4Nzh1Dtc="; }; paaCerts = stdenvNoCC.mkDerivation rec { From edfb9ab51b3f81b6f042f73b0f91a1d6390945cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Tue, 16 Dec 2025 02:11:32 -0800 Subject: [PATCH 07/26] python3Packages.python-matter-server: take PAA certs from home-assistant-chip-wheels --- .../python-matter-server/default.nix | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/pkgs/development/python-modules/python-matter-server/default.nix b/pkgs/development/python-modules/python-matter-server/default.nix index 25b8939309bf..e7115136791b 100644 --- a/pkgs/development/python-modules/python-matter-server/default.nix +++ b/pkgs/development/python-modules/python-matter-server/default.nix @@ -7,6 +7,7 @@ replaceVars, buildNpmPackage, python, + home-assistant-chip-wheels, # build setuptools, @@ -45,22 +46,18 @@ let hash = "sha256-vnI57h/aesnaDYorq1PzcMCLmV0z0ZBJvMg4Nzh1Dtc="; }; - paaCerts = stdenvNoCC.mkDerivation rec { + paaCerts = stdenvNoCC.mkDerivation { pname = "matter-server-paa-certificates"; - version = "1.4.0.0"; + inherit (home-assistant-chip-wheels) version src; - src = fetchFromGitHub { - owner = "project-chip"; - repo = "connectedhomeip"; - rev = "refs/tags/v${version}"; - hash = "sha256-uJyStkwynPCm1B2ZdnDC6IAGlh+BKGfJW7tU4tULHFo="; - }; + dontConfigure = true; + dontBuild = true; installPhase = '' runHook preInstall mkdir -p $out - cp $src/credentials/development/paa-root-certs/* $out/ + cp connectedhomeip/credentials/development/paa-root-certs/* $out/ runHook postInstall ''; From 1070d3820edda0073942019773f8ff9a15dde344 Mon Sep 17 00:00:00 2001 From: Ross Smyth <18294397+RossSmyth@users.noreply.github.com> Date: Tue, 16 Dec 2025 13:29:03 -0500 Subject: [PATCH 08/26] ocamlPackages.buildDunePackage: Use overriden pname and version --- pkgs/build-support/ocaml/dune.nix | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/pkgs/build-support/ocaml/dune.nix b/pkgs/build-support/ocaml/dune.nix index cbd1957dc2a8..a5f72dd37968 100644 --- a/pkgs/build-support/ocaml/dune.nix +++ b/pkgs/build-support/ocaml/dune.nix @@ -37,10 +37,10 @@ lib.extendMkDerivation { in if args ? minimalOCamlVersion && lib.versionOlder ocaml.version args.minimalOCamlVersion then - throw "${pname}-${version} is not available for OCaml ${ocaml.version}" + throw "${finalAttrs.pname}-${finalAttrs.version} is not available for OCaml ${ocaml.version}" else { - name = "ocaml${ocaml.version}-${pname}-${version}"; + name = "ocaml${ocaml.version}-${finalAttrs.pname}-${finalAttrs.version}"; strictDeps = true; @@ -58,14 +58,14 @@ lib.extendMkDerivation { buildPhase = args.buildPhase or '' runHook preBuild - dune build -p ${pname} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} + dune build -p ${finalAttrs.pname} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} runHook postBuild ''; installPhase = args.installPhase or '' runHook preInstall - dune install --prefix $out --libdir $OCAMLFIND_DESTDIR ${pname} \ + dune install --prefix $out --libdir $OCAMLFIND_DESTDIR ${finalAttrs.pname} \ ${ if lib.versionAtLeast Dune.version "2.9" then "--docdir $out/share/doc --mandir $out/share/man" @@ -78,11 +78,15 @@ lib.extendMkDerivation { checkPhase = args.checkPhase or '' runHook preCheck - dune runtest -p ${pname} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} + dune runtest -p ${finalAttrs.pname} ''${enableParallelBuilding:+-j $NIX_BUILD_CORES} runHook postCheck ''; meta = (args.meta or { }) // { + # TODO: ocaml.meta.platforms is where the compiler can run + # Package's meta.platforms are where the compiler can target. + # + # See: rustc.targetPlatforms platforms = args.meta.platforms or ocaml.meta.platforms; }; }; From 6062ffccd5ca2fb07472841ad27335df503bc9e3 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Wed, 17 Dec 2025 18:45:15 +0100 Subject: [PATCH 09/26] linux/common-config: fix for Linux 6.1.y 6.1.y is old enough that we use simpledrm, but not old enough that GOOGLE_FRAMEBUFFER_COREBOOT supports simpledrm. Explicitly setting GOOGLE_FRAMEBUFFER_COREBOOT to module therefore broke 6.1.y build. Our kernel configuration system will always answer "m" where possible, so it's not usually necessary to set options to "module" like this. It's less fragile to rely on that default where possible. I've checked that building the kernel configfile now works on 5.10.y, 6.1.y, 6.12.y, and 6.18.y, and checked that all these options still get set to "m" on at least the latter two. Fixes: fca84bde0f7d ("linux/common-config: Enable coreboot firmware drivers") --- pkgs/os-specific/linux/kernel/common-config.nix | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index c4f1181c64cd..5f285fa3eb5f 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -1411,12 +1411,6 @@ let # Enable coreboot firmware drivers. # While these are called CONFIG_GOOGLE_*, they apply to coreboot systems in general. GOOGLE_FIRMWARE = yes; - GOOGLE_CBMEM = whenAtLeast "6.2" module; - GOOGLE_COREBOOT_TABLE = module; - GOOGLE_MEMCONSOLE = module; - GOOGLE_MEMCONSOLE_COREBOOT = module; - GOOGLE_FRAMEBUFFER_COREBOOT = module; - GOOGLE_VPD = module; } // lib.optionalAttrs From 409317adb30b74fbf552294eae3760f2bbb85283 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Wed, 17 Dec 2025 19:08:38 +0100 Subject: [PATCH 10/26] linux/common-config: fix for Linux 5.10.y on aarch64 Until 5.15, HYPERV only supports x86, so forcing module broke configuration of 5.10 on aarch64. Our kernel configuration script sets every module it can to "m" anyway, so it was redundant and breakage-prone to set any value here for pre-6.18. I've confiremd that HYPERV is still set to "m" on 6.12 after this change. Fixes: e9b977bc41dc ("linux/common-config: update for 6.18") --- pkgs/os-specific/linux/kernel/common-config.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 5f285fa3eb5f..c41023c8cd4d 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -567,10 +567,7 @@ let (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "aarch64-linux") { # Enable Hyper-V guest stuff - HYPERV = lib.mkMerge [ - (whenOlder "6.18" module) - (whenAtLeast "6.18" yes) - ]; + HYPERV = whenAtLeast "6.18" yes; # Enable Hyper-V Synthetic DRM Driver DRM_HYPERV = whenAtLeast "5.14" module; # And disable the legacy framebuffer driver when we have the new one From 8c9283d617563599a54082940b7735acea2789b0 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Wed, 17 Dec 2025 19:21:05 +0100 Subject: [PATCH 11/26] linux/common-config: enable FUNCTION_GRAPH_RETVAL Enables recording return values of functions with ftrace. Already enabled by Fedora. --- pkgs/os-specific/linux/kernel/common-config.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 5f285fa3eb5f..d026c6107fe0 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -931,6 +931,7 @@ let BPF_EVENTS = yes; FUNCTION_PROFILER = yes; RING_BUFFER_BENCHMARK = no; + FUNCTION_GRAPH_RETVAL = whenAtLeast "6.5" yes; }; perf = { From a7b48d647a1107855b9a3ad41cb5e98856d409eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Wed, 17 Dec 2025 19:16:01 +0000 Subject: [PATCH 12/26] osu-lazer-bin: 2025.1209.0 -> 2025.1218.0 --- pkgs/by-name/os/osu-lazer-bin/package.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/os/osu-lazer-bin/package.nix b/pkgs/by-name/os/osu-lazer-bin/package.nix index f9728d698c9b..63fe418be4ab 100644 --- a/pkgs/by-name/os/osu-lazer-bin/package.nix +++ b/pkgs/by-name/os/osu-lazer-bin/package.nix @@ -10,23 +10,23 @@ let pname = "osu-lazer-bin"; - version = "2025.1209.0"; + version = "2025.1218.0"; src = { aarch64-darwin = fetchzip { url = "https://github.com/ppy/osu/releases/download/${version}-lazer/osu.app.Apple.Silicon.zip"; - hash = "sha256-qzmW9STCoIoz2+UGkybvB9AE536r3VghMahPFT020to="; + hash = "sha256-uuzXmpGvFucNwRXTcI2p5pEnDthXUo3ycMOEtm7cAhQ="; stripRoot = false; }; x86_64-darwin = fetchzip { url = "https://github.com/ppy/osu/releases/download/${version}-lazer/osu.app.Intel.zip"; - hash = "sha256-421KNsV4Nb3JSjJb0OMkdAEsb/YnI/st7Vio29WAtZs="; + hash = "sha256-0+5DilSzSdXSq9XevqH/tXdjVuMOaNk5Ve04o6oXIQo="; stripRoot = false; }; x86_64-linux = fetchurl { url = "https://github.com/ppy/osu/releases/download/${version}-lazer/osu.AppImage"; - hash = "sha256-42Fx3CxLcW97cxRXXCqPJ8NzRBnpi62IjxGLnSRkO4g="; + hash = "sha256-9TLdClS9+bDt0/cONsQjB5nUmis+rWOo5JAtw4oeGU0="; }; } .${stdenvNoCC.system} or (throw "osu-lazer-bin: ${stdenvNoCC.system} is unsupported."); From 6f5b61f8054c49390734b2b8b2c05f1e4a520640 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gutyina=20Gerg=C5=91?= Date: Wed, 17 Dec 2025 19:20:22 +0000 Subject: [PATCH 13/26] osu-lazer: 2025.1209.0 -> 2025.1218.0 --- pkgs/by-name/os/osu-lazer/deps.json | 12 ++++++------ pkgs/by-name/os/osu-lazer/package.nix | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/os/osu-lazer/deps.json b/pkgs/by-name/os/osu-lazer/deps.json index 6c34baef122c..2199038a1f39 100644 --- a/pkgs/by-name/os/osu-lazer/deps.json +++ b/pkgs/by-name/os/osu-lazer/deps.json @@ -596,13 +596,13 @@ }, { "pname": "ppy.LocalisationAnalyser", - "version": "2024.802.0", - "hash": "sha256-vyRWbdPUp5n8hJPJReU9LUy2o/bwwLT1po9f2M16tMA=" + "version": "2025.1208.0", + "hash": "sha256-klogAaNxpEVJKd1NcySgTUwv5WwrvaUXBRypj5wKX5Y=" }, { "pname": "ppy.LocalisationAnalyser.Tools", - "version": "2024.802.0", - "hash": "sha256-bniBSY8rS005OHO/ixn2NFM0/KIMiawHyMSXhlAEqwc=" + "version": "2025.1208.0", + "hash": "sha256-diVAckS1zNyVE1UGkbiu9jH/25j/c+Ad5XC3EjdLDsg=" }, { "pname": "ppy.ManagedBass", @@ -641,8 +641,8 @@ }, { "pname": "ppy.osu.Game.Resources", - "version": "2025.1125.0", - "hash": "sha256-jJHpti142HgEBFhTDl5iThM05mQypVEF0J7JIVskVQ0=" + "version": "2025.1215.0", + "hash": "sha256-u2xGoDYxVxqoRXLqcyN4r97HA1f9vqoVFJMmqMOd5vk=" }, { "pname": "ppy.osuTK.NS20", diff --git a/pkgs/by-name/os/osu-lazer/package.nix b/pkgs/by-name/os/osu-lazer/package.nix index 41f6e053df4d..b42b908bd64e 100644 --- a/pkgs/by-name/os/osu-lazer/package.nix +++ b/pkgs/by-name/os/osu-lazer/package.nix @@ -22,13 +22,13 @@ buildDotnetModule rec { pname = "osu-lazer"; - version = "2025.1209.0"; + version = "2025.1218.0"; src = fetchFromGitHub { owner = "ppy"; repo = "osu"; tag = "${version}-lazer"; - hash = "sha256-uxC+3M2KMnG292Ab1Sa/QnkxQXNogSqE7Tij/moDzkE="; + hash = "sha256-/gVzw1itPiEEoqTQSNCAgYpkN6cNT8PARYj2MKb4wNc="; }; projectFile = "osu.Desktop/osu.Desktop.csproj"; From b6581cc7e458e3d4e2d9a9a9ae997d093df2a52e Mon Sep 17 00:00:00 2001 From: Sizhe Zhao Date: Thu, 18 Dec 2025 13:08:14 +0800 Subject: [PATCH 14/26] htop: add withVimKeys Reference: https://github.com/NixOS/nixpkgs/issues/471645 --- pkgs/by-name/ht/htop-vim/package.nix | 91 ---------------------------- pkgs/by-name/ht/htop/package.nix | 25 +++++--- pkgs/top-level/all-packages.nix | 2 + 3 files changed, 20 insertions(+), 98 deletions(-) delete mode 100644 pkgs/by-name/ht/htop-vim/package.nix diff --git a/pkgs/by-name/ht/htop-vim/package.nix b/pkgs/by-name/ht/htop-vim/package.nix deleted file mode 100644 index 551573ef16d1..000000000000 --- a/pkgs/by-name/ht/htop-vim/package.nix +++ /dev/null @@ -1,91 +0,0 @@ -{ - lib, - fetchFromGitHub, - fetchpatch2, - stdenv, - autoreconfHook, - pkg-config, - ncurses, - libcap, - libnl, - sensorsSupport ? stdenv.hostPlatform.isLinux, - lm_sensors, - systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemdLibs, - systemdLibs, -}: - -assert systemdSupport -> stdenv.hostPlatform.isLinux; - -stdenv.mkDerivation rec { - pname = "htop-vim"; - version = "3.4.0"; - - src = fetchFromGitHub { - owner = "htop-dev"; - repo = "htop-vim"; - rev = version; - hash = "sha256-4M2Kzy/tTpIZzpyubnXWywQh7Np5InT4sYkVG2v6wWs"; - }; - - patches = [ - (fetchpatch2 { - name = "vim-keybindings.patch"; - url = "https://aur.archlinux.org/cgit/aur.git/plain/vim-keybindings.patch?h=htop-vim&id=d10f022b3ca1207200187a55f5b116a5bd8224f7"; - hash = "sha256-fZDTA2dCOmXxUYD6Wm41q7TxL7fgQOj8a/8yJC7Zags="; - }) - ]; - - # upstream removed pkg-config support and uses dlopen now - postPatch = - let - libnlPath = lib.getLib libnl; - in - lib.optionalString stdenv.hostPlatform.isLinux '' - substituteInPlace configure.ac \ - --replace-fail /usr/include/libnl3 ${lib.getDev libnl}/include/libnl3 - substituteInPlace linux/LibNl.c \ - --replace-fail libnl-3.so ${libnlPath}/lib/libnl-3.so \ - --replace-fail libnl-genl-3.so ${libnlPath}/lib/libnl-genl-3.so - ''; - - nativeBuildInputs = [ autoreconfHook ] ++ lib.optional stdenv.hostPlatform.isLinux pkg-config; - - buildInputs = [ - ncurses - ] - ++ lib.optionals stdenv.hostPlatform.isLinux [ - libcap - libnl - ] - ++ lib.optional sensorsSupport lm_sensors - ++ lib.optional systemdSupport systemdLibs; - - configureFlags = [ - "--enable-unicode" - "--sysconfdir=/etc" - ] - ++ lib.optionals stdenv.hostPlatform.isLinux [ - "--enable-affinity" - "--enable-capabilities" - "--enable-delayacct" - ] - ++ lib.optional sensorsSupport "--enable-sensors"; - - postFixup = - let - optionalPatch = pred: so: lib.optionalString pred "patchelf --add-needed ${so} $out/bin/htop"; - in - lib.optionalString (!stdenv.hostPlatform.isStatic) '' - ${optionalPatch sensorsSupport "${lib.getLib lm_sensors}/lib/libsensors.so"} - ${optionalPatch systemdSupport "${systemdLibs}/lib/libsystemd.so"} - ''; - - meta = { - description = "Interactive process viewer, with vim-style keybindings"; - homepage = "https://aur.archlinux.org/packages/htop-vim"; - license = lib.licenses.gpl2Only; - platforms = lib.platforms.all; - maintainers = with lib.maintainers; [ thiagokokada ]; - mainProgram = "htop"; - }; -} diff --git a/pkgs/by-name/ht/htop/package.nix b/pkgs/by-name/ht/htop/package.nix index b6d7221d73cb..61aa17313e6a 100644 --- a/pkgs/by-name/ht/htop/package.nix +++ b/pkgs/by-name/ht/htop/package.nix @@ -1,6 +1,7 @@ { lib, fetchFromGitHub, + fetchpatch2, stdenv, autoreconfHook, pkg-config, @@ -11,21 +12,28 @@ lm_sensors, systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemdLibs, systemdLibs, + withVimKeys ? false, }: assert systemdSupport -> stdenv.hostPlatform.isLinux; -stdenv.mkDerivation rec { - pname = "htop"; +stdenv.mkDerivation (finalAttrs: { + pname = "htop" + lib.optionalString withVimKeys "-vim"; version = "3.4.1"; src = fetchFromGitHub { owner = "htop-dev"; repo = "htop"; - tag = version; + tag = finalAttrs.version; hash = "sha256-fVqQwXbJus2IVE1Bzf3yJJpKK4qcZN/SCTX1XYkiHhU="; }; + patches = lib.optional withVimKeys (fetchpatch2 { + name = "vim-keybindings.patch"; + url = "https://aur.archlinux.org/cgit/aur.git/plain/vim-keybindings.patch?h=htop-vim&id=d10f022b3ca1207200187a55f5b116a5bd8224f7"; + hash = "sha256-fZDTA2dCOmXxUYD6Wm41q7TxL7fgQOj8a/8yJC7Zags="; + }); + # upstream removed pkg-config support and uses dlopen now postPatch = let @@ -72,16 +80,19 @@ stdenv.mkDerivation rec { ''; meta = { - description = "Interactive process viewer"; - homepage = "https://htop.dev"; + description = + "Interactive process viewer" + lib.optionalString withVimKeys ", with vim-style keybindings"; + homepage = + if withVimKeys then "https://aur.archlinux.org/packages/htop-vim" else "https://htop.dev"; license = lib.licenses.gpl2Only; platforms = lib.platforms.all; maintainers = with lib.maintainers; [ rob relrod SuperSandro2000 + thiagokokada ]; - changelog = "https://github.com/htop-dev/htop/blob/${version}/ChangeLog"; + changelog = "https://github.com/htop-dev/htop/blob/${finalAttrs.version}/ChangeLog"; mainProgram = "htop"; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 83f5c07ec7d3..9ccc3a6df7a7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1061,6 +1061,8 @@ with pkgs; } ); + htop-vim = htop.override { withVimKeys = true; }; + inherit (callPackages ../tools/networking/iroh/default.nix { }) iroh-relay iroh-dns-server From 13546ce45fe83f27a048ac8846a280872c34b3f2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 18 Dec 2025 06:41:25 +0000 Subject: [PATCH 15/26] redpanda-client: 25.3.1 -> 25.3.2 --- pkgs/by-name/re/redpanda-client/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/re/redpanda-client/package.nix b/pkgs/by-name/re/redpanda-client/package.nix index 1fca7e83bbb7..f5db9cf24a42 100644 --- a/pkgs/by-name/re/redpanda-client/package.nix +++ b/pkgs/by-name/re/redpanda-client/package.nix @@ -7,12 +7,12 @@ stdenv, }: let - version = "25.3.1"; + version = "25.3.2"; src = fetchFromGitHub { owner = "redpanda-data"; repo = "redpanda"; rev = "v${version}"; - sha256 = "sha256-/TodUIBsby4ewoyU72/5jHoBDoFHsSHqjJI7vtBlELU="; + sha256 = "sha256-mUIFPTh1VgXOfD6te0uHrhdGs00J0Hu6MXcR3g/6cZ8="; }; in buildGoModule rec { @@ -20,7 +20,7 @@ buildGoModule rec { inherit doCheck src version; modRoot = "./src/go/rpk"; runVend = false; - vendorHash = "sha256-6iyHM7SWqorjjebmZEJKzUU1w0waTywAY//UcfikdAo="; + vendorHash = "sha256-N/UCN0U/vTfYq91m3ehhtRvNxeoaGsLYQtnBUUZsU5U="; ldflags = [ ''-X "github.com/redpanda-data/redpanda/src/go/rpk/pkg/cli/cmd/version.version=${version}"'' From 7c57886b41e539dbf37e7ee1e315ee133dfac945 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 18 Dec 2025 11:32:11 +0000 Subject: [PATCH 16/26] libva-utils: 2.22.0 -> 2.23.0 --- pkgs/development/libraries/libva/utils.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/libva/utils.nix b/pkgs/development/libraries/libva/utils.nix index 945eab0f15b1..f511599899d3 100644 --- a/pkgs/development/libraries/libva/utils.nix +++ b/pkgs/development/libraries/libva/utils.nix @@ -15,13 +15,13 @@ stdenv.mkDerivation rec { pname = "libva-utils"; - version = "2.22.0"; + version = "2.23.0"; src = fetchFromGitHub { owner = "intel"; repo = "libva-utils"; rev = version; - sha256 = "sha256-CmhdhNNRO2j8lH7awp9YiKWMvV17GTBsXdrNY06jT2w="; + sha256 = "sha256-losxOPCrLCjtRKJ8RuwkjRllYYtJluKhscNfdxpC/xg="; }; nativeBuildInputs = [ From bce9fc25c53d438f5e88ce2cd896f4d5b0afa8bb Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 18 Dec 2025 12:20:25 +0000 Subject: [PATCH 17/26] ghostfolio: 2.222.0 -> 2.223.0 --- pkgs/by-name/gh/ghostfolio/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/gh/ghostfolio/package.nix b/pkgs/by-name/gh/ghostfolio/package.nix index e06c6b78197a..66f5c73f526b 100644 --- a/pkgs/by-name/gh/ghostfolio/package.nix +++ b/pkgs/by-name/gh/ghostfolio/package.nix @@ -11,13 +11,13 @@ buildNpmPackage rec { pname = "ghostfolio"; - version = "2.222.0"; + version = "2.223.0"; src = fetchFromGitHub { owner = "ghostfolio"; repo = "ghostfolio"; tag = version; - hash = "sha256-pMkmjGRdJjkEDMf9k7QqYIwkUX9LaeovQYG2i+vmOtE="; + hash = "sha256-qgIwAfcDP2TDQvg5Q92RDHm7HSv4KT16hsoaz8ux7fg="; # populate values that require us to use git. By doing this in postFetch we # can delete .git afterwards and maintain better reproducibility of the src. leaveDotGit = true; @@ -27,7 +27,7 @@ buildNpmPackage rec { ''; }; - npmDepsHash = "sha256-7Xf3Yn4fC+Jjc/UFu+cg9cVwiYK/VMasZwPOIJu771o="; + npmDepsHash = "sha256-KSKqybqVw2BG/WKuVRyNsneLYyedVeyCvNBLIREx7MQ="; nativeBuildInputs = [ prisma From eda2777394e690acf0b90d7492cd3587eb34ec2c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 18 Dec 2025 12:21:18 +0000 Subject: [PATCH 18/26] python3Packages.teslemetry-stream: 0.7.10 -> 0.8.2 --- pkgs/development/python-modules/teslemetry-stream/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/teslemetry-stream/default.nix b/pkgs/development/python-modules/teslemetry-stream/default.nix index 73468408f8c9..0c8aec16d485 100644 --- a/pkgs/development/python-modules/teslemetry-stream/default.nix +++ b/pkgs/development/python-modules/teslemetry-stream/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "teslemetry-stream"; - version = "0.7.10"; + version = "0.8.2"; pyproject = true; src = fetchFromGitHub { owner = "Teslemetry"; repo = "python-teslemetry-stream"; tag = "v${version}"; - hash = "sha256-2ZKoDb5ZKo27qHTyUmyDa2LlhcyJTkQByrJotY/qw4o="; + hash = "sha256-R3POLWYSinnFbmy80XWreAhTOojd8Kr8UL709rOoOto="; }; build-system = [ setuptools ]; From 51e12792b36147d23e39aaef0be772d805c3c70d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 18 Dec 2025 00:49:08 +0000 Subject: [PATCH 19/26] home-assistant-custom-components.frigate: 5.11.0 -> 5.13.0 https://github.com/blakeblackshear/frigate-hass-integration/releases/tag/v5.12.0 https://github.com/blakeblackshear/frigate-hass-integration/releases/tag/v5.13.0 --- .../home-assistant/custom-components/frigate/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/servers/home-assistant/custom-components/frigate/package.nix b/pkgs/servers/home-assistant/custom-components/frigate/package.nix index d303600c28a5..8c1cbc8afd82 100644 --- a/pkgs/servers/home-assistant/custom-components/frigate/package.nix +++ b/pkgs/servers/home-assistant/custom-components/frigate/package.nix @@ -18,13 +18,13 @@ buildHomeAssistantComponent rec { owner = "blakeblackshear"; domain = "frigate"; - version = "5.11.0"; + version = "5.13.0"; src = fetchFromGitHub { owner = "blakeblackshear"; repo = "frigate-hass-integration"; tag = "v${version}"; - hash = "sha256-cXjf5e4gbkvRS43xnpmL1lSaSvhts4eMetEqTP/RCOo="; + hash = "sha256-etYPrWa4xzfFm1QQuxh+rJqeoQ3P/nITM6GxJA/tPAA="; }; dependencies = [ hass-web-proxy-lib ]; From 6b6c8b140268f092e1fbc66fe7b6d122009ac3cb Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 18 Dec 2025 17:46:11 +0300 Subject: [PATCH 20/26] linux/common-config: explicitly select RUST_FW_LOADER_ABSTRACTIONS for now --- pkgs/os-specific/linux/kernel/common-config.nix | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 1687e8ee8226..28e640404ba1 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -561,6 +561,10 @@ let # Enable CEC over DisplayPort DRM_DP_CEC = whenOlder "6.10" yes; DRM_DISPLAY_DP_AUX_CEC = whenAtLeast "6.10" yes; + + # Required for Nova + # FIXME: remove after https://gitlab.freedesktop.org/drm/rust/kernel/-/commit/3d3352e73a55a4ccf110f8b3419bbe2fbfd8a030 lands + RUST_FW_LOADER_ABSTRACTIONS = whenAtLeast "6.12" yes; } // lib.optionalAttrs From 864081696f1e21bf0f86fc9787aab4c1711c3914 Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 18 Dec 2025 17:43:54 +0300 Subject: [PATCH 21/26] linux_testing: 6.18-rc7 -> 6.19-rc1 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index 1fc12f5f0ad8..b657ca25be6f 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -1,7 +1,7 @@ { "testing": { - "version": "6.18-rc7", - "hash": "sha256:03k1kj4bqg3bn0p4lzkbz0yqj1p50v2yr94lrld8rrkbwdawxx3r", + "version": "6.19-rc1", + "hash": "sha256:1jfcm4m2xbglirn8qdvhb3675fln9cjfva3v9hhs6a4qqqx2396f", "lts": false }, "6.1": { From 402ad0fff048992ac002f3857d9350e1399b781a Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 18 Dec 2025 17:28:09 +0300 Subject: [PATCH 22/26] linux_6_18: 6.18.1 -> 6.18.2 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index b657ca25be6f..d0f7b5adfc17 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -35,8 +35,8 @@ "lts": false }, "6.18": { - "version": "6.18.1", - "hash": "sha256:1m955svk1sfmhpw5wpkhg1dpnxmwsnpdqnivmw8alaniy3rqp9yh", + "version": "6.18.2", + "hash": "sha256:0smrmbnlhfivw2kx689wd52aff80gf0gw9wqz4s2nja9nyx6p32m", "lts": false } } From 52e64396e98aef211f4127416dbdae17a01b3d3f Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 18 Dec 2025 17:28:11 +0300 Subject: [PATCH 23/26] linux_6_17: 6.17.12 -> 6.17.13 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index d0f7b5adfc17..77a2ec567486 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -30,8 +30,8 @@ "lts": true }, "6.17": { - "version": "6.17.12", - "hash": "sha256:1mlqirjzyx3zvvm87gf7slj2d5gdpp13vw91dgbfk54iz6b08y22", + "version": "6.17.13", + "hash": "sha256:1fgdy9j90yfd4c2yqdciasdhda14pbfrpzkgriin2r6i7bf04s0i", "lts": false }, "6.18": { From b01ca3bca3af924e09ad3c59e52df993dd44d1a9 Mon Sep 17 00:00:00 2001 From: K900 Date: Thu, 18 Dec 2025 17:28:15 +0300 Subject: [PATCH 24/26] linux_6_12: 6.12.62 -> 6.12.63 --- pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json index 77a2ec567486..6672d00ec7b4 100644 --- a/pkgs/os-specific/linux/kernel/kernels-org.json +++ b/pkgs/os-specific/linux/kernel/kernels-org.json @@ -25,8 +25,8 @@ "lts": true }, "6.12": { - "version": "6.12.62", - "hash": "sha256:04rcnr7bgrqqfj62l31mxx553bjdalr5f46xjbcmvawgmj2wdqhk", + "version": "6.12.63", + "hash": "sha256:1cvxvwlmnqw71nf6nizf0hpp710a8dsczz5bjwy3i55qwkzwa0lm", "lts": true }, "6.17": { From 1d762ee483d5f1871ab61b293b38afc0c5609355 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 18 Dec 2025 14:53:09 +0000 Subject: [PATCH 25/26] tree-sitter-grammars.tree-sitter-cmake: 0.7.1 -> 0.7.2 --- .../tools/parsing/tree-sitter/grammars/grammar-sources.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/grammar-sources.nix b/pkgs/development/tools/parsing/tree-sitter/grammars/grammar-sources.nix index 5adf5f2b26a4..0b4cd9d02800 100644 --- a/pkgs/development/tools/parsing/tree-sitter/grammars/grammar-sources.nix +++ b/pkgs/development/tools/parsing/tree-sitter/grammars/grammar-sources.nix @@ -48,9 +48,9 @@ }; cmake = { - version = "0.7.1"; + version = "0.7.2"; url = "github:uyha/tree-sitter-cmake"; - hash = "sha256-OxViW7H5fNc5BP072ob7GGgx1EYc6TiQEut0wHGrE1c="; + hash = "sha256-mR+gA7eWigC2zO1gMHzOgRagsfK1y/NBsn3mAOqR35A="; }; comment = { From c07079038eeb986b5d3f2bfceef51f0c3cab6bc7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 18 Dec 2025 14:57:42 +0000 Subject: [PATCH 26/26] tree-sitter-grammars.tree-sitter-slint: 0-unstable-2025-07-13 -> 0-unstable-2025-12-09 --- .../tools/parsing/tree-sitter/grammars/grammar-sources.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/grammar-sources.nix b/pkgs/development/tools/parsing/tree-sitter/grammars/grammar-sources.nix index 5adf5f2b26a4..3cd3ca841982 100644 --- a/pkgs/development/tools/parsing/tree-sitter/grammars/grammar-sources.nix +++ b/pkgs/development/tools/parsing/tree-sitter/grammars/grammar-sources.nix @@ -603,9 +603,9 @@ }; slint = { - version = "0-unstable-2025-07-13"; - url = "github:slint-ui/tree-sitter-slint/96bc969d20ff347030519184ea2467f4046a524d"; - hash = "sha256-yTZxuA3Bco0Cv+kZ1VbfQZbIu12Y5N4b3HIUJ/PBpWA="; + version = "0-unstable-2025-12-09"; + url = "github:slint-ui/tree-sitter-slint/10fb0f188d7950400773c06ba6c31075866e14bf"; + hash = "sha256-60DfIx7aQqe0/ocxbpr00eU3IPs23E8TUILcVGrBYVs="; }; smithy = {