Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at
Bug 203288 - Review Request: devilspie
Summary: Review Request: devilspie
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Christoph Wickert
QA Contact: Fedora Package Reviews List
Depends On:
TreeView+ depends on / blocked
Reported: 2006-08-20 17:14 UTC by Sebastian Vahl
Modified: 2007-11-30 22:11 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2006-12-06 14:42:12 UTC
Type: ---

Attachments (Terms of Use)
spec.patch (deleted)
2006-08-22 07:41 UTC, Chung-Yen Chang
no flags Details | Diff

Description Sebastian Vahl 2006-08-20 17:14:59 UTC
Spec URL:
A window-matching utility, inspired by Sawfish's "Matched Windows" option and
the lack such functionality in Metacity. Devil's Pie can be configured to
detect windows as they are created, and match the window to a set of rules. If
the window matches the rules, it can perform a series of actions on that
window. For example, I can make X-Chat appear on all workspaces, and make a
particular xterm not appear in the pager or task list.

This is also my first package and im searching for an sponsor.

Comment 1 Chung-Yen Chang 2006-08-22 04:48:28 UTC
$ rpmlint -i devilspie-0.17.1-1.fc5.src.rpm
W: devilspie mixed-use-of-spaces-and-tabs
The specfile mixes use of spaces and tabs for indentation, which is a
cosmetic annoyance.  Use either spaces or tabs for indentation, not both.

So I replace all the tabs with spaces in the spec file.
After the modify, the rpmlint is cleanly.

Comment 2 Chung-Yen Chang 2006-08-22 07:41:13 UTC
Created attachment 134620 [details]

Comment 3 Chung-Yen Chang 2006-08-22 07:45:24 UTC
it is just a pre-review

Things To Check

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

$ rpmlint -i devilspie-0.17.1-1.fc5.src.rpm
W: devilspie mixed-use-of-spaces-and-tabs
The specfile mixes use of spaces and tabs for indentation, which is a
cosmetic annoyance.  Use either spaces or tabs for indentation, not both.

So I replace all the tabs with spaces in the spec file. (see spec.patch)
After the modify, the rpmlint is cleanly.

- MUST: The package must be named according to the Package Naming Guidelines.


- MUST: The spec file name must match the base package %{name}, in the
format %{name}.spec


- MUST: The package must meet the Packaging Guidelines.


- MUST: The package must be licensed with an open-source compatible
license and meet other legal requirements as defined in the legal
section of Packaging Guidelines.

OK - License is GPL

- MUST: The License field in the package spec file must match the
actual license.


