Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

S2I Java (non-native) is broken since Quarkus 0.13.0 or 0.13.1 (but worked in 0.12.0) #13

Closed
vorburger opened this issue Apr 11, 2019 · 21 comments

Comments

@vorburger
Copy link

@tqvarnst reports that the S2I Java support is broken. (That is the non-native regular pure Java one, based on the registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift S2I builder image; as documented in Deploying the application as Java application in OpenShift on https://quarkus.io/guides/openshift-s2i-guide)

I can easily locally reproduce the problem Thomas reported, but it's not trivial for me to fix it alone - let's use this issue to find the solution; I'll add more comments with an analysis and suggestions.

@vorburger
Copy link
Author

I can easily locally reproduce the problem

we don't need a full OpenShift, this reproduces it (which BTW makes me think that we should do #14):

sudo dnf install source-to-image
s2i build https://github.com/quarkusio/quarkus-quickstarts.git registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift --context-dir=getting-started

@vorburger
Copy link
Author

vorburger commented Apr 11, 2019

The root cause for the problem is very likely that registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift runs the build Using Apache Maven 3.5.0 (Red Hat 3.5.0-4.3) (see below), but that something changed in quarkus-maven-plugin from 0.12.0 to 0.13.0 or 0.13.1 and we now require Maven 3.5.3+ ... we use the maven-enforcer-plugin for this in Quarkus' own build-parent/pom.xml (but not in the Quick Start, where we should - I'll propose to add it).

INFO Performing Maven build in /tmp/src
INFO Using MAVEN_OPTS -XX:+UseParallelOldGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -XX:MaxMetaspaceSize=100m -XX:+ExitOnOutOfMemoryError
INFO Using Apache Maven 3.5.0 (Red Hat 3.5.0-4.3)
Maven home: /opt/rh/rh-maven35/root/usr/share/maven
Java version: 1.8.0_201, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64/jre
(...)
[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:0.13.1:build (default) on project quarkus-quickstart: Failed to resolve application model org.acme:quarkus-quickstart::jar:1.0-SNAPSHOT dependencies: Failed to inject extension deployment dependencies for org.acme:quarkus-quickstart:jar:1.0-SNAPSHOT: org.eclipse.aether.transfer.TransferResource.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Lorg/eclipse/aether/RequestTrace;)V -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal io.quarkus:quarkus-maven-plugin:0.13.1:build (default) on project quarkus-quickstart: Failed to resolve application model org.acme:quarkus-quickstart::jar:1.0-SNAPSHOT dependencies
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to resolve application model org.acme:quarkus-quickstart::jar:1.0-SNAPSHOT dependencies
at io.quarkus.maven.BuildMojo.execute(BuildMojo.java:149)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 20 more
Caused by: io.quarkus.bootstrap.resolver.AppModelResolverException: Failed to inject extension deployment dependencies for org.acme:quarkus-quickstart:jar:1.0-SNAPSHOT
at io.quarkus.bootstrap.resolver.BootstrapAppModelResolver.injectDeploymentDependencies(BootstrapAppModelResolver.java:184)
at io.quarkus.bootstrap.resolver.BootstrapAppModelResolver.resolveModel(BootstrapAppModelResolver.java:90)
at io.quarkus.maven.BuildMojo.execute(BuildMojo.java:147)
... 22 more
Caused by: java.lang.NoSuchMethodError: org.eclipse.aether.transfer.TransferResource.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Lorg/eclipse/aether/RequestTrace;)V
at org.eclipse.aether.connector.basic.BasicRepositoryConnector.newTransferResource(BasicRepositoryConnector.java:309)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:239)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:529)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:430)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:255)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:232)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:268)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:199)
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:211)
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:325)
at io.quarkus.bootstrap.resolver.maven.MavenArtifactResolver.collectDependencies(MavenArtifactResolver.java:192)
at io.quarkus.bootstrap.resolver.maven.DeploymentInjectingDependencyVisitor.collectDependencies(DeploymentInjectingDependencyVisitor.java:128)
at io.quarkus.bootstrap.resolver.maven.DeploymentInjectingDependencyVisitor.processPlatformArtifact(DeploymentInjectingDependencyVisitor.java:110)
at io.quarkus.bootstrap.resolver.maven.DeploymentInjectingDependencyVisitor.processMetaInfDir(DeploymentInjectingDependencyVisitor.java:97)
at io.quarkus.bootstrap.resolver.maven.DeploymentInjectingDependencyVisitor.visitEnter(DeploymentInjectingDependencyVisitor.java:80)
at org.eclipse.aether.util.graph.visitor.TreeDependencyVisitor.visitEnter(TreeDependencyVisitor.java:67)
at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:343)
at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
at io.quarkus.bootstrap.resolver.BootstrapAppModelResolver.injectDeploymentDependencies(BootstrapAppModelResolver.java:182)

