Bug 822283 - Review Request: vim-omnicppcomplete - vim c++ completion omnifunc with a ctags database
Summary: Review Request: vim-omnicppcomplete - vim c++ completion omnifunc with a ctag...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Rex Dieter
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-05-16 22:59 UTC by Marc Deop
Modified: 2016-04-13 16:49 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2016-04-13 16:49:01 UTC
Type: ---
Embargoed:
rdieter: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Marc Deop 2012-05-16 22:59:17 UTC
Spec URL: http://marcdeop.fedorapeople.org/vim-omnicppcomplete.spec
SRPM URL: http://marcdeop.fedorapeople.org/vim-omnicppcomplete-0.41-1.fc17.src.rpm
Description: This script is for vim 7.0 or higher, it provides C/C++ completion thanks to a ctags database.

Hello everyone, this is my first package for Fedora and I'd love of some of the more experienced guys have a look and review it.

I contacted the developer and he agreed to release the software under the GPL license an he gave us permission to package the script.

As this is my first work, I'm in the need for an sponsor :)

Comment 1 Brenton Leanhardt 2012-07-26 18:01:36 UTC
Hi Marc,

Thanks for contacting upstream to have them release the code under the GPL.  Just so you are aware, right now the Spec and SRPM links return a 403.

Comment 3 Rex Dieter 2012-11-08 20:08:00 UTC
Package Review
==============

