Bug 842410 - (kupfer) Review Request: kupfer - Summon an application or document quickly
Review Request: kupfer - Summon an application or document quickly
Status: CLOSED NEXTRELEASE
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Martin Gieseking
Fedora Extras Quality Assurance
:
: 696249 (view as bug list)
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-07-23 15:32 EDT by Mario Blättermann
Modified: 2012-11-15 05:10 EST (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2012-11-15 05:10:10 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 Mario Blättermann 2012-07-23 15:32:49 EDT
Spec URL: http://mariobl.fedorapeople.org/Review/SPECS/kupfer.spec
SRPM URL: http://mariobl.fedorapeople.org/Review/SRPMS/kupfer-208-1.fc17.src.rpm
Description:
Kupfer is a program to change, speed up and make everything about files and programs more fun on your computer. Kupfer is heavily inspired by Quicksilver; you use it to summon an application or document quickly by typing the first parts of its name. It can also do more than getting at something quickly: there are different plug-ins for accessing more objects and running custom commands.

Fedora Account System Username: mariobl
Comment 1 Mario Blättermann 2012-07-23 15:33:40 EDT
*** Bug 696249 has been marked as a duplicate of this bug. ***
Comment 2 Guillaume Kulakowski 2012-08-15 03:46:59 EDT
Hi,

I have just build RPM from srpm and when I want to launch preference dialog I have an error:

Traceback (most recent call last):
  File "/usr/share/kupfer/kupfer/ui/browser.py", line 1942, in mitem_handler
    callback(ui_ctx)
  File "/usr/share/kupfer/kupfer/kupferui.py", line 62, in show_preferences
    win = preferences.GetPreferencesWindowController()
  File "/usr/share/kupfer/kupfer/ui/preferences.py", line 880, in GetPreferencesWindowController
    _preferences_window = PreferencesWindowController()
  File "/usr/share/kupfer/kupfer/ui/preferences.py", line 119, in __init__
    self._update_alternative_combobox('terminal', terminal_combobox)
  File "/usr/share/kupfer/kupfer/ui/preferences.py", line 788, in _update_alternative_combobox
    setctl.get_valid_alternative_ids(category_key), key=lambda t:t[1])
  File "/usr/share/kupfer/kupfer/utils.py", line 78, in locale_sort
    seq = seq if isinstance(seq, list) else list(seq)
  File "/usr/share/kupfer/kupfer/core/settings.py", line 396, in get_valid_alternative_ids
    validator = self._alternative_validators[category_key]
KeyError: 'terminal'

Is it a Kupfer error or a pakaging error... That is the question ?
Comment 3 Mario Blättermann 2012-08-15 13:44:45 EDT
(In reply to comment #2)
> Hi,
> 
> I have just build RPM from srpm and when I want to launch preference dialog
> I have an error:
> 
> Traceback (most recent call last):
>   File "/usr/share/kupfer/kupfer/ui/browser.py", line 1942, in mitem_handler
>     callback(ui_ctx)
>   File "/usr/share/kupfer/kupfer/kupferui.py", line 62, in show_preferences
>     win = preferences.GetPreferencesWindowController()
>   File "/usr/share/kupfer/kupfer/ui/preferences.py", line 880, in
> GetPreferencesWindowController
>     _preferences_window = PreferencesWindowController()
>   File "/usr/share/kupfer/kupfer/ui/preferences.py", line 119, in __init__
>     self._update_alternative_combobox('terminal', terminal_combobox)
>   File "/usr/share/kupfer/kupfer/ui/preferences.py", line 788, in
> _update_alternative_combobox
>     setctl.get_valid_alternative_ids(category_key), key=lambda t:t[1])
>   File "/usr/share/kupfer/kupfer/utils.py", line 78, in locale_sort
>     seq = seq if isinstance(seq, list) else list(seq)
>   File "/usr/share/kupfer/kupfer/core/settings.py", line 396, in
> get_valid_alternative_ids
>     validator = self._alternative_validators[category_key]
> KeyError: 'terminal'
> 
> Is it a Kupfer error or a pakaging error... That is the question ?

