Bug 590305 - Review Request: vile - VI Like Emacs
Review Request: vile - VI Like Emacs
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
low Severity medium
: ---
: ---
Assigned To: Martin Gieseking
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2010-05-08 14:32 EDT by Mark McKinstry
Modified: 2014-11-15 23:17 EST (History)
4 users (show)

See Also:
Fixed In Version: vile-9.8o-1.el7
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2011-02-16 12:24:43 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
martin.gieseking: fedora‑review+
limburgher: fedora‑cvs+


Attachments (Terms of Use)

  None (edit)
Description Mark McKinstry 2010-05-08 14:32:22 EDT
I have another package at bug id 586473.

Spec URL: http://mmckinst.nexcess.net/vile/vile.spec
SRPM URL: http://mmckinst.nexcess.net/vile/vile-9.7zc-1.fc12.src.rpm
Description: Vile is a text editor which is extremely compatible with vi in terms 
of "finger feel".  In addition, it has extended capabilities in many areas, 
notably multi-file editing and viewing, syntax highlighting, and key rebinding.


$ rpmlint vile.spec
vile.spec: W: invalid-url Source0: ftp://invisible-island.net/vile/current/vile-9.7zc.tgz <urlopen error ftp error: timed out>
0 packages and 1 specfiles checked; 0 errors, 1 warnings.
$ rpmlint vile-9.7zc-1.fc12.src.rpm 
vile.src: W: spelling-error %description -l en_US multi -> Miltie, Milt, milt
vile.src: W: invalid-url Source0: ftp://invisible-island.net/vile/current/vile-9.7zc.tgz <urlopen error ftp error: timed out>
1 packages and 0 specfiles checked; 0 errors, 2 warnings.
$ 

The invalid-url error comes because the FTP server is a little slow and times 
out. If you wget it, it will work fine.
Comment 1 Susi Lehtola 2010-05-08 16:42:08 EDT
- rpmlint output is OK.

- Non-numeric versioning seems to be allowed in this case, so that's OK.

- Please use %{version} macro in Source0 line. (The macro is automatically defined by the Version: tag)

- Please don't mix "vile" and "%{name}" in %files, just choose one and stick with it.

- This package uses GNU autotools, so a plain
 make %{?_smp_mflags}
will do just fine.

- There's optional X and Perl support. I think that they should be added, as well.

- Furthermore you must add flex as a BuildRequire:

checking for startup path... $(datadir)
checking if lex supports %pointer... no
configure: WARNING: Your lex program does not support POSIX %pointer.  Get flex.
checking if lex supports character classes... no
configure: WARNING: Your lex program does not support POSIX character classes.  Get flex.
checking if lex supports options... no
configure: WARNING: Your lex program does not support POSIX options.  Get flex.
checking if lex supports states... lex conftest.l 1>&5
configure: WARNING: disabling build for lex-filters


- The license is not clearly defined. A lot of the source files don't have any license headers. The included COPYING file states that 
 ... "it is released under the provisions of the specific version of
 the GNU General Public License, below."
with the rest of the file containing the GPLv2 license.
This would make the License: tag GPL+.

However, ntwinio.c is explicitly under GPLv2, and regexp.c and vl_*.h under the MIT license. vl_ctype.c, however, doesn't have a license declaration.

MIT is compatible with GPL, so GPL+ and GPLv2 makes GPLv2 in total.

Please ask upstream to add proper license headers in all the source code files, and also a definition what version of the GPL applies to the distribution.
Comment 2 Mark McKinstry 2010-08-17 22:03:14 EDT
In the time since I submitted this, vile 9.8 has been released so I have updated the spec and SRPM to that version:

Spec URL: http://mmckinst.nexcess.net/vile/vile.spec
SRPM URL: http://mmckinst.nexcess.net/vile/vile-9.8-1.fc14.src.rpm

Regarding your comments:

> Please use %{version} macro in Source0 line. (The macro is automatically defined by the Version: tag)

Fixed.

> Please don't mix "vile" and "%{name}" in %files, just choose one and stick with it.

Fixed.

> This package uses GNU autotools, so a plain make %{?_smp_mflags} will do just fine.

Fixed.

> There's optional X and Perl support. I think that they should be added, as well.

I looked in to perl but it requires Net::Dict and no RPM exists for it. I'll make an RPM for that later and add in perl support. Regarding X support, xvile should be its own package, rather than part of this vile package here. I might try to do xvile, but 100% of my Linux time is spent without a GUI so I might not be the best person.

> Furthermore you must add flex as a BuildRequire:

Added.

> The license is not clearly defined

I've updated the License to be GPLv2
Comment 3 Martin Gieseking 2010-10-07 12:33:19 EDT
As Jussi already suggested, I also think it's a good idea to build xvile too, and put it into an optionally installable subpackage, e.g. vile-x11. Both vile and xvile can share all data files and the filters. It shouldn't be complicated to extend the SPEC accordingly.
Comment 4 Mark McKinstry 2011-01-24 22:36:18 EST
> As Jussi already suggested, I also think it's a good idea to build xvile too,
> and put it into an optionally installable subpackage, e.g. vile-x11. Both vile
> and xvile can share all data files and the filters. It shouldn't be complicated
> to extend the SPEC accordingly.