@cescoffier
Copy link
Member

Yes, between 0.12.0 and 0.13.0+, the new bootstrap has been integrated.

@cescoffier
Copy link
Member

We actually always said we needed Maven 3.5.3+, so now the question is how to get an updated builder image (3.5.0 is more than 2 years old! - https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.0/)

@tqvarnst Anything you can do?

@vorburger
Copy link
Author

vorburger commented Apr 11, 2019

The root cause for the problem is very likely that ... runs the build Using Apache Maven 3.5.0 (Red Hat 3.5.0-4.3) (see below), but that something changed in quarkus-maven-plugin from 0.12.0 to 0.13.0 or 0.13.1 and we now require Maven 3.5.3+ ...

It's much more "fun" than that ... the Maven 3.5.0 used in registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift seems to use a different version of Aether than a Maven 3.5.0 from maven.apache.org! 😭 To keep this issue focused on a solution, I'll fork out further analysis and discussion of that story into quarkusio/quarkus#2014.

@vorburger
Copy link
Author

keep this issue focused on a solution

I can think of 3 options we have here:

  1. support the Maven wrapper in the Java S2I Builder image - this would become a non-issue
  2. "fix" the version of Aether used in the (not really) "3.5.0" in openjdk18-openshift (unrealistic?)
  3. upgrade the Maven version in openjdk18-openshift from "3.5.0" (?) to 3.5.3 (needs testing...)
  4. waste cycles to make Quarkus work with this weird version of Maven (=quarkus-maven-plugin (0.13.1) does not work with the (weird!) Apache Maven "3.5.0" (Red Hat 3.5.0-4.3) in registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift quarkus#2014)

These are intentionally ranked in 1/2/3/4 order of preference - IMHO 1. would be simplest and best.

NB: I'm not sure if upgrading the Maven version in openjdk18-openshift from 3.5.0 to 3.5.3 would help; as I wrote in quarkusio/quarkus#2014, it actually seems to works fine even with a 3.5.0 from Apache.org; the issue here seems to be that the Aether version used ... and even there is a newer packaged Maven with a more recent Aether which the official S2I image could upgrade to, it would likely just kick the problem further down the road and we would be back to this the day that Quarkus decides that it wants e.g. Maven 3.6.0 or whatever - therefore IMHO relying on the wrapper to DL the required version of Maven which the project wants is better.

@cescoffier
Copy link
Member

4 is a no go at all, we have always said we use a recent version of Maven because of the internals of Maven that have changed and we need them (Aether is only one of them).

1 should be "easy enough" I would say.

@rafaeltuelho
Copy link

Got the same error today with 0.13.2:

Look the s2i () build output:


Cloning "https://github.com/rafaeltuelho/quarkus-demo.git " ...
--
  | Commit:	ad7b4547fce4e2fd3da6ca18fcc3b9dda3c68ecc (first commit)
  | Author:	Rafael T. C. Soares <[email protected]>
  | Date:	Mon Apr 15 23:45:13 2019 -0300
  | Using docker-registry.default.svc:5000/openshift/java@sha256:51a86679481dbc1d6591887c6011fddcd44bb18bf80ab55289469eda08ff88d8 as the s2i builder image
  | INFO Performing Maven build in /tmp/src
  | INFO Using MAVEN_OPTS -Xms192m -Xmx768m -XX:+UseParallelOldGC -XX:MinHeapFreeRatio=10 -XX:MaxHeapFreeRatio=20 -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -XX:MaxMetaspaceSize=100m -XX:+ExitOnOutOfMemoryError
  | INFO Using Apache Maven 3.5.0 (Red Hat 3.5.0-4.3)
  | Maven home: /opt/rh/rh-maven35/root/usr/share/maven
  | Java version: 1.8.0_201, vendor: Oracle Corporation
  | Java home: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.201.b09-2.el7_6.x86_64/jre
  | Default locale: en_US, platform encoding: ANSI_X3.4-1968
  | OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
  | INFO Running 'mvn -e -Popenshift -DskipTests -Dcom.redhat.xpaas.repo.redhatga -Dfabric8.skip=true --batch-mode -Djava.net.preferIPv4Stack=true -s /tmp/artifacts/configuration/settings.xml -Dmaven.repo.local=/tmp/artifacts/m2  package'


...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:22 min
[INFO] Finished at: 2019-04-16T02:54:16Z
[INFO] Final Memory: 33M/183M
[INFO] ------------------------------------------------------------------------
[WARNING] The requested profile "openshift" could not be activated because it does not exist.
[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:0.13.2:build (default) on project getting-started: Failed to resolve application model org.acme:getting-started::jar:1.0-SNAPSHOT dependencies: Failed to inject extension deployment dependencies for org.acme:getting-started:jar:1.0-SNAPSHOT: org.eclipse.aether.transfer.TransferResource.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Lorg/eclipse/aether/RequestTrace;)V -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal io.quarkus:quarkus-maven-plugin:0.13.2:build (default) on project getting-started: Failed to resolve application model org.acme:getting-started::jar:1.0-SNAPSHOT dependencies
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:154)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:146)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:309)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:194)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:107)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:993)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:345)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:191)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to resolve application model org.acme:getting-started::jar:1.0-SNAPSHOT dependencies
at io.quarkus.maven.BuildMojo.execute(BuildMojo.java:149)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 20 more
Caused by: io.quarkus.bootstrap.resolver.AppModelResolverException: Failed to inject extension deployment dependencies for org.acme:getting-started:jar:1.0-SNAPSHOT
at io.quarkus.bootstrap.resolver.BootstrapAppModelResolver.injectDeploymentDependencies(BootstrapAppModelResolver.java:184)
at io.quarkus.bootstrap.resolver.BootstrapAppModelResolver.resolveModel(BootstrapAppModelResolver.java:90)
at io.quarkus.maven.BuildMojo.execute(BuildMojo.java:147)
... 22 more
Caused by: java.lang.NoSuchMethodError: org.eclipse.aether.transfer.TransferResource.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/io/File;Lorg/eclipse/aether/RequestTrace;)V
at org.eclipse.aether.connector.basic.BasicRepositoryConnector.newTransferResource(BasicRepositoryConnector.java:309)
at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:239)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads(DefaultArtifactResolver.java:529)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:430)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:255)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:232)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:268)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:199)
at org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:211)
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies(DefaultRepositorySystem.java:325)
at io.quarkus.bootstrap.resolver.maven.MavenArtifactResolver.collectDependencies(MavenArtifactResolver.java:192)
at io.quarkus.bootstrap.resolver.maven.DeploymentInjectingDependencyVisitor.collectDependencies(DeploymentInjectingDependencyVisitor.java:128)
at io.quarkus.bootstrap.resolver.maven.DeploymentInjectingDependencyVisitor.processPlatformArtifact(DeploymentInjectingDependencyVisitor.java:110)
at io.quarkus.bootstrap.resolver.maven.DeploymentInjectingDependencyVisitor.processMetaInfDir(DeploymentInjectingDependencyVisitor.java:97)
at io.quarkus.bootstrap.resolver.maven.DeploymentInjectingDependencyVisitor.visitEnter(DeploymentInjectingDependencyVisitor.java:80)
at org.eclipse.aether.util.graph.visitor.TreeDependencyVisitor.visitEnter(TreeDependencyVisitor.java:67)
at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:343)
at org.eclipse.aether.graph.DefaultDependencyNode.accept(DefaultDependencyNode.java:347)
at io.quarkus.bootstrap.resolver.BootstrapAppModelResolver.injectDeploymentDependencies(BootstrapAppModelResolver.java:182)
... 24 more

