Bug 958008

Summary: gradle: Please migrate from plexus-container-default to more recent container
Product: [Fedora] Fedora Reporter: Mikolaj Izdebski <mizdebsk>
Component: gradleAssignee: gil cattaneo <puntogil>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 20CC: akurtako, mat.booth, mgoldman, mspaulding06, puntogil
Target Milestone: ---Keywords: Patch
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-11-12 16:13:17 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 985700, 1029534    
Bug Blocks: 958010, 1027190    
Attachments:
Description Flags
Proposed patch
none
0001-Migrate-to-new-plexus-container.patch
none
0002-Non-bootstrap-build.patch none

Description Mikolaj Izdebski 2013-04-30 06:22:42 UTC
Description of problem:
gradle package is currently using plexus-container-default. Please migrate to a newer container, such as plexus-containers-container-default or sisu-inject-plexus.

Currently gradle is the only package that requires or build-requires plexus-container-default. plexus-container-default is unmaintained upstream for several years and two other packages provide mostly compatible API. Because of that plexus-container-default will be retired and gradle should migrate to more recent container to keep working.

Version-Release number of selected component (if applicable):
1.0-17

Comment 1 gil cattaneo 2013-04-30 07:44:23 UTC
for now I do not it is possible, given that the current existing version requires
plexus-container-default and maven 2.x.
i have to enable a plugin (gradle maven plugin) if I want to import the latest release of gradle, and then remove the dependency in question
regards

Comment 2 gil cattaneo 2013-04-30 07:49:14 UTC
I've tried to use the most recent versions of container-default, but then gradle does not work. cause: incompatible apis

Comment 3 Mikolaj Izdebski 2013-04-30 08:11:16 UTC
(In reply to comment #2)
> I've tried to use the most recent versions of container-default, but then
> gradle does not work. cause: incompatible apis

The incompatibilities are minor and usually easy to overcome.

The right solution is working with upstream to move to newer container API, preferably providing patches.  I have done that myself for some packages I maintain (for eg. [1]), upstreams are usually happy to accept patches.

[1] https://github.com/sonatype/modello/commit/30879533928bac89373a57af159999767461c6c6

Comment 4 Mikolaj Izdebski 2013-07-25 05:56:47 UTC
Created attachment 778067 [details]
Proposed patch

Comment 5 Alexander Kurtakov 2013-07-25 05:59:01 UTC
Gil, 
Can you try the patch Mikolaj provided?
Is there something that works if the patch is not applied but breaks if applied?
If yes please give instructions how to test it.

Comment 6 gil cattaneo 2013-07-25 06:05:12 UTC
unfortunately the patch is not applicable, make it unusable gradle
regards

Comment 7 Mikolaj Izdebski 2013-07-25 06:06:56 UTC
Could you provide more details?
Gradle builds with this patch and it is able to rebuild itself.
Could you explain what errors you get with the patch applied?

Comment 8 gil cattaneo 2013-07-25 07:48:44 UTC
subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/BaseMavenDeployer.java:70: 
error: cannot find symbol
                 plexusContainer.addJarResource(wagonProviderJar);
                                ^
   symbol:   method addJarResource(File)
   location: variable plexusContainer of type PlexusContainer

Comment 9 gil cattaneo 2013-07-25 07:53:06 UTC
the patch provided is incomplete,
must be changed also references in subprojects/core-impl/core-impl.gradle
(see PATCH24) and ant build script
regards

Comment 10 gil cattaneo 2013-07-25 08:24:40 UTC
also for the latest release 1.6 the problem persist, this is a maven-ant-task inherits ...

Comment 11 Mikolaj Izdebski 2013-07-25 08:32:58 UTC
As far as I know maven-ant-tasks is broken in Fedora as it Requires Maven 2 and doesn't work with Maven 3.

For Maven 3 you should use aether-ant-tasks instead.

Comment 12 gil cattaneo 2013-07-25 08:35:54 UTC
(In reply to Mikolaj Izdebski from comment #11)
> As far as I know maven-ant-tasks is broken in Fedora as it Requires Maven 2
> and doesn't work with Maven 3.
> 
> For Maven 3 you should use aether-ant-tasks instead.

sorry but isnt compatible

Comment 13 Mikolaj Izdebski 2013-07-25 08:37:16 UTC
(In reply to gil cattaneo from comment #12)
> (In reply to Mikolaj Izdebski from comment #11)
> > As far as I know maven-ant-tasks is broken in Fedora as it Requires Maven 2
> > and doesn't work with Maven 3.
> > 
> > For Maven 3 you should use aether-ant-tasks instead.
> 
> sorry but isnt compatible

It is mostly compatible, with some small exceptions.

Comment 14 gil cattaneo 2013-07-25 08:40:37 UTC
if you have to apply a patch to make it compatible with aether ant task is welcome

Comment 15 Mikolaj Izdebski 2013-07-25 08:51:25 UTC
Gil, you have reported the incompatibility yourself to the upstream, 10 months ago [1].  There was no response from maintainers.  Clearly it's legacy software which shouldn't be used.

Aether Ant tasks are actively maintained.  There is quite recent activity in their git repository.  Maintainers usually respond on mailing lists within one day.

IMHO instead of insisting on keeping old software you should try to update to newer upstream versions and, if needed, convince upstreams to do the same, providing patches if needed.

[1] http://jira.codehaus.org/browse/MANTTASKS-232

Comment 16 Mat Booth 2013-07-26 10:10:54 UTC
Created attachment 778727 [details]
0001-Migrate-to-new-plexus-container.patch

Comment 17 Mat Booth 2013-07-26 10:11:30 UTC
Created attachment 778728 [details]
0002-Non-bootstrap-build.patch

Comment 18 Mat Booth 2013-07-26 10:15:50 UTC
I was able to bootstrap gradle against the newer plexus-containers-container-default package by using the two patches I've just attached.

Do you have a use case that illustrates the maven-ant-tasks problem? If I can get a reproducable problem case, I can work on fixing it (probably by using aether-ant-tasks instead, as Mikolaj suggests.)

Comment 19 gil cattaneo 2013-07-26 10:25:13 UTC
hi
try with http://gil.fedorapeople.org/gradle/gradle-1.6-1.fc19.src.rpm
in boostrap mode (already set) and disable in ant build script only the references on M-A-T.
regards

Comment 20 Mat Booth 2013-07-26 15:34:24 UTC
Thanks gil, I am looking at this now.

Comment 21 Fedora End Of Life 2013-09-16 13:42:50 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 20 development cycle.
Changing version to '20'.

More information and reason for this action is here:
https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora20

Comment 22 Fedora Admin XMLRPC Client 2013-11-12 16:03:57 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.