| Summary: | Review Request: resteasy - Framework for RESTful Web services and Java applications | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Ade Lee <alee> |
| Component: | Package Review | Assignee: | Juan Hernández <juan.hernandez> |
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | rawhide | CC: | juan.hernandez, mgoldman, notting, package-review, rfontana, ricardo.arguello |
| Target Milestone: | --- | Flags: | juan.hernandez:
fedora-review+
gwync: fedora-cvs+ |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | resteasy-2.3.2-1.fc17 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2012-03-21 14:05:13 UTC | Type: | --- |
| 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: | 790564, 796201, 796204 | ||
| Bug Blocks: | |||
|
Description
Ade Lee
2012-03-07 04:08:25 UTC
I would like to take this for review, but someone has to review glassfish-jaxb and glassfish-fi first, as they are dependencies, otherwise I can't build in Koji. Meanwhile I would suggest the following minor changes in the spec: * Change the summary so that it doesn't contain the name of the package (rpmlint complains about that). * Remove commented out lines (otherwise rpmlint complains about macros in comments). * Include the license as %doc in the javadoc subpackage. * Replace tomcat6 with tomcat (version 7), if possible. * Add comments describing the purpose of the patches. Now that all the dependencies are in rawhide I am taking it for review. Based on feedback from jhernand, I have updated the spec file and srpm. The new spec file and srpm can be downloaded from the same links as above: Spec URL: http://vakwetu.fedorapeople.org/resteasy/resteasy.spec SRPM Url: http://vakwetu.fedorapeople.org/resteasy/resteasy-2.3.2-1.fc17.src.rpm === REQUIRED ITEMS === [!] Rpmlint output: Output of rpmlint of the source package: $ rpmlint resteasy-2.3.2-1.fc17.src.rpm resteasy.src: W: name-repeated-in-summary C RESTEasy resteasy.src: W: invalid-url URL: http://www.jboss.org/resteasy HTTP Error 403: Forbidden resteasy.src:217: W: macro-in-comment %{namedversion} resteasy.src:218: W: macro-in-comment %{buildroot} resteasy.src:218: W: macro-in-comment %{_javadir} resteasy.src:218: W: macro-in-comment %{name} ... The rpmlint command complais about macros in the comments, but it has been discussed and agreed in #fedora-java that these comments are acceptable in this case. Output of rpmlint of the binary packages: $ rpmlint resteasy-2.3.2-1.fc18.noarch.rpm resteasy-javadoc-2.3.2-1.fc18.noarch.rpm resteasy.noarch: E: explicit-lib-dependency cglib resteasy.noarch: W: name-repeated-in-summary C RESTEasy resteasy.noarch: W: invalid-url URL: http://www.jboss.org/resteasy HTTP Error 403: Forbidden resteasy-javadoc.noarch: W: spelling-error Summary(en_US) Javadocs -> Java docs, Java-docs, Avocados resteasy-javadoc.noarch: W: invalid-url URL: http://www.jboss.org/resteasy HTTP Error 403: Forbidden 2 packages and 0 specfiles checked; 1 errors, 4 warnings. The cglib dependency is not a library, but a legitimate package name. [x] Package is named according to the Package Naming Guidelines[1]. [x] Spec file name must match the base package name, in the format %{name}.spec. [x] Package meets the Packaging Guidelines[2]. [x] Package successfully compiles and builds into binary rpms. [x] Buildroot definition is not present [x] Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines[3,4]. [!] License field in the package spec file matches the actual license. The "License.html" file states that the license used is ASL 2.0, but them some files contain different license statements: * The files under "tjws" use a BDS style license. They are used mostly for tests and we are building and packaging them. * The files under the "eagledns" use a BSD style license. The latest upstream version of this software uses LGPLv3. The resteasy upstream developers forked it, but it is used only for some examples and tests and we are not building or packaging it at the moment. * These files tate that the license is "CDDL": jaxrs-api/src/main/java/javax/ws/rs/PathParam.java jaxrs-api/src/main/java/javax/ws/rs/Consumes.java jaxrs-api/src/main/java/javax/ws/rs/PUT.java jaxrs-api/src/main/java/javax/ws/rs/DefaultValue.java jaxrs-api/src/main/java/javax/ws/rs/ext/MessageBodyWriter.java jaxrs-api/src/main/java/javax/ws/rs/ext/Providers.java jaxrs-api/src/main/java/javax/ws/rs/ext/RuntimeDelegate.java jaxrs-api/src/main/java/javax/ws/rs/ext/Provider.java jaxrs-api/src/main/java/javax/ws/rs/ext/ContextResolver.java jaxrs-api/src/main/java/javax/ws/rs/ext/ExceptionMapper.java jaxrs-api/src/main/java/javax/ws/rs/ext/MessageBodyReader.java jaxrs-api/src/main/java/javax/ws/rs/ext/FactoryFinder.java jaxrs-api/src/main/java/javax/ws/rs/DELETE.java jaxrs-api/src/main/java/javax/ws/rs/HEAD.java jaxrs-api/src/main/java/javax/ws/rs/POST.java jaxrs-api/src/main/java/javax/ws/rs/ApplicationPath.java jaxrs-api/src/main/java/javax/ws/rs/WebApplicationException.java jaxrs-api/src/main/java/javax/ws/rs/MatrixParam.java jaxrs-api/src/main/java/javax/ws/rs/Produces.java jaxrs-api/src/main/java/javax/ws/rs/GET.java jaxrs-api/src/main/java/javax/ws/rs/core/SecurityContext.java jaxrs-api/src/main/java/javax/ws/rs/core/UriBuilder.java jaxrs-api/src/main/java/javax/ws/rs/core/Variant.java jaxrs-api/src/main/java/javax/ws/rs/core/CacheControl.java jaxrs-api/src/main/java/javax/ws/rs/core/Context.java jaxrs-api/src/main/java/javax/ws/rs/core/Response.java jaxrs-api/src/main/java/javax/ws/rs/core/HttpHeaders.java jaxrs-api/src/main/java/javax/ws/rs/core/UriBuilderException.java jaxrs-api/src/main/java/javax/ws/rs/core/MediaType.java jaxrs-api/src/main/java/javax/ws/rs/core/StreamingOutput.java jaxrs-api/src/main/java/javax/ws/rs/core/NewCookie.java jaxrs-api/src/main/java/javax/ws/rs/core/GenericEntity.java jaxrs-api/src/main/java/javax/ws/rs/core/MultivaluedMap.java jaxrs-api/src/main/java/javax/ws/rs/core/Request.java jaxrs-api/src/main/java/javax/ws/rs/core/EntityTag.java jaxrs-api/src/main/java/javax/ws/rs/core/PathSegment.java jaxrs-api/src/main/java/javax/ws/rs/core/Application.java jaxrs-api/src/main/java/javax/ws/rs/core/Cookie.java jaxrs-api/src/main/java/javax/ws/rs/core/UriInfo.java jaxrs-api/src/main/java/javax/ws/rs/Path.java jaxrs-api/src/main/java/javax/ws/rs/HttpMethod.java jaxrs-api/src/main/java/javax/ws/rs/OPTIONS.java jaxrs-api/src/main/java/javax/ws/rs/FormParam.java jaxrs-api/src/main/java/javax/ws/rs/CookieParam.java jaxrs-api/src/main/java/javax/ws/rs/Encoded.java jaxrs-api/src/main/java/javax/ws/rs/HeaderParam.java jaxrs-api/src/main/java/javax/ws/rs/QueryParam.java ./jaxrs-api/src/main/java/javax/ws/rs/core/HttpHeaders.java * These files state that the license is "LGPL": config/eclipse/jboss-template.xml providers/jettison/src/main/java/org/jboss/resteasy/annotations/providers/jaxb/json/BadgerFish.java providers/jettison/src/main/java/org/jboss/resteasy/annotations/providers/jaxb/json/XmlNsMap.java providers/jettison/src/main/java/org/jboss/resteasy/annotations/providers/jaxb/json/Mapped.java providers/jaxb/src/main/java/org/jboss/resteasy/plugins/providers/jaxb/JAXBXmlRootElementProvider.java providers/jaxb/src/main/java/org/jboss/resteasy/plugins/providers/jaxb/XmlNamespacePrefixMapper.java providers/jaxb/src/main/java/org/jboss/resteasy/plugins/providers/jaxb/JAXBElementProvider.java providers/jaxb/src/main/java/org/jboss/resteasy/plugins/providers/jaxb/JAXBXmlSeeAlsoProvider.java providers/jaxb/src/main/java/org/jboss/resteasy/plugins/providers/jaxb/JAXBContextWrapper.java providers/jaxb/src/main/java/org/jboss/resteasy/plugins/providers/jaxb/AbstractJAXBProvider.java providers/jaxb/src/main/java/org/jboss/resteasy/plugins/providers/jaxb/JAXBXmlTypeProvider.java providers/jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/XMLStreamFactory.java providers/jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/JAXBCache.java providers/jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/JAXBHelper.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/FastinfoSetJAXBXmlRootElementClient.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/XMLStreamFactory.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/JsonJAXBXmlRootElementClient.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/JAXBCache.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/TestJAXBXmlRootElementProvider.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/JAXBHelper.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/JAXBElementClient.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/XmlOrderClient.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/TestJAXBNamespacePrefix.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/JsonJAXBElementClient.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/OrderResource.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/Parent.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/JunkXmlOrderClient.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/Child.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/JAXBXmlRootElementResource.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/TestXmlJAXBProviders.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/JAXBXmlRootElementClient.java providers/test-all-jaxb/src/test/java/org/jboss/resteasy/test/providers/jaxb/FastinfoSetJAXBElementClient.java resteasy-jaxrs/src/main/java/org/jboss/resteasy/test/TestPortProvider.java resteasy-jaxrs/src/main/java/org/jboss/resteasy/plugins/providers/ProviderHelper.java resteasy-jaxrs/src/main/java/org/jboss/resteasy/plugins/providers/IIOImageProviderHelper.java resteasy-jaxrs/src/main/java/org/jboss/resteasy/core/ExceptionAdapter.java resteasy-jaxrs/src/main/java/org/jboss/resteasy/core/AcceptParameterHttpPreprocessor.java resteasy-jaxrs/src/main/java/org/jboss/resteasy/annotations/Form.java resteasy-jaxrs/src/main/java/org/jboss/resteasy/annotations/providers/img/ImageWriterParams.java resteasy-jaxrs/src/test/java/org/jboss/resteasy/test/finegrain/resource/AcceptParameterHttpPreprocessorTest.java resteasy-jaxrs/src/test/java/org/jboss/resteasy/test/form/FormValueHolder.java resteasy-jaxrs/src/test/java/org/jboss/resteasy/test/form/ClientForm.java resteasy-jaxrs/src/test/java/org/jboss/resteasy/test/form/TestFormResource.java resteasy-jaxrs/src/test/java/org/jboss/resteasy/test/form/FormResource.java resteasy-jaxrs/src/test/java/org/jboss/resteasy/test/TypeConverterTest.java resteasy-spring/src/main/java/javax/ws/rs/core/MediaTypeEditor.java resteasy-spring/src/test/java/org/jboss/resteasy/springmvc/test/resources/TypeMappingResource.java resteasy-spring/src/test/java/org/jboss/resteasy/springmvc/test/spring/TypeMappingTest.java resteasy-spring/src/test/java/org/jboss/resteasy/spring/TestMediaTypePropertyEditor.java resteasy-test-data/src/main/java/org/jboss/resteasy/test/providers/jaxb/data/Item.java resteasy-test-data/src/main/java/org/jboss/resteasy/test/providers/jaxb/data/Order.java resteasy-test-data/src/main/java/org/jboss/resteasy/test/providers/jaxb/data/ShipTo.java Taking this all into account I think that the license tag should be "ASL 2.0 and BSD and CDDL and LGPLv2+". According to the guidelines this can be simplified by creating differenct subpackages, each one with its own license tag. [x] If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %doc. [!] All independent sub-packages have license of their own The License.html file should go in the javadoc package. [x] Spec file is legible and written in American English. [x] Sources used to build the package matches the upstream source, as provided in the spec URL. Checked using a recursive diff. [x] All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines[5]. [x] Package must own all directories that it creates or must require other packages for directories it uses. [x] Package does not contain duplicates in %files. [x] File sections do not contain %defattr(-,root,root,-) unless changed with good reason [x] Permissions on files are set properly. [x] Package does NOT have a %clean section which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT). (not needed anymore) [!] Package consistently uses macros (no %{buildroot} and $RPM_BUILD_ROOT mixing) [x] Package contains code, or permissable content. [-] Fully versioned dependency in subpackages, if present. [-] Package contains a properly installed %{name}.desktop file if it is a GUI application. [x] Package does not own files or directories owned by other packages. [x] Javadoc documentation files are generated and included in -javadoc subpackage [x] Javadocs are placed in %{_javadocdir}/%{name} (no -%{version} symlinks) [x] Packages have proper BuildRequires/Requires on jpackage-utils [x] Javadoc subpackages have Require: jpackage-utils [x] Package uses %global not %define [x] If package uses tarball from VCS include comment how to re-create that tarball (svn export URL, git clone URL, ...) [-] If source tarball includes bundled jar/class files these need to be removed prior to building [x] All filenames in rpm packages must be valid UTF-8. [x] Jar files are installed to %{_javadir}/%{name}.jar (see [6] for details) [!] If package contains pom.xml files install it (including depmaps) even when building with ant POM files are missing for the providers. [x] pom files has correct add_maven_depmap === Maven === [x] Use %{_mavenpomdir} macro for placing pom files instead of %{_datadir}/maven2/poms [-] If package uses "-Dmaven.test.skip=true" explain why it was needed in a comment [-] If package uses custom depmap "-Dmaven.local.depmap.file=*" explain why it's needed in a comment [-] Package DOES NOT use %update_maven_depmap in %post/%postun [-] Packages DOES NOT have Requires(post) and Requires(postun) on jpackage-utils for %update_maven_depmap macro === Other suggestions === [x] If possible use upstream build method (maven/ant/javac) [x] Avoid having BuildRequires on exact NVR unless necessary [x] Package has BuildArch: noarch (if possible) [x] Latest version is packaged. [x] Reviewer should test that the package builds in mock. Tested on: http://koji.fedoraproject.org/koji/taskinfo?taskID=3893277 === Issues === 1. The name is repeated in the summary. 2. The rpmlint command complais about macros in the comments, but it has been discussed and agreed in #fedora-java that these comments are acceptable in this case. 3. License tag should be "ASL 2.0 and BSD and CDDL and LGPLv2+", or simplified using subpackages. The LGPL files are specially problematic, I think this requires upstream cleanup. 4. Use only %{buildroot} and not $RPM_BUILD_ROOT if possible. 5. The License.html file should go in the javadoc package. 6. Missing POM files and dependencies maps for providers. === Final Notes === 1. I wonder if the tjws code should be moved to its own independent package. 2. Issues #3 to #6 need attention, specially licensing. Regarding licensing issues - legal and upstream were notified. Upstream confirms the files with LGPL notices (apart from eagledns) are an oversight and are intended to be covered by the Apache License 2.0. Assuming no subpackaging is done, and if it is correct that the eagledns code is not being built/packaged, then the License tag should simply be "ASL 2.0 and CDDL". (In reply to comment #6) > Upstream confirms the files with LGPL notices (apart from eagledns) are an > oversight and are intended to be covered by the Apache License 2.0. > > Assuming no subpackaging is done, and if it is correct that the eagledns code > is not being built/packaged, then the License tag should simply be "ASL 2.0 and > CDDL". Thanks Richard! Ade, once you adjust the license tag and address issues #4, #5 and #6 I will approve. Juan, Resolved all of the above, using your suggestion for the %install section. Spec URL: http://vakwetu.fedorapeople.org/resteasy/resteasy.spec SRPM Url: http://vakwetu.fedorapeople.org/resteasy/resteasy-2.3.2-1.fc17.src.rpm === REQUIRED ITEMS === [x] Rpmlint output: Output of rpmlint of the source package: $ rpmlint resteasy-2.3.2-1.fc17.src.rpm resteasy.src: W: invalid-url URL: http://www.jboss.org/resteasy HTTP Error 403: Forbidden resteasy.src: W: invalid-url Source0: resteasy-2.3.2.Final.tgz 1 packages and 0 specfiles checked; 0 errors, 2 warnings. These warnings are acceptable. Output of rpmlint of the binary packages: $ rpmlint resteasy-2.3.2-1.fc18.noarch.rpm resteasy-javadoc-2.3.2-1.fc18.noarch.rpm resteasy.noarch: E: explicit-lib-dependency cglib resteasy.noarch: W: invalid-url URL: http://www.jboss.org/resteasy HTTP Error 403: Forbidden resteasy-javadoc.noarch: W: spelling-error Summary(en_US) Javadocs -> Java docs, Java-docs, Avocados resteasy-javadoc.noarch: W: invalid-url URL: http://www.jboss.org/resteasy HTTP Error 403: Forbidden 2 packages and 0 specfiles checked; 1 errors, 3 warnings. The cglib dependency is not a library, but a legitimate package name. These warnings are acceptable. [x] Package is named according to the Package Naming Guidelines[1]. [x] Spec file name must match the base package name, in the format %{name}.spec. [x] Package meets the Packaging Guidelines[2]. [x] Package successfully compiles and builds into binary rpms. [x] Buildroot definition is not present [x] Package is licensed with an open-source compatible license and meets other legal requirements as defined in the legal section of Packaging Guidelines[3,4]. [x] License field in the package spec file matches the actual license. License issues have been cleared with legal. License type: ASL 2.0 and CDDL [x] If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %doc. [x] All independent sub-packages have license of their own The License.html file should go in the javadoc package. [x] Spec file is legible and written in American English. [x] Sources used to build the package matches the upstream source, as provided in the spec URL. Checked using a recursive diff. [x] All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines[5]. [x] Package must own all directories that it creates or must require other packages for directories it uses. [x] Package does not contain duplicates in %files. [x] File sections do not contain %defattr(-,root,root,-) unless changed with good reason [x] Permissions on files are set properly. [x] Package does NOT have a %clean section which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT). (not needed anymore) [x] Package consistently uses macros (no %{buildroot} and $RPM_BUILD_ROOT mixing) [x] Package contains code, or permissable content. [-] Fully versioned dependency in subpackages, if present. [-] Package contains a properly installed %{name}.desktop file if it is a GUI application. [x] Package does not own files or directories owned by other packages. [x] Javadoc documentation files are generated and included in -javadoc subpackage [x] Javadocs are placed in %{_javadocdir}/%{name} (no -%{version} symlinks) [x] Packages have proper BuildRequires/Requires on jpackage-utils [x] Javadoc subpackages have Require: jpackage-utils [x] Package uses %global not %define [x] If package uses tarball from VCS include comment how to re-create that tarball (svn export URL, git clone URL, ...) [-] If source tarball includes bundled jar/class files these need to be removed prior to building [x] All filenames in rpm packages must be valid UTF-8. [x] Jar files are installed to %{_javadir}/%{name}.jar (see [6] for details) [x] If package contains pom.xml files install it (including depmaps) even when building with ant [x] pom files has correct add_maven_depmap === Maven === [x] Use %{_mavenpomdir} macro for placing pom files instead of %{_datadir}/maven2/poms [-] If package uses "-Dmaven.test.skip=true" explain why it was needed in a comment [-] If package uses custom depmap "-Dmaven.local.depmap.file=*" explain why it's needed in a comment [-] Package DOES NOT use %update_maven_depmap in %post/%postun [-] Packages DOES NOT have Requires(post) and Requires(postun) on jpackage-utils for %update_maven_depmap macro === Other suggestions === [x] If possible use upstream build method (maven/ant/javac) [x] Avoid having BuildRequires on exact NVR unless necessary [x] Package has BuildArch: noarch (if possible) [x] Latest version is packaged. [x] Reviewer should test that the package builds in mock. Tested on: http://koji.fedoraproject.org/koji/taskinfo?taskID=3908511 === Issues === No issues. === Final notes === Great work Ade, thanks! ================ *** APPROVED *** ================ New Package SCM Request
=======================
Package Name: resteasy
Short Description: Framework for RESTful Web services and Java applications
Owners: vakwetu
Branches: f17
InitialCC: goldmann, jhernand
Please include a valid SCM request: http://fedoraproject.org/wiki/Package_SCM_admin_requests Thanks! New Package SCM Request ======================= Package Name: resteasy Short Description: Framework for RESTful Web services and Java applications Owners: vakwetu Branches: f17 InitialCC: goldmann jhernand Git done (by process-git-requests). non scratch build succeeded! http://koji.fedoraproject.org/koji/buildinfo?buildID=308513 resteasy-2.3.2-1.fc17 has been submitted as an update for Fedora 17. https://admin.fedoraproject.org/updates/resteasy-2.3.2-1.fc17 resteasy-2.3.2-1.fc17 has been pushed to the Fedora 17 stable repository. |