diff options
Diffstat (limited to 'dh_gconf')
-rwxr-xr-x | dh_gconf | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/dh_gconf b/dh_gconf new file mode 100755 index 0000000..619ccb7 --- /dev/null +++ b/dh_gconf @@ -0,0 +1,116 @@ +#!/usr/bin/perl + +=head1 NAME + +dh_gconf - install GConf defaults files and register schemas (deprecated) + +=cut + +use strict; +use warnings; +use Debian::Debhelper::Dh_Lib; + +our $VERSION = DH_BUILTIN_VERSION; + +=head1 SYNOPSIS + +B<dh_gconf> [S<I<debhelper options>>] [B<--priority=>I<priority>] + +=head1 DESCRIPTION + +B<dh_gconf> is a debhelper program that is responsible for installing GConf +defaults files and registering GConf schemas. + +An appropriate dependency on gconf2 will be generated in B<${misc:Depends}>. + +=head1 FILES + +=over 4 + +=item debian/I<package>.gconf-defaults + +Installed into F<usr/share/gconf/defaults/10_package> in the package build +directory, with I<package> replaced by the package name. + +=item debian/I<package>.gconf-mandatory + +Installed into F<usr/share/gconf/mandatory/10_package> in the package build +directory, with I<package> replaced by the package name. + +=back + +=head1 OPTIONS + +=over 4 + +=item B<--priority> I<priority> + +Use I<priority> (which should be a 2-digit number) as the defaults +priority instead of B<10>. Higher values than ten can be used by +derived distributions (B<20>), CDD distributions (B<50>), or site-specific +packages (B<90>). + +=back + +=cut + +init(options => { + "priority=s" => \$dh{PRIORITY}, +}); + +warning("Please migrate to dh_installgsettings; gconf + dh_gconf is scheduled for removal."); + +my $priority=10; +if (defined $dh{PRIORITY}) { + $priority=$dh{PRIORITY}; +} + +# PROMISE: DH NOOP WITHOUT gconf-mandatory gconf-defaults tmp(etc/gconf/schemas) tmp(usr/share/gconf/schemas) cli-options() + +foreach my $package (@{$dh{DOPACKAGES}}) { + my $tmp=tmpdir($package); + + my $mandatory = pkgfile($package, "gconf-mandatory"); + if ($mandatory ne '') { + install_dir("$tmp/usr/share/gconf/mandatory"); + install_file($mandatory, + "$tmp/usr/share/gconf/mandatory/${priority}_$package"); + } + my $defaults = pkgfile($package,"gconf-defaults"); + if ($defaults ne '') { + install_dir("$tmp/usr/share/gconf/defaults"); + install_file($defaults, "$tmp/usr/share/gconf/defaults/${priority}_$package"); + } + + my $old_schemas_dir = "$tmp/etc/gconf/schemas"; + my $new_schemas_dir = "$tmp/usr/share/gconf/schemas"; + + # Migrate schemas from /etc/gconf/schemas to /usr/share/gconf/schemas + if (-d $old_schemas_dir) { + install_dir($new_schemas_dir); + complex_doit("mv $old_schemas_dir/*.schemas $new_schemas_dir/"); + doit("rmdir","-p","--ignore-fail-on-non-empty",$old_schemas_dir); + } + + if (-d "$new_schemas_dir") { + # Get a list of the schemas + my $schemas = qx_cmd('find', $new_schemas_dir, '-type', 'f', '-name', '*.schemas', + '-printf', '%P'); + if ($schemas ne '') { + addsubstvar($package, "misc:Depends", "gconf2 (>= 2.28.1-2)"); + } + } +} + +=head1 SEE ALSO + +L<debhelper(7)> + +This program is a part of debhelper. + +=head1 AUTHOR + +Ross Burton <ross@burtonini.com> +Josselin Mouette <joss@debian.org> + +=cut |