Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 222350 - Review Request: eclipse-cdt - C/C++ Development plugins for Eclipse
Summary: Review Request: eclipse-cdt - C/C++ Development plugins for Eclipse
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Andrew Overholt
QA Contact: Fedora Package Reviews List
URL:
Whiteboard:
Depends On: 222365
Blocks:
TreeView+ depends on / blocked
 
Reported: 2007-01-11 20:18 UTC by Jeff Johnston
Modified: 2007-11-30 22:11 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2007-06-11 15:55:20 UTC
Type: ---
Embargoed:
overholt: fedora-review+


Attachments (Terms of Use)

Description Jeff Johnston 2007-01-11 20:18:21 UTC
Spec URL: http://www.vermillionskye.com/eclipse-cdt.spec
SRPM URL: http://www.vermillionskye.com/eclipse-cdt-3.1.1-6.fc7.src.rpm
Description: The eclipse-cdt package bundles the set of Eclipse CDT plugins which are used for C/C++ code development.  In addition to the upstream CDT plugins, this project adds the new Autotools plugin from Red Hat which adds support for maintaining C/C++ projects using autotools (e.g. autoconf, automake).  This project was formerly shipped in Fedora Core.

Comment 1 Andrew Overholt 2007-01-12 15:08:48 UTC
I'll take this one.

Comment 2 Andrew Overholt 2007-01-12 15:13:11 UTC
Okay, first things first:  rpmlint output (on FC6):

W: eclipse-cdt non-standard-group Text Editors/Integrated Development
Environments (IDE)

This one I'm not sure about so let's leave it for now.  I'll look into it.

W: eclipse-cdt invalid-license Eclipse Public License - v 1.0 (EPL)
<http://www.eclipse.org/legal/epl-v10.html>

Just put EPL and not the version or the full name or the URL.

W: eclipse-cdt macro-in-%changelog eclipse_arch

Macros in %changelogs need to be double-%'d.  Change %{eclipse_arch} to
%%{eclipse_arch}.

W: eclipse-cdt mixed-use-of-spaces-and-tabs (spaces: line 7, tab: line 3)

Open the specfile in emacs and M-x untabify.

Comment 3 Andrew Overholt 2007-01-12 16:22:01 UTC
And now some comments about the specfile:

. don't use pkg_summary.  just put the summary in Summary:
. I don't think we need eclipse_name.  just replace that with eclipse in its 3 uses.
. get rid of the section macro
. I hate that there's an epoch but there's nothing we can do about that now
. arch-specific plugins such as org.eclipse.cdt.core.linux should be moved to
%{_libdir}/eclipse
. does the CDT still use ctags?
. do any of the jars contain arch-specific bits (.sos, etc.) that may make it
multilib-incompatible?
. eclipse_lib_base isn't currently used but it will be when you move the
arch-specific plugins there
. I think the instructions for generating the tarball no longer hold. 
Specifically, I think it should now be:

eclipse -Duser.home=../../home -application <everything else>
. is the autotools stuff all licensed properly?  ie. it's all EPL and it all has
the correct copyright notices in the files?
. could we add comments for all of the patches?  It would greatly help figuring
out why we're patching and what each patch is doing.
. is CPPUnit support EPL?
. should we require gcc?  what about gcc-c++?  Perhaps gdb and/or make already
require those ...
. can we look at adding all of the arches?  or at least can we add a comment
specifying why we're only building on the 4 we are?
. the sdk's %description is weak.  look at the sdk %descriptions in eclipse.spec
. we shouldn't have links between /usr/share/eclipse and /usr/lib/eclipse for
the .sos.  Ben, what do you think about this one?

