Bug 431249 (sawfish) - Review Request: sawfish - An extensible window manager for the X Window System.
Summary: Review Request: sawfish - An extensible window manager for the X Window System.
Status: CLOSED DUPLICATE of bug 692543
Alias: sawfish
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Nobody's working on this, feel free to take it
QA Contact: Fedora Extras Quality Assurance
Depends On: librep rep-gtk
Blocks: FE-DEADREVIEW RussianFedoraRemix
TreeView+ depends on / blocked
Reported: 2008-02-01 19:09 UTC by ritz
Modified: 2011-03-31 15:18 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2009-03-10 00:08:21 UTC
Type: ---

Attachments (Terms of Use)
changes to sawfish spec (201 bytes, text/plain)
2008-10-13 20:50 UTC, Michal Jaegermann
no flags Details
spec used to compile sawfish-1.3.4 (4.53 KB, text/plain)
2008-11-02 18:49 UTC, Michal Jaegermann
no flags Details
sawfish-1.3.4 patch for Makedefs.in to avoid problems with inlines of glib2 (380 bytes, patch)
2008-11-02 18:51 UTC, Michal Jaegermann
no flags Details | Diff
sawfish-1.3.4-imlib.patch - to allow compilations using imlib (388 bytes, patch)
2008-11-02 18:52 UTC, Michal Jaegermann
no flags Details | Diff

Description ritz 2008-02-01 19:09:39 UTC
Spec URL: http://people.redhat.com/rkhadgar/personal/fedora/sawfish.spec
SRPM URL: http://people.redhat.com/rkhadgar/personal/fedora/sawfish-1.3.2-1.fc8.src.rpm
Sawfish is an extensible window manager which uses a Lisp-based
scripting language.  All window decorations are configurable and the
basic idea is to have as much user-interface policy as possible
controlled through the Lisp language.  Configuration can be
accomplished by writing Lisp code in a personal .sawfishrc file, or
using a GTK+ interface.  Sawfish is mostly GNOME compliant

This is my first package, and i need a sponsor.

Comment 1 Michal Jaegermann 2008-02-04 01:14:15 UTC
Once again 'autom4te.cache' is at least superfluous in a source
archive.  I am not sure if wrong definitions can be picked up from
there but there is at least a potential.

On http://sawfish.wikia.com/wiki/Patches there are some
patches which apply to 1.3.2.  It appears that at least
would be a good idea to add to the current sources if not
other as well.

Whomever will eventually "own" that should subscribe to
a mailing list at http://mail.gnome.org/mailman/listinfo/sawfish-list

Comment 2 Huzaifa S. Sidhpurwala 2008-02-05 09:46:35 UTC
[huzaifas@huzaifas ~]$ rpmlint sawfish-1.3.2-1.fc8.src.rpm 
W: sawfish summary-ended-with-dot An extensible window manager for the X Window
W: sawfish invalid-license GPLv2
W: sawfish strange-permission sawfish.spec 0444
E: sawfish no-cleaning-of-buildroot %clean

Comment 3 Huzaifa S. Sidhpurwala 2008-02-05 09:52:28 UTC
The Changelog says 
* Thu Jan 31 2008 Rahul Sundaram <sundaram> -1.3.2-1
and the package is submitted by Ritesh Khadgaray (rkhadgar)
any specific reason for that?

Comment 5 Huzaifa S. Sidhpurwala 2008-04-10 04:47:03 UTC
Source: http://download.sourceforge.net/sawfish/sawfish-%{version}.tar.gz
i would use

 -- can be removed

Comment 6 Michal Jaegermann 2008-04-10 15:54:04 UTC
> i would use Source:.....
I do not think that an expansion of such URL really works.  The only
way I know for getting those source from sourceforge is to peek
under http://sourceforge.net/project/showfiles.php?group_id=32

Comment 7 Huzaifa S. Sidhpurwala 2008-04-11 03:58:39 UTC
I have seen this work in most of the cases.

Comment 8 Mamoru TASAKA 2008-04-11 04:02:01 UTC
For sourceforge files, please use

Comment 10 Michal Jaegermann 2008-10-13 20:50:33 UTC
Created attachment 320229 [details]
changes to sawfish spec

Hm, I better put that into an attachment or bugzilla will
make mincemeat from this ....

