Bug 225672

Summary: Merge Review: cvs
Product: [Fedora] Fedora Reporter: Nobody's working on this, feel free to take it <nobody>
Component: Package ReviewAssignee: Vojtech Vitek <vvitek>
Status: CLOSED ERRATA QA Contact: Fedora Package Reviews List <fedora-package-review>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: hripps, jmoskovc, ovasik, ppisar, redhat-bugzilla, ville.skytta, vvitek
Target Milestone: ---Keywords: Reopened
Target Release: ---Flags: vvitek: fedora-review+
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: cvs-1.11.23-15.fc15 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-05-30 22:34:04 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
a cleaner spec
none
Please, ignore this attachment (wrong file)
none
Use rpmbuild >= 4.9 facilities for dependency filtering none

Description Nobody's working on this, feel free to take it 2007-01-31 17:54:38 UTC
Fedora Merge Review: cvs

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

Comment 1 Robert Scheck 2007-02-18 22:36:47 UTC
/etc/profile.d/cvs.sh is 755 instead of 644, /etc/profile.d/cvs.csh is not 
existent, but maybe should exist as equivalent?

Comment 2 Jindrich Novy 2007-02-19 14:08:22 UTC
Fixed in cvs-1.11.22-9.fc7.

Comment 3 manuel wolfshant 2009-01-10 05:25:37 UTC
Created attachment 328612 [details]
a cleaner spec

