From 25e91ce4e2bb558d300b56258563ad3fc3ffbc19 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 1 Apr 2011 14:54:32 -0400 Subject: dh_installgsettings: New command to handle gsettings schema files. Closes: #604727 --- debian/changelog | 2 ++ debian/copyright | 9 +++-- dh | 1 + dh_installgsettings | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++ doc/TODO | 3 ++ 5 files changed, 109 insertions(+), 2 deletions(-) create mode 100755 dh_installgsettings diff --git a/debian/changelog b/debian/changelog index dd92b07d..bd8b7b9d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -15,6 +15,8 @@ debhelper (8.1.3) UNRELEASED; urgency=low If you remove that dependency, debhelper will fall back to not doing multiarch stuff in v9 mode, which is probably what you want. * Removed old example rules files. + * dh_installgsettings: New command to handle gsettings schema files. + Closes: #604727 -- Joey Hess Sun, 27 Feb 2011 15:43:12 -0400 diff --git a/debian/copyright b/debian/copyright index 913a2f62..1e4bc1ee 100644 --- a/debian/copyright +++ b/debian/copyright @@ -60,6 +60,11 @@ Copyright: 1997-2008 Joey Hess , 2009 Canonical Ltd. License: GPL-3+ +Files: dh_installgsettings +Copyright: 2010 Laurent Bigonville + 2011 Josselin Mouette +License: GPL-2+ + Files: Debian/Debhelper/Buildsystem/qmake.pm Copyright: © 2010 Kel Modderman License: GPL-2+ @@ -69,10 +74,10 @@ Copyright: © 2008-2009 Modestas Vainius License: GPL-2+ License: GPL-2+ - The full text of the GPL is distributed as in + The full text of the GPL version 2 is distributed in /usr/share/common-licenses/GPL-2 on Debian systems. License: GPL-3+ - The full text of the GPL is distributed as in + The full text of the GPL version 3 is distributed in /usr/share/common-licenses/GPL-3 on Debian systems. diff --git a/dh b/dh index 5a6679e5..93d18b36 100755 --- a/dh +++ b/dh @@ -360,6 +360,7 @@ my @i = qw{ dh_installudev dh_installwm dh_installxfonts + dh_installgsettings dh_bugfiles dh_lintian dh_gconf diff --git a/dh_installgsettings b/dh_installgsettings new file mode 100755 index 00000000..2bb7fde9 --- /dev/null +++ b/dh_installgsettings @@ -0,0 +1,96 @@ +#!/usr/bin/perl -w + +=head1 NAME + +dh_gsettings - install GSettings overrides and set dependencies + +=cut + +use strict; +use Debian::Debhelper::Dh_Lib; + +=head1 SYNOPSIS + +B [S>] [B<--priority=>] + +=head1 DESCRIPTION + +B is a debhelper program that is responsible for installing +GSettings override files and generating appropriate dependencies on the +GSettings backend. + +The dependency on the backend will be generated in B<${misc:Depends}>. + +=head1 FILES + +=over 4 + +=item debian/I.gsettings-override + +Installed into usr/share/glib-2.0/schemas/10_I.gschema.override in +the package build directory, with "I" replaced by the package name. + +The format of the file is the following: + + [org.gnome.mypackage] + boolean-setting=true + string-setting='string' + ... + +=back + +=head1 OPTIONS + +=over 4 + +=item B<--priority> I + +Use I (which should be a 2-digit number) as the override +priority instead of 10. Higher values than ten can be used by +derived distributions (20), blend distributions (50), or site-specific +packages (90). + +=cut + +init(); + +my $priority=10; +if (defined $dh{PRIORITY}) { + $priority=$dh{PRIORITY}; +} + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmp=tmpdir($package); + + my $gsettings_schemas_dir = "$tmp/usr/share/glib-2.0/schemas/"; + + my $override = pkgfile($package,"gsettings-override"); + if ($override ne '') { + doit("mkdir","-p",$gsettings_schemas_dir); + doit("install","-p","-m644",$override,"$gsettings_schemas_dir/${priority}_$package.gschema.override"); + } + + if (-d "$gsettings_schemas_dir") { + # Get a list of the schemas + my $schemas = `find $gsettings_schemas_dir -type f -name \\*.xml -o -name \\*.override -printf '%P '`; + if ($schemas ne '') { + addsubstvar($package, "misc:Depends", "dconf-gsettings-backend | gsettings-backend"); + } + } +} + +=back + +=head1 SEE ALSO + +L + +This program is a part of debhelper. + +=head1 AUTHOR + +Laurent Bigonville , +Josselin Mouette + +=cut + diff --git a/doc/TODO b/doc/TODO index 14ea1455..297dd869 100644 --- a/doc/TODO +++ b/doc/TODO @@ -26,6 +26,9 @@ Deprecated: library in case other things use them. Deprecate and remove. * dh --before , --after , --until , --remaining (not formally deprecated yet) * debian/compress files +* deprecate dh_gconf for dh_installgsettings (stuff should be migrating + away from gconf, and then I can just remove it -- have not added warning + or depreaction docs yet) Also, grep the entire archive for all dh_* command lines, and check to see what other switches are not being used, and maybe remove -- cgit v1.2.3