Bug 725228
Summary: | Review Request: qcodeedit - Qt-Framework for code editing | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | hannes <johannes.lips> |
Component: | Package Review | Assignee: | Martin Gieseking <martin.gieseking> |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | rawhide | CC: | martin.gieseking, notting, package-review, rdieter |
Target Milestone: | --- | Flags: | martin.gieseking:
fedora-review+
gwync: fedora-cvs+ |
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2011-07-26 13:39:52 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: | |||
Bug Depends On: | |||
Bug Blocks: | 656997, 724878 |
Description
hannes
2011-07-24 12:06:30 UTC
I am not 100% sure if the current state with those subpackages is really appropriate especially because all resulting rpms do have a different name starting with lib%{name}-{devel,designer} and the debug package is called qcodeedit-debug. Not really a great solution I think. Don't know what's more appropriate. Would be glad if someone with more experience could help me on this issue. Just a couple of quick comments: - adapt Source0 according to http://fedoraproject.org/wiki/Packaging:SourceURL#Sourceforge.net - Drop BR: gcc-c++. It's present by default http://fedoraproject.org/wiki/Packaging:Guidelines#Exceptions_2 - There's no need to prefix the packages with "lib". Just put the library into the base package and the devel files into %{name}-devel - Is it necessary to call qmake-qt4 %{name}.pro twice in %build? - Install the shared library files libqcodeedit.so* directly into %{_libdir} - The designer subpackage should require qt-devel for proper directory ownership. Maybe it would also make sense to move the plugin to the devel package instead of package it separately. - The devel package should also require qt-devel which provides directory %{_libdir}/qt4/mkspecs/features/ - The devel package must require the base package this way Requires: %{name}%{?_isa} = %{version}-%{release} The %{?_isa} part has been added to the guidelines lately: http://fedoraproject.org/wiki/Packaging:Guidelines#Requiring_Base_Package - You can drop Requires: pkgconfig. It's added automatically if necessary (still required for EPEL < 6, though). - Add GPL.txt to the base package. - The tarball contains a Doxyfile. Maybe it's a good idea to build the doxygen (html) documentation and add it to the devel package (or a separate doc package). Alright thanks for the suggestions. I fixed all issues you found except I didn't remove the -designer subpackage, since I don't think the -devel package is more appropriate. SPEC-URL: http://hannes.fedorapeople.org/qcodeedit.spec SRPM-URL: http://hannes.fedorapeople.org/qcodeedit-2.2.3-2.fc15.src.rpm rpmlint qcodeedit.spec qcodeedit.spec: W: invalid-url Source0: http://downloads.sourceforge.net/qcodeedit/2.2.3/qcodeedit-2.2.3.tar.gz HTTP Error 404: Not Found 0 packages and 1 specfiles checked; 0 errors, 1 warnings. I had a deeper look at the package and it looks almost fine. There are yet a few small things to be fixed: - The URL given in Source0 is invalid. Change it to http://downloads.sourceforge.net/edyuk/%{name}-%{version}.tar.gz - Fix the file permissions that rpmlint complains about (see below) * add chmod 644 README.txt to %prep * add chmod 755 %{buildroot}%{_libdir} to %install - Add qt-devel to the devel package (see comment #2). - Drop Requires: pkgconfig as there's no .pc file in -devel. - Replace $RPM_BUILD_ROOT with %{buildroot} to use macros consistently. - If you don't plan to build the package for EPEL < 6 too, you can drop rm -rf %{buildroot} from install. Otherwise, add a BuildRoot field and a %clean section. These are still required for EPEL 4 and 5. - You can drop option -p from "cp" as option -a already includes -p implicitly. - rpmlint doesn't like non-devel packages requiring a devel package. If the designer subpackage is considered a devel package as well, this is probably OK. $ rpmlint *.rpm qcodeedit.src: W: invalid-url Source0: http://downloads.sourceforge.net/qcodeedit/2.2.3/qcodeedit-2.2.3.tar.gz HTTP Error 404: Not Found qcodeedit.x86_64: E: non-standard-executable-perm /usr/lib64/libqcodeedit.so.1.0.0 0775L qcodeedit.x86_64: W: spurious-executable-perm /usr/share/doc/qcodeedit-2.2.3/README.txt qcodeedit-debuginfo.x86_64: W: hidden-file-or-dir /usr/src/debug/qcodeedit-2.2.3/lib/.build qcodeedit-debuginfo.x86_64: W: hidden-file-or-dir /usr/src/debug/qcodeedit-2.2.3/lib/.build qcodeedit-designer.x86_64: E: devel-dependency qt-devel qcodeedit-designer.x86_64: W: no-documentation 5 packages and 0 specfiles checked; 2 errors, 5 warnings. The hidden files warnings can be ignored. --------------------------------- 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. - GPLv3 according to source headers [+] 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. [+] 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 qcodeedit-2.2.3.tar.gz* e2453d8e97c2592a870bbddd51876ad0 qcodeedit-2.2.3.tar.gz e2453d8e97c2592a870bbddd51876ad0 qcodeedit-2.2.3.tar.gz.1 [+] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture. [.] MUST: If the package does not successfully compile, build or work ... [+] MUST: All build dependencies must be listed in BuildRequires. [+] MUST: When compiling C, C++, or Fortran files, %{optflags} must be applied. [.] 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. [X] MUST: Permissions on files must be set properly. - see rpmlint output [X] MUST: Each package must consistently use macros. - replace $RPM_BUILD_ROOT with %{buildroot} [+] 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 .so.* files, then .so files (without suffix) must go in a -devel package. [+] MUST: devel packages must require the base package using a fully versioned dependency. [+] MUST: Packages must NOT contain any .la libtool archives. [.] 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. If you feel that your packaged GUI application does not need a .desktop file, you must put a comment in the spec file with your explanation. [+] MUST: Packages must not own files or directories already owned by other packages. [+] MUST: All filenames in rpm packages must be valid UTF-8. EPEL <= 5 only: [X] MUST: The spec file must contain a valid BuildRoot field. [+] MUST: At the beginning of %install, each package MUST run rm -rf %{buildroot}. [X] MUST: Each package must have a %clean section, which contains rm -rf %{buildroot}. [X] MUST: Packages containing pkgconfig(.pc) files must 'Requires: pkgconfig' - no .pc file present => drop Requires: pkgconfig [.] SHOULD: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [+] SHOULD: Timestamps of files should be preserved. [+] SHOULD: The reviewer should test that the package builds in mock. [+] 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) files should be placed in a -devel pkg. [.] SHOULD: If the package has file dependencies outside of /etc, /bin, /sbin, /usr/bin, or /usr/sbin consider requiring the package which provides the file instead of the file itself. [.] SHOULD: Your package should contain man pages for binaries/scripts. Thanks for your pretty fast and comprehensive review. I think I fixed all issues now and removed the -designer subpackage as well. SPEC-URL: http://hannes.fedorapeople.org/qcodeedit.spec SRPM-URL: http://hannes.fedorapeople.org/qcodeedit-2.2.3-3.fc15.src.rpm Scratch Build in Koji: http://koji.fedoraproject.org/koji/taskinfo?taskID=3227198 rpmlint output: rpmlint qcodeedit.spec 0 packages and 1 specfiles checked; 0 errors, 0 warnings. rpmlint ../RPMS/x86_64/qcodeedit-2.2.3-3.fc15.x86_64.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. rpmlint ../RPMS/x86_64/qcodeedit-devel-2.2.3-3.fc15.x86_64.rpm 1 packages and 0 specfiles checked; 0 errors, 0 warnings. rpmlint ../RPMS/x86_64/qcodeedit-debuginfo-2.2.3-3.fc15.x86_64.rpm qcodeedit-debuginfo.x86_64: W: hidden-file-or-dir /usr/src/debug/qcodeedit-2.2.3/lib/.build qcodeedit-debuginfo.x86_64: W: hidden-file-or-dir /usr/src/debug/qcodeedit-2.2.3/lib/.build 1 packages and 0 specfiles checked; 0 errors, 2 warnings. The designer plugin ought to go in the main pkg, not -devel, as it can be loaded at runtime. Fixed. Should be fine now, or? SPEC-URL: http://hannes.fedorapeople.org/qcodeedit.spec SRPM-URL: http://hannes.fedorapeople.org/qcodeedit-2.2.3-4.fc15.src.rpm I just checked the dependencies again, and noticed that you can drop Require: qt-devel from the base package. Package qt-x11 provides the plugin directory and libQtDesigner.so.4. Since the base package depends on libQtDesigner.so.4, there's no need for qt-devel here. I also forgot to add the filenames in comment #4. The chmod statement in %install should look like this: chmod 755 %{buildroot}%{_libdir}/lib%{name}.so.* SPEC-URL: http://hannes.fedorapeople.org/qcodeedit.spec SRPM-URL: http://hannes.fedorapeople.org/qcodeedit-2.2.3-5.fc15.src.rpm Alright fixed this! Not quite, sorry. You should drop Requires: qt-devel from the base package but keep it for -devel. And (with my qt maintainer hat on), deps of the form: Requires: qt4-devel or Requires: pkgconfig(QtGui) are preferable to Requires: qt-devel SPEC-URL: http://hannes.fedorapeople.org/qcodeedit.spec SRPM-URL: http://hannes.fedorapeople.org/qcodeedit-2.2.3-6.fc15.src.rpm Ok, like this? Quite confusing ;-) Yes. The package looks good now. :) ---------------- Package APPROVED ---------------- I still see 1 small problem $RPM_OPT_FLAGS aren't being used when building libqcodeedit due to it building in debug mode by default. I'd suggest removing the line CONFIG += debug from at least lib/lib.pro and perhaps from qcodeedit.pro too (the latter seems to set _DEBUG_BUILD_ or _RELEASE_BUILD_ defines, but neither of these seem to be used in code anywhere that I can tell). Ok removed these two lines? Is it ok like this? SPEC-URL: http://hannes.fedorapeople.org/qcodeedit.spec SRPM-URL: http://hannes.fedorapeople.org/qcodeedit-2.2.3-7.fc15.src.rpm Yes, now the %optflags are present. Sorry for having overlooked this one. New Package SCM Request ======================= Package Name: qcodeedit Short Description: Qt-Framework for code editing Owners: hannes Branches: f14 f15 InitialCC: Git done (by process-git-requests). Build in rawhide: http://koji.fedoraproject.org/koji/buildinfo?buildID=255576 |