File splashy.spec of Package splashy

#
# spec file for package splashy
#
# 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/
#


Name:           splashy
Summary:        A complete user-space boot splash system
License:        GPL-2.0+
Group:          System/Boot
Version:        0.3.13
Release:        0
Url:            http://alioth.debian.org/projects/splashy/
Requires(pre):  coreutils
Source:         http://alioth.debian.org/frs/download.php/file/2691/%{name}-%{version}.tar.gz
Source1:        setup-splashy.sh
Source2:        pm-utils-splashy.sh
Source3:        themes.tar.bz2
Source4:        README.themes
Source5:        splashy-branding-openSUSE.tar.bz2
Source6:        splashy-branding-SLED.tar.bz2
# Werror breaks build when used with fortify (we could also empty the _fortify_cflags macro)
#Patch0:         splashy.diff
Patch1:         splashy-0.3.8-fix-compiler-warnings.patch
Patch2:         splashy-0.3.8-glib.patch
Patch3:         splashy-disable-x11input.patch
Patch4:         splashy-0.3.13-fix-theme-path.patch
Patch5:         fix_autogen_version.diff
Patch6:         gcc46-build-fixes.patch
Patch7:         splashy-exits-prematurely-fix.patch
Patch8:         update-initramfs.patch
Patch9:         splashy-glib231.patch
Patch10:        automake-1.12.patch
Patch11:        splashy-missing-current-theme-in-font-path.patch
Patch12:        splashy-fix-error-no-create-window-support.patch
BuildRequires:  DirectFB-devel
BuildRequires:  ImageMagick-devel
BuildRequires:  file-devel
BuildRequires:  glib2-devel
#BuildRequires:	procps-devel
BuildRequires:  freetype2-devel
BuildRequires:  libjpeg-devel
BuildRequires:  libpng-devel
BuildRequires:  libtool
# For directfb-config
Requires:       DirectFB
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
Splashy is a next generation boot splashing system for Linux systems.
Unlike other splashing systems, it needs no patches to the kernel and
it´s installed like a normal package. Make your boot process eye-candy
with Splashy!

Some of Splashy´s most noticeable features include:

* Require zero kernel patches/full functionality in user-space

* Boot/halt/reboot/runlevel-switch support

* Progressbar support (with optional border)

* Verbose mode (with F2/ESC keys)

* Configuration file in XML

* Cope with any video-mode resolution/size

* Cope with 8, 16, and 24 bit framebuffers

* Alpha channel (transparency) support

* Video mode detection

* Initramfs support

* TrueType2 fonts support

* Lots of image/animation file formats supported: jpg, png, gif,
   mpg, swf

* Low dependencies and code in C to best perform

* Full LSB support

* Multiple themes support

* Really easy to create new themes

* X detection on exit

* Smooth progressbar movement

* Animations support

* Fade in/out effects

* Totally configurable

%package devel
Summary:        Development tools for programs using libsplashy
Group:          Development/Languages/C and C++
Requires:       %{name} = %{version}

%description devel
This package contains the header files and libraries needed for
developing programs using libsplashy.

%package themes
Summary:        Additional themes for splashy
Group:          System/Boot
Requires:       %{name} = %{version}-%{release}

%description themes
Available themes: - fingerprint

- aqua

- mepis baghira

- default splashy theme



%package	branding-openSUSE
Summary:        Splashy branding for openSUSE
Group:          System/Boot
Supplements:    packageand(splashy:branding-openSUSE)
Provides:       %{name}-branding = %{version}
Conflicts:      otherproviders(%{name}-branding)
Requires(pre):  %{name} >= 0.3.8

%description	branding-openSUSE
Splashy branding for openSUSE Linux distribution

%package	branding-SLED
Summary:        Splashy branding for SLED
Group:          System/Boot
Supplements:    packageand(splashy:branding-SLED)
Provides:       %{name}-branding = %{version}
Conflicts:      otherproviders(%{name}-branding)
Requires(pre):  %{name} >= 0.3.8

%description	branding-SLED
Splashy branding for SUSE Linux Enterprise Desktop

%post branding-openSUSE
if [ -x '%{_sbindir}/%{name}_config' ] ; then
'%{_sbindir}/%{name}_config' --set-theme openSUSE
fi

%postun branding-openSUSE
if [ -x '%{_sbindir}/%{name}_config' ] ; then
%{_sbindir}/%{name}_config --set-theme default
fi

%post branding-SLED
if [ -x '%{_sbindir}/%{name}_config' ] ; then
'%{_sbindir}/%{name}_config' --set-theme SLED
fi

%postun branding-SLED
if [ -x '%{_sbindir}/%{name}_config' ] ; then
'%{_sbindir}/%{name}_config' --set-theme default
fi

%package        mkinitrd
Summary:        Setup script for mkinitrd
Group:          System/Boot
Supplements:    packageand(%{name}:mkinitrd)
Provides:       %{name}:/lib/mkinitrd/scripts/setup-splashy.sh
Requires(post):  %{name} = %{version}
Requires(postun):%{name} = %{version}
Requires(post):  mkinitrd
Requires(postun):mkinitrd

