summaryrefslogtreecommitdiff
path: root/dh_elpa
diff options
context:
space:
mode:
authorDavid Bremner <bremner@debian.org>2015-09-22 08:46:38 -0300
committerDavid Bremner <bremner@debian.org>2015-09-22 09:12:34 -0300
commitbe3dfc8316bc8b9dd48a9a0fa6efdf91a2b3ccbe (patch)
tree33fbb6bc6c8459b8120e50d3b2518a2db305833f /dh_elpa
parentdb7a2524140c84a6dc165c41f694650e5bdde4e0 (diff)
add sub to read package description back from emacs
This file is in pseudo-RFC822 form; it is a fatal error if emacs didn't create it. Currently this calls an unexported sub from Dh_Lib
Diffstat (limited to 'dh_elpa')
-rwxr-xr-xdh_elpa56
1 files changed, 38 insertions, 18 deletions
diff --git a/dh_elpa b/dh_elpa
index b62d387..83675f3 100755
--- a/dh_elpa
+++ b/dh_elpa
@@ -76,23 +76,42 @@ sub doit_quietly {
}
+sub read_package_desc {
+ my ($descdir, $package) = @_;
+ my %desc = {};
+
+ my $descfile="${descdir}/${package}.desc";
+
+ open my $fh,'<', $descfile or
+ error "failed to open $descfile";
+
+ while (<DESC>) {
+ if (m/([^:]+):\s*(.*)\s*$/) {
+ $desc{$1} = $2;
+ }
+ }
+ return \%desc;
+}
+
my $templatedir = "/usr/share/debhelper/dh_elpa/emacsen-common";
sub maybe_install_helper{
- my ($package,$piece, $mode)=@_;
+ my ($package,$piece, $mode, $desc)=@_;
my $file=pkgfile($package,"emacsen-$piece");
my $tmp=tmpdir($package);
my $ecdest="$tmp/usr/lib/emacsen-common/packages";
-
+ my $target="$ecdest/$piece/$package";
# if there is file, leave it for dh_installemacsen
if ($file eq '') {
if (! -d "$ecdest/$piece") {
doit("install","-d","$ecdest/$piece");
}
+ Debian::Debhelper::Dh_Lib::autoscript_sed (sub {s/#ELPAPACKAGE#/$desc->{'ELPA-Package'}/;
+ s/#ELPAVERSION#/$desc->{'ELPA-Version'}/; },
+ "$templatedir/$piece", $target);
- doit("install","-m$mode","$templatedir/$piece",
- "$ecdest/$piece/$package");
+ chmod $mode, $target;
}
}
@@ -137,20 +156,6 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
next PACKAGE if (scalar(@files) == 0);
- if ($dh{BYTECOMPILE}) {
- addsubstvar($package,'misc:Depends','emacsen-common');
- maybe_install_helper($package,'compat','0644');
- maybe_install_helper($package,'install','0755');
- maybe_install_helper($package,'remove','0755');
-
- if (! $dh{NOSCRIPTS}) {
- autoscript($package,"postinst","postinst-emacsen",
- "s/#PACKAGE#/$package/");
- autoscript($package,"prerm","prerm-emacsen",
- "s/#PACKAGE#/$package/");
- }
- }
-
my $pkg_file;
my $cwd = getcwd();
my $tempdir = "${cwd}/debian/.debhelper/elpa";
@@ -188,6 +193,21 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
"$tmp/$elpadir", $stagedir, $tempdir);
}
+ if ($dh{BYTECOMPILE}) {
+ my $desc = read_package_desc ($tempdir,$package);
+
+ addsubstvar($package,'misc:Depends','emacsen-common');
+ maybe_install_helper($package, 'compat', '0644', $desc);
+ maybe_install_helper($package, 'install', '0755', $desc);
+ maybe_install_helper($package, 'remove', '0755', $desc);
+
+ if (! $dh{NOSCRIPTS}) {
+ autoscript($package,"postinst","postinst-emacsen",
+ "s/#PACKAGE#/$package/");
+ autoscript($package,"prerm","prerm-emacsen",
+ "s/#PACKAGE#/$package/");
+ }
+ }
}