Bug 431249 (sawfish)

Summary: Review Request: sawfish - An extensible window manager for the X Window System.
Product: [Fedora] Fedora Reporter: ritz <rkhadgar>
Component: Package ReviewAssignee: Nobody's working on this, feel free to take it <nobody>
Status: CLOSED DUPLICATE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: dwmw2, fedora-package-review, huzaifas, itamar, michal, mtasaka, notting, ondrejj, pmachata, rivenburgh
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-03-10 00:08:21 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: 431250, 431251    
Bug Blocks: 201449, 496433    
Attachments:
Description Flags
changes to sawfish spec
none
spec used to compile sawfish-1.3.4
none
sawfish-1.3.4 patch for Makedefs.in to avoid problems with inlines of glib2
none
sawfish-1.3.4-imlib.patch - to allow compilations using imlib none

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
Description: 
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
Titlebar_updates
Utf_8_names_fix
Pango_draw()_ignores_font
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
System.
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
Source:http://download.sourceforge.net/%{name}/%{name}-%{version}.tar.gz

%build
#make
 -- 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
http://downloads.sourceforge.net/.......
                ^^^^^
ref:
http://fedoraproject.org/wiki/Packaging/SourceURL#Sourceforge

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:

%{librepdir}/rep/%{_host}/sawfish

instead of

%{_libexecdir}/rep/%{_host}/sawfish
or
%{_libdir}/rep/%{_host}/sawfish

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
/desktop/gnome/session/required_components/windowmanager,
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)
{
  do
    {
      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]
Type=Application
Encoding=UTF-8
Name=Sawfish
Exec=sawfish
NoDisplay=true
# name of loadable control center module
X-GNOME-WMSettingsModule=sawfish
# name we put on the WM spec check window
X-GNOME-WMName=Sawfish
# back compat only 
X-GnomeWMSettingsLibrary=sawfish
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=sawfish
X-GNOME-Bugzilla-Component=general
X-GNOME-Autostart-Phase=WindowManager
X-GNOME-Provides=windowmanager
X-GNOME-Autostart-Notify=true

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