Bug 225610 - Merge Review: bcel
Summary: Merge Review: bcel
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Matt Wringe
QA Contact: Fedora Package Reviews List
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-01-31 17:44 UTC by Nobody's working on this, feel free to take it
Modified: 2007-11-30 22:11 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-04-24 02:26:42 UTC
Type: ---
Embargoed:
mwringe: fedora-review+


Attachments (Terms of Use)

Description Nobody's working on this, feel free to take it 2007-01-31 17:44:41 UTC
Fedora Merge Review: bcel

http://cvs.fedora.redhat.com/viewcvs/devel/bcel/
Initial Owner: pcheung

Comment 2 Matt Wringe 2007-04-05 20:43:24 UTC
links point to an empty file

Comment 3 Permaine Cheung 2007-04-05 21:01:03 UTC
sorry... don't know what went wrong with the upload, fixed now, please try again.

Comment 4 Matt Wringe 2007-04-10 17:34:12 UTC
MUST:
* package is named appropriately
 - match upstream tarball or project name
 - try to match previous incarnations in other distributions/packagers for
consistency
 - specfile should be %{name}.spec
 - non-numeric characters should only be used in Release (ie. cvs or
   something)
 - for non-numerics (pre-release, CVS snapshots, etc.), see
   http://fedoraproject.org/wiki/Packaging/NamingGuidelines#PackageRelease
 - if case sensitivity is requested by upstream or you feel it should be
   not just lowercase, do so; otherwise, use all lower case for the name
OK
* is it legal for Fedora to distribute this?
 - OSI-approved
 - not a kernel module
 - not shareware
 - is it covered by patents?
 - it *probably* shouldn't be an emulator
 - no binary firmware
OK
* license field matches the actual license.
OK
* license is open source-compatible.
 - use acronyms for licences where common
OK
* specfile name matches %{name}
OK
* verify source and patches (md5sum matches upstream, know what the patches do)
 - if upstream doesn't release source drops, put *clear* instructions on
   how to generate the the source drop; ie. 
  # svn export blah/tag blah
  # tar cjf blah-version-src.tar.bz2 blah
OK
* skim the summary and description for typos, etc.
OK
* correct buildroot
 - should be:
   %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