Comment 4 Jeff Johnston 2007-01-15 22:18:12 UTC
(In reply to comment #2)
> Okay, first things first:  rpmlint output (on FC6):
> 
> W: eclipse-cdt non-standard-group Text Editors/Integrated Development
> Environments (IDE)
> 
> This one I'm not sure about so let's leave it for now.  I'll look into it.
> 
> W: eclipse-cdt invalid-license Eclipse Public License - v 1.0 (EPL)
> <http://www.eclipse.org/legal/epl-v10.html>
> 
> Just put EPL and not the version or the full name or the URL.
> 
> W: eclipse-cdt macro-in-%changelog eclipse_arch
> 
> Macros in %changelogs need to be double-%'d.  Change %{eclipse_arch} to
> %%{eclipse_arch}.
> 
> W: eclipse-cdt mixed-use-of-spaces-and-tabs (spaces: line 7, tab: line 3)
> 
> Open the specfile in emacs and M-x untabify.

New SRPM URL: http://www.vermillionskye.com/eclipse-cdt-3.1.1-6.1.fc7.src.rpm

All comments above handled.


Comment 5 Jeff Johnston 2007-01-15 22:23:33 UTC
(In reply to comment #3)
> And now some comments about the specfile:
> 
> . don't use pkg_summary.  just put the summary in Summary:

Done.

> . I don't think we need eclipse_name.  just replace that with eclipse in its 3
uses.

Done.

> . get rid of the section macro

Done.

> . I hate that there's an epoch but there's nothing we can do about that now
> . arch-specific plugins such as org.eclipse.cdt.core.linux should be moved to
> %{_libdir}/eclipse

Done.

> . does the CDT still use ctags?

There is a comment it has been removed so ctags requirement removed.

> . do any of the jars contain arch-specific bits (.sos, etc.) that may make it
> multilib-incompatible?

Not sure what you mean other than the arch plug-ins.

> . eclipse_lib_base isn't currently used but it will be when you move the
> arch-specific plugins there

Yes, it used now.

> . I think the instructions for generating the tarball no longer hold. 
> Specifically, I think it should now be:
> 
> eclipse -Duser.home=../../home -application <everything else>

Yes.  Comments added and checked for all tarballs used.

> . is the autotools stuff all licensed properly?  ie. it's all EPL and it all has
> the correct copyright notices in the files?

It does now.  Comments added and licenses added.  Source tarball updated.

> . could we add comments for all of the patches?  It would greatly help figuring
> out why we're patching and what each patch is doing.

Done.

> . is CPPUnit support EPL?

No.  It is CPL.

> . should we require gcc?  what about gcc-c++?  Perhaps gdb and/or make already
> require those ...

Yes, I believe we should.  We use parts of gcc.

> . can we look at adding all of the arches?  or at least can we add a comment
> specifying why we're only building on the 4 we are?

I have added a comment.

> . the sdk's %description is weak.  look at the sdk %descriptions in eclipse.spec

Done.

> . we shouldn't have links between /usr/share/eclipse and /usr/lib/eclipse for
> the .sos.  Ben, what do you think about this one?

Nothing done on this.  Let me know what is needed.



Comment 6 Ben Konrath 2007-01-15 22:43:51 UTC
(In reply to comment #5)
> (In reply to comment #3)
> > . we shouldn't have links between /usr/share/eclipse and /usr/lib/eclipse for
> > the .sos.  Ben, what do you think about this one?
> 
> Nothing done on this.  Let me know what is needed.
 
For FHS compliance you need to put fragments with shared libraries in
%{libdir}/eclipse/plugins to avoid symlinking from /usr/share to /usr/lib. See
this document for more information:

http://wiki.eclipse.org/index.php/FHS_Compliant_Packages

Comment 7 Jeff Johnston 2007-01-16 20:48:38 UTC
Plugins with shared libraries are also plugins that get moved to
/usr/lib/eclipse already because of arch.  Thus, section in install that moves
.so and links them to /usr/share has been removed.

Specfile and srpm have been updated.

Comment 8 Andrew Overholt 2007-01-16 23:06:57 UTC
(In reply to comment #7)
> Specfile and srpm have been updated.

What are the new URLs?

Comment 10 Andrew Overholt 2007-01-17 15:58:24 UTC
I can't build that SRPM:

+ mkdir -p /var/tmp/eclipse-cdt-buildroot/usr/lib/eclipse/plugins
++ find ./usr/share/eclipse/plugins -name '*x86_3.1.1*'
find: ./usr/share/eclipse: No such file or directory
+ popd
/var/tmp/rpm-tmp.90082: line 40: popd: directory stack empty
error: Bad exit status from /var/tmp/rpm-tmp.90082 (%install)

Comment 11 Jeff Johnston 2007-01-17 21:30:57 UTC
My bad.  I removed the .so move stuff but clipped two lines that created and
pushed a directory.  The files have been updated (same URL).  In this round, I
also removed gcj .so files from the SDK package as they are already in the base rpm.

Spec URL: http://www.vermillionskye.com/eclipse-cdt.spec
SRPM URL: http://www.vermillionskye.com/eclipse-cdt-3.1.1-7.fc7.src.rpm




Comment 12 Andrew Overholt 2007-01-18 17:04:46 UTC
Almost there.  Just fix the lines beginning with an X:

MUST:
* rpmlint on eclipse-cdt srpm gives no output
* package is named appropriately
* specfile name matches %{name}
X package meets packaging guidelines.

BuildRoot incorrect.  As per this:

http://fedoraproject.org/wiki/Packaging/Guidelines#BuildRoot

it should be:

%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

Also, you have %{dist} where that should be %{?dist}.

X license field matches the actual license.

because CPPUnit is still CPL, it has to be:

License: EPL/CPL

You need to speak to upstream to get them to re-license the cppunit plugin(s)

* license is open source-compatible.
X license text included in package and marked with %doc

you'll need to include a copy of epl-v10.html and cpl.html and mark them with
%doc in the files section.  Just put them in the cdt core and/or the cdt sdk
feature directories.

* specfile written in American English
* specfile is legible
* source files match upstream
  upstream doesn't provide a source tarball but instructions on how to
  generate are provided; I can't reproduce the tarballs exactly using these
  intructions (size differences), but a diff of the exploded contents gives
  nothing.
* package successfully compiles and builds on at least x86 (it's building on
the other arches in Fedora Core presently)

> please file a bug in Red Hat bugzilla to investigate building on all arches
> also, please file a bug with upstream regarding this; we don't care if they
> _provide_ builds on other platforms than they do now, but it should at least
> be buildable on all arches.

* BuildRequires are proper
* no locale data so no find_lang necessary
* package is not relocatable
* package owns all directories and files
* no %files duplicates
* file permissions are fine; %defattrs present
* %clean present
* macro usage is consistent
* package contains code
* no large docs so no -doc subpackage
  the doc plugins aren't usable outside of Eclipse so there's no point marking
  them as %doc
* %doc files don't affect runtime (N/A)
* shared libraries are present, but no ldconfig required.
* no pkgconfig or header files
* no -devel package
* no .la files
* no desktop file
* not a web app.
* file ownership fine
X final provides and requires are sane

$ rpm -qp --provides eclipse-cdt-3.1.1-7.i386.rpm
cdt_linux.jar.so  
com.redhat.eclipse.cdt.autotools_0.0.6.jar.so  
cppunit.jar.so  
libpty.so  
libspawner.so  
org.eclipse.cdt.core_3.1.1.200701181121.jar.so  
org.eclipse.cdt.debug.core_3.1.1.200701181121.jar.so  
org.eclipse.cdt.debug.mi.core_3.1.1.200701181121.jar.so  
org.eclipse.cdt.debug.mi.ui_3.1.1.200701181121.jar.so  
org.eclipse.cdt.debug.ui_3.1.1.200701181121.jar.so  
org.eclipse.cdt.launch_3.1.1.200701181121.jar.so  
org.eclipse.cdt.make.core_3.1.1.200701181121.jar.so  
org.eclipse.cdt.make.ui_3.1.1.200701181121.jar.so  
org.eclipse.cdt.managedbuilder.core_3.1.1.200701181121.jar.so  
org.eclipse.cdt.managedbuilder.gnu.ui_3.1.1.200701181121.jar.so  
org.eclipse.cdt.managedbuilder.ui_3.1.1.200701181121.jar.so  
org.eclipse.cdt.refactoring_3.1.1.200701181121.jar.so  
org.eclipse.cdt.ui_3.1.1.200701181121.jar.so  
eclipse-cdt = 1:3.1.1-7

$ rpm -qp --provides eclipse-cdt-sdk-3.1.1-7.i386.rpm
eclipse-cdt-sdk = 1:3.1.1-7

$ rpm -qp --requires eclipse-cdt-3.1.1-7.i386.rpm
/bin/sh  
/bin/sh  
eclipse-platform  
eclipse-platform >= 1:3.2.0
gdb  
java-gcj-compat >= 1.0.64
java-gcj-compat >= 1.0.64
libc.so.6  
libc.so.6(GLIBC_2.0)  
libc.so.6(GLIBC_2.1)  
libc.so.6(GLIBC_2.1.3)  
libdl.so.2  
libgcc_s.so.1  
libgcc_s.so.1(GCC_3.0)  
libgcc_s.so.1(GLIBC_2.0)  
libgcj_bc.so.1  
libm.so.6  
libpthread.so.0  
librt.so.1  
libz.so.1  
make  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH) 

X do we need a Requirement on gcc?

$ rpm -qp --requires eclipse-cdt-sdk-3.1.1-7.i386.rpm
eclipse-cdt = 1:3.1.1-7
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1

SHOULD:
X package includes license text
  see my comments above about including the EPL and CPL texts as html in the
  feature directories
* package builds on i386
  ... and others in brew ATM; I don't envision a problem here)
* package functions in Eclipse
X package builds in mock
  my mock setup doesn't seem to be working but I don't anticipate any problems
  here as the package currently builds fine in brew


Comment 13 Jeff Johnston 2007-01-18 20:13:01 UTC
Packages updated at same URLs.

(In reply to comment #12)
> Almost there.  Just fix the lines beginning with an X:
> 
> MUST:
> * rpmlint on eclipse-cdt srpm gives no output
> * package is named appropriately
> * specfile name matches %{name}
> X package meets packaging guidelines.
> 
> BuildRoot incorrect.  As per this:
> 
> http://fedoraproject.org/wiki/Packaging/Guidelines#BuildRoot
> 
> it should be:
> 
> %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
> 

Done.

> Also, you have %{dist} where that should be %{?dist}.
>

Done.
 
> X license field matches the actual license.
> 
> because CPPUnit is still CPL, it has to be:
> 
> License: EPL/CPL
>

Have changed to: Eclipse Public License / CPL

rpmlint doesn't like the combination, but individually, each license above
is valid to rpmlint.
 
> You need to speak to upstream to get them to re-license the cppunit plugin(s)
> 
> * license is open source-compatible.
> X license text included in package and marked with %doc
> 
> you'll need to include a copy of epl-v10.html and cpl.html and mark them with
> %doc in the files section.  Just put them in the cdt core and/or the cdt sdk
> feature directories.
> 

Done.

> * specfile written in American English
> * specfile is legible
> * source files match upstream
>   upstream doesn't provide a source tarball but instructions on how to
>   generate are provided; I can't reproduce the tarballs exactly using these
>   intructions (size differences), but a diff of the exploded contents gives
>   nothing.
> * package successfully compiles and builds on at least x86 (it's building on
> the other arches in Fedora Core presently)
> 
> > please file a bug in Red Hat bugzilla to investigate building on all arches
> > also, please file a bug with upstream regarding this; we don't care if they
> > _provide_ builds on other platforms than they do now, but it should at least
> > be buildable on all arches.
> 
> * BuildRequires are proper
> * no locale data so no find_lang necessary
> * package is not relocatable
> * package owns all directories and files
> * no %files duplicates
> * file permissions are fine; %defattrs present
> * %clean present
> * macro usage is consistent
> * package contains code
> * no large docs so no -doc subpackage
>   the doc plugins aren't usable outside of Eclipse so there's no point marking
>   them as %doc
> * %doc files don't affect runtime (N/A)
> * shared libraries are present, but no ldconfig required.
> * no pkgconfig or header files
> * no -devel package
> * no .la files
> * no desktop file
> * not a web app.
> * file ownership fine
> X final provides and requires are sane
> 
> $ rpm -qp --provides eclipse-cdt-3.1.1-7.i386.rpm
> cdt_linux.jar.so  
> com.redhat.eclipse.cdt.autotools_0.0.6.jar.so  
> cppunit.jar.so  
> libpty.so  
> libspawner.so  
> org.eclipse.cdt.core_3.1.1.200701181121.jar.so  
> org.eclipse.cdt.debug.core_3.1.1.200701181121.jar.so  
> org.eclipse.cdt.debug.mi.core_3.1.1.200701181121.jar.so  
> org.eclipse.cdt.debug.mi.ui_3.1.1.200701181121.jar.so  
> org.eclipse.cdt.debug.ui_3.1.1.200701181121.jar.so  
> org.eclipse.cdt.launch_3.1.1.200701181121.jar.so  
> org.eclipse.cdt.make.core_3.1.1.200701181121.jar.so  
> org.eclipse.cdt.make.ui_3.1.1.200701181121.jar.so  
> org.eclipse.cdt.managedbuilder.core_3.1.1.200701181121.jar.so  
> org.eclipse.cdt.managedbuilder.gnu.ui_3.1.1.200701181121.jar.so  
> org.eclipse.cdt.managedbuilder.ui_3.1.1.200701181121.jar.so  
> org.eclipse.cdt.refactoring_3.1.1.200701181121.jar.so  
> org.eclipse.cdt.ui_3.1.1.200701181121.jar.so  
> eclipse-cdt = 1:3.1.1-7
> 
> $ rpm -qp --provides eclipse-cdt-sdk-3.1.1-7.i386.rpm
> eclipse-cdt-sdk = 1:3.1.1-7
> 
> $ rpm -qp --requires eclipse-cdt-3.1.1-7.i386.rpm
> /bin/sh  
> /bin/sh  
> eclipse-platform  
> eclipse-platform >= 1:3.2.0
> gdb  
> java-gcj-compat >= 1.0.64
> java-gcj-compat >= 1.0.64
> libc.so.6  
> libc.so.6(GLIBC_2.0)  
> libc.so.6(GLIBC_2.1)  
> libc.so.6(GLIBC_2.1.3)  
> libdl.so.2  
> libgcc_s.so.1  
> libgcc_s.so.1(GCC_3.0)  
> libgcc_s.so.1(GLIBC_2.0)  
> libgcj_bc.so.1  
> libm.so.6  
> libpthread.so.0  
> librt.so.1  
> libz.so.1  
> make  
> rpmlib(CompressedFileNames) <= 3.0.4-1
> rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> rtld(GNU_HASH) 
> 
> X do we need a Requirement on gcc?
> 

Per offline conversation, I have required gcc-c++, automake, and autoconf.

> $ rpm -qp --requires eclipse-cdt-sdk-3.1.1-7.i386.rpm
> eclipse-cdt = 1:3.1.1-7
> rpmlib(CompressedFileNames) <= 3.0.4-1
> rpmlib(PayloadFilesHavePrefix) <= 4.0-1
> 
> SHOULD:
> X package includes license text
>   see my comments above about including the EPL and CPL texts as html in the
>   feature directories

Ok.

> * package builds on i386
>   ... and others in brew ATM; I don't envision a problem here)
> * package functions in Eclipse
> X package builds in mock
>   my mock setup doesn't seem to be working but I don't anticipate any problems
>   here as the package currently builds fine in brew
> 

Ok.


Comment 14 Andrew Overholt 2007-01-18 21:05:55 UTC
APPROVED

Thanks, Jeff!

Comment 15 Andrew Overholt 2007-01-22 19:11:31 UTC
This package can't move to Extras until eclipse-changelog (bug #222365) does.

Comment 16 Kevin Fenzi 2007-06-09 04:29:21 UTC
Hey Andrew. Can this be closed now? 
You might also set the fedora-review to + also to conform to the current rules... 
(although I don't think it matters too much either way)

Comment 17 Andrew Overholt 2007-06-11 15:55:20 UTC
Yes, we can close this now and set it to +.  Thanks for the reminder.



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