To make sawfish spec to work with differently packaged
librep (depending on who knows what) one needs something
like a definition of %librepdir included in an attachment and
later in %files section:


instead of


In order to keep in spec the line

%doc po/sawfish.pot lisp/sawfish/ui/WIDGETS-LIST lisp/sawfish/ui/WISHLIST

with WIDGETS-LIST actually important, the following is needed
in %build section:

( cd po && ./make-pot update )

No idea why this change was made.

I still do not know how to set sawfish as a window manager
in Gnome environment for rawhide/F10 as /usr/bin/gnome-wm does not
seem to work anymore.  Changing a key reference there, i.e. now
is apparently not enough.

Comment 11 Michal Jaegermann 2008-10-13 21:15:14 UTC
Oops!  Leftovers!

Please replace in attachment (id=320229) two instances
of '${_arch}' with '%{_arch}'.

Actually it works even "as-is" and that is why I missed it. :-)

Comment 12 Michal Jaegermann 2008-11-02 18:49:13 UTC
Created attachment 322231 [details]
spec used to compile sawfish-1.3.4

I run into a situation where a compilation of sawfish runs into troubles in a linking phase with complaints about multiply defined functions.  The trouble is really caused by glib2 and how it does inlining.  A file /usr/include/glib-2.0/glib/gutils.h is included in multiple source files and you will get the following expansion in all these places:

extern gint
g_bit_nth_lsf (gulong mask,
        gint nth_bit)
      if (mask & (1UL << nth_bit))
 return nth_bit;
  while (nth_bit < ((4 * 8) - 1));
  return -1;

and other similar.  That does not work too well.

It is possible to work around glib2 troubles by defining __STRICT_ANSI__ which indeed inlines glib2 definitions.

Attached is a spec file I used for a compilation and two patches which are referenced there.  Additional themes were copied from old Red Hat sawfish sources.  They do not have be included although it is nice if they are available.

Two patches referenced in this spec are attached too.

Comment 13 Michal Jaegermann 2008-11-02 18:51:09 UTC
Created attachment 322232 [details]
sawfish-1.3.4 patch for Makedefs.in to avoid problems with inlines of glib2

Comment 14 Michal Jaegermann 2008-11-02 18:52:37 UTC
Created attachment 322233 [details]
sawfish-1.3.4-imlib.patch - to allow compilations using imlib

Comment 15 Michal Jaegermann 2008-11-03 00:00:37 UTC
In spec files like in comment #9 there is 

make host_type=%{_target_platform}

Unfortunately this may result in DOC file placed in /usr/libexec/sawfish/1.3.3/i686-redhat-linux-gnu/DOC while sawfish-ui looks for in /usr/libexec/sawfish/1.3.3/i386-redhat-linux if %{_target_platform} evaluates to "i386-redhat-linux".  As a result sawfish-ui refuses to run.  One way to prevent that
is to do 'make host_type=%{_host_cpu}-redhat-linux-gnu'.

My old versions of specs had also this:

## hackaround for 
# checking build system type... 

%define _host %{_target_platform}
%define _build %{_target_platform}

and that needs to be consistently used especially when %{_host_cpu} differs from %{_arch}.

A requirement is that all of this agrees with librep and rep-gtk.

Comment 16 Michal Jaegermann 2008-12-05 16:33:07 UTC
The current /usr/bin/gnome-wm has the following comment:

# NOTE: DON'T USE THIS.  Please have your window manager install
# a desktop file and change the gconf key
# /desktop/gnome/session/required_components/windowmanager

At least with the current rawhide providing the following /usr/share/applications/sawfish.desktop:

[Desktop Entry]
# name of loadable control center module
# name we put on the WM spec check window
# back compat only 

which was modified from a copy of metacity.desktop, and setting /desktop/gnome/session/required_components/windowmanager key to sawfish does switch a window manager as expected.

Most likely everything after "# back compat only" is not needed, or maybe even first 6 lines are enough, but I did not see that documented anywhere so this is all guesswork.

Comment 17 Jason Tibbitts 2009-03-10 00:08:21 UTC
Since a dependency submitted by the same person has been closed for non-response, I'm closing this as well.

Comment 18 Jason Tibbitts 2011-03-31 15:18:36 UTC

*** This bug has been marked as a duplicate of bug 692543 ***

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