plymouth/plymouth.spec

627 lines
19 KiB
RPMSpec

#
# spec file for package plymouth
#
# Copyright (c) 2012 SUSE LINUX Products 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/
#
%define plymouthdaemon_execdir %{_sbindir}
%define plymouthclient_execdir %{_bindir}
%define plymouth_libdir %{_libdir}
%define plymouth_initrd_file /boot/initrd-plymouth.img
%define tarversion 0.8.4
%define patchversion 201110131555
Name: plymouth
#Version: %{tarversion}_git%{patchversion}
Version: 0.8.4
Release: 0
Summary: Graphical Boot Animation and Logger
License: GPL-2.0+
Group: System/Base
Url: http://freedesktop.org/software/plymouth/releases
Source0: %{name}-%{version}.tar.bz2
Source1: boot-duration
Source2: opensuse-logo.png
Source3: branding-suse.tar.xz
# PATCH-OPENSUSE -- Support the openSUSE initrd
Patch1: suse-initrd-support
# PATCH-OPENSUSE -- Add line numbers to tracing output
Patch2: plymouth-trace-lines
# PATCH-OPENSUSE -- Handle correctly multiple displays with different sizes
Patch3: plymouth-fix-window-size
BuildRequires: automake
BuildRequires: kernel-headers
BuildRequires: libtool
BuildRequires: update-desktop-files
BuildRequires: xz
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libdrm_intel)
BuildRequires: pkgconfig(libdrm_nouveau)
BuildRequires: pkgconfig(libdrm_radeon)
BuildRequires: pkgconfig(libkms)
Requires: %{name}-branding
Requires: suspend >= 0.80.20100129.1
Requires: systemd-plymouth
Provides: bootsplash = %{version}
Obsoletes: bootsplash < %{version}
Requires: gnu-unifont-bitmap-fonts
Requires(post): plymouth-scripts
%description
Plymouth provides an attractive graphical boot animation in
place of the text messages that normally get shown. Text
messages are instead redirected to a log file for viewing
after boot.
%package -n libply-boot-client2
Summary: Plymouth core library
Group: Development/Libraries/C and C++
%description -n libply-boot-client2
This package contains the libply-boot-client library used by Plymouth.
%package -n libply-splash-core2
Summary: Plymouth core library
Group: Development/Libraries/C and C++
%description -n libply-splash-core2
This package contains the libply-splash-core library
used by graphical Plymouth splashes.
%package -n libply-splash-graphics2
Summary: Plymouth graphics libraries
Group: Development/Libraries/C and C++
BuildRequires: libpng-devel
%description -n libply-splash-graphics2
This package contains the libply-splash-graphics library
used by graphical Plymouth splashes.
%package -n libply2
Summary: Plymouth core library
Group: Development/Libraries/C and C++
Requires: libply-boot-client2 = %{version}
%description -n libply2
This package contains the libply library used by Plymouth.
%package devel
Summary: Libraries and headers for writing Plymouth splash plugins
Group: Development/Libraries/C and C++
Requires: %{name} = %{version}
Requires: libply-boot-client2 = %{version}
Requires: libply-splash-core2 = %{version}
Requires: libply-splash-graphics2 = %{version}
Requires: libply2 = %{version}
Requires: pkgconfig
%description devel
This package contains the libply and libplybootsplash libraries
and headers needed to develop 3rd party splash plugins for Plymouth.
%package utils
Summary: Plymouth related utilities
Group: System/Base
BuildRequires: pkgconfig(gtk+-2.0)
Requires: %{name} = %{version}
%description utils
This package contains utilities that integrate with Plymouth
including a boot log viewing application.
%package scripts
Summary: Plymouth related scripts
Group: System/Base
Requires: coreutils
Requires: cpio
Requires: findutils
Requires: gzip
Requires: mkinitrd
BuildArch: noarch
%description scripts
This package contains scripts that help integrate Plymouth with
the system.
%package plugin-label
Summary: Plymouth label plugin
Group: System/Base
BuildRequires: pkgconfig(cairo)
BuildRequires: pkgconfig(pango) >= 1.21.0
Requires: libply-splash-core2 = %{version}
%description plugin-label
This package contains the label control plugin for
Plymouth. It provides the ability to render text on
graphical boot splashes using pango and cairo.
%package plugin-fade-throbber
Summary: Plymouth "Fade-Throbber" plugin
Group: System/Base
Requires: libply-splash-core2 = %{version}
Requires: libply-splash-graphics2 = %{version}
Requires: libply2 = %{version}
%description plugin-fade-throbber
This package contains the "Fade-In" boot splash plugin for
Plymouth. It features a centered image that fades in and out
while other images pulsate around during system boot up.
%package plugin-throbgress
Summary: Plymouth "Throbgress" plugin
Group: System/Base
Requires: %{name}-plugin-label = %{version}
Requires: libply-splash-core2 = %{version}
Requires: libply-splash-graphics2 = %{version}
Requires: libply2 = %{version}
%description plugin-throbgress
This package contains the "throbgress" boot splash plugin for
Plymouth. It features a centered logo and animated spinner that
spins repeatedly while a progress bar advances at the bottom of
the screen.
%package plugin-space-flares
Summary: Plymouth "space-flares" plugin
Group: System/Base
Requires: %{name}-plugin-label = %{version}
Requires: libply-splash-core2 = %{version}
Requires: libply-splash-graphics2 = %{version}
Requires: libply2 = %{version}
%description plugin-space-flares
This package contains the "space-flares" boot splash plugin for
Plymouth. It features a corner image with animated flares.
%package plugin-two-step
Summary: Plymouth "two-step" plugin
Group: System/Base
Requires: libply-splash-core2 = %{version}
Requires: libply-splash-graphics2 = %{version}
Requires: libply2 = %{version}
Requires: plymouth-plugin-label
%description plugin-two-step
This package contains the "two-step" boot splash plugin for
Plymouth. It features a two phased boot process that starts with
a progressing animation synced to boot time and finishes with a
short, fast one-shot animation.
%package plugin-script
Summary: Plymouth "script" plugin
Group: System/Base
Requires: libply-splash-core2 = %{version}
Requires: libply-splash-graphics2 = %{version}
Requires: libply2 = %{version}
%description plugin-script
This package contains the "script" boot splash plugin for
Plymouth. It features an extensible, scriptable boot splash
language that simplifies the process of designing custom
boot splash themes.
%package branding-upstream
Summary: Plymouth default theme
Group: System/Base
Requires: plymouth-theme-solar = %{version}
Supplements: packageand(plymouth:branding-upstream)
Provides: %{name}-branding = %{version}
BuildArch: noarch
Conflicts: otherproviders(plymouth-branding)
%description branding-upstream
This metapackage tracks the Plymouth default theme from upstream.
%package branding-openSUSE
Summary: Plymouth openSUSE theme
Group: System/Base
Requires: plymouth-plugin-script = %{version}
Supplements: packageand(plymouth:branding-openSUSE)
Provides: %{name}-branding = %{version}
BuildArch: noarch
Conflicts: otherproviders(plymouth-branding)
%description branding-openSUSE
This metapackage tracks the Plymouth openSUSE branding.
%package theme-fade-in
Summary: Plymouth "Fade-In" theme
Group: System/Base
Requires: %{name}-plugin-fade-throbber = %{version}
BuildArch: noarch
Requires(post): %{name}-scripts
%description theme-fade-in
This package contains the "Fade-In" boot splash theme for
Plymouth. It features a centered logo that fades in and out
while stars twinkle around the logo during system boot up.
%package theme-spinfinity
Summary: Plymouth "Spinfinity" theme
Group: System/Base
Requires: %{name}-plugin-throbgress = %{version}
BuildArch: noarch
Requires(post): %{name}-scripts
%description theme-spinfinity
This package contains the "Spinfinity" boot splash theme for
Plymouth. It features a centered logo and animated spinner that
spins in the shape of an infinity sign.
%package theme-spinner
Summary: Plymouth "Spinner" theme
Group: System/Base
Requires: %{name}-plugin-two-step = %{version}
BuildArch: noarch
Requires(post): %{name}-scripts
%description theme-spinner
This package contains the "spinner" boot splash theme for
Plymouth.
%package theme-solar
Summary: Plymouth "Solar" theme
Group: System/Base
Requires: %{name}-plugin-space-flares = %{version}
BuildArch: noarch
Requires(post): %{name}-scripts
%description theme-solar
This package contains the "Solar" boot splash theme for
Plymouth. It features a blue flamed sun with animated solar flares.
%package theme-script
Summary: Plymouth "Script" plugin
Group: System/Base
Requires: %{name}-plugin-script = %{version}
BuildArch: noarch
Requires(post): %{name}-scripts
%description theme-script
This package contains the "script" boot splash theme for
Plymouth. It it is a simple example theme the uses the "script"
plugin.
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
# replace builddate with patch0date
sed -i "s/__DATE__/\"$(stat -c %y %{_sourcedir}/%{name}.changes)\"/" src/main.c
# Change the default theme
sed -i -e 's/fade-in/solar/g' src/plymouthd.defaults
%build
autoreconf -fiv
%configure --disable-static \
--enable-systemd-integration \
--enable-tracing --disable-tests \
--with-logo=%{_datadir}/plymouth/logo.png \
--with-background-start-color-stop=0x1A3D1F \
--with-background-end-color-stop=0x4EA65C \
--with-background-color=0x3391cd \
--disable-gdm-transition \
--without-system-root-install \
--with-log-viewer \
--without-rhgb-compat-link \
--with-boot-tty=/dev/tty7 \
--with-shutdown-tty=/dev/tty1 \
--without-gdm-autostart-file
make %{?_smp_mflags}
%install
%make_install
rm -f %{buildroot}/%{_bindir}/rhgb-client
rm -f %{buildroot}%{_prefix}/lib/plymouth/plymouth-*-initrd
#Link the plymouth client binary also to /bin until the move to /usr is completed
mkdir %{buildroot}/bin
(cd %{buildroot}/bin; ln -s ../usr/bin/plymouth)
# Glow isn't quite ready for primetime
rm -rf %{buildroot}%{_datadir}/plymouth/glow/
rm -rf %{buildroot}%{_datadir}/plymouth/themes/glow/
rm -f %{buildroot}%{_libdir}/plymouth/glow.so
find %{buildroot} -name '*.a' -exec rm -f {} \;
find %{buildroot} -name '*.la' -exec rm -f {} \;
mkdir -p %{buildroot}%{_localstatedir}/lib/plymouth
mkdir -p %{buildroot}%{_localstatedir}/run/plymouth
cp $RPM_SOURCE_DIR/boot-duration %{buildroot}%{_datadir}/plymouth/default-boot-duration
cp $RPM_SOURCE_DIR/boot-duration %{buildroot}%{_localstatedir}/lib/plymouth
cp %{SOURCE2} %{buildroot}%{_datadir}/plymouth/logo.png
mkdir -p %{buildroot}/lib/mkinitrd/scripts
install -t %{buildroot}/lib/mkinitrd/scripts \
scripts/{setup,boot}-plymouth*.sh
# Unpack the openSUSE branding. This branding is temporarily in this package
# until the official one is created/accepted in the main branding package
pushd %{buildroot}%{_datadir}/plymouth/themes/
tar -Jxf %{SOURCE3}
popd
%clean
rm -rf %{buildroot}
%post
[ -f %{_localstatedir}/lib/plymouth/boot-duration ] || cp -f %{_datadir}/plymouth/default-boot-duration %{_localstatedir}/lib/plymouth/boot-duration
if [ $1 -eq 1 ]; then
if [ -f %{_sysconfdir}/default/grub ]; then
sed -i 's|splash=silent|splash|g' %{_sysconfdir}/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
fi
if [ -f /boot/grub/menu.lst ]; then
sed -i 's|splash=silent|splash|g' /boot/grub/menu.lst
fi
fi
%postun
if [ $1 -eq 0 ]; then
rm -f %{_libdir}/plymouth/default.so
rm -f /boot/initrd-plymouth.img
if [ -f %{_sysconfdir}/default/grub ]; then
sed -i 's|splash|splash=silent|g' %{_sysconfdir}/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
fi
if [ -f /boot/grub/menu.lst ]; then
sed -i 's|splash|splash=silent|g' /boot/grub/menu.lst
fi
fi
%post scripts -p /sbin/mkinitrd_setup
%postun scripts -p /sbin/mkinitrd_setup
%post -n libply-boot-client2 -p /sbin/ldconfig
%postun -n libply-boot-client2 -p /sbin/ldconfig
%post -n libply-splash-core2 -p /sbin/ldconfig
%postun -n libply-splash-core2 -p /sbin/ldconfig
%post -n libply-splash-graphics2 -p /sbin/ldconfig
%postun -n libply-splash-graphics2 -p /sbin/ldconfig
%post -n libply2 -p /sbin/ldconfig
%postun -n libply2 -p /sbin/ldconfig
%post theme-spinfinity
if [ $1 -eq 1 ]; then
export LIB=%{_libdir}
if [ "$(%{_sbindir}/plymouth-set-default-theme)" == "text" ]; then
%{_sbindir}/plymouth-set-default-theme spinfinity
if [ -x /sbin/mkinitrd ]; then
/sbin/mkinitrd
fi
fi
fi
%postun theme-spinfinity
if [ $1 -eq 0 ]; then
export LIB=%{_libdir}
if [ "$(%{_sbindir}/plymouth-set-default-theme)" == "spinfinity" ]; then
%{_sbindir}/plymouth-set-default-theme --reset
/sbin/mkinitrd
fi
fi
%post theme-fade-in
if [ $1 -eq 1 ]; then
export LIB=%{_libdir}
if [ "$(%{_sbindir}/plymouth-set-default-theme)" == "text" ]; then
%{_sbindir}/plymouth-set-default-theme fade-in
if [ -x /sbin/mkinitrd ]; then
/sbin/mkinitrd
fi
fi
fi
%postun theme-fade-in
if [ $1 -eq 0 ]; then
export LIB=%{_libdir}
if [ "$(%{_sbindir}/plymouth-set-default-theme)" == "fade-in" ]; then
%{_sbindir}/plymouth-set-default-theme --reset
/sbin/mkinitrd
fi
fi
%post theme-solar
if [ $1 -eq 1 ]; then
export LIB=%{_libdir}
if [ "$(%{_sbindir}/plymouth-set-default-theme)" == "text" ]; then
%{_sbindir}/plymouth-set-default-theme solar
if [ -x /sbin/mkinitrd ]; then
/sbin/mkinitrd
fi
fi
fi
%postun theme-solar
if [ $1 -eq 0 ]; then
export lib=%{_libdir}
if [ "$(%{_sbindir}/plymouth-set-default-theme)" == "solar" ]; then
%{_sbindir}/plymouth-set-default-theme --reset
/sbin/mkinitrd
fi
fi
%post branding-openSUSE
if [ $1 -eq 1 ]; then
export LIB=%{_libdir}
if [ "$(%{_sbindir}/plymouth-set-default-theme)" == "text" ]; then
%{_sbindir}/plymouth-set-default-theme openSUSE
if [ -x /sbin/mkinitrd ]; then
/sbin/mkinitrd
fi
fi
fi
%postun branding-openSUSE
if [ $1 -eq 0 ]; then
export lib=%{_libdir}
if [ "$(%{_sbindir}/plymouth-set-default-theme)" == "openSUSE" ]; then
%{_sbindir}/plymouth-set-default-theme --reset
/sbin/mkinitrd
fi
fi
%files
%defattr(-, root, root)
%doc AUTHORS NEWS README
%dir %{_datadir}/plymouth
%dir %{_datadir}/plymouth/themes
%dir %{_datadir}/plymouth/themes/details
%dir %{_datadir}/plymouth/themes/text
%dir %{_libexecdir}/plymouth
%dir %{_localstatedir}/lib/plymouth
%dir %{_libdir}/plymouth
%dir %{_libdir}/plymouth/renderers
%dir %{_sysconfdir}/plymouth
%{plymouthdaemon_execdir}/plymouthd
%{plymouthclient_execdir}/plymouth
/bin/plymouth
%{_libdir}/plymouth/details.so
%{_libdir}/plymouth/text.so
%{_libdir}/plymouth/renderers/drm*
%{_libdir}/plymouth/renderers/frame-buffer*
%{_datadir}/plymouth/default-boot-duration
%{_datadir}/plymouth/themes/details/details.plymouth
%{_datadir}/plymouth/themes/text/text.plymouth
%{_datadir}/plymouth/plymouthd.defaults
%ghost %{_localstatedir}/run/plymouth
%{_localstatedir}/spool/plymouth
%{_mandir}/man?/*
%ghost %{_localstatedir}/lib/plymouth/boot-duration
%files devel
%defattr(-, root, root)
%{plymouth_libdir}/libply.so
%{plymouth_libdir}/libply-splash-core.so
%{_libdir}/libply-boot-client.so
%{_libdir}/libply-splash-graphics.so
%{_libdir}/pkgconfig/ply-splash-core.pc
%{_libdir}/pkgconfig/ply-splash-graphics.pc
%{_libdir}/pkgconfig/ply-boot-client.pc
%{_libdir}/plymouth/renderers/x11*
%{_includedir}/plymouth-1
%files -n libply-boot-client2
%defattr(-, root, root)
%{_libdir}/libply-boot-client.so.2*
%files -n libply-splash-core2
%defattr(-, root, root)
%{plymouth_libdir}/libply-splash-core.so.2*
%files -n libply-splash-graphics2
%defattr(-, root, root)
%{_libdir}/libply-splash-graphics.so.2*
%files -n libply2
%defattr(-, root, root)
%{plymouth_libdir}/libply.so.2*
%files scripts
%defattr(-, root, root)
%{_sbindir}/plymouth-set-default-theme
/lib/mkinitrd/scripts/boot-plymouth.sh
/lib/mkinitrd/scripts/boot-plymouth.chroot.sh
/lib/mkinitrd/scripts/setup-plymouth.sh
%files utils
%defattr(-, root, root)
%{_bindir}/plymouth-log-viewer
%files plugin-label
%defattr(-, root, root)
%{_libdir}/plymouth/label.so
%files plugin-fade-throbber
%defattr(-, root, root)
%{_libdir}/plymouth/fade-throbber.so
%files theme-fade-in
%defattr(-, root, root)
%dir %{_datadir}/plymouth/themes/fade-in
%{_datadir}/plymouth/themes/fade-in/bullet.png
%{_datadir}/plymouth/themes/fade-in/entry.png
%{_datadir}/plymouth/themes/fade-in/lock.png
%{_datadir}/plymouth/themes/fade-in/star.png
%{_datadir}/plymouth/themes/fade-in/fade-in.plymouth
%files plugin-throbgress
%defattr(-, root, root)
%{_libdir}/plymouth/throbgress.so
%files theme-spinfinity
%defattr(-, root, root)
%dir %{_datadir}/plymouth/themes/spinfinity
%{_datadir}/plymouth/themes/spinfinity/box.png
%{_datadir}/plymouth/themes/spinfinity/bullet.png
%{_datadir}/plymouth/themes/spinfinity/entry.png
%{_datadir}/plymouth/themes/spinfinity/lock.png
%{_datadir}/plymouth/themes/spinfinity/throbber-[0-3][0-9].png
%{_datadir}/plymouth/themes/spinfinity/spinfinity.plymouth
%files plugin-space-flares
%defattr(-, root, root)
%{_libdir}/plymouth/space-flares.so
%files theme-spinner
%defattr(-, root, root)
%dir %{_datadir}/plymouth/themes/spinner
%{_datadir}/plymouth/themes/spinner/*.*
%files theme-solar
%defattr(-, root, root)
%dir %{_datadir}/plymouth/themes/solar
%{_datadir}/plymouth/themes/solar/*.png
%{_datadir}/plymouth/themes/solar/solar.plymouth
%files plugin-two-step
%defattr(-, root, root)
%{_libdir}/plymouth/two-step.so
%files plugin-script
%defattr(-, root, root)
%{_libdir}/plymouth/script.so
%files theme-script
%defattr(-, root, root)
%dir %{_datadir}/plymouth/themes/script/
%{_datadir}/plymouth/themes/script/*.png
%{_datadir}/plymouth/themes/script/script.script
%{_datadir}/plymouth/themes/script/script.plymouth
%files branding-upstream
%defattr(-, root, root)
%config(noreplace) %{_sysconfdir}/plymouth/plymouthd.conf
%{_datadir}/plymouth/logo.png
%files branding-openSUSE
%defattr(-, root, root)
%config(noreplace) %{_sysconfdir}/plymouth/plymouthd.conf
%{_datadir}/plymouth/logo.png
%{_datadir}/plymouth/themes/openSUSE/
%changelog