summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2011-04-01 14:54:32 -0400
committerJoey Hess <joey@kitenet.net>2011-04-01 14:54:32 -0400
commit25e91ce4e2bb558d300b56258563ad3fc3ffbc19 (patch)
tree67fb6889c4a7c0854b6fd7700044d6544b30d7e1
parent54fbbed4eb8bf4086e12f4c22204ab75729a4f65 (diff)
downloaddebhelper-25e91ce4e2bb558d300b56258563ad3fc3ffbc19.tar.gz
dh_installgsettings: New command to handle gsettings schema files. Closes: #604727
-rw-r--r--debian/changelog2
-rw-r--r--debian/copyright9
-rwxr-xr-xdh1
-rwxr-xr-xdh_installgsettings96
-rw-r--r--doc/TODO3
5 files changed, 109 insertions, 2 deletions
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 <joeyh@debian.org> 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 <joeyh@debian.org>,
2009 Canonical Ltd.
License: GPL-3+
+Files: dh_installgsettings
+Copyright: 2010 Laurent Bigonville <bigon@debian.org>
+ 2011 Josselin Mouette <joss@debian.org>
+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<dh_gsettings> [S<I<debhelper options>>] [B<--priority=<number>>]
+
+=head1 DESCRIPTION
+
+B<dh_gsettings> 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<package>.gsettings-override
+
+Installed into usr/share/glib-2.0/schemas/10_I<package>.gschema.override in
+the package build directory, with "I<package>" 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<priority>
+
+Use I<priority> (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<debhelper(7)>
+
+This program is a part of debhelper.
+
+=head1 AUTHOR
+
+Laurent Bigonville <bigon@debian.org>,
+Josselin Mouette <joss@debian.org>
+
+=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