Bug 643375

Summary: Review Request: dwm - Dynamic window manager for X
Product: [Fedora] Fedora Reporter: Petr Šabata <psabata>
Component: Package ReviewAssignee: Stanislav Ochotnicky <sochotni>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fedora-package-review, mbooth, metherid, notting, pahan, sochotni, splinux25
Target Milestone: ---Flags: sochotni: fedora-review+
kevin: 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: 2010-10-19 09:47:16 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:

Description Petr Šabata 2010-10-15 12:56:08 UTC
Spec URL: http://psabata.fedorapeople.org/packages/dwm/dwm.spec
SRPM URL: http://psabata.fedorapeople.org/packages/dwm/dwm-5.8.2-1.fc13.src.rpm

Description:

dwm is a dynamic window manager for X. It manages windows in tiled, monocle and
floating layouts. All of the layouts can be applied dynamically, optimising
the environment for the application in use and the task performed.

Description for dwm-user:

dwm sources and dwm-start script for individual user configuration. dwm-start
reads user's header file and creates custom dwm build for user to use on
the fly.

Comment 1 Matthew Booth 2010-10-15 13:07:30 UTC
From the dwm home page:

dwm is customized through editing its source code, which makes it extremely fast and secure – it does not process any input data which isn’t known at compile time, except window titles and status text read from the root window’s name. You don’t have to learn Lua/sh/ruby or some weird configuration file format (like X resource files), beside C, to customize it for your needs: you only have to learn C (at least in order to edit the header file).

Unless it requires no configuration, I suggest this isn't a good fit for Fedora.

Comment 2 Petr Šabata 2010-10-15 13:09:50 UTC
Matthew,

that's why I supply the dwm-user subpackage with a custom script, dwm-start, which handles execution and local rebuilds (if neccessary) based on config.h in $HOME/.dwm/.

Petr

Comment 3 Stanislav Ochotnicky 2010-10-15 13:39:45 UTC
I'll do the review

Comment 4 Rahul Sundaram 2010-10-15 13:55:30 UTC
Quick question.  Have you looked at how other distros are handling this?

Comment 5 Petr Šabata 2010-10-15 14:21:19 UTC
(In reply to comment #4)
> Quick question.  Have you looked at how other distros are handling this?

Rahul,

as far as I know:

Gentoo uses a 'savedconfig' feature, allowing custom configuration system wide, not for individual users.

Arch Linux requires the user builds dwm themselves using Arch-specific tools.

OpenSUSE provides preconfigured binary only, no user configuration is possible.

I don't know about other distributions with dwm.

Petr

Comment 6 Stanislav Ochotnicky 2010-10-15 14:35:32 UTC
NEEDSWORK: rpmlint must be run on every package. The output should be posted in the review.
dwm.x86_64: W: spelling-error %description -l en_US optimising -> optimizing, optimistic, optimist
dwm-user.x86_64: E: devel-dependency libX11-devel
dwm-user.x86_64: E: explicit-lib-dependency libX11-devel
dwm-user.x86_64: W: devel-file-in-non-devel-package /usr/src/dwm-5.8.2-1.fc13/config.def.h
dwm-user.x86_64: W: devel-file-in-non-devel-package /usr/src/dwm-5.8.2-1.fc13/dwm.c
3 packages and 1 specfiles checked; 2 errors, 3 warnings.

Unfortunately there is no macro for /usr/src (that I know of). But
please use at least %{_prefix} macro.

Other warnings/errors are inevitable with the way dwm works so no
problem there.

OK: The package must be named according to the Package Naming Guidelines .
OK: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption.  .
OK: The package must meet the Packaging Guidelines .
OK: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines .
OK: The License field in the package spec file must match the actual license.
OK: 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.
OK: All independent sub-packages have License of their own (if it exists)
NEEDSWORK: The spec file must be written in American English.
optimising - British English (not that I care, but
https://fedoraproject.org/wiki/Packaging/Guidelines#Summary_and_description
says we should use American)

OK: The spec file for the package MUST be legible.
OK: 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.
md5sum: f0b422bfeaa812d66c6dd15c3cc92a6b
OK: The package MUST successfully compile and build into binary rpms on at least one primary architecture.
NEEDSWORK: All build dependencies must be listed in BuildRequires

Error in mock for rawhide:
dwm.c:40:37: fatal error: X11/extensions/Xinerama.h: No such file or directory
Seems like you are missing BR on Xinerama package (make sure to add it
to Requires too for main package too)

OK: Packages must NOT bundle copies of system libraries.
NA: 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: 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.
OK: A Fedora package must not list a file more than once in the spec file's %files listings.
OK: Permissions on files must be set properly. Executables should be set with executable permissions, for example. Every %files section must include a %defattr(...) line.
OK: Each package must consistently use macros.
OK: The package must contain code, or permissable content.
NA: Large documentation files must 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).
OK: 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.
OK: Header files must be in a -devel package.
I know this is not exactly the case, but dwm is pretty specific...I
don't think renaming subpackage dwm-user to dwm-devel would make sense

NA: Static libraries must be in a -static package.
NA: 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.
OK: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name} = %{version}-%{release}
OK: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built.
NA: 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.
OK: Packages must not own files or directories already owned by other packages. 
OK: All filenames in rpm packages must be valid UTF-8.


So summary:
 * optimising -> optimizing
 * use %{_prefix} macro for sources
 * missing BR providing Xinerama

Comment 7 Jason Tibbitts 2010-10-16 16:37:30 UTC
*** Bug 575529 has been marked as a duplicate of this bug. ***

Comment 8 Damien Durand 2010-10-17 07:55:27 UTC
(In reply to comment #7)
> *** Bug 575529 has been marked as a duplicate of this bug. ***

Hi. This is not really a duplicate review. Feel free to package it!

Comment 9 Stanislav Ochotnicky 2010-10-18 07:29:58 UTC
Petr:
One more thing. Please install *.desktop file as well. You can look in fluxbox git repo for example how it's supposed to look (it's a bit different than ordinary apps).

Damien: Sorry I didn't notice your package review. But I see it got stalled anyway. It seems to me that Petr has come with a solution to custom configuration problem so let's see how it will work out...

Comment 10 Petr Šabata 2010-10-18 11:27:50 UTC
Spec URL: http://psabata.fedorapeople.org/packages/dwm/dwm.spec
SRPM URL: http://psabata.fedorapeople.org/packages/dwm/dwm-5.8.2-1.fc13.src.rpm

%changelog
* Mon Oct 18 2010 Petr Sabata <psabata> - 5.8.2-2
- Description spelling changed to US english
- Changed /usr/src to _usrsrc macro, dwmsourcedir changed to _dwmsourcedir
- Added BuildRequires for Xinerama and xcb
- Added dwm and dwm-users desktop files

Comment 11 Petr Šabata 2010-10-18 11:28:26 UTC
SRPM URL correction:
SRPM URL: http://psabata.fedorapeople.org/packages/dwm/dwm-5.8.2-2.fc13.src.rpm

Comment 12 Stanislav Ochotnicky 2010-10-18 11:45:36 UTC
Package looks good to me now. Only minor thing: please chmod dwm-start to 644 (it's executable now and rpmlint is complaining). You can make it executable during %install phase.

APPROVED

Comment 13 Petr Šabata 2010-10-18 12:11:18 UTC
New Package SCM Request
=======================
Package Name: dwm
Short Description: Dynamic window manager for X
Owners: PSABATA
Branches: f12 f13 f14
InitialCC:

Comment 14 Kevin Fenzi 2010-10-19 04:04:57 UTC
Git done (by process-git-requests).