- 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. If the reviewer
is unable to read the spec file, it will be impossible to perform a
review. Fedora is not the place for entries into the Obfuscated Code
Contest (


- 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.


                                 - MUST: The package must
successfully compile and build into binary rpms on at least one
supported architecture.

OK - mock build cleanly for FC5 i386

- 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 needs to have
a bug filed in bugzilla, describing the reason that the package does
not compile/build/work on that architecture. The bug number should
then be placed in a comment, next to the corresponding ExcludeArch
line. New packages will not have bugzilla entries during the review
process, so they should put this description in the comment until the
package is approved, then file the bugzilla entry, and replace the
long explanation with the bug number. (Extras Only) The bug should be
marked as blocking one (or more) of the following bugs to simplify
tracking such issues:  FE-ExcludeArch-x86,  FE-ExcludeArch-x64,


- MUST: All build dependencies must be listed in BuildRequires, except
for any that are listed in the exceptions section of Packaging
Guidelines; inclusion of those as BuildRequires is optional. Apply
common sense.


- MUST: The spec file MUST handle locales properly. This is done by
using the %find_lang macro. Using %{_datadir}/locale/* is strictly


- MUST: If the package contains shared library files located in the
dynamic linker's default paths, that package must call ldconfig in
%post and %postun. If the package has multiple subpackages with
libraries, each subpackage should also have a %post/%postun section
that calls /sbin/ldconfig. An example of the correct syntax for this
%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

OK - this package contains no shared library files

- 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.

OK - this package is not relocatable

- MUST: A 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. The exception to this are
directories listed explicitly in the Filesystem Hierarchy Standard (, as it is safe to assume
that those directories exist.

- MUST: A package must not contain any duplicate files in the %files listing.


- MUST: Permissions on files must be set properly. Executables should
be set with executable permissions, for example. 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, as described in the
macros section of Packaging Guidelines.

- MUST: The package must contain code, or permissable content. This is
described in detail in the code vs. content section of Packaging


MUST: Large documentation files should go in a -doc subpackage. (The
definition of large is left up to the packager's best judgement, but
is not restricted to size. Large can refer to either size or quantity)


- MUST: If a package includes something as %doc, it must not affect
the runtime of the application. To summarize: If it is in %doc, the
program must run properly if it is not present.


- MUST: Header files or static libraries must be in a -devel package.


- MUST: Files used by pkgconfig (.pc files) must be in a -devel package.


- MUST: If a package contains library files with a suffix (e.g., then library files that end in .so (without suffix)
must go in a -devel package.


- MUST: In the vast majority of cases, devel packages must require the
base package using a fully versioned dependency: Requires: %{name} =


- MUST: Packages must NOT contain any .la libtool archives, these
should be removed in the spec.


- 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. This is described in
detail in the desktop files section of Packaging Guidelines. 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. The rule of thumb here is that the first package to be
installed should own the files or directories that other packages may
rely upon. This means, for example, that no package in Fedora should
ever share ownership with any of the files or directories owned by the
filesystem or man package. If you feel that you have a good reason to
own a file or directory that another package owns, then please present
that at package review time.

- 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: The description and summary sections in the package spec
file should contain translations for supported Non-English languages,
if available.


                                 - SHOULD: The reviewer should test
that the package builds in mock.

                                OK - mock build success and cleanly
- 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. A package should not segfault instead of running, for


- SHOULD: If scriptlets are used, those scriptlets must be sane. This
is vague, and left up to the reviewers judgement to determine sanity.


- SHOULD: Usually, subpackages other than devel should require the
base package using a fully versioned dependency.


Comment 4 Brian Pepple 2006-08-22 15:15:11 UTC
2479a3fe9be3d7666c7f44605fa331c9  devilspie-0.17.1.tar.gz

* Source URL is canonical
* Upstream source tarball verified
* Package name conforms to the Fedora Naming Guidelines
* Group Tag is from the official list
* Buildroot has all required elements
* All paths begin with macros
* All necessary BuildRequires listed.
* All desired features are enabled
* Make succeeds even when %{_smp_mflags} is defined
* Files have appropriate permissions and owners
* Rpmlint does not find problems
* Package installs and uninstalls cleanly

* Duplicate BuildRequires: gtk2-devel (by libwnck-devel), pango-devel (by
libwnck-devel), atk-devel (by gtk2-devel)

* I would remove the 'For example' line from the description, since it seems
* Shorten the summary line.  I would remove the 'inspired by' portion of it.

This package looks good, but before sponsoring you, I would like to see you
review a few packages so I get a feel for your knowledge of FE packing
guidelines.  For more information refer to:

Comment 5 Sebastian Vahl 2006-08-23 17:32:05 UTC
I patched the specfile and fixed the minor issues and suggestions. 
New Version:
Spec URL:

I will try to review some packages the next days.

Comment 6 Sebastian Vahl 2006-09-20 18:11:27 UTC
I have no time to work myself in the review process. If someone would try it
again he could take this spec.

Comment 7 Sebastian Vahl 2006-11-30 14:21:35 UTC
Repoening because Christoph Wickert has offered sponsorship

Also updated to new version 0.18:

Comment 8 Christoph Wickert 2006-11-30 23:45:53 UTC
Removing the Bug #177841 Tracker because I have already sponsored Sebastian. The
package has not been reviewed yet, will do that tomorrow.

Comment 9 Sebastian Vahl 2006-12-01 20:22:17 UTC
New upstream version: 0.19
Builds again in fc5.


Comment 10 Christoph Wickert 2006-12-02 01:38:54 UTC
6c989b45ab19ff212d5a7d55d624543d  devilspie-0.19-1.fc6.src.rpm

MUST Items:
OK - rpmlint quite on all packages
OK - package meets naming guidelines
OK - spec file meets naming guidelines
OK - package meets package guidelines
OK - license open-source compatible (GPL)
OK - license in specfile matches actual license
OK - license included in %doc
OK - spec file in American English
OK - spec file is legible
OK - source in SRPM matches upstream source 
  (md5 35f555000b426e21384ab282c64c6975)
OK - package builds on i386
OK - all build dependencies listed BuildRequires

FIX - BuildRequires: gob2 is not needed AFAICS. Maybe it was needed in previous
versions, but this source contains no gob files.

MINOR - you better use "perl(XML::Parser)" instead of "perl-XML-Parser" for the

OK - none of the exceptions of packaging guidelines in BuildRequires
OK - locales handled correctly with %find_lang
OK - no shared libs to worry about
OK - package is not relocatable
OK - package owns all directories that it creates
OK - no duplicate files in %files section
OK - permissions and %defattr correct 
OK - clean section with "rm -rf $RPM_BUILD_ROOT" present
OK - macro usage consistent
OK - code, not content
OK - no large docs
OK - docs don't affect runtime

FIX - ChangeLog is not in the package, please add it to %doc.

OK - no headers or static libs
OK - no pkgconfig files
OK - no libtool archives
OK - no need for a devilspie.desktop
OK - package doesn't own files/directories owned by other packages

SHOULD items:
OK - package builds in mock (Core 5, 6 and devel on i386)
OK - package functions as described
OK - package uses disttag

This package is APPROVED but you need to fix the issues mentioned above before
you build it.

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