- makes use of SMP
- removes the obsolete [ "$RPM_BUILD_ROOT" != "/" ] check
- converts FAQ to UTF-8
- marks /etc/profile.d/* and /etc/pam.d/cvs as %config(noreplace). Not sure how useful that would be but it does not hurt
- adding an INSTALL="install -p" to make install

Comment 4 manuel wolfshant 2009-01-10 05:27:53 UTC
With the new spec, the only complaint from rpmlint is:
 cvs.x86_64: E: non-executable-script /usr/share/cvs/contrib/sccs2rcs 0644

which is safe to be ignored, given that this is intentional (avoids bringing csh in as dependency). To be honest, I would have done a chmod a-x on all the scripts from the contrib dir.

Comment 5 Vojtech Vitek 2010-10-13 13:36:24 UTC
Created attachment 453204 [details]
Please, ignore this attachment (wrong file)

Comment 6 Vojtech Vitek 2010-10-13 14:44:18 UTC
Please, ignore my previous comment/attachment. I've just posted that to wrong window.


Package review of cvs-1.11.23-10:

$ git log
commit f29d9dfd4406315b1e86cba82824d39beb88c874
Author: Fedora Release Engineering <rel-eng.org>
Date:   Wed Jul 28 12:30:44 2010 +0000

    dist-git conversion


Legend: + = PASSED, - = FAILED, 0 = Not Applicable

- MUST: rpmlint must be run on every package. The output should be posted in the review

$ rpmlint *.spec *.rpm x86_64/*.rpm
cvs.spec:86: W: macro-in-comment %patch16
cvs.spec:88: W: macro-in-comment %patch18
cvs.src: W: invalid-license LGPL+
cvs.src:86: W: macro-in-comment %patch16
cvs.src:88: W: macro-in-comment %patch18
cvs.x86_64: W: invalid-license LGPL+
cvs.x86_64: W: manual-page-warning /usr/share/man/man1/cvs.1.gz 26: warning: `Dt' not defined
cvs.x86_64: E: non-executable-script /usr/share/cvs/contrib/sccs2rcs 0644L /bin/csh
cvs.x86_64: W: no-manual-page-for-binary rcs2log
cvs-debuginfo.x86_64: W: invalid-license LGPL+
3 packages and 1 specfiles checked; 1 errors, 9 warnings.

Both man pages and licenses (see details below) should be fixed.

+ MUST: package 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 licensed with a Fedora approved license and meets the Licensing Guidelines
- MUST: The License field in the package spec file matches the actual license

cvs.spec:10: License: GPL+ and GPLv2+ and LGPL+
This is very obsolete/wrong.
There should be GPL instead of GPL+ and LGPLv2+ instead of LGPL+.
There is also 4-clause BSD licence in vms/pathnames.h and zlib/libpng licence in zlib/* files.

So the final string could be something like:
# Source files in zlib/ directory are licensed under zlib/libpng
# Other files are mostly GPL, some of them are GPLv2+ or
# LGPLv2+ and there is one file BSD licensed
License: BSD and GPL and GPLv2+ and LGPLv2+ and zlib/libpng

0 MUST: 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 must be included in %doc.
+ 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, as provided in the spec URL. Reviewers should use md5sum for this task

From sources:
$ cat sources 
0213ea514e231559d6ff8f80a34117f0  cvs-1.11.23.tar.bz2

From upstream (ftp://ftp.gnu.org/non-gnu/cvs/source/stable/*):
$ md5sum cvs-1.11.23.tar.bz2
0213ea514e231559d6ff8f80a34117f0  cvs-1.11.23.tar.bz2

= MATCHES

+ MUST: The package successfully compiles and builds into binary rpms on at
least one primary architecture
 - tested on x86_64, no problems
0 MUST: If the package does not successfully compile, build or work on an
architecture, then those architectures should be listed in the spec in
ExcludeArch
+ MUST: All build dependencies must be listed in BuildRequires, except for any
that are listed in the exceptions section of the Packaging Guidelines
0 MUST: The spec file handles locales properly. This is done by using the
%find_lang macro
0 MUST: Every binary RPM package (or subpackage) which stores shared library
files (not just symlinks) in any of the dynamic linker's default paths, must
call ldconfig in %post and %postun.
0 MUST: Packages must NOT bundle copies of system libraries
0 MUST: If the package is designed to be relocatable, the packager must state
this fact in the request for review, along with the rationalization for
relocation of that specific package. Without this, use of Prefix: /usr is
considered a blocker
+ MUST: Package must own all directories that it creates. If it does not create
a directory that it uses, then it should require a package which does create
that directory
+ MUST: Package must not list a file more than once in the spec file's %files
listings
+ MUST: Permissions on files must be set properly. Every %files section must
include a %defattr(...) line.
+ MUST: Each package must have a %clean section, which contains rm -rf
%{buildroot} (or $RPM_BUILD_ROOT).
+ MUST: Each package must consistently use macros
+ MUST: The package must contain code, or permissable content
0 MUST: Large documentation files must go in a -doc subpackage

See 4) below.

0 MUST: If a package includes something as %doc, it must not affect the runtime
of the application
0 MUST: Header files must be in a -devel package
0 MUST: Static libraries must be in a -static package
0 MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig'
0 MUST: If a package contains library files with a suffix (e.g. libfoo.so.1.1),
then library files that end in .so (without suffix) must go in a -devel package
0 MUST: devel packages must require the base package using a fully versioned
dependency: Requires: %{name} = %{version}-%{release}
+ MUST: Packages must NOT contain any .la libtool archives, these must be
removed in the spec if they are built
0 MUST: Packages containing GUI applications must include a %{name}.desktop
file, and that file 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: At the beginning of %install, each package MUST run rm -rf %{buildroot}
(or $RPM_BUILD_ROOT)
+ MUST: All filenames in rpm packages must be valid UTF-8

Two MUST things didn't pass.


I have few other things to be clarified/answered:

1)
I completely miss -doc subpackage that could consist of files in doc/ directory from upstream.
There is also 340k FAQ file, which I consider too big for being in the main package.

2)
There is Patch16 commented-out in spec file.
We should wipe this line out (and delete the patch file itself) as the bug has been already fixed in upstream.

3)
What is Patch18 staying for in spec file? It is commented out as well.

4)
There are few clean-ups in Manuel's spec file (comment #3). Why they were not accepted?

5)
I would prefer "Concurrent Versions System" as package summary over the current "A version control system".

Comment 7 Petr Pisar 2010-10-25 16:18:10 UTC
I believe I fixed all objections in cvs-1.11.23-12.fc15. I have also fixed some other issues (like wrong home page URL).

The license tag is now

  BSD and GPL+ and GPLv2+ and LGPLv2+ and zlib

because GPLv1 sources does not forbid `any later version' and because `zlib/libpng' license is called `zlib' according Fedora guidelines.

Comment 8 Vojtech Vitek 2010-10-26 07:13:15 UTC
Spec file seems _much_ better. Good job.

But I am missing some patch-files in git repo right now. Fix it please so I can give review+.

Comment 9 Petr Pisar 2010-10-26 08:21:17 UTC
Yeah, I know. It should be compilable now (https://koji.fedoraproject.org/koji/buildinfo?buildID=201884).

Comment 10 Vojtech Vitek 2010-10-26 08:35:19 UTC
Approved.

Comment 11 Ville Skyttä 2011-05-25 21:24:23 UTC
$ rpm -q cvs ; rpm -qR cvs | grep csh
cvs-1.11.23-14.fc15.x86_64
/bin/csh  

The csh dependency is back, reopening.  The specfile attempts to filter it out with %filter_requires_in, but apparently fails for some reason and the dependency is there anyway.  It does get filtered out if I rebuild from rawhide locally in mock, but perhaps something's different in koji.

Comment 12 Ville Skyttä 2011-05-25 21:26:14 UTC
Created attachment 500941 [details]
Use rpmbuild >= 4.9 facilities for dependency filtering

Maybe this patch would result in the csh dependency actually getting filtered also in koji builds?  Untested, but works as it should in my local mock build.

Comment 13 Petr Pisar 2011-05-26 09:34:53 UTC
It used to work, but something has changes in rpm-4.8 because it does not work in F14 now too. Removing the regular expression anchors make it effective
again:

diff --git a/cvs.spec b/cvs.spec
index ff2a8e5..b3f53a0 100644
--- a/cvs.spec
+++ b/cvs.spec
@@ -59,7 +59,7 @@ Patch25: cvs-1.11.23-Set-PAM_TTY-and-PAM_RHOST-on-PAM-authentication.patch
 Patch26: cvs-1.11.23-Back-port-KeywordExpand-configuration-keyword.patch
 
 # Don't let find provides to add csh to automatic requires
-%filter_requires_in ^%{_datadir}/%{name}/contrib/sccs2rcs$
+%filter_requires_in %{_datadir}/%{name}/contrib/sccs2rcs
 %filter_setup
 
 %description

This contradicts to Fedora Packaging Guidelines now (https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering#Preventing_files.2Fdirectories_from_being_scanned_for_provides_.28pre-scan_filtering.29).

I found by experiments, the expression has started to be compared against paths with %{buildroot}. Therefore the ^expresion has stopped to match and thus this
one works too:

diff --git a/cvs.spec b/cvs.spec
index ff2a8e5..5bbdad0 100644
--- a/cvs.spec
+++ b/cvs.spec
@@ -59,7 +59,7 @@ Patch25: cvs-1.11.23-Set-PAM_TTY-and-PAM_RHOST-on-PAM-authentication.patch
 Patch26: cvs-1.11.23-Back-port-KeywordExpand-configuration-keyword.patch
 
 # Don't let find provides to add csh to automatic requires
-%filter_requires_in ^%{_datadir}/%{name}/contrib/sccs2rcs$
+%filter_requires_in ^%{buildroot}%{_datadir}/%{name}/contrib/sccs2rcs$
 %filter_setup
 
 %description

Comment 14 Petr Pisar 2011-05-26 10:14:39 UTC
BTW, why is csh a problem while other scripts in the contrib directory pulls Perl. I think I should move the contrib files into separate sub-package. AFAIK none of the scripts are used by official cvs tools. Only rcs2log is symlinked from /usr/bin which can be moved there instead.

Comment 15 Fedora Update System 2011-05-26 11:24:41 UTC
cvs-1.11.23-15.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/cvs-1.11.23-15.fc15

Comment 16 Petr Pisar 2011-05-26 12:18:37 UTC
I moved all contributed script into cvs-contrib sub-package and re-enabled csh in F16.

Comment 17 Fedora Update System 2011-05-26 21:54:14 UTC
Package cvs-1.11.23-15.fc15:
* should fix your issue,
* was pushed to the Fedora 15 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing cvs-1.11.23-15.fc15'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/cvs-1.11.23-15.fc15
then log in and leave karma (feedback).

Comment 18 Fedora Update System 2011-05-30 22:33:58 UTC
cvs-1.11.23-15.fc15 has been pushed to the Fedora 15 stable repository.  If problems still persist, please make note of it in this bug report.