[djvulibre/el6] Properly remove the djview3 menu entries Correctly package the icon files

Jonathan G. Underwood jgu at fedoraproject.org
Tue May 8 15:23:38 UTC 2012


commit a19c51a38a1e500aba4a1cd7d4b4f7efa9a2eef4
Author: Jonathan G. Underwood <jonathan.underwood at gmail.com>
Date:   Tue May 8 16:23:24 2012 +0100

    Properly remove the djview3 menu entries
    Correctly package the icon files

 djvulibre.spec |   47 ++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 40 insertions(+), 7 deletions(-)
---
diff --git a/djvulibre.spec b/djvulibre.spec
index eb0edcb..eb8b16d 100644
--- a/djvulibre.spec
+++ b/djvulibre.spec
@@ -1,7 +1,7 @@
 Summary: DjVu viewers, encoders, and utilities
 Name: djvulibre
 Version: 3.5.24
-Release: 4%{?dist}
+Release: 5%{?dist}
 License: GPLv2+
 Group: Applications/Publishing
 URL: http://djvu.sourceforge.net/
@@ -17,6 +17,7 @@ BuildRequires: libjpeg-devel
 %endif
 BuildRequires: libtiff-devel
 BuildRequires: xdg-utils chrpath
+BuildRequires: hicolor-icon-theme
 
 Provides: %{name}-mozplugin = %{version}
 Obsoletes: %{name}-mozplugin < 3.5.24
@@ -93,22 +94,45 @@ chrpath --delete $RPM_BUILD_ROOT%{_bindir}/djvudump
 chrpath --delete $RPM_BUILD_ROOT%{_bindir}/djvmcvt
 chrpath --delete $RPM_BUILD_ROOT%{_bindir}/bzz
 
+# MIME types (icons and desktop file) - this installs icon files under
+# /usr/share/icons/hicolor/ and an xml file under /usr/share/mime/image/
+# Taken from {_datadir}/djvu/osi/desktop/register-djvu-mime install
+# See also the README file in the desktopfiles directory of the source distribution
+pushd desktopfiles
+for i in 22 32 48 64 ; do
+    install -d $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${i}x${i}/mimetypes/
+    cp -a ./hi${i}-djvu.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${i}x${i}/mimetypes/image-vnd.djvu.mime.png
+#    cp -a ./hi${i}-djvu.png $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${i}x${i}/mimetypes/gnome-mime-image-vnd.djvu.png
+done
+popd
 
 %post
 # Unregister menu entry for djview3 if it is present as we no longer
-# ship this in favour of the djview4 package
-%{_datadir}/djvu/djview3/desktop/register-djview-menu uninstall || :
+# ship this in favour of the djview4 package. These files were
+# installed in %post by the older djvulibre packages, but not actually
+# owned by the package (packaging bug)
+rm -f %{_datadir}/applications/djvulibre-djview3.desktop || :
+rm -f %{_datadir}/icons/hicolor/32x32/apps/djvulibre-djview3.png || :
 
-# MIME types (icons and desktop file)
-%{_datadir}/djvu/osi/desktop/register-djvu-mime install || :
+/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
 
 %preun
-# Removal, not update
+# This is the legacy script, not compliant with current packaging
+# guidelines. However, we leave it in, as the old packages didn't own
+# the icon and xml files, so we want to be sure we remove them
 if [ $1 -eq 0 ]; then
     # MIME types (icons and desktop file)
     %{_datadir}/djvu/osi/desktop/register-djvu-mime uninstall || :
 fi
 
+%postun
+if [ $1 -eq 0 ] ; then
+    /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+    /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
+fi
+
+%posttrans
+/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 
 %post libs -p /sbin/ldconfig
 
@@ -118,9 +142,14 @@ fi
 %files
 %defattr(-,root,root,-)
 %{_bindir}/*
-%{_datadir}/djvu/
 %{_mandir}/man1/*
 %lang(ja) %{_mandir}/ja/man1/*
+%{_datadir}/djvu/
+%{_datadir}/icons/hicolor/22x22/mimetypes/*
+%{_datadir}/icons/hicolor/32x32/mimetypes/*
+%{_datadir}/icons/hicolor/64x64/mimetypes/*
+%{_datadir}/icons/hicolor/48x48/mimetypes/*
+
 
 %files libs
 %defattr(-,root,root,-)
@@ -137,6 +166,10 @@ fi
 
 
 %changelog
+* Tue May  8 2012 Jonathan G. Underwood <rpmb at mia.theory.phys.ucl.ac.uk> - 3.5.24-4
+- Properly remove the djview3 menu entries
+- Correctly package the icon files
+
 * Sat May  5 2012 Jonathan G. Underwood <rpmb at mia.theory.phys.ucl.ac.uk> - 3.5.24-4
 - Merge in changes from Fedora master branch to el6 branch to bring version 3.5.24
 - Unregister djview3 menu/desktop entry on install if present


More information about the scm-commits mailing list