@cescoffier
Copy link
Member

@rafaeltuelho it's expected, we need a new version of Maven in the image.

@vorburger the Java S2I is NOT developed by Quarkus and is not in this repository. It's something that needs to be moved to the Java builder image itself.

@luszczynski
Copy link

So, do we have any recommended workaround?

@tqvarnst
Copy link
Contributor

The recently released OpenJDK 11 based on RHEL 8 use Maven 3.5.4, which should work fine with Quarkus application. After some verification, I will update the guides to use this image instead.

@rafaeltuelho
Copy link

@tqvarnst, I'm not sure if this was already documented... But just to add that you need some additional steps in order to perform an s2i for quarkus using the openjdk-11-rhel8 image:

  • Create an image pull secret using your red hat account

this is needed in order to access the registry.redhat.io
download your red hat registry token secret yaml file from: https://access.redhat.com/terms-based-registry/#/accounts

oc create -f <your registry secret>.yaml -n quarkus-demo

oc screts link builder <your registry pull secret>
  • Import the openjdk/openjdk-11-rhel8 image stream
oc import-image openjdk/openjdk-11-rhel8 --from=registry.redhat.io/openjdk/openjdk-11-rhel8 --confirm -n quarkus-demo
  • create an app using:
oc new-app --name quarkus-jvm-demo \
	--image-stream openjdk-11-rhel8 \
	--build-env=ARTIFACT_COPY_ARGS="-p -r lib/ *-runner.jar" \
	--env=JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0" \
	--env=JAVA_APP_JAR="getting-started-1.0-SNAPSHOT-runner.jar" \
	https://github.com/rafaeltuelho/quarkus-demo.git