%description    mkinitrd
Setup script for mkinitrd adds splashy support into initial ram disk.

%post mkinitrd
/sbin/mkinitrd_setup

%postun mkinitrd
/sbin/mkinitrd_setup

%prep
%setup -q
%setup -T -D -a 5
%setup -T -D -a 6
%patch1
%patch2
%patch3
%patch4 -p1
%patch5
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
find . -type f | xargs perl -pi -e "s|/usr/lib/|%{_libdir}/|g"
find . -type f | xargs perl -pi -e "s|/lib/|/%{_lib}/|g"
# build gets confused on x86_64 because of this .la file
rm -f src/libglib-2.0.la
# automake-1.13 deprecated this macro
sed -i 's/AM_CONFIG_HEADER/AC_CONFIG_HEADERS/' configure.ac

%build
NOCONFIGURE=1 ./autogen.sh
%configure --prefix=/ --disable-static CFLAGS="$RPM_OPT_FLAGS -fgnu89-inline"
make 

%pre
if test -d %{_sysconfdir}/splashy/themes -a ! -L %{_sysconfdir}/splashy/themes; then
  mv %{_sysconfdir}/splashy/themes %{_sysconfdir}/splashy/themes.bak
fi

%install
export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL="1"
%makeinstall
cp '-t%{buildroot}%{_datadir}/%{name}' -r themes 
rm '%{buildroot}'/usr/lib*/lib%{name}*.la
# remove Debian-specific files
#remove splashy init script for now, it's not working anyway
#TODO, fixup init-script, install with chmod +x, link to /usr/sbin/rcsplash
rm -rf  \
	'%{buildroot}%{_sysconfdir}/lsb-base-logging.sh' \
    '%{buildroot}%{_sysconfdir}/console-tools' \
    '%{buildroot}%{_datadir}/initramfs-tools' \
    '%{buildroot}%{_sysconfdir}/init.d/%{name}'
mkdir -p '%{buildroot}/lib/mkinitrd/scripts'
install -m 755 '%{SOURCE1}' '%{buildroot}/lib/mkinitrd/scripts/'
tar xvf '%{SOURCE3}' -C '%{buildroot}%{_datadir}/%{name}/'
install -m 644 '-t%{buildroot}%{_datadir}/%{name}/themes' '%{SOURCE4}'
ln -s '-t%{buildroot}%{_sysconfdir}/%{name}/' '%{_datadir}/%{name}/themes/README.themes'
%if 0 
mkdir -p $RPM_BUILD_ROOT/usr/lib/pm-utils/sleep.d/
cp %{SOURCE2} $RPM_BUILD_ROOT/usr/lib/pm-utils/sleep.d/99splashy
%{nil remove translations for now TODO: %find_lang %name}
%endif
rm '%{buildroot}/%{_datadir}/locale/'*'/LC_MESSAGES/%{name}.mo'

%clean
rm -rf %{buildroot}

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%files
%defattr(-,root,root)
%doc AUTHORS ChangeLog COPYING NEWS README TODO 
%attr(0644,root,root) %config(noreplace) %{_sysconfdir}/default/*
%dir %{_sysconfdir}/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/config.xml
%{_sbindir}/*
%{_mandir}/man1/*
%{_mandir}/man5/*
%dir %{_datadir}/%{name}
%{_libdir}/lib%{name}*.so.*
%{_datadir}/splashy/schemas
# this is a symbolic link to /usr/share/splashy/themes
%{_sysconfdir}/%{name}/README.themes
%{_sysconfdir}/%{name}/themes
%dir %{_datadir}/%{name}/themes
%{_datadir}/%{name}/themes/default
%doc %{_datadir}/%{name}/themes/README.themes

%files devel
%defattr(-,root,root)
%{_includedir}/%{name}*.h
%{_libdir}/lib%{name}*.so
%{_libdir}/pkgconfig/%{name}.pc

%files themes
%defattr(-,root,root)
%dir %{_datadir}/%{name}/themes
%{_datadir}/%{name}/themes/fingerprint
%{_datadir}/%{name}/themes/mepis_baghira
%{_datadir}/%{name}/themes/aqua
%{_datadir}/%{name}/themes/openSUSE-zz

%files branding-openSUSE
%defattr(-,root,root)
%dir %{_datadir}/%{name}/themes
%{_datadir}/%{name}/themes/openSUSE

%files branding-SLED
%defattr(-,root,root)
%dir %{_datadir}/%{name}/themes
%{_datadir}/%{name}/themes/SLED

%files mkinitrd
%defattr(-,root,root)
%dir /lib/mkinitrd
%dir /lib/mkinitrd/scripts
/lib/mkinitrd/scripts/setup-%{name}.sh

%changelog
openSUSE Build Service is sponsored by