Ulrik, please would you have a look at this error message? Perhaps we need an additional dependency?
Comment 4 Ulrik 2012-08-17 09:23:47 EDT
Mario, it looks like an internal Kupfer bug or error (I've never seen it). That mechanism in play there is quite fragile unfortunately.   Does it persist if you clean kupfer cache and configration?
Comment 5 Ulrik 2012-08-17 09:28:18 EDT
I see the kupfer package is split, maybe it's related. Read kupfer debug output to make sure the core plugin is loaded.
Comment 6 Mario Blättermann 2012-09-15 14:37:36 EDT
After some tests on my own machine, it works as expected. But admittedly, the package is still far from being good enough for inclusion in Fedora. Could be it is missing a mandatory runtime requirement.

Probably I should remove the plugins subpackage and add the plugins to the base package, except the Thunar plugin, because it needs a folder which is provided by the thunar package itself. Moreover, is the Nautilus plugin still up-to-date? It seems to need something which is no longer available from newer Fedora releases (nautilus-2.x). I don't plan an EPEL package, that's why I think the files related to nautilus might be safely removed.
Comment 7 Ulrik 2012-09-19 03:04:30 EDT
Yes, the nautilus plugin is removed in upstream git.
Comment 8 Mario Blättermann 2012-09-21 17:19:17 EDT
(In reply to comment #7)
> Yes, the nautilus plugin is removed in upstream git.

Thanks for that info. I will provide new spec and srpm soon.
Comment 9 Martin Gieseking 2012-10-04 08:36:36 EDT
Mario, have you been able to resolve the open issues? I could do the review if you still intend to maintain the package.
Comment 11 Martin Gieseking 2012-10-04 16:20:34 EDT
OK, taking this one. Give me a couple of days to find some time to do the review.
Comment 12 Martin Gieseking 2012-10-11 14:28:41 EDT
Here comes the review. There are still some things that have to be fixed:

- You can drop the definitions given at the top of the spec file as they are 
  only required for EPEL < 6.

- Remove the %{?_isa} suffix from the Requires statement as it's only needed
  for arch specific packages.

- Please add a short comment above the License field documenting the multiple 
  licensing scenario, e.g. "application: GPLv3+, documentation: CC-BY-SA"

- The files /usr/share/kupfer/kupfer/plugin/thunar.py* are present in the 
  base package and thunar subpackage.
  => %exclude them from the base package

- add the missing scriptlets to update the mime info database
  http://fedoraproject.org/wiki/Packaging:ScriptletSnippets#mimeinfo

- Remove the %exclude line from %files, and add 
  rm -rf %{buildroot}%{_libdir}/
  to %install in order to avoid the rpmlint warning shown below.

- It's sufficient to install the desktop files with desktop-file-install. 
  Don't re-validate them with desktop-file-validate.
  http://fedoraproject.org/wiki/Packaging:Guidelines#desktop-file-install_usage

- Replace $RPM_OPT_FLAGS with %{optflags} to use macros consistently.

- Be a bit more specific in files:
  %{_bindir}/*  => %{_bindir}/%{name}*
  %{_mandir}/man1/%{name}* => %{_mandir}/man1/%{name}*.1*


$ rpmlint /var/lib/mock/fedora-17-x86_64/result/*.rpm
kupfer.src:106: W: libdir-macro-in-noarch-package (main package) %exclude %{_libdir}/nautilus/extensions-2.0/python/%{name}_provider.*
kupfer-thunar.noarch: W: no-documentation
kupfer-thunar.noarch: W: dangling-relative-symlink /usr/share/Thunar/sendto/kupfer.desktop ../../applications/kupfer.desktop
3 packages and 0 specfiles checked; 0 errors, 3 warnings.

- The dangling symlink warning is expected and 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.
    - application: GPLv3+
    - documentation: CC-BY-SA

[+] 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.
    $ sha256sum kupfer-v208.tar.xz*
    65de8fe23e4b91a25910969ae11f32a98ed44714a460c64dfc71a85d20289c04  kupfer-v208.tar.xz
    65de8fe23e4b91a25910969ae11f32a98ed44714a460c64dfc71a85d20289c04  kupfer-v208.tar.xz.upstream

[+] 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 on an architecture, then those architectures should be listed in the spec in ExcludeArch. Each architecture listed in ExcludeArch MUST have a bug filed in bugzilla, describing the reason that the package does not compile/build/work on that architecture. The bug number MUST be placed in a comment, next to the corresponding ExcludeArch line.
[+] 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: If a package installs files below %{_datadir}/icons, the icon cache must be updated.
[.] 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. 
[X] MUST: A Fedora package must not list a file more than once in %files.
    - thunar files are present in the base package too

[.] MUST: Permissions on files must be set properly.
[X] MUST: Each package must consistently use macros.
    - $RPM_OPT_FLAGS => %{optflags}

[.] 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 (e.g. libfoo.so.1.1), ...
[.] 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. 
[X] MUST: .desktop files must be properly installed with desktop-file-install OR desktop-file-validate.
    => drop the desktop-file-validate lines

[+] 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.
[X] 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}.
[.] MUST: Packages containing pkgconfig(.pc) files must '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 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) 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.
Comment 13 Mario Blättermann 2012-10-12 14:07:31 EDT
Thanks for your hints. However, this was not my package initially, that's why there were some artifacts from other packagers. Now all the issues seem to be solved.

New files:
Spec URL: http://mariobl.fedorapeople.org/Review/SPECS/kupfer.spec
SRPM URL: http://mariobl.fedorapeople.org/Review/SRPMS/kupfer-208-4.fc17.src.rpm

The package builds in Koji for Rawhide:
http://koji.fedoraproject.org/koji/taskinfo?taskID=4585831

$ rpmlint -i -v *
kupfer.src: I: checking
kupfer.src: I: checking-url http://kaizer.se/wiki/kupfer/ (timeout 10 seconds)
kupfer.src: I: checking-url http://kaizer.se/publicfiles/kupfer/kupfer-v208.tar.xz (timeout 10 seconds)
kupfer.noarch: I: checking
kupfer.noarch: I: checking-url http://kaizer.se/wiki/kupfer/ (timeout 10 seconds)
kupfer.spec: I: checking-url http://kaizer.se/publicfiles/kupfer/kupfer-v208.tar.xz (timeout 10 seconds)
kupfer-thunar.noarch: I: checking
kupfer-thunar.noarch: I: checking-url http://kaizer.se/wiki/kupfer/ (timeout 10 seconds)
kupfer-thunar.noarch: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

kupfer-thunar.noarch: W: dangling-relative-symlink /usr/share/Thunar/sendto/kupfer.desktop ../../applications/kupfer.desktop
The target of the symbolic link does not exist within this package or its file
based dependencies.  Verify spelling of the link target and that the target is
included in a package in this package's dependency chain.

3 packages and 1 specfiles checked; 0 errors, 2 warnings.
Comment 14 Martin Gieseking 2012-10-12 15:59:28 EDT
(In reply to comment #13)
> However, this was not my package initially, that's
> why there were some artifacts from other packagers. Now all the issues seem
> to be solved.

OK, not a problem at all. That's what reviews are good for. :)
The package looks good now and is

--------
APPROVED
--------
Comment 15 Mario Blättermann 2012-10-12 16:13:46 EDT
Thanks for all your help and for the approval!

New Package SCM Request
=======================
Package Name: kupfer
Short Description: Summon an application or document quickly
Owners: mariobl
Branches: f17 f18
InitialCC:
Comment 16 Gwyn Ciesla 2012-10-12 17:05:30 EDT
Git done (by process-git-requests).
Comment 17 Fedora Update System 2012-10-13 12:30:39 EDT
kupfer-208-4.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/kupfer-208-4.fc17
Comment 18 Fedora Update System 2012-10-13 12:30:53 EDT
kupfer-208-4.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/kupfer-208-4.fc18
Comment 19 Fedora Update System 2012-10-13 17:07:23 EDT
kupfer-208-4.fc18 has been pushed to the Fedora 18 testing repository.
Comment 20 Mario Blättermann 2012-11-15 05:10:10 EST
All packages are marked as stable now.

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