From be3dfc8316bc8b9dd48a9a0fa6efdf91a2b3ccbe Mon Sep 17 00:00:00 2001 From: David Bremner Date: Tue, 22 Sep 2015 08:46:38 -0300 Subject: 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 --- dh_elpa | 56 ++++++++++++++++++++++++++++++++++++++------------------ 1 file 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 () { + 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/"); + } + } } -- cgit v1.2.3