Fedora Merge Review: cvs http://cvs.fedora.redhat.com/viewcvs/devel/cvs/ Initial Owner: jnovy
/etc/profile.d/cvs.sh is 755 instead of 644, /etc/profile.d/cvs.csh is not existent, but maybe should exist as equivalent?
Fixed in cvs-1.11.22-9.fc7.
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
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.
Created attachment 453204 [details] Please, ignore this attachment (wrong file)
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".
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.
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+.
Yeah, I know. It should be compilable now (https://koji.fedoraproject.org/koji/buildinfo?buildID=201884).
Approved.
$ 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.
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.
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
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.
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
I moved all contributed script into cvs-contrib sub-package and re-enabled csh in F16.
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).
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.