This is now done. vile.spec creates three packages, vile, xvile, and vile-common.

http://koji.fedoraproject.org/koji/taskinfo?taskID=2740691

http://mmckinst.nexcess.net/vile/vile-9.8d-1.fc14.src.rpm
http://mmckinst.nexcess.net/vile/vile.spec
Comment 5 Martin Gieseking 2011-01-25 08:42:22 EST
Hi Mark,

here are some notes on your package:

- The .desktop file isn't installed. See here how to do it:
  http://fedoraproject.org/wiki/Packaging/Guidelines#Desktop_files

- I recommend to use fully versioned dependencies on vile-common
  Requires: common = %{version}-%{release}

- please replace the icon file vile.xbm with file vile.xpm as the xbm format is
  not supported in desktop files (only png, svg and xpm work)

- replace %{_datarootdir} with %{_datadir} to be consistent
Comment 6 Martin Gieseking 2011-01-25 09:36:36 EST
(In reply to comment #5)
>   Requires: common = %{version}-%{release}

Sorry, it should be 
  Requires: %{name}-common = %{version}-%{release}
of course.
Comment 7 Mark McKinstry 2011-01-26 19:37:38 EST
(In reply to comment #5)
> - The .desktop file isn't installed. See here how to do it:
>   http://fedoraproject.org/wiki/Packaging/Guidelines#Desktop_files

Doh. I read that same page about how to do the desktop file but forgot to
install it. Its fixed now.

> - I recommend to use fully versioned dependencies on vile-common
>   Requires: common = %{version}-%{release}

Done.

> - please replace the icon file vile.xbm with file vile.xpm as the xbm format is
>   not supported in desktop files (only png, svg and xpm work)

Done.

> - replace %{_datarootdir} with %{_datadir} to be consistent

Done.

Spec: http://mmckinst.nexcess.net/vile/vile-9.8d-2.fc14.src.rpm
SRPM: http://mmckinst.nexcess.net/vile/vile.spec
Scratch: http://koji.fedoraproject.org/koji/taskinfo?taskID=2744695
Comment 8 Martin Gieseking 2011-01-27 16:21:52 EST
The package looks fine now. Since xvile.1 is a common manpage for xvile, uxvile, and lxvile, I suggest to add two symlinks uxvile.1 and lxvile.1 pointing to xvile.1. But that's optional.

$ rpmlint /var/lib/mock/fedora-14-x86_64/result/*.rpm
vile.src: W: spelling-error %description -l en_US multi -> mulch, mufti
vile.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti
vile.x86_64: W: no-manual-page-for-binary vile-pager
vile-common.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti
xvile.x86_64: W: spelling-error %description -l en_US multi -> mulch, mufti
xvile.x86_64: W: no-manual-page-for-binary lxvile
xvile.x86_64: W: no-manual-page-for-binary lxvile-fonts
xvile.x86_64: W: no-manual-page-for-binary uxvile
xvile.x86_64: W: no-manual-page-for-binary xshell.sh
xvile.x86_64: W: no-manual-page-for-binary xvile-pager
5 packages and 0 specfiles checked; 0 errors, 10 warnings.

All warnings can be ignored:
- spelling errors are false positive
- missing manpages are expected 

---------------------------------
key:

[+] OK
[.] OK, not applicable
[X] needs work
---------------------------------

[+] MUST: The package must be named according to the Package Naming Guidelines.
[+] MUST: The spec file name must match the base package %{name}.
[+] MUST: The package must meet the Packaging Guidelines.
[+] MUST: The package must be licensed with a Fedora approved license.
    - GPLv2

[+] MUST: The License field in the package spec file must match the actual license.
[+] MUST: The file containing the text of the license(s) for the package must be included in %doc.
    - present in vile-common required by vile and xvile

[+] MUST: The spec file must be written in American English.
[+] MUST: The spec file for the package MUST be legible.
[+] MUST: The sources used to build the package must match the upstream source.
    $ md5sum vile-9.8d.tgz*
    cae7e55d75f880d99b864d7057c5c89c  vile-9.8d.tgz
    cae7e55d75f880d99b864d7057c5c89c  vile-9.8d.tgz.1

[+] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture.
    koji scratch build (f15):
    http://koji.fedoraproject.org/koji/taskinfo?taskID=2746539

[+] MUST: %{optflags} must be applied properly when building binaries
[.] MUST: If the package does not successfully compile, build or work on an architecture, ...
[+] MUST: All build dependencies must be listed in BuildRequires.
[.] MUST: The spec file MUST handle locales properly.
[.] MUST: Packages storing shared library files (not just symlinks) must call ldconfig in %post and %postun.
[+] MUST: Packages must NOT bundle copies of system libraries.
[.] MUST: If the package is designed to be relocatable, ...
[+] MUST: A package must own all directories that it creates. 
[+] MUST: A Fedora package must not list a file more than once in %files.
[+] MUST: Permissions on files must be set properly.
[+] MUST: Each package must consistently use macros.
[+] MUST: The package must contain code, or permissable content.
[.] MUST: Large documentation files must go in a -doc subpackage.
[+] MUST: Files in %doc must not affect the runtime of the application.
[.] MUST: Header files must be in a -devel package.
[.] MUST: Static libraries must be in a -static package.
[.] MUST: If a package contains library files with a suffix ...
[.] MUST: devel packages must require the base package ...
[+] MUST: Packages must NOT contain any .la libtool archives.
[+] MUST: Packages containing GUI applications must include a %{name}.desktop file. 
[+] MUST: .desktop files must be properly installed with desktop-file-install in the %install section.
[+] MUST: Packages must not own files or directories already owned by other packages.
[+] MUST: All filenames in rpm packages must be valid UTF-8.

[.] SHOULD: If the source package does not include license text(s) as a separate file from upstream, ...
[+] SHOULD: The reviewer should test that the package builds in mock.
[+] SHOULD: The package should compile and build into binary rpms on all supported architectures.
[+] SHOULD: The reviewer should test that the package functions as described.
[.] SHOULD: If scriptlets are used, those scriptlets must be sane.
[+] SHOULD: Usually, subpackages other than devel should require the base package using a fully versioned dependency.
[.] SHOULD: pkgconfig(.pc) should be placed in a -devel pkg.
[.] SHOULD: If the package has file dependencies outside of /etc, /bin, /sbin, /usr/bin, or /usr/sbin
[.] SHOULD: your package should contain man pages for binaries/scripts. 

----------------
Package APPROVED
----------------
Comment 9 Mark McKinstry 2011-01-28 12:07:35 EST
New Package SCM Request
=======================
Package Name: vile
Short Description: VI Like Emacs
Owners: mmckinst
Branches: f13 f14 el4 el5 el6
Comment 10 Jason Tibbitts 2011-01-28 19:32:53 EST
Git done (by process-git-requests).
Comment 11 Fedora Update System 2011-01-31 00:01:35 EST
vile-9.8d-3.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/vile-9.8d-3.el6
Comment 12 Fedora Update System 2011-01-31 00:02:15 EST
vile-9.8d-3.el5 has been submitted as an update for Fedora EPEL 5.
https://admin.fedoraproject.org/updates/vile-9.8d-3.el5
Comment 13 Fedora Update System 2011-01-31 00:04:59 EST
vile-9.8d-3.fc13 has been submitted as an update for Fedora 13.
https://admin.fedoraproject.org/updates/vile-9.8d-3.fc13
Comment 14 Fedora Update System 2011-01-31 00:05:41 EST
vile-9.8d-3.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/vile-9.8d-3.fc14
Comment 15 Fedora Update System 2011-01-31 00:17:25 EST
vile-9.8d-3.el4 has been submitted as an update for Fedora EPEL 4.
https://admin.fedoraproject.org/updates/vile-9.8d-3.el4
Comment 16 Fedora Update System 2011-01-31 10:53:48 EST
vile-9.8d-3.el5 has been pushed to the Fedora EPEL 5 testing repository.  If problems still persist, please make note of it in this bug report.
 If you want to test the update, you can install it with 
 su -c 'yum --enablerepo=updates-testing update vile'.  You can provide feedback for this update here: https://admin.fedoraproject.org/updates/vile-9.8d-3.el5
Comment 17 Fedora Update System 2011-02-16 12:24:33 EST
vile-9.8d-3.el4 has been pushed to the Fedora EPEL 4 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 18 Fedora Update System 2011-02-16 12:25:09 EST
vile-9.8d-3.el6 has been pushed to the Fedora EPEL 6 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 19 Fedora Update System 2011-02-16 12:27:20 EST
vile-9.8d-3.el5 has been pushed to the Fedora EPEL 5 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 20 Fedora Update System 2011-02-16 14:16:55 EST
vile-9.8d-3.fc14 has been pushed to the Fedora 14 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 21 Fedora Update System 2011-02-16 14:20:37 EST
vile-9.8d-3.fc13 has been pushed to the Fedora 13 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 22 Mark McKinstry 2014-09-09 21:12:58 EDT
Package Change Request
======================
Package Name: vile
New Branches: epel7
Owners: mmckinst
Comment 23 Mark McKinstry 2014-09-12 17:49:47 EDT
There's still no epel7 branch when I look at http://pkgs.fedoraproject.org/cgit/vile.git/ . Please advise if I need to do something on my end to get it created. 

Package Change Request
======================
Package Name: vile
New Branches: epel7
Owners: mmckinst
Comment 24 Gwyn Ciesla 2014-09-15 08:03:04 EDT
Git done (by process-git-requests).
Comment 25 Fedora Update System 2014-10-30 22:00:48 EDT
vile-9.8o-1.el7 has been submitted as an update for Fedora EPEL 7.
https://admin.fedoraproject.org/updates/vile-9.8o-1.el7
Comment 26 Fedora Update System 2014-11-15 23:17:28 EST
vile-9.8o-1.el7 has been pushed to the Fedora EPEL 7 stable repository.

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