]> git.donarmstrong.com Git - debhelper.git/commitdiff
dh_installgsettings: New command to handle gsettings schema files. Closes: #604727
authorJoey Hess <joey@kitenet.net>
Fri, 1 Apr 2011 18:54:32 +0000 (14:54 -0400)
committerJoey Hess <joey@kitenet.net>
Fri, 1 Apr 2011 18:54:32 +0000 (14:54 -0400)
debian/changelog
debian/copyright
dh
dh_installgsettings [new file with mode: 0755]
doc/TODO

index dd92b07d84a8e6824597a785bb535f1eb43ec32b..bd8b7b9d42beebd381e4212d0da76d29e13a0f75 100644 (file)
@@ -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
 
index 913a2f626a648dcf8ebc15a7f850c11e388cd58e..1e4bc1ee22a261cc95503f6e405066593810c452 100644 (file)
@@ -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 5a6679e5680ea03e865e9802c0ed3ef373e94c50..93d18b3637b1b02b25ee757abbae406f7783e00d 100755 (executable)
--- 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 (executable)
index 0000000..2bb7fde
--- /dev/null
@@ -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
+
index 14ea14557c0b9000ff83cca27be106fe41cc6e47..297dd8698983988a6b47737851884984fd27671b 100644 (file)
--- 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