From b86f2bd711cb1356a1c64bb1ffc6d1dd461e849e Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Mon, 18 Nov 2024 13:33:09 +0100 Subject: [PATCH 01/22] Add /jpackage_script check --- src/runit/JPackageScriptCheck.java | 35 ++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/runit/JPackageScriptCheck.java diff --git a/src/runit/JPackageScriptCheck.java b/src/runit/JPackageScriptCheck.java new file mode 100644 index 0000000..890326f --- /dev/null +++ b/src/runit/JPackageScriptCheck.java @@ -0,0 +1,35 @@ +package tests; + +import static io.kojan.runit.api.RUnit.*; +import static io.kojan.runit.api.matcher.RUnitMatchers.*; +import static org.hamcrest.Matchers.*; + +import java.nio.charset.StandardCharsets; + +import org.junit.jupiter.api.DisplayName; + +import io.kojan.javadeptools.rpm.RpmInfo; +import io.kojan.runit.api.ExcludeSource; +import io.kojan.runit.api.ExcludeSymlink; +import io.kojan.runit.api.FileTest; +import io.kojan.runit.api.IncludeFileName; + +@DisplayName("/jpackage_script") +public class JPackageScriptCheck { + @FileTest + @IncludeFileName("/usr/bin/.*") + @ExcludeSource + @ExcludeSymlink + public void testJPackageScript(RpmInfo rpm, byte[] bytes) { + assumeThat("The binary is a script with a shebang", bytes.length, greaterThan(1)); + assumeThat("The binary is a script with a shebang", bytes[0], is((byte)'#')); + assumeThat("The binary is a script with a shebang", bytes[1], is((byte)'!')); + String content = new String(bytes, StandardCharsets.UTF_8); + assumeThat("The script was generated with %jpackage_script", content, + containsString(". /usr/share/java-utils/java-functions\n")); + assertThat("The script explicitly sets JAVA_HOME to Java 21", content, + containsString("\nexport JAVA_HOME=\"${JAVA_HOME:-/usr/lib/jvm/jre-21-openjdk}\"\n")); + assertThat("Requires on java-21-openjdk-headless are present", rpm, requires("java-21-openjdk-headless")); + assertThat("Requires on javapackages-tools are present", rpm, requires("javapackages-tools")); + } +} From ed92ce4e3beaab56cfade082f8702e4231d8a7e2 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Sun, 24 Nov 2024 19:22:25 +0100 Subject: [PATCH 02/22] Allow duplicate files in ant-openjdk* --- src/DuplicateFileValidatorJP.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/DuplicateFileValidatorJP.java b/src/DuplicateFileValidatorJP.java index 477c163..19addc2 100644 --- a/src/DuplicateFileValidatorJP.java +++ b/src/DuplicateFileValidatorJP.java @@ -25,6 +25,11 @@ public class DuplicateFileValidatorJP extends DefaultDuplicateFileValidator { return providerRpms.stream().map(Common::getPackageName).distinct().count() == 1; } + // FIXME this only applies to Fedora < 42 + if (providerRpms.stream().allMatch(rpm -> rpm.getName().startsWith("ant-openjdk"))) { + return true; + } + // FIXME this only applies to Fedora < 42 if (providerRpms.stream().allMatch(rpm -> rpm.getName().startsWith("maven-openjdk"))) { return true; From d63363452808dd25990c1a899484cbc74dcc4b3d Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Fri, 29 Nov 2024 07:07:02 +0100 Subject: [PATCH 03/22] Fix jpackage_script check --- src/runit/JPackageScriptCheck.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/runit/JPackageScriptCheck.java b/src/runit/JPackageScriptCheck.java index 890326f..376e596 100644 --- a/src/runit/JPackageScriptCheck.java +++ b/src/runit/JPackageScriptCheck.java @@ -9,6 +9,7 @@ import java.nio.charset.StandardCharsets; import org.junit.jupiter.api.DisplayName; import io.kojan.javadeptools.rpm.RpmInfo; +import io.kojan.runit.api.ExcludeFileName; import io.kojan.runit.api.ExcludeSource; import io.kojan.runit.api.ExcludeSymlink; import io.kojan.runit.api.FileTest; @@ -20,6 +21,7 @@ public class JPackageScriptCheck { @IncludeFileName("/usr/bin/.*") @ExcludeSource @ExcludeSymlink + @ExcludeFileName("/usr/bin/ant") public void testJPackageScript(RpmInfo rpm, byte[] bytes) { assumeThat("The binary is a script with a shebang", bytes.length, greaterThan(1)); assumeThat("The binary is a script with a shebang", bytes[0], is((byte)'#')); @@ -28,7 +30,7 @@ public class JPackageScriptCheck { assumeThat("The script was generated with %jpackage_script", content, containsString(". /usr/share/java-utils/java-functions\n")); assertThat("The script explicitly sets JAVA_HOME to Java 21", content, - containsString("\nexport JAVA_HOME=\"${JAVA_HOME:-/usr/lib/jvm/jre-21-openjdk}\"\n")); + containsString("\nJAVA_HOME=\"${JAVA_HOME:-/usr/lib/jvm/jre-21-openjdk}\"\n")); assertThat("Requires on java-21-openjdk-headless are present", rpm, requires("java-21-openjdk-headless")); assertThat("Requires on javapackages-tools are present", rpm, requires("javapackages-tools")); } From cfa4787b3bda4d343c0ef89945e2349ae36a467e Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Fri, 29 Nov 2024 07:17:24 +0100 Subject: [PATCH 04/22] Remove duplitcate checks irrelevant for Fedora 42+ --- src/DuplicateFileValidatorJP.java | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/src/DuplicateFileValidatorJP.java b/src/DuplicateFileValidatorJP.java index 19addc2..cd8f923 100644 --- a/src/DuplicateFileValidatorJP.java +++ b/src/DuplicateFileValidatorJP.java @@ -25,21 +25,6 @@ public class DuplicateFileValidatorJP extends DefaultDuplicateFileValidator { return providerRpms.stream().map(Common::getPackageName).distinct().count() == 1; } - // FIXME this only applies to Fedora < 42 - if (providerRpms.stream().allMatch(rpm -> rpm.getName().startsWith("ant-openjdk"))) { - return true; - } - - // FIXME this only applies to Fedora < 42 - if (providerRpms.stream().allMatch(rpm -> rpm.getName().startsWith("maven-openjdk"))) { - return true; - } - - // FIXME this only applies to Fedora < 42 - if (providerRpms.stream().allMatch(rpm -> rpm.getName().startsWith("maven-local-openjdk"))) { - return true; - } - return false; } } From 5f09737c339e941228d939625e28a163cc9b316b Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Fri, 29 Nov 2024 07:28:19 +0100 Subject: [PATCH 05/22] Add check for Conflicts --- src/runit/BasicCheck.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/runit/BasicCheck.java b/src/runit/BasicCheck.java index 53c00bc..8875b72 100644 --- a/src/runit/BasicCheck.java +++ b/src/runit/BasicCheck.java @@ -1,6 +1,7 @@ package tests; import static io.kojan.runit.api.RUnit.*; +import static io.kojan.runit.api.matcher.RUnitMatchers.*; import static org.hamcrest.Matchers.*; import java.util.regex.Matcher; @@ -48,4 +49,10 @@ public class BasicCheck { assertThat("Binary package Release matches SRPM Release", rpm.getRelease(), is(matcher.group(3))); } + @PackageTest + @IncludeBinary + public void noConflicts(RpmInfo rpm) { + assertThat("Packages have no explicit Conflicts", rpm, not(conflicts(".*"))); + } + } From 4d05ece41c595491f4d1e369cbe13de0310aebb6 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Fri, 29 Nov 2024 07:28:59 +0100 Subject: [PATCH 06/22] Use RUnitMatchers for matching bundled provides --- src/runit/BasicCheck.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/runit/BasicCheck.java b/src/runit/BasicCheck.java index 8875b72..6058c81 100644 --- a/src/runit/BasicCheck.java +++ b/src/runit/BasicCheck.java @@ -35,8 +35,7 @@ public class BasicCheck { @ExcludeBinary("sisu") @ExcludeBinary("javapackages-bootstrap") public void bundledProvides(RpmInfo rpm) { - assertThat("No bundled(*) provides", () -> rpm.getProvides().stream().map(RpmDependency::getName).iterator(), - everyItem(not(startsWith("bundled(")))); + assertThat("No bundled(*) provides", rpm, not(provides("bundled\\(.*\\)"))); } @PackageTest From 1433c52224c8677ab0230035324ba5716189c3f0 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Fri, 29 Nov 2024 07:33:03 +0100 Subject: [PATCH 07/22] Enable apache-commons JPMS provides check --- src/runit/ApacheCommonsCheck.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/runit/ApacheCommonsCheck.java b/src/runit/ApacheCommonsCheck.java index 51b5b96..9d73653 100644 --- a/src/runit/ApacheCommonsCheck.java +++ b/src/runit/ApacheCommonsCheck.java @@ -6,7 +6,6 @@ import static org.hamcrest.Matchers.*; import java.util.List; import java.util.stream.Collectors; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.DisplayName; import io.kojan.javadeptools.rpm.*; @@ -26,7 +25,6 @@ public class ApacheCommonsCheck { @PackageTest @IncludeBinary("apache-commons-[a-z][a-z0-9]+") @ExcludeBinary("apache-commons-parent") // Parent POM, no Java code - @Disabled("JPMS provides are not generated for now") public void jpmsProvides(RpmInfo rpm) { String id = rpm.getName().substring("apache-commons-".length()); List prov = rpm.getProvides().stream().map(RpmDependency::getName).collect(Collectors.toList()); From 27b31452b99eaf3ae0f3c1fc9b87fca19be45f2b Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Fri, 29 Nov 2024 09:24:43 +0100 Subject: [PATCH 08/22] Use RUnitMatchers for matching apache-commons JPMS provides --- src/runit/ApacheCommonsCheck.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/runit/ApacheCommonsCheck.java b/src/runit/ApacheCommonsCheck.java index 9d73653..a2fe4d7 100644 --- a/src/runit/ApacheCommonsCheck.java +++ b/src/runit/ApacheCommonsCheck.java @@ -1,6 +1,7 @@ package tests; import static io.kojan.runit.api.RUnit.*; +import static io.kojan.runit.api.matcher.RUnitMatchers.*; import static org.hamcrest.Matchers.*; import java.util.List; @@ -27,9 +28,8 @@ public class ApacheCommonsCheck { @ExcludeBinary("apache-commons-parent") // Parent POM, no Java code public void jpmsProvides(RpmInfo rpm) { String id = rpm.getName().substring("apache-commons-".length()); - List prov = rpm.getProvides().stream().map(RpmDependency::getName).collect(Collectors.toList()); - assertThat("Apache Commons packages should have jpms provides", prov, - hasItem("jpms(org.apache.commons." + id + ")")); + assertThat("Apache Commons packages should have jpms provides", rpm, + provides("jpms\\(org.apache.commons." + id + "\\)")); } @PackageTest From c9fe403c5ebeca967109201ca11543e1bb01c640 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Fri, 29 Nov 2024 09:38:17 +0100 Subject: [PATCH 09/22] Allow versioned apache-commons JPMS provides --- src/runit/ApacheCommonsCheck.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runit/ApacheCommonsCheck.java b/src/runit/ApacheCommonsCheck.java index a2fe4d7..8947cfe 100644 --- a/src/runit/ApacheCommonsCheck.java +++ b/src/runit/ApacheCommonsCheck.java @@ -29,7 +29,7 @@ public class ApacheCommonsCheck { public void jpmsProvides(RpmInfo rpm) { String id = rpm.getName().substring("apache-commons-".length()); assertThat("Apache Commons packages should have jpms provides", rpm, - provides("jpms\\(org.apache.commons." + id + "\\)")); + provides("jpms\\(org.apache.commons." + id + "\\)( = .*)?")); } @PackageTest From 50e2e10695a1427aca249ac651a24365d91131bb Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Fri, 29 Nov 2024 09:50:19 +0100 Subject: [PATCH 10/22] Drop unneeded imports --- src/runit/ApacheCommonsCheck.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/runit/ApacheCommonsCheck.java b/src/runit/ApacheCommonsCheck.java index 8947cfe..8a079c8 100644 --- a/src/runit/ApacheCommonsCheck.java +++ b/src/runit/ApacheCommonsCheck.java @@ -4,9 +4,6 @@ import static io.kojan.runit.api.RUnit.*; import static io.kojan.runit.api.matcher.RUnitMatchers.*; import static org.hamcrest.Matchers.*; -import java.util.List; -import java.util.stream.Collectors; - import org.junit.jupiter.api.DisplayName; import io.kojan.javadeptools.rpm.*; From 745343f757a9b463e5526a1cdeb270def1aebb12 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Sat, 30 Nov 2024 10:22:23 +0100 Subject: [PATCH 11/22] Update to RUnit version 1.0.0 The Sonatype snapshot repository is no longer needed as RUnit 1.0.0 is available on Maven Central, but keep it commented out in case we want to start using RUnit snapshots again. The list of dependencies was generated with Maven and jq: mvn -f ~/.m2/repository/io/kojan/runit-validator/1.0.0/runit-validator-1.0.0.pom \ dependency:tree -Dscope=runtime -DoutputType=json -DoutputFile=/dev/fd/3 3>&1 1>&2 | jq -r 'recurse(.children[]?) | (" " + .groupId + ":" + .artifactId + ":" + .version + " \\")' | sort --- src/javapackages-validator.properties | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/javapackages-validator.properties b/src/javapackages-validator.properties index 2a50b1b..4ad3076 100644 --- a/src/javapackages-validator.properties +++ b/src/javapackages-validator.properties @@ -1,13 +1,13 @@ compiler.release=22 -repositories=https://s01.oss.sonatype.org/content/repositories/snapshots +#repositories=https://s01.oss.sonatype.org/content/repositories/snapshots dependencies=\ - io.kojan:runit-api:1.0.0-SNAPSHOT \ - io.kojan:runit-validator:1.0.0-SNAPSHOT \ + io.kojan:runit-api:1.0.0 \ + io.kojan:runit-validator:1.0.0 \ org.apiguardian:apiguardian-api:1.1.2 \ - org.hamcrest:hamcrest:2.2 \ - org.junit.jupiter:junit-jupiter-api:5.10.0 \ - org.junit.jupiter:junit-jupiter-engine:5.10.0 \ - org.junit.platform:junit-platform-commons:1.10.0 \ - org.junit.platform:junit-platform-engine:1.10.0 \ - org.junit.platform:junit-platform-launcher:1.10.0 \ + org.hamcrest:hamcrest:3.0 \ + org.junit.jupiter:junit-jupiter-api:5.11.3 \ + org.junit.jupiter:junit-jupiter-engine:5.11.3 \ + org.junit.platform:junit-platform-commons:1.11.3 \ + org.junit.platform:junit-platform-engine:1.11.3 \ + org.junit.platform:junit-platform-launcher:1.11.3 \ org.opentest4j:opentest4j:1.3.0 \ From 0cd13708686fbf7b9c35531a408c21ce9904cca8 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Mon, 2 Dec 2024 17:44:02 +0100 Subject: [PATCH 12/22] Skip file check for javapackages-tools and javapackages-bootstrap --- src/FilesValidatorJP.java | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/src/FilesValidatorJP.java b/src/FilesValidatorJP.java index dd1f568..7425337 100644 --- a/src/FilesValidatorJP.java +++ b/src/FilesValidatorJP.java @@ -2,16 +2,20 @@ package org.fedoraproject.javapackages.validator.validators.jp; import java.nio.file.Path; import java.util.Collections; +import java.util.LinkedHashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.fedoraproject.javapackages.validator.spi.Decorated; import org.fedoraproject.javapackages.validator.util.Common; import org.fedoraproject.javapackages.validator.util.FilesValidator; import io.kojan.javadeptools.rpm.RpmInfo; +import io.kojan.javadeptools.rpm.RpmPackage; public class FilesValidatorJP extends FilesValidator { @Override @@ -36,6 +40,12 @@ public class FilesValidatorJP extends FilesValidator { static final String USR_LIB_BUILD_ID = "/usr/lib/.build-id"; } + private static Set ignoredComponents = new LinkedHashSet<>(); + static { + ignoredComponents.add("javapackages-bootstrap"); + ignoredComponents.add("javapackages-tools"); + } + private static Map> nameAliases = new TreeMap<>(); static { nameAliases.put("maven-resolver", List.of("aether")); @@ -57,7 +67,6 @@ public class FilesValidatorJP extends FilesValidator { prefixes.put("jansi", List.of(Prefix.USR_LIB_BUILD_ID)); prefixes.put("javacc", List.of(Prefix.USR_BIN)); prefixes.put("java_cup", List.of(Prefix.USR_BIN)); - prefixes.put("javapackages-bootstrap", List.of("/usr/lib/java/javapackages-bootstrap", "/usr/lib/javapackages-bootstrap", "/usr/lib/rpm", "/etc/rpm", "/usr/libexec/javapackages-bootstrap")); prefixes.put("jflex", List.of(Prefix.USR_BIN)); prefixes.put("maven", List.of(Prefix.ETC_PKG, Prefix.ETC_JAVA, Prefix.JPBINDING, Prefix.USR_BIN)); prefixes.put("modello", List.of(Prefix.USR_BIN)); @@ -317,6 +326,16 @@ public class FilesValidatorJP extends FilesValidator { return false; } + @Override + public void validate(RpmPackage rpm) throws Exception { + if (ignoredComponents.contains(rpm.getInfo().getSourceName())) { + skip("{0}: the component {1} is ignored", Decorated.rpm(rpm), + Decorated.actual(rpm.getInfo().getSourceName())); + } else { + super.validate(rpm); + } + } + @Override public boolean allowedFile(RpmInfo rpm, Path path) { if (rpm.isSourcePackage()) { @@ -324,11 +343,6 @@ public class FilesValidatorJP extends FilesValidator { return true; } - // if (Common.getPackageName(rpm).equals("javapackages-bootstrap")) { - // // TODO - // return true; - // } - String filename = path.toString(); if (rpm.getName().equals(Common.getPackageName(rpm) + "-javadoc") || rpm.getName().equals(Common.getPackageName(rpm) + "-javadocs")) { From 75adec844b7300cd767b8fda98007b0c1576121f Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Wed, 11 Dec 2024 07:10:11 +0100 Subject: [PATCH 13/22] Use unnamed variables (JEP 456) See https://openjdk.org/jeps/456 --- src/FilesValidatorJP.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/FilesValidatorJP.java b/src/FilesValidatorJP.java index 7425337..133860c 100644 --- a/src/FilesValidatorJP.java +++ b/src/FilesValidatorJP.java @@ -164,7 +164,7 @@ public class FilesValidatorJP extends FilesValidator { } if (patternsCache.computeIfAbsent(Common.getPackageName(rpm) + "/javadoc", - p -> Pattern.compile("/usr/share/javadoc/" + Common.getPackageName(rpm) + "(:?/.*)?")) + _ -> Pattern.compile("/usr/share/javadoc/" + Common.getPackageName(rpm) + "(:?/.*)?")) .matcher(filename).matches()) { return true; } From af194b66419bf528a6491f2d278a0ffa38782c76 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Wed, 11 Dec 2024 07:19:27 +0100 Subject: [PATCH 14/22] Skip ExclusiveArch validation for known non-Java packages --- src/JavaExclusiveArchValidatorJP.java | 27 +++++++++++++++++++++++++++ src/ValidatorFactoryGeneric.java | 2 +- 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 src/JavaExclusiveArchValidatorJP.java diff --git a/src/JavaExclusiveArchValidatorJP.java b/src/JavaExclusiveArchValidatorJP.java new file mode 100644 index 0000000..7d3de00 --- /dev/null +++ b/src/JavaExclusiveArchValidatorJP.java @@ -0,0 +1,27 @@ +package org.fedoraproject.javapackages.validator.validators.jp; + +import java.util.Set; + +import org.fedoraproject.javapackages.validator.spi.Decorated; +import org.fedoraproject.javapackages.validator.validators.JavaExclusiveArchValidator; + +import io.kojan.javadeptools.rpm.RpmPackage; + +public class JavaExclusiveArchValidatorJP extends JavaExclusiveArchValidator { + @Override + public String getTestName() { + return "/java/jp/exclusive_arch"; + } + + private static final Set SKIPPED = Set.of("javapackages-tools", "byaccj", "jurand"); + + @Override + public void validate(RpmPackage rpm) throws Exception { + String component = rpm.getInfo().getSourceName(); + if (SKIPPED.contains(component)) { + skip("Skipping rpm {0}", Decorated.rpm(rpm)); + return; + } + super.validate(rpm); + } +} diff --git a/src/ValidatorFactoryGeneric.java b/src/ValidatorFactoryGeneric.java index afb2d34..ae33eb4 100644 --- a/src/ValidatorFactoryGeneric.java +++ b/src/ValidatorFactoryGeneric.java @@ -12,7 +12,7 @@ public class ValidatorFactoryGeneric implements ValidatorFactory { return List.of(new Validator[] { new AttributeProvidesValidator(), new JavadocNoarchValidator(), - new JavaExclusiveArchValidator(), + new JavaExclusiveArchValidatorJP(), new MavenMetadataValidator(), new NoBootstrapValidator(), }); From 25bf954aac4363a2d9a498d8c6e30120f53cf21c Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Sun, 16 Feb 2025 18:06:31 +0100 Subject: [PATCH 15/22] Allow public domain for plexus-utils4 --- src/runit/LicenseCheck.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/runit/LicenseCheck.java b/src/runit/LicenseCheck.java index e6912cb..020f218 100644 --- a/src/runit/LicenseCheck.java +++ b/src/runit/LicenseCheck.java @@ -56,6 +56,7 @@ public class LicenseCheck { private static final Set PUBLIC_DOMAIN_PACKAGES = Set.of( // "aopalliance", // "plexus-utils", // + "plexus-utils4", // "xz-java", // "javapackages-bootstrap" // special case, as it it bundles all the above ); From 4758ee4fda34340455f3390ac8210ba258a23a66 Mon Sep 17 00:00:00 2001 From: Marian Koncek Date: Tue, 25 Feb 2025 10:48:31 +0100 Subject: [PATCH 16/22] Allow junit5 to install executables --- src/FilesValidatorJP.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/FilesValidatorJP.java b/src/FilesValidatorJP.java index 133860c..141971f 100644 --- a/src/FilesValidatorJP.java +++ b/src/FilesValidatorJP.java @@ -68,6 +68,7 @@ public class FilesValidatorJP extends FilesValidator { prefixes.put("javacc", List.of(Prefix.USR_BIN)); prefixes.put("java_cup", List.of(Prefix.USR_BIN)); prefixes.put("jflex", List.of(Prefix.USR_BIN)); + prefixes.put("junit5", List.of(Prefix.USR_BIN)); prefixes.put("maven", List.of(Prefix.ETC_PKG, Prefix.ETC_JAVA, Prefix.JPBINDING, Prefix.USR_BIN)); prefixes.put("modello", List.of(Prefix.USR_BIN)); prefixes.put("objectweb-asm", List.of(Prefix.USR_BIN)); From 5db07614a8c07ed7aa08215fcc6a601d92bd876f Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Wed, 26 Feb 2025 20:41:03 +0100 Subject: [PATCH 17/22] Add files whiletists for jline --- src/FilesValidatorJP.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/FilesValidatorJP.java b/src/FilesValidatorJP.java index 141971f..c91ed1a 100644 --- a/src/FilesValidatorJP.java +++ b/src/FilesValidatorJP.java @@ -68,6 +68,7 @@ public class FilesValidatorJP extends FilesValidator { prefixes.put("javacc", List.of(Prefix.USR_BIN)); prefixes.put("java_cup", List.of(Prefix.USR_BIN)); prefixes.put("jflex", List.of(Prefix.USR_BIN)); + prefixes.put("jline", List.of(Prefix.USR_LIB_BUILD_ID)); prefixes.put("junit5", List.of(Prefix.USR_BIN)); prefixes.put("maven", List.of(Prefix.ETC_PKG, Prefix.ETC_JAVA, Prefix.JPBINDING, Prefix.USR_BIN)); prefixes.put("modello", List.of(Prefix.USR_BIN)); @@ -83,6 +84,7 @@ public class FilesValidatorJP extends FilesValidator { exceptionalFiles.put("aqute-bnd", List.of("/etc/ant.d/aqute-bnd")); exceptionalFiles.put("maven", List.of("/etc/m2.conf")); exceptionalFiles.put("jansi", List.of("/usr/lib/jansi", "/usr/lib/jansi/libjansi.so", "/usr/lib/java/jansi")); + exceptionalFiles.put("jline", List.of("/usr/lib/jline", "/usr/lib/jline/libjlinenative.so", "/usr/lib/java/jline")); } private static boolean namesRelated(String lhs, String rhs) { From d5d139af27dc06c0b1366c2e67475b1ed717fa2b Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Wed, 26 Feb 2025 20:43:17 +0100 Subject: [PATCH 18/22] Increase allowed size for javapackages-bootstrap --- src/RpmFilesizeValidatorJP.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RpmFilesizeValidatorJP.java b/src/RpmFilesizeValidatorJP.java index ef9dca7..9cbe437 100644 --- a/src/RpmFilesizeValidatorJP.java +++ b/src/RpmFilesizeValidatorJP.java @@ -18,7 +18,7 @@ public class RpmFilesizeValidatorJP extends RpmFilesizeValidator { } if (Common.getPackageName(rpm).equals("javapackages-bootstrap")) { - return sizeBytes <= 40_000_000; + return sizeBytes <= 60_000_000; } // javadoc rpms From 13f948525288e7a72b7586c4e7da2805c960e166 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Wed, 26 Feb 2025 23:06:06 +0100 Subject: [PATCH 19/22] Configure files for maven4 --- src/FilesValidatorJP.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/FilesValidatorJP.java b/src/FilesValidatorJP.java index c91ed1a..503c27e 100644 --- a/src/FilesValidatorJP.java +++ b/src/FilesValidatorJP.java @@ -71,6 +71,7 @@ public class FilesValidatorJP extends FilesValidator { prefixes.put("jline", List.of(Prefix.USR_LIB_BUILD_ID)); prefixes.put("junit5", List.of(Prefix.USR_BIN)); prefixes.put("maven", List.of(Prefix.ETC_PKG, Prefix.ETC_JAVA, Prefix.JPBINDING, Prefix.USR_BIN)); + prefixes.put("maven4", List.of(Prefix.ETC_PKG, Prefix.ETC_JAVA, Prefix.JPBINDING, Prefix.USR_BIN)); prefixes.put("modello", List.of(Prefix.USR_BIN)); prefixes.put("objectweb-asm", List.of(Prefix.USR_BIN)); prefixes.put("xerces-j2", List.of(Prefix.USR_BIN)); @@ -83,6 +84,7 @@ public class FilesValidatorJP extends FilesValidator { static { exceptionalFiles.put("aqute-bnd", List.of("/etc/ant.d/aqute-bnd")); exceptionalFiles.put("maven", List.of("/etc/m2.conf")); + exceptionalFiles.put("maven", List.of("/etc/m24.conf")); exceptionalFiles.put("jansi", List.of("/usr/lib/jansi", "/usr/lib/jansi/libjansi.so", "/usr/lib/java/jansi")); exceptionalFiles.put("jline", List.of("/usr/lib/jline", "/usr/lib/jline/libjlinenative.so", "/usr/lib/java/jline")); } From 26792c770bc514b8de695e32bb21bdb48186c319 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Wed, 26 Feb 2025 23:09:58 +0100 Subject: [PATCH 20/22] Increase generic package size limit --- src/RpmFilesizeValidatorJP.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RpmFilesizeValidatorJP.java b/src/RpmFilesizeValidatorJP.java index 9cbe437..0406f44 100644 --- a/src/RpmFilesizeValidatorJP.java +++ b/src/RpmFilesizeValidatorJP.java @@ -33,6 +33,6 @@ public class RpmFilesizeValidatorJP extends RpmFilesizeValidator { } } - return sizeBytes <= 3_500_000; + return sizeBytes <= 4_000_000; } } From 0999df51b8a71062ca32cb985ae432ca43e5d21a Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Wed, 26 Feb 2025 23:24:09 +0100 Subject: [PATCH 21/22] Fix a typo in maven4 package name --- src/FilesValidatorJP.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/FilesValidatorJP.java b/src/FilesValidatorJP.java index 503c27e..9d60a13 100644 --- a/src/FilesValidatorJP.java +++ b/src/FilesValidatorJP.java @@ -84,7 +84,7 @@ public class FilesValidatorJP extends FilesValidator { static { exceptionalFiles.put("aqute-bnd", List.of("/etc/ant.d/aqute-bnd")); exceptionalFiles.put("maven", List.of("/etc/m2.conf")); - exceptionalFiles.put("maven", List.of("/etc/m24.conf")); + exceptionalFiles.put("maven4", List.of("/etc/m24.conf")); exceptionalFiles.put("jansi", List.of("/usr/lib/jansi", "/usr/lib/jansi/libjansi.so", "/usr/lib/java/jansi")); exceptionalFiles.put("jline", List.of("/usr/lib/jline", "/usr/lib/jline/libjlinenative.so", "/usr/lib/java/jline")); } From 261e44c3fa6e79b89384fa338e718426f5c54785 Mon Sep 17 00:00:00 2001 From: Mikolaj Izdebski Date: Mon, 24 Mar 2025 08:47:41 +0100 Subject: [PATCH 22/22] Add deprecation notice to README.md --- README.md | 24 +++--------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index c947567..837feaf 100644 --- a/README.md +++ b/README.md @@ -1,23 +1,5 @@ -# javapackages-validator-tests +# Deprecated -This repository contains the `.fmf` test files referenced by packages that are tested by _javapackages-validator_ tool. +This repository is deprecated. -## Versioning - -The version scheme is based on Fedora versions (`f`). -Changes made to a single branch must be backwards compatible or fix a bug. -Breaking changes can be made to a branch that corresponds to the Rawhide branch at the time of submission. -Packages then explicitly update their git reference and new versions of the package will be tested with the new tests. - -This approach ensures that changes to old versions of packages will not be tested with possibly incompatible tests. - -## Forking - -If you wish to fork this project and add your own tests, you should follow these steps: - -1. Add a source directory (e.g. `src`) with your own validators. -2. Add a text [service file](https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/ServiceLoader.html) named `org.fedoraproject.javapackages.validator.Validator` into the same directory. -This file contains fully-qualified class names of validators which you want to use, one name per line. - -Javapackages-validator will run all the validators listed in the service file, unless they have been explicitly filtered using per-package configuration. -This is explained in the project documentation. +Javapackages tests were moved to https://gitlab.com/redhat/centos-stream/tests/javapackages