Spec URL: http://jhernand.fedorapeople.org/rpms/rngom/201103-0.1.20120119svn/rngom.spec SRPM URL: http://jhernand.fedorapeople.org/rpms/rngom/201103-0.1.20120119svn/rngom-201103-0.2.20120119svn.fc17.src.rpm Description: RNGOM is an open-source Java library for parsing RELAX NG grammars. In particular, RNGOM can: * parse the XML syntax * parse the compact syntax * check all the semantic restrictions as specified in the specification * parse RELAX NG into application-defined data structures * build a default data structure based around the binarized simple syntax or another data structure that preserves more of the parsed information * parse foreign elements/attributes in a schema * parse comments in a schema
The previous SRPM contained a binary "lic.jar" file in the source tarball that I forgot to remove. The fixed spec and SRPM are available here: http://jhernand.fedorapeople.org/rpms/rngom/201103-0.3.20120119svn
This bugzilla was misfiled under oz component, and as such it was assigned to Chris Lalancette. I am removing chris as the owner and reassigning to the default owner.
Juan: This has a BR (and an R) for stax2-api - but I don't see any such package in Fedora nor do I see a package review. Did I miss it? --David [ke4qqq@nalleyx200 SPECS]$ rpmbuild -ba rngom.spec error: Failed build dependencies: stax2-api is needed by rngom-201103-0.3.20120119svn.fc16.noarch
Strange. According to the package database that is available since Fedora 15: https://admin.fedoraproject.org/pkgdb/acls/name/stax2-api
So branches were created, but it was only built for rawhide at the time apparently. It's currently in F17 and rawhide now. I'll build for F16 and work from there.
Package Review ============== Key: - = N/A x = Check ! = Problem ? = Not evaluated === REQUIRED ITEMS === [ ] Rpmlint output: [ke4qqq@nalleyx200 result]$ rpmlint ./rngom-* ~/rpmbuild/SPECS/rngom.spec rngom.noarch: E: explicit-lib-dependency msv-xsdlib rngom.noarch: W: spelling-error %description -l en_US binarized -> barbarized rngom.noarch: W: no-documentation rngom.src: W: spelling-error %description -l en_US binarized -> barbarized rngom.src: W: invalid-url Source0: rngom-201103.tar.gz /home/ke4qqq/rpmbuild/SPECS/rngom.spec: W: invalid-url Source0: rngom-201103.tar.gz 3 packages and 1 specfiles checked; 1 errors, 5 warnings. [!] Package is named according to the Package Naming Guidelines[1]. Where did you come up with the version? As far as I can see there have been around 70 commits in total to this project, but no releases as of yet, or even a tag. [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 type: [-] 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 [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. No good way of doing this given that it's coming from SVN [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 [-] 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, ...) [X] 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 [X] Package DOES NOT use %update_maven_depmap in %post/%postun [X] 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: f17 I am a bit concerned with the versioning - I didn't see one upstream - otherwise this package looks good.
David, I'll try to answer the version question. Please take a look at the version in POM: https://svn.java.net/svn/rngom~svn/trunk/rngom/pom.xml This is also the version which is registered in JBoss' Maven repo. HTH
So actually the version in the file you reference is: 201103-SNAPSHOT That strikes me that as a filler value, and it has remained unchanged over several different revisions. Another thing I just noticed is how you are building the tarball - you are grabbing trunk - not specifying the revision number that you want - which means for each additional revision you'd have no way of knowing what you originally built - this needs to specify a specific revision - and that revision should somehow be referenced. And this specifically is one of the reasons I don't like the above date reference in the pom. Upstream isn't tagging releases (well it has, but that was 5 years ago), and that reference has remained the same for several commits - so it's effectively meaningless - commit 68, 69, and 70 all contain the same version - and you relying on that field doesn't communicate the actual version/status. Specifically thing about: If upstream were to make 2 commits next week and you want to update - what would the version be then (I find it incredibly unlikely that they'd change the value in the pom, since it's gone unchanged.)
Just documenting conversations: So in discussing this in IRC I've been swayed to agree with mgoldmann on the versioning issue under the premise that: 201103 is the version This particular build is a pre-release of that version - and of course release is 0.iteration.datesvn We do want to change the svn co command to reflect what revision is pulled, but I trust that the packager can do that before committing to git. APPROVED
I am making the following changes to the spec in order to make explicit the revision number used to checkout the source. Is this what you mean? --- rngom.spec.old +++ rngom.spec @@ -1,12 +1,12 @@ Name: rngom Version: 201103 -Release: 0.3.20120119svn%{?dist} +Release: 0.4.20120119svn%{?dist} Summary: Java library for parsing RELAX NG grammars Group: Development/Libraries License: MIT URL: https://rngom.dev.java.net -# svn export https://svn.java.net/svn/rngom~svn/trunk/rngom rngom-201103 +# svn export -r 70 https://svn.java.net/svn/rngom~svn/trunk/rngom rngom-201103 # find rngom-201103/ -name '*.class' -delete # find rngom-201103/ -name '*.jar' -delete # tar czf rngom-201103.tar.gz rngom-201103 @@ -104,6 +104,9 @@ %changelog +* Thu Feb 23 2012 Juan Hernandez <juan.hernandez> 201103-0.4.20120119svn +- Make explicit the checked out revision number in the comments + * Sat Feb 18 2012 Juan Hernandez <juan.hernandez> 201103-0.3.20120119svn - Remove the binary file lic.jar from the source tarball
That's exactly what I was talking about - thanks!
Ok, thanks David, I will apply that change before committing.
New Package SCM Request ======================= Package Name: rngom Short Description: Java library for parsing RELAX NG grammars Owners: jhernand Branches: f17 InitialCC: goldmann
Git done (by process-git-requests).
rngom-201103-0.4.20120119svn.fc17 has been submitted as an update for Fedora 17. https://admin.fedoraproject.org/updates/rngom-201103-0.4.20120119svn.fc17
rngom-201103-0.4.20120119svn.fc17 has been pushed to the Fedora 17 stable repository.