@sjbylo
Copy link

sjbylo commented Jul 25, 2019

The above steps worked for me just fine. But, it's not yet documented on the site: https://quarkus.io/guides/openshift-s2i-guide#deploying-the-application-as-java-application-in-openshift

@vorburger
Copy link
Author

vorburger commented Jul 25, 2019 via email

@rafaeltuelho
Copy link

rafaeltuelho commented Jul 25, 2019

@cescoffier
Copy link
Member

cescoffier commented Jul 26, 2019

@rafaeltuelho you need to open a PR against https://github.com/quarkusio/quarkus/tree/master/docs/src/main/asciidoc. It will be merged and pushed to the web site during the release process.

Can you ping me when you opened the PR?

@sunix
Copy link

sunix commented Nov 14, 2019

@cescoffier @rafaeltuelho would you open a PR ? i just been through that problem

@cescoffier
Copy link
Member

The issue is that the current Java S2I uses an outdated version of Maven. This is going to be handled with the new Java S2I.

@sunix
Copy link

sunix commented Nov 18, 2019

Finally just changing the default Java image stream works and I can use odo to deploy my quarkus non-native app:

  1. As an admin, Go to Builds > Image Streams > Java (openshift project) > YAML
  2. In the tag named 11, change the image name from registry.redhat.io/openjdk/openjdk-11-rhel7:latest to registry.redhat.io/openjdk/openjdk-11-rhel8:latest
  3. Save your changes

Selection_480

@rsearls
Copy link

rsearls commented Feb 12, 2020

This appears to be a continuing issue. I am using quarkus 1.3.0.Alpha1,
maven 3.6.0 and jdk 11.0.2.

@cescoffier
Copy link
Member

@rsearls it works with the latest registry.access.redhat.com/redhat-openjdk-18/openjdk18-openshift (providing maven 3.6.1).

Be sure to pull a recent version of the builder image. I used the image with the id: 91099d6db4c7

matthyx pushed a commit to matthyx/quarkus-images that referenced this issue Sep 20, 2021
image: Declare explicit dependency on sysvinit-tools
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants