icewm/icewm.spec

279 lines
8.6 KiB
RPMSpec

#
# spec file for package icewm
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%global lites icewm icewmhint icewmbg icesh icewm-session
# default to gnome support, overriden in ring1
%bcond_without gnome
Name: icewm
Version: 1.3.11
Release: 0
Summary: Window Manager with a Taskbar
License: LGPL-2.1+
Group: System/GUI/Other
Url: http://www.icewm.org/
Source0: https://github.com/bbidulock/%{name}/archive/%{version}.tar.gz
Source1: %{name}.desktop
Patch99: icewm-preferences.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: fdupes
BuildRequires: gcc-c++
BuildRequires: libtool
# Needed for documentation
BuildRequires: sgmltool
BuildRequires: update-alternatives
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(fontconfig)
BuildRequires: pkgconfig(gdk-pixbuf-xlib-2.0)
BuildRequires: pkgconfig(ice)
BuildRequires: pkgconfig(sm)
BuildRequires: pkgconfig(sndfile)
BuildRequires: pkgconfig(x11)
BuildRequires: pkgconfig(xext)
BuildRequires: pkgconfig(xft)
BuildRequires: pkgconfig(xinerama)
BuildRequires: pkgconfig(xrandr)
Requires: desktop-data
Requires: icewm-bin
Requires: xdg-menu
# if you have the choice, prefer the big one
Recommends: icewm-default
Provides: windowmanager
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if %{with gnome}
BuildRequires: gnome-desktop-devel
BuildRequires: libgnomeui-devel
BuildRequires: pkgconfig(gnome-desktop-2.0)
BuildRequires: pkgconfig(libgnomeui-2.0)
%endif
%description
A window manager for the X Window System that can emulate the look of
Windows '95, OS/2 Warp 3, OS/2 Warp 4, and Motif and tries to take the
best features from those systems. IceWM features multiple workspaces,
opaque move and resize, a taskbar, a window list, mailbox status, and a
digital clock. It is fast and small.
%package default
Summary: Window Manager with a Taskbar--Default Version
Group: System/GUI/Other
Requires: icewm
Requires: update-alternatives
Recommends: icewm-lang
Provides: icewm-bin
%description default
A window manager for the X Window System that can emulate the look of
Windows '95, OS/2 Warp 3, OS/2 Warp 4, and Motif and tries to take the
best features from those systems. IceWM features multiple workspaces,
opaque move and resize, a taskbar, a window list, mailbox status, and a
digital clock. It is fast and small.
%package lite
Summary: Window Manager with a Taskbar -- lite version
Group: System/GUI/Other
Requires: icewm
Requires: update-alternatives
Recommends: icewm-lang
Provides: icewm-bin
%description lite
A window manager for the X Window System that can emulate the look of
Windows 95, OS/2 Warp 3, OS/2 Warp 4, and Motif and tries to take the
best features from those systems. IceWM features multiple workspaces,
opaque move and resize, a taskbar, a window list, mailbox status, and a
digital clock. It is fast and small.
%package gnome
Summary: Windowmanager with Taskbar - gnome version
Group: System/GUI/GNOME
Requires: icewm-default
%description gnome
Window Manager for X Window System. Can emulate the look of Windows 95,
OS/2 Warp 3,4, Motif. Tries to take the best features of the above
systems. Features multiple workspaces, opaque move and resize, task
bar, window list, mailbox status, digital clock. Fast and small.
This package adds GNOME menu and sound support to icewm.
%lang_package
%prep
%setup -q
# Do not require needlessly new gettext
sed -i \
-e 's:0.19.5:0.19.1:g' \
configure.ac
%build
autoreconf -fvi
# Build the Lite version
%configure \
--disable-silent-rules \
--with-cfgdir=%{_sysconfdir}/icewm \
--enable-i18n \
--disable-nls \
--disable-guievents \
--disable-winmenu \
--without-icesound \
--enable-lite \
--enable-taskbar \
--disable-menus-gnome2
make %{?_smp_mflags}
# Grab the lite content
mkdir lite
for i in %{lites}; do
mv src/$i lite/$i-lite
done
make %{?_smp_mflags} clean
# Configure for full deployment
%configure \
--docdir=%{_docdir}/%{name} \
--disable-silent-rules \
--with-cfgdir=%{_sysconfdir}/icewm \
--with-icesound=alsa \
--enable-i18n \
--enable-nls \
--enable-corefonts \
--enable-guievents \
--enable-antialiasing \
--enable-gradients \
--enable-shaped-decorations \
%if %{with gnome}
--enable-menus-gnome2 \
%endif
--enable-i18n
make %{?_smp_mflags}
# patch generated lib/preferences file
patch -p0 -i %{PATCH99}
%install
make DESTDIR=%{buildroot} install %{?_smp_mflags}
mkdir -p %{buildroot}%{_sysconfdir}/icewm
for cfgfile in keys menu preferences toolbar winoptions ; do
mv %{buildroot}%{_datadir}/icewm/$cfgfile \
%{buildroot}%{_sysconfdir}/icewm
done
%find_lang icewm
ln -s icewm.html %{buildroot}/%{_docdir}/icewm/index.html
# install the xsession desktop file
mkdir -p %{buildroot}%{_datadir}/xsessions
cp -f %{SOURCE1} %{buildroot}%{_datadir}/xsessions
%suse_update_desktop_file %{buildroot}%{_datadir}/xsessions/icewm.desktop
# link duplicate theme icons to save some space
%fdupes %{buildroot}%{_datadir}/icewm/themes/
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for i in %{lites}; do
mv lite/$i-lite %{buildroot}%{_prefix}/bin
mv %{buildroot}%{_bindir}/$i %{buildroot}%{_bindir}/$i-default
# dummy
touch %{buildroot}%{_sysconfdir}/alternatives/$i
ln -s %{_sysconfdir}/alternatives/$i %{buildroot}%{_bindir}/$i
done
%post lite
%{_sbindir}/update-alternatives \
--install %{_bindir}/icewm icewm %{_bindir}/icewm-lite 0 \
--slave %{_bindir}/icewmhint icewmhint %{_bindir}/icewmhint-lite \
--slave %{_bindir}/icewmbg icewmbg %{_bindir}/icewmbg-lite \
--slave %{_bindir}/icesh icesh %{_bindir}/icesh-lite \
--slave %{_bindir}/icewm-session icewm-session %{_bindir}/icewm-session-lite
%preun lite
if [ "$1" = 0 ] ; then
%{_sbindir}/update-alternatives --remove icewm %{_bindir}/icewm-lite
fi
%post default
%{_sbindir}/update-alternatives \
--install %{_bindir}/icewm icewm %{_bindir}/icewm-default 100 \
--slave %{_bindir}/icewmhint icewmhint %{_bindir}/icewmhint-default \
--slave %{_bindir}/icewmbg icewmbg %{_bindir}/icewmbg-default \
--slave %{_bindir}/icesh icesh %{_bindir}/icesh-default \
--slave %{_bindir}/icewm-session icewm-session %{_bindir}/icewm-session-default
%preun default
if [ "$1" = 0 ] ; then
%{_sbindir}/update-alternatives --remove icewm %{_bindir}/icewm-default
fi
%files
%defattr(-,root,root)
%doc %{_docdir}/icewm
%dir %{_sysconfdir}/icewm
%config %{_sysconfdir}/icewm/*
%{_datadir}/icewm/
%{_datadir}/xsessions/*
%{_mandir}/man1/icewm.1.*
%files lang -f icewm.lang
%defattr(-,root,root)
%files default
%defattr(-,root,root)
%{_bindir}/icewm-default
%{_bindir}/icewmhint-default
%{_bindir}/icewmbg-default
%{_bindir}/icehelp
%{_bindir}/icesh-default
%{_bindir}/icewmtray
%{_bindir}/icewm-session-default
%ghost %{_sysconfdir}/alternatives/icewm
%ghost %{_sysconfdir}/alternatives/icewmhint
%ghost %{_sysconfdir}/alternatives/icewmbg
%ghost %{_sysconfdir}/alternatives/icesh
%ghost %{_sysconfdir}/alternatives/icewm-session
%{_bindir}/icewm
%{_bindir}/icewmhint
%{_bindir}/icewmbg
%{_bindir}/icesh
%{_bindir}/icewm-session
%{_bindir}/icewm-menu-fdo
%if %{with gnome}
%files gnome
%defattr(-,root,root)
%{_bindir}/icewm-menu-gnome2
%endif
# make those two part of -default without gnome
%{_bindir}/icesound
%{_bindir}/icewm-set-gnomewm
%files lite
%defattr(-,root,root)
%{_bindir}/icewm-lite
%{_bindir}/icewmhint-lite
%{_bindir}/icewmbg-lite
%{_bindir}/icesh-lite
%{_bindir}/icewm-session-lite
%ghost %{_sysconfdir}/alternatives/icewm
%ghost %{_sysconfdir}/alternatives/icewmhint
%ghost %{_sysconfdir}/alternatives/icewmbg
%ghost %{_sysconfdir}/alternatives/icesh
%ghost %{_sysconfdir}/alternatives/icewm-session
%{_bindir}/icewm
%{_bindir}/icewmhint
%{_bindir}/icewmbg
%{_bindir}/icesh
%{_bindir}/icewm-session
%changelog