File desktop-data-openSUSE.spec of Package desktop-data-openSUSE

#
# spec file for package desktop-data-openSUSE
#
# Copyright (c) 2017 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/
#


#Compat macro for new _fillupdir macro introduced in Nov 2017
%if ! %{defined _fillupdir}
  %define _fillupdir /var/adm/fillup-templates
%endif

Name:           desktop-data-openSUSE
BuildRequires:  fdupes
BuildRequires:  hicolor-icon-theme
BuildRequires:  perl-RPC-XML
BuildRequires:  update-desktop-files
BuildRequires:  xdg-menu
BuildRequires:  xdg-utils
Version:        15.0.20171024
Release:        0
Summary:        Shared Desktop Files for openSUSE
License:        GPL-2.0+
Group:          System/GUI/Other
Obsoletes:      susewm
Provides:       desktop-data
Obsoletes:      desktop-data-NLD < 11.0
PreReq:         /bin/rm
PreReq:         %fillup_prereq
# some soft Requires: Crystalcursors
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
Requires:       hicolor-icon-theme
Requires:       xdg-utils
# This is the default cursor theme we reference in /etc/sysconfig/windowmanager
Requires:       dmz-icon-theme-cursors
Requires:       wallpaper-branding >= 13.3
Source:         desktop-data-%{version}.tar.xz
Source1:        %name.fillup
BuildArch:      noarch
Provides:       desktop-data-SuSE = 11.0
Obsoletes:      CheckHardware <= 0.1
Obsoletes:      desktop-data-SuSE <= 11.0
Provides:       CheckHardware = 0.1
Obsoletes:      gnome2-SuSE <= 10.3
Provides:       desktop-branding = %{version}

%description
This package contains shared desktop files, like the default
applications menu structure and the default wallpaper.

%package extra
Summary:        Additional wallpapers
Group:          System/GUI/Other
Requires:       desktop-data-openSUSE
Provides:       desktop-data-SuSE-extra = 11.0
Obsoletes:      desktop-data-SuSE-extra <= 11.0
Provides:       desktop-data-SuSE:/usr/share/wallpapers/Bear.jpg
Enhances:       desktop-data-openSUSE

%description extra
This package contains additional wallpapers.

%prep
%setup -n desktop-data-%{version}

%build
# Convert KDE style wallpaper desktop files to gnome-wp-list
mkdir -p usr/share/gnome-background-properties
cat >usr/share/gnome-background-properties/desktop-data-openSUSE-extra.xml <<EOF
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wallpapers SYSTEM "gnome-wp-list.dtd">
<wallpapers>
EOF
for i in usr/share/wallpapers/*.desktop
do
  IMG=${i#desktop-data}
  IMG=${IMG%.desktop}
  sed -n >>usr/share/gnome-background-properties/desktop-data-openSUSE-extra.xml <$i '
      1i \
  <wallpaper deleted="false">
      $a \
  </wallpaper>
  s@^Name=\(.*\)@		<name>\1</name>@p
  s@^Name\[\([^]]*\)\]=\(.*\)@		<name xml:lang="\1">\2</name>@p
  s@^File=\(.*\)@		<filename>/usr/share/wallpapers/\1</filename>\
          <options>stretched</options>@p
  s@^X-GNOME-WP-Shade-Type=\(.*\)@		<shade_type>\1</shade_type>@p
  s@^X-GNOME-WP-PColor=\(.*\)@		<pcolor>\1</pcolor>@p
  s@^X-GNOME-WP-SColor=\(.*\)@		<scolor>\1</scolor>@p
  '
  # And finally delete X-GNOME-WP-* entries, not needed for KDE style desktop files.
  sed -i '/^X-GNOME-WP-/d' $i
done
cat >>usr/share/gnome-background-properties/desktop-data-openSUSE-extra.xml <<EOF
</wallpapers>
EOF

%install
cp -a * $RPM_BUILD_ROOT/
mkdir -p $RPM_BUILD_ROOT/etc/xdg/menus/applications-merged
for i in $RPM_BUILD_ROOT/usr/share/desktop-directories/*.directory $RPM_BUILD_ROOT/usr/share/wallpapers/*.desktop
do
    %suse_update_desktop_file "$i"
done
#
# define default mouse cursor
#
mkdir -p $RPM_BUILD_ROOT%{_fillupdir}/
install -m 0644 %SOURCE1 \
  $RPM_BUILD_ROOT%{_fillupdir}/sysconfig.windowmanager-%name
#
# is it a valid menu ?
#
export XDG_DATA_DIRS=$RPM_BUILD_ROOT/usr/share/
export XDG_CONFIG_DIRS=$RPM_BUILD_ROOT/etc/xdg/
xdg_menu --die-on-error --format readable
#
# make call-browser executable, symlink
mkdir -p $RPM_BUILD_ROOT/usr/bin
ln -snf xdg-open $RPM_BUILD_ROOT/usr/bin/call-browser
ln -snf xdg-open $RPM_BUILD_ROOT/usr/bin/desktop-launch
#
# fdupes
%fdupes $RPM_BUILD_ROOT/usr/share/icons
%fdupes $RPM_BUILD_ROOT/usr/share/pixmaps

%post
%{fillup_only -an windowmanager}
# clean up old susewm menus
for i in Settings SuSE work; do
	rm -rf /etc/opt/kde3/share/applnk/$i
done
%if 0%{?suse_version} > 1130
%icon_theme_cache_post
%else
gtk-update-icon-cache %{_datadir}/icons/hicolor || true
%endif

%postun
%if 0%{?suse_version} > 1130
%icon_theme_cache_postun
%else
gtk-update-icon-cache %{_datadir}/icons/hicolor || true
%endif

%files
%defattr(-,root,root)
%dir /etc/xdg/menus
%dir /etc/xdg/menus/applications-merged
%config(noreplace) /etc/xdg/menus/*.menu
/usr/share/desktop-*
/usr/share/icons/hicolor/*/*/*
%dir /usr/share/icons/oxygen
%dir /usr/share/icons/oxygen/32x32
%dir /usr/share/icons/oxygen/32x32/apps
/usr/share/icons/oxygen/*/*/*
/usr/share/pixmaps/*
/etc/profile.d/desktop-data.*
%{_fillupdir}/sysconfig.windowmanager-%name
/usr/bin/call-browser
/usr/bin/desktop-launch
%dir /etc/kde4
%dir /etc/kde4/kdm
%config /etc/kde4/kdm/backgroundrc

%files extra
%defattr(-,root,root)
/usr/share/gnome-background-properties/desktop-data-openSUSE-extra.xml
/usr/share/wallpapers/
# FIXME: It should be owned by a different package:
%dir /usr/share/gnome-background-properties

%changelog
openSUSE Build Service is sponsored by