Key:
[x] = Pass
[!] = Fail
[-] = Not applicable
[?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. No licenses
     found. Please check the source files for licenses manually.
See: http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#ValidLicenseShortNames


===== MUST items =====

Generic:
[ ]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[ ]: %build honors applicable compiler flags or justifies otherwise.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[ ]: Package contains no bundled libraries.
[ ]: Changelog in prescribed format.
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[ ]: Sources contain only permissible code or content.
[x]: Each %files section contains %defattr if rpm < 4.4
[ ]: Macros in Summary, %description expandable at SRPM build time.
[ ]: Package contains desktop file if it is a GUI application.
[ ]: Development files must be in a -devel package
[ ]: Package requires other packages for directories it uses.
[ ]: Package uses nothing in %doc for runtime.
[ ]: Package is not known to require ExcludeArch.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[ ]: Package complies to the Packaging Guidelines
[x]: Spec file lacks Packager, Vendor, PreReq tags.
[ ]: 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.
[!]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. No licenses
     found. Please check the source files for licenses manually.
[ ]: Package consistently uses macro is (instead of hard-coded directory
     names).
[x]: Package is named using only allowed ASCII characters.
[ ]: Package is named according to the Package Naming Guidelines.
[ ]: Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[x]: Package do not use a name that already exist
[ ]: Package obeys FHS, except libexecdir and /usr/target.
[ ]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[ ]: Package must own all directories that it creates.
[ ]: Package does not own files or directories owned by other packages.
[x]: Package installs properly.
[ ]: Package is not relocatable.
[ ]: Requires correct, justified where necessary.
[x]: CheckResultdir
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[ ]: Spec file is legible and written in American English.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[ ]: Package contains systemd file(s) if in need.
[x]: File names are valid UTF-8.
[ ]: Large documentation must go in a -doc subpackage.
     Note: Test run failed
[ ]: Packages must not store files under /srv, /opt or /usr/local
     Note: Test run failed

===== SHOULD items =====

Generic:
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[ ]: If the source package does not include license text(s) as a separate file
     from upstream, the packager SHOULD query upstream to include it.
[x]: Dist tag is present.
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[ ]: Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[ ]: Package functions as described.
[ ]: Latest version is packaged.
[ ]: Package does not include license text files separate from upstream.
[x]: The placement of pkgconfig(.pc) files are correct.
[ ]: Scriptlets must be sane, if used.
[x]: SourceX tarball generation or download is documented.
[!]: SourceX / PatchY prefixed with %{name}.
     Note: Source0 (omnicppcomplete-0.41.zip)
[x]: SourceX is a working URL.
[ ]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[ ]: %check is present and all tests pass.
[ ]: Packages should try to preserve timestamps of original installed files.
[x]: Spec use %global instead of %define.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.
[ ]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.
     Note: Test run failed


Rpmlint
-------
Checking: vim-omnicppcomplete-0.41-1.fc18.noarch.rpm
          vim-omnicppcomplete-0.41-1.fc18.src.rpm
vim-omnicppcomplete.noarch: W: spelling-error Summary(en_US) omnifunc -> omniscience
vim-omnicppcomplete.noarch: W: summary-not-capitalized C vim c++ completion omnifunc with a ctags database
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US namespaces -> name spaces, name-spaces, names paces
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US structs -> struts, obstructs, destructs
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US eg -> eh, e, g
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US myObject -> my Object, my-object, object
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US typedef -> type def, type-def, typeface
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US struct -> strict, strut, struck
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US datas -> data, data's, dates
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US tokenized -> tokenism
vim-omnicppcomplete.noarch: E: description-line-too-long C This script is for vim 7.0 or higher, it provides C/C++ completion thanks to a ctags database.
vim-omnicppcomplete.noarch: E: description-line-too-long C     -   Complete inherited members for classes and structs (single and multiple inheritance).
vim-omnicppcomplete.noarch: E: description-line-too-long C     -   Complete anonymous types (eg: struct {int a; int b;}g_Var; g_Var.???). It also works for a typedef of an anonymous type.
vim-omnicppcomplete.noarch: E: description-line-too-long C     -   Ambiguous namespaces are detected and are not included in the context stack.
vim-omnicppcomplete.noarch: E: description-line-too-long C     -   The parsed code is tokenized so you can run a completion even if the current
vim-omnicppcomplete.noarch: E: description-line-too-long C         instruction has bad indentation, spaces, comments or carriage returns between words
vim-omnicppcomplete.noarch: W: non-standard-group Application/Editors
vim-omnicppcomplete.noarch: W: invalid-license GPL
vim-omnicppcomplete.noarch: W: dangerous-command-in-%postun rm
vim-omnicppcomplete.src: W: spelling-error Summary(en_US) omnifunc -> omniscience
vim-omnicppcomplete.src: W: spelling-error Summary(en_US) ctags -> crags, tags, stags
vim-omnicppcomplete.src: W: summary-not-capitalized C vim c++ completion omnifunc with a ctags database
vim-omnicppcomplete.src: W: spelling-error %description -l en_US ctags -> crags, tags, stags
vim-omnicppcomplete.src: W: spelling-error %description -l en_US namespaces -> name spaces, name-spaces, names paces
vim-omnicppcomplete.src: W: spelling-error %description -l en_US structs -> struts, obstructs, destructs
vim-omnicppcomplete.src: W: spelling-error %description -l en_US eg -> eh, e, g
vim-omnicppcomplete.src: W: spelling-error %description -l en_US myObject -> my Object, my-object, object
vim-omnicppcomplete.src: W: spelling-error %description -l en_US typedef -> type def, type-def, typeface
vim-omnicppcomplete.src: W: spelling-error %description -l en_US struct -> strict, strut, struck
vim-omnicppcomplete.src: W: spelling-error %description -l en_US datas -> data, data's, dates
vim-omnicppcomplete.src: W: spelling-error %description -l en_US tokenized -> tokenism
vim-omnicppcomplete.src: E: description-line-too-long C This script is for vim 7.0 or higher, it provides C/C++ completion thanks to a ctags database.
vim-omnicppcomplete.src: E: description-line-too-long C     -   Complete inherited members for classes and structs (single and multiple inheritance).
vim-omnicppcomplete.src: E: description-line-too-long C     -   Complete anonymous types (eg: struct {int a; int b;}g_Var; g_Var.???). It also works for a typedef of an anonymous type.
vim-omnicppcomplete.src: E: description-line-too-long C     -   Ambiguous namespaces are detected and are not included in the context stack.
vim-omnicppcomplete.src: E: description-line-too-long C     -   The parsed code is tokenized so you can run a completion even if the current
vim-omnicppcomplete.src: E: description-line-too-long C         instruction has bad indentation, spaces, comments or carriage returns between words
vim-omnicppcomplete.src: W: non-standard-group Application/Editors
vim-omnicppcomplete.src: W: invalid-license GPL
vim-omnicppcomplete.src: W: invalid-url Source0: omnicppcomplete-0.41.zip
2 packages and 0 specfiles checked; 12 errors, 28 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint vim-omnicppcomplete
vim-omnicppcomplete.noarch: W: spelling-error Summary(en_US) omnifunc -> omniscience
vim-omnicppcomplete.noarch: W: summary-not-capitalized C vim c++ completion omnifunc with a ctags database
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US namespaces -> name spaces, name-spaces, names paces
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US structs -> struts, obstructs, instructs
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US eg -> eh, e, g
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US myObject -> my Object, my-object, object
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US typedef -> type def, type-def, typeface
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US struct -> strict, strut, struck
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US datas -> data, dates, data s
vim-omnicppcomplete.noarch: W: spelling-error %description -l en_US tokenized -> tokenism
vim-omnicppcomplete.noarch: E: description-line-too-long C This script is for vim 7.0 or higher, it provides C/C++ completion thanks to a ctags database.
vim-omnicppcomplete.noarch: E: description-line-too-long C     -   Complete inherited members for classes and structs (single and multiple inheritance).
vim-omnicppcomplete.noarch: E: description-line-too-long C     -   Complete anonymous types (eg: struct {int a; int b;}g_Var; g_Var.???). It also works for a typedef of an anonymous type.
vim-omnicppcomplete.noarch: E: description-line-too-long C     -   Ambiguous namespaces are detected and are not included in the context stack.
vim-omnicppcomplete.noarch: E: description-line-too-long C     -   The parsed code is tokenized so you can run a completion even if the current
vim-omnicppcomplete.noarch: E: description-line-too-long C         instruction has bad indentation, spaces, comments or carriage returns between words
vim-omnicppcomplete.noarch: W: non-standard-group Application/Editors
vim-omnicppcomplete.noarch: W: invalid-license GPL
vim-omnicppcomplete.noarch: W: dangerous-command-in-%postun rm
1 packages and 0 specfiles checked; 6 errors, 13 warnings.
# echo 'rpmlint-done:'



Requires
--------
vim-omnicppcomplete-0.41-1.fc18.noarch.rpm (rpmlib, GLIBC filtered):
    
    /bin/sh
    ctags
    vim
    vim-common



Provides
--------
vim-omnicppcomplete-0.41-1.fc18.noarch.rpm:
    
    vim-omnicppcomplete = 0.41-1.fc18



MD5-sum check
-------------
Using local file /home/rdieter1/pkgs.fedoraproject.org/work/vim-omnicppcomplete/omnicppcomplete-0.41.zip as upstream
file:///home/rdieter1/pkgs.fedoraproject.org/work/vim-omnicppcomplete/omnicppcomplete-0.41.zip :
  CHECKSUM(SHA256) this package     : 7f0f3e870674458548bf219cba70ae11a5a7076399ca3fc2380982b61fb9d2da
  CHECKSUM(SHA256) upstream package : 7f0f3e870674458548bf219cba70ae11a5a7076399ca3fc2380982b61fb9d2da


Generated by fedora-review 0.3.1 (b71abc1) last change: 2012-10-16
Buildroot used: fedora-18-x86_64
Command line :/usr/bin/fedora-review -c --name=vim-omnicppcomplete



Cliff's notes version of all that:

1. MUST fix licensing, 2 issues really
a. License: tag is not valid, see https://fedoraproject.org/wiki/Licensing:Main?rd=Licensing#SoftwareLicenses (short names)
b. I don't see any mention of GPL anywhere.  source files with copyright/license statement or a an statement from the author about licensing is required

2.  SHOULD remove scriptlets (discussed on irc), and
Requires(post): vim
Requires(postun): vim


3.  MUST replace
Requires:       vim-common,ctags
with
Requires: ctags
Requires: vim-filesystem
(whether you use one line or 2, is a matter of taste, point is replace vim-common with vim-filesystem)

Comment 4 Marc Deop 2012-11-10 17:06:03 UTC
The author updated the sources on git to add the GPL licence:

https://github.com/FromtonRouge/OmniCppComplete

I removed the scriptlets and replaced the "Requires" as Rex Dieter suggested.

By the way:

http://marcdeop.fedorapeople.org/vim-omnicppcomplete.spec
http://marcdeop.fedorapeople.org/vim-omnicppcomplete-0.41-2.fc17.src.rpm

Should I create a package from git or could we just go ahead and proceed with the packaging?

Thanks

Comment 5 Rex Dieter 2012-11-15 15:37:34 UTC
APPROVED.


Small nice-to-have things i'd like to see prior to any official builds done however,

1.  include reference to upstream commits about licensing as a comment in .spec or even better, include those commits as patches (for former is easier of course)

2.  remove empty %post, %postun

Comment 6 Marc Deop 2012-11-15 23:18:29 UTC
Updated again:

http://marcdeop.fedorapeople.org/vim-omnicppcomplete.spec
http://marcdeop.fedorapeople.org/vim-omnicppcomplete-0.41-3.fc17.src.rpm
http://marcdeop.fedorapeople.org/license.patch

Could anyone please double check how I applied the patch? is that the correct way?

Thanks in advance!

Comment 7 Rex Dieter 2013-03-29 14:17:32 UTC
Marc go ahead and import into rawhide.  I'll be happy to review (and fix/collaborate things as needed).

Comment 9 Rex Dieter 2014-09-30 17:29:30 UTC
ping again, will close as a dead/stalled review if no response after another week

Comment 10 Marc Deop 2014-10-09 14:05:10 UTC
Hello,

I am really sorry for the delay (if we can even call it delay).

I do plan on importing this, give me 10 more days please.

Comment 11 Rex Dieter 2014-10-09 15:19:04 UTC
Great! glad to hear from you, looking forward to seeing it.  

Please let me know if you have any other questions or need anything else.

Comment 12 Marc Deop 2014-11-23 15:51:47 UTC
New Package SCM Request
=======================
Package Name: vim-omnicppcomplete
Short Description: vim c++ completion omnifunc with a ctags database
Upstream URL: http://www.vim.org/scripts/script.php?script_id=1520
Owners: marcdeop
Branches: f19 f20 f21 el6 epel7
InitialCC:

Comment 13 Gwyn Ciesla 2014-11-24 13:35:15 UTC
Git done (by process-git-requests).

Comment 14 Rex Dieter 2016-04-13 16:49:01 UTC
closing, imported long ago


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