OK
* if %{?dist} is used, it should be in that form (note the ? and %
locations)
OK
* license text included in package and marked with %doc
OK
* keep old changelog entries; use judgement when removing (too old?
useless?)
OK
* packages meets FHS (http://www.pathname.com/fhs/)
OK
* rpmlint on <this package>.srpm gives no output

rpmlint bcel-5.1-10jpp.1.src.rpm
W: bcel non-standard-group Development/Libraries/Java

OK, the group warning can be ignored

* changelog should be in proper format:
OK
* Packager tag should not be used
OK
* Vendor tag should not be used
OK
* Distribution tag should not be used
OK
* use License and not Copyright 
OK
* Summary tag should not end in a period
OK
* if possible, replace PreReq with Requires(pre) and/or Requires(post)
OK
* specfile is legible
OK
* package successfully compiles and builds on at least x86
OK
* BuildRequires are proper
 - builds in mock will flush out problems here
OK
 - the following packages don't need to be listed in BuildRequires:
   bash
   bzip2
   coreutils
   cpio
   diffutils
   fedora-release (and/or redhat-release)
   gcc
   gcc-c++
   gzip
   make
   patch
   perl
   redhat-rpm-config
   rpm-build
   sed
   tar
   unzip
   which
OK
* summary should be a short and concise description of the package
OK
* description expands upon summary (don't include installation
instructions)
OK
* make sure description lines are <= 80 characters
OK
* specfile written in American English
OK
* make a -doc sub-package if necessary
OK, contains a manual and javadoc subpackages
* packages including libraries should exclude static libraries if possible
* don't use rpath
* config files should usually be marked with %config(noreplace)
* GUI apps should contain .desktop files
* should the package contain a -devel sub-package?
* use macros appropriately and consistently
 - ie. %{buildroot} and %{optflags} vs. $RPM_BUILD_ROOT and $RPM_OPT_FLAGS
OK
* don't use %makeinstall
OK
* install section must begin with rm -rf $RPM_BUILD_ROOT or %{buildroot}
OK
* locale data handling correct (find_lang)
 - if translations included, add BR: gettext and use %find_lang %{name} at the
   end of %install
* consider using cp -p to preserve timestamps
X one cp missing -p in %build (line 186)
* split Requires(pre,post) into two separate lines
OK
* package should probably not be relocatable
* package contains code
 - see http://fedoraproject.org/wiki/Packaging/Guidelines#CodeVsContent
 - in general, there should be no offensive content
OK
* package should own all directories and files
OK
* there should be no %files duplicates
OK
* file permissions should be okay; %defattrs should be present
OK
* %clean should be present
OK
* %doc files should not affect runtime
* if it is a web apps, it should be in /usr/share/%{name} and *not* /var/www
* verify the final provides and requires of the binary RPMs
* run rpmlint on the binary RPMs

rpmlint bcel-5.1-10jpp.1.fc7.x86_64.rpm
W: bcel non-standard-group Development/Libraries/Java
OK, group warnings can be ignored

rpmlint bcel-demo-5.1-10jpp.1.fc7.x86_64.rpm
W: bcel-demo non-standard-group Development/Libraries/Java
W: bcel-demo no-documentation
X should there be any documentation for this?

rpmlint bcel-javadoc-5.1-10jpp.1.fc7.x86_64.rpm
W: bcel-javadoc non-standard-group Development/Documentation
OK

rpmlint bcel-manual-5.1-10jpp.1.fc7.x86_64.rpm
W: bcel-manual non-standard-group Development/Libraries/Java
OK

rpmlint bcel-debuginfo-5.1-10jpp.1.fc7.x86_64.rpm
OK

SHOULD:
* package should include license text in the package and mark it with %doc
OK
* package should build on i386
OK
* package should build in mock
OK


Comment 5 Permaine Cheung 2007-04-10 18:02:25 UTC
(In reply to comment #4)

> * consider using cp -p to preserve timestamps
> X one cp missing -p in %build (line 186)
Fixed

> rpmlint bcel-demo-5.1-10jpp.1.fc7.x86_64.rpm
> W: bcel-demo non-standard-group Development/Libraries/Java
> W: bcel-demo no-documentation
> X should there be any documentation for this?
There's a README in examples/Mini, so I marked that with %doc

New spec file and srpm at the same location.

Comment 6 Matt Wringe 2007-04-11 14:56:35 UTC
* The examples/Mini README probably shouldn't be marked as a %doc as it makes
more sense to just leave it in the Mini directory.
* The demo package probably shouldn't install things to
%{_datadir}/%{name}-%{version} but to %{_datadir}/%{name}-%{version}/demo
* It seems strange that the demo package doesn't have any documentation
describing what the classes do and how to build them. But I guess the sources
don't have this information either
* The build file for the demo package is the build.xml for the whole project.
Perhaps this should be included in the demo package (or maybe a subset that
would only build the demos?)
* The manual subpackage just has the license file in there, there should be more
to the manual than this. maybe the manual only gets built if using maven?

Comment 7 Permaine Cheung 2007-04-13 20:50:53 UTC
(In reply to comment #6)
> * The examples/Mini README probably shouldn't be marked as a %doc as it makes
> more sense to just leave it in the Mini directory.
Done
> * The demo package probably shouldn't install things to
> %{_datadir}/%{name}-%{version} but to %{_datadir}/%{name}-%{version}/demo
Fixed
> * It seems strange that the demo package doesn't have any documentation
> describing what the classes do and how to build them. But I guess the sources
> don't have this information either
Yeah, the upstream sources don't have any documentation either.
> * The build file for the demo package is the build.xml for the whole project.
> Perhaps this should be included in the demo package (or maybe a subset that
> would only build the demos?)
I've made the main package a Requires: for the demo package
> * The manual subpackage just has the license file in there, there should be more
> to the manual than this. maybe the manual only gets built if using maven?
The docs/* stuff are built but doesn't get included in the package, I copied the
LICENCE.txt to %{_docdir}/%{name}-%{version}, so that the docs/* stays in the
package.


New spec file and srpm at the same location.

Comment 8 Matt Wringe 2007-04-16 14:40:13 UTC
(In reply to comment #7)
> (In reply to comment #6)
> > * The examples/Mini README probably shouldn't be marked as a %doc as it makes
> > more sense to just leave it in the Mini directory.
> Done
> > * The demo package probably shouldn't install things to
> > %{_datadir}/%{name}-%{version} but to %{_datadir}/%{name}-%{version}/demo
> Fixed
> > * It seems strange that the demo package doesn't have any documentation
> > describing what the classes do and how to build them. But I guess the sources
> > don't have this information either
> Yeah, the upstream sources don't have any documentation either.
> > * The build file for the demo package is the build.xml for the whole project.
> > Perhaps this should be included in the demo package (or maybe a subset that
> > would only build the demos?)
> I've made the main package a Requires: for the demo package
Yes, but the main pacakage doesn't include the build.xml (and shouldn't). The
problem is that build scripts for the demos are in the main build.xml. So
without the build.xml there is no way to know how to build and run the demos.
But the build.xml also contains how to build the main package, so just including
the build.xml as is will probably not be the best idea.
I would suggest either creating a new demo build.xml file (it looks to just be a
simple copy and paste from the original build.xml) or to remove the demo
subpackage (it doesn't make sense to include a demo package that is just source
files without documentation or build scripts).

> > * The manual subpackage just has the license file in there, there should be more
> > to the manual than this. maybe the manual only gets built if using maven?
> The docs/* stuff are built but doesn't get included in the package, I copied the
> LICENCE.txt to %{_docdir}/%{name}-%{version}, so that the docs/* stays in the
> package.
> 
> 
> New spec file and srpm at the same location.



Comment 9 Matt Wringe 2007-04-16 17:59:18 UTC
I don't think the demo package missing a doc should really be a blocker, but
this really needs to be added at some point (please add a TODO in the spec file).

APPROVED

Comment 10 Permaine Cheung 2007-04-16 18:55:25 UTC
TODO added in the spec file.
Package built in brew.


Note You need to log in before you can comment on or make changes to this bug.