From 780fefcdcfd21f335378899f2e20d92978b476e7 Mon Sep 17 00:00:00 2001 From: joeyh Date: Sun, 8 Jul 2007 22:16:15 +0000 Subject: [PATCH] =?utf8?q?r2010:=20*=20dh=5Ficons:=20New=20program=20to=20?= =?utf8?q?update=20Freedesktop=20icon=20caches.=20Thanks=20=20=20to=20Joss?= =?utf8?q?elin=20Mouette,=20Ross=20Burton,=20Jordi=20Mallach,=20and=20Lo?= =?utf8?q?=C3=AFc=20Minier.=20=20=20Closes:=20#329460=20*=20Note=20that=20?= =?utf8?q?as=20a=20transitional=20measure,=20dh=5Ficons=20will=20currently?= =?utf8?q?=20only=20update=20=20=20existing=20caches,=20and=20not=20create?= =?utf8?q?=20and=20new=20caches.=20Once=20everything=20is=20=20=20updating?= =?utf8?q?=20the=20icon=20caches,=20this=20will=20be=20changed.=20See=20#3?= =?utf8?q?29460=20for=20the=20full=20=20=20plan.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- autoscripts/postinst-icons | 7 ++++ autoscripts/postrm-icons | 15 ++++++++ debian/changelog | 9 ++++- dh_icons | 73 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 autoscripts/postinst-icons create mode 100644 autoscripts/postrm-icons create mode 100755 dh_icons diff --git a/autoscripts/postinst-icons b/autoscripts/postinst-icons new file mode 100644 index 0000000..3c018b3 --- /dev/null +++ b/autoscripts/postinst-icons @@ -0,0 +1,7 @@ +if which gtk-update-icon-cache >/dev/null 2>&1; then + for dir in #DIRLIST#; do + if [ -f "$dir"/icon-theme.cache ]; then + gtk-update-icon-cache --force --quiet "$dir" + fi + done +fi diff --git a/autoscripts/postrm-icons b/autoscripts/postrm-icons new file mode 100644 index 0000000..3765560 --- /dev/null +++ b/autoscripts/postrm-icons @@ -0,0 +1,15 @@ +if [ "$1" = "remove" ]; then + for dir in #DIRLIST#; do + if [ -d "$dir" ]; then + if [ -f "$dir"/index.theme ] && \ + [ -f "$dir"/icon-theme.cache ] && \ + which gtk-update-icon-cache >/dev/null 2>&1 + then + gtk-update-icon-cache --force --quiet "$dir" + else + rm -f "$dir"/icon-theme.cache + rmdir -p --ignore-fail-on-non-empty "$dir" + fi + fi + done +fi diff --git a/debian/changelog b/debian/changelog index 9874acd..0462e8a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,10 +1,17 @@ debhelper (5.0.51) UNRELEASED; urgency=low + * dh_icons: New program to update Freedesktop icon caches. Thanks + to Josselin Mouette, Ross Burton, Jordi Mallach, and Loïc Minier. + Closes: #329460 + * Note that as a transitional measure, dh_icons will currently only update + existing caches, and not create and new caches. Once everything is + updating the icon caches, this will be changed. See #329460 for the full + plan. * Remove possibly confusing (though strictly accurate) sentence from dh_installdirs.1. Closes: #429318 * dh_gencontrol: Fix man page typo. Closes: #431232 - -- Joey Hess Sat, 30 Jun 2007 17:19:00 -0400 + -- Joey Hess Sun, 08 Jul 2007 17:54:50 -0400 debhelper (5.0.50) unstable; urgency=low diff --git a/dh_icons b/dh_icons new file mode 100755 index 0000000..aa077e4 --- /dev/null +++ b/dh_icons @@ -0,0 +1,73 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_icons - Update Freedesktop icon caches + +=cut + +use strict; +use File::Find; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B [S>] [B<-n>] + +=head1 DESCRIPTION + +dh_icons is a debhelper program that updates Freedesktop icon caches +when needed, using the gtk-update-icon-cache program provided by GTK+2.0. +Currently this program does not handle installation of the files, though it +may do so at a later date. It takes care of adding maintainer script +fragments to call F. + +=head1 OPTIONS + +=over 4 + +=item B<-n>, B<--noscripts> + +Do not modify maintainer scripts. + +=cut + +init(); + +my $baseicondir="/usr/share/icons"; + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmp=tmpdir($package); + my $icondir="$tmp$baseicondir"; + if (-d $icondir) { + my @dirlist; + opendir(DIRHANDLE, $icondir); + while (my $subdir = readdir(DIRHANDLE)) { + next if $subdir =~ /^\./; + my $needs_cache = 0; + find sub { + $needs_cache = 1 if -f and (/\.png$/ or /\.svg$/ or /\.jpg$/); + }, "$icondir/$subdir" ; + push @dirlist, "$baseicondir/$subdir" if $needs_cache; + } + if (@dirlist and ! $dh{NOSCRIPTS}) { + my $list=join(" ", @dirlist); + autoscript($package,"postinst","postinst-icons","s%#DIRLIST#%$list%"); + autoscript($package,"postrm","postrm-icons","s%#DIRLIST#%$list%"); + } + } +} + +=head1 SEE ALSO + +L + +This program is a part of debhelper. + +=head1 AUTHOR + +Ross Burton +Jordi Mallach +Josselin Mouette + +=cut -- 2.39.5