dh-elpa-0.0.19/0000755000000000000000000000000012662335055010010 5ustar dh-elpa-0.0.19/dh_elpa.in0000755000000000000000000001727212662335055011750 0ustar #!/usr/bin/perl =head1 NAME dh_elpa - install emacs lisp packages into package build directories =cut use strict; use Cwd qw{ getcwd }; use File::Temp qw{tempfile}; use IO::Handle; use File::Path; use Debian::Debhelper::Dh_Lib; =head1 SYNOPSIS B [S>] [S>] =head1 DESCRIPTION B is a debhelper program that is responsible for installing elpa style emacs lisp packages into package build directories. =head1 FILES =over 4 =item debian/I.elpa List of files to be installed into I as an elpa package. =back =cut init(options => { "byte-compile!" => \$dh{BYTECOMPILE}, "fix-autoload-date!" => \$dh{FIXAUTOLOADDATE}, }); =head1 OPTIONS =over 4 =item B<--byte-compile>, B<--no-byte-compile> Enable (default) or disable byte compilation of installed emacs lisp files. Disabling byte compilation changes the destination directory to one that is found by the emacs package system. =back =over 4 =item B<--fix-autoload-date>, B<--no--fix-autoload-date> Enable (default) or disable munging the dates in Emacs generated autoload files to match debian/changelog. =back =cut sub doit_quietly { my ($handle,$tmpfile) = tempfile(UNLINK=>1); my $exitcode; verbose_print(escape_shell(@_)); open (CPERR,">&STDERR") or error "$!"; open (CPOUT,">&STDOUT") or error "$!"; STDOUT->fdopen($handle,'w'); STDERR->fdopen($handle,'w'); my $ret=doit_noerror(@_); STDOUT->fdopen(\*CPOUT,'w'); STDERR->fdopen(\*CPERR,'w'); if (!$ret){ $exitcode=$?; seek $handle, 0, 0 or error "$!"; print while (<$handle>); my $command=join(" ",@_); error("$command returned exit code ".($exitcode >> 8)); } } # simplified version of private sub autoscript_sed in Dh_Lib sub sed_file { my ($sed, $infile, $outfile) = @_; open(IN, $infile) or die "$infile: $!"; open(OUT, ">>$outfile") or die "$outfile: $!"; while () { $sed->(); print OUT } close(OUT) or die "$outfile: $!"; close(IN) or die "$infile: $!"; } sub read_package_desc { my ($descdir, $package) = @_; my %desc = (); my $descfile="${descdir}/${package}.desc"; my $fh; open $fh,'<', $descfile or error "failed to open $descfile"; while (<$fh>) { 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, $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"); } unlink $target; # ignore errors my $elpapackage = $desc->{'ELPA-Name'} or error "elpa package name not found"; my $elpaversion = $desc->{'ELPA-Version'} or error "elpa version not found"; sed_file (sub {s/#ELPAPACKAGE#/$elpapackage/; s/#ELPAVERSION#/$elpaversion/; }, "$templatedir/$piece", $target); chmod oct($mode), $target; } } $dh{BYTECOMPILE} = 1 unless defined($dh{BYTECOMPILE}); $dh{FIXAUTOLOADDATE} = 1 unless defined($dh{FIXAUTOLOADDATE}); my $elpadir; my $dhelpadir="/usr/share/emacs/site-lisp/elpa"; # TODO: do we really need a seperate elpa-src hierarchy? if ($dh{BYTECOMPILE}) { $elpadir="/usr/share/emacs/site-lisp/elpa-src"; } else { $elpadir=$dhelpadir; } PACKAGE: foreach my $package (@{$dh{DOPACKAGES}}) { my $tmp=tmpdir($package); my $file=pkgfile($package,"elpa"); my $elpapkg=$package; # TODO do this more sanely or at least allow an override $elpapkg =~ s/^elpa-//; verbose_print("Using elpa package name $elpapkg"); my @files; # Call isnative because it sets $dh{VERSION} # as a side effect. isnative($package); if ($file) { @files=filearray($file, "."); scalar(@files) == 1 || grep { m/\b${elpapkg}-pkg.el$/ } @files or warning "missing ${elpapkg}-pkg.el; will try to generate it"; } if (($package eq $dh{FIRSTPACKAGE} || $dh{PARAMS_ALL}) && @ARGV) { push @files, @ARGV; } next PACKAGE if (scalar(@files) == 0); my $pkg_file; my $cwd = getcwd(); my $tempdir = "${cwd}/debian/.debhelper/elpa"; my $helper_version = '@HELPER_VERSION@'; my @extra_args = ( $tempdir ); if ($dh{FIXAUTOLOADDATE}) { push @extra_args, get_source_date_epoch(); } File::Path::rmtree $tempdir || error "cleaning $tempdir"; File::Path::make_path $tempdir || error "creating $tempdir"; addsubstvar($package,'misc:Built-Using',"dh-elpa (= ${helper_version})"); if (scalar(@files) == 1) { my $pkg_file=$files[0]; doit_quietly(qw{emacs -batch -Q -l package}, '--eval',"(add-to-list 'package-directory-list \"$dhelpadir\")", '--eval',"(add-to-list 'package-directory-list \"$elpadir\")", qw{-f package-initialize -l dh-elpa.el}, qw{-f dhelpa-batch-install-file}, "$tmp/$elpadir", $pkg_file, @extra_args); } else { my $stagedir = "$tempdir/$elpapkg"; File::Path::make_path $stagedir || error "creating $stagedir"; # copy files into stagedir, flattening hierarchy # TODO: do this more correctly foreach my $el_file (@files) { doit("cp", "-a", $el_file, "$stagedir"); } doit_quietly(qw{emacs -batch -Q -l package}, '--eval',"(add-to-list 'package-directory-list \"$dhelpadir\")", '--eval',"(add-to-list 'package-directory-list \"$elpadir\")", qw{-f package-initialize -l dh-elpa.el}, qw{-f dhelpa-batch-install-directory}, "$tmp/$elpadir", $stagedir, @extra_args); } my $desc = read_package_desc ($tempdir,$elpapkg); my $deps = $desc->{'ELPA-Requires'}; # TODO: addsubstvar fails to add a variable if its blank. So if the # package has no ELPA dependencies, we should tell the user not to # use this substvar in debian/control addsubstvar($package, 'elpa:Depends', $deps); if ($dh{BYTECOMPILE}) { 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/"); } } } =head1 SUBSTVARS dh_elpa currently defines three substvars (cf. deb-substvars(5)) that can be used in debian/control =over 4 =item ${misc:Depends} These are dependencies needed by every dh_elpa based package. =item ${misc:Built-Using} This adds a value suitable for a Built-Using header identifying the version of dh_elpa used at build time. =item ${elpa:Depends} These are dependencies on other ELPA packages as given in the Package-Requires: line of the package's main Emacs Lisp file. Note that Emacs Lisp dependencies packaged outside the elpa-* dpkg namespace must be specified manually. For example, the s.el library is provided by the binary package s-el. If dh_elpa adds dependency elpa-x where x is an Emacs Lisp binary package outside the elpa-* namespace, please file a bug against dh_elpa to have an exclusion added. =back =head1 EXAMPLES Here is an example of using the helper in a dh(1) style debian/rules =over 4 #!/usr/bin/make -f %: dh $@ --with elpa =back Here is an example of a binary package stanza using dh_elpa generated substvars =over 4 Package: elpa-hello Architecture: all Depends: ${misc:Depends}, ${elpa:Depends} Built-Using: ${misc:Built-Using} Description: Emacs addon to say hello The Emacs editor addon likes to wave and say hello. =back =cut dh-elpa-0.0.19/notes.org0000644000000000000000000000233112662335055011650 0ustar * package.el - package-directory-list (v) list of additional directories containing elpa packages. In particular this has an emacs version specific directory where we can install byte compiled files. Note that having the same package-$version in two different directories in this list seems not to work out well, since the ordering of the constructed load-path is backwards from the list. Or something. - package-unpack (f) does the actual installation, using dynamically bound *package-user-dir*. The current version is safe to call without network access, but it's probably considered internal. * workflow ** at package build time - install a copied/modified package-unpack into $(DESTDIR)/usr/share/emacs/site-lisp/elpa-src This is intentionally not ending in elpa, because of the problems discussed immediately above with multiple versions of a package. - install emacsen-common helper scripts into $(DESTDIR)/usr/lib/emacsen-common/packages/{compat,install,remove} - add postinst / prerm cookies to maintainer scripts ** at package install time - prerm and postinst as per a normal emacsen-common using package - don't install a startup file into /etc; that's one of our selling points. dh-elpa-0.0.19/dh-elpa.el0000644000000000000000000002017412662335055011650 0ustar ;;; dh-elpa.el --- package.el style packages for Debian -*- lexical-binding:t -*- ;; Copyright (C) 2015 David Bremner & contributors ;; Portions Copyright 2007-2015 The Free Software Foundation ;; Author: David Bremner ;; Created: 11 July 2015 ;; Version: 0.0.2 ;; Keywords: tools ;; Package-Requires: ((tabulated-list "1.0")) ;; This file is NOT part of GNU Emacs. ;; dh-elpa is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; dh-elpa is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with dh-elpa. If not, see . (require 'package) (require 'cl-lib) ;; Originally package-unpack from package.el in Emacs 24.5 (defun dhelpa-unpack (pkg-desc destdir &optional epoch-time) "Install the contents of the current buffer into DESTDIR as a package. Optional argument EPOCH-TIME specifies time (as a string or number) to use in autoload files; if unspecifed or nil the current time is used." (let* ((name (package-desc-name pkg-desc)) (dirname (package-desc-full-name pkg-desc)) (pkg-dir (expand-file-name dirname destdir)) (pkg-time (if epoch-time (seconds-to-time (if (stringp epoch-time) (string-to-number epoch-time) epoch-time)) (current-time))) (backup-inhibited t)) (make-directory pkg-dir t) (pcase (package-desc-kind pkg-desc) (`tar (let ((default-directory (file-name-as-directory destdir))) (package-untar-buffer dirname))) (`single (let ((el-file (expand-file-name (format "%s.el" name) pkg-dir))) (package--write-file-no-coding el-file))) (kind (error "Unknown package kind: %S" kind))) (defun dhelpa-autoload-insert-section-header (real-fun outbuf autoloads load-name file time) (funcall real-fun outbuf autoloads load-name file pkg-time)) (advice-add #'autoload-insert-section-header :around #'dhelpa-autoload-insert-section-header) (package--make-autoloads-and-stuff (dhelpa-filter-pkg-desc pkg-desc) pkg-dir) (advice-remove #'autoload-insert-section-header #'dhelpa-autoload-insert-section-header) pkg-dir)) (defun dhelpa-filter-deps-for-debian (deps) "Filter a list of package.el deps DEPS for Debian. Remove packages that are maintained outside of the elpa-* namespace in Debian, plus Emacs itself." (let ((non-elpa (list 'emacs 's 'dash))) (cl-remove-if (lambda (dep) (or (memq (car dep) non-elpa) (package-built-in-p (car dep)))) deps))) (defun dhelpa-filter-pkg-desc (desc) "Filter the dependencies of package description DESC for Debian." (let ((our-desc (copy-package-desc desc))) (cl-callf dhelpa-filter-deps-for-debian (package-desc-reqs our-desc)) our-desc)) (defun dhelpa-debianise-deps (deps) "Convert a list of package.el deps DEPS to debian/control format." (mapconcat (lambda (dep) (let ((pkg-name (format "elpa-%s" (car dep))) (pkg-ver (mapconcat 'number-to-string (car (cdr dep)) "."))) (concat pkg-name " (>= " pkg-ver ")"))) deps ", ")) ;; Write out (partial) package description in a form easily parsed by ;; non-lisp tools. (defun dhelpa-write-desc (desc dest) (let* ((name (package-desc-name desc)) (version (package-version-join (package-desc-version desc))) (deps (dhelpa-debianise-deps (package-desc-reqs (dhelpa-filter-pkg-desc desc)))) (desc-file (expand-file-name (format "%s.desc" name) dest))) (with-temp-file desc-file (insert (format "ELPA-Name: %s\n" name)) (insert (format "ELPA-Version: %s\n" version)) (insert (format "ELPA-Requires: %s\n" deps))))) ;;;###autoload (defun dhelpa-install-from-buffer (destdir &optional epoch-time) "Install a package from the current buffer into DESTDIR. The current buffer is assumed to be a single .el or .tar file that follows the packaging guidelines; see info node `(elisp)Packaging'. If EPOCH-TIME is non-nil, it specifies the time (in seconds since the epoch) to be used in the generated autoload files." (interactive "D") (let ((pkg-desc (if (derived-mode-p 'tar-mode) (package-tar-file-info) (package-buffer-info)))) (dhelpa-unpack pkg-desc destdir epoch-time) pkg-desc)) ;;;###autoload (defun dhelpa-batch-install-file () "Install third command line argument (an emacs lisp file or tar file) into second command line argument (a directory). The optional fourth argument specifies a destination for a package description file." (apply #'dhelpa-install-file command-line-args-left)) ;;;###autoload (defun dhelpa-batch-install-directory () "Install third command line argument (a directory containing a multifile elpa package) into second command line argument (a directory). An optional third command line argument specifies where to make temporary files and write a descriptor file." (apply #'dhelpa-install-directory command-line-args-left)) ;;;###autoload (defun dhelpa-install-file (dest el-file &optional desc-dir epoch-time) "Install EL-FILE (an emacs lisp file or tar file) into DEST (a directory). Optional DESC-DIR specifies where to write a simplified package description file. Optional EPOCH-TIME specifies time to use in the generated autoload files." (with-temp-buffer (insert-file-contents-literally el-file) (when (string-match "\\.tar\\'" el-file) (tar-mode)) (let ((desc (dhelpa-install-from-buffer (expand-file-name dest) epoch-time))) (when desc-dir (dhelpa-write-desc desc desc-dir))))) ;;;###autoload (defun dhelpa-install-directory (dest elpa-dir &optional work-dir epoch-time) "Install ELPA-DIR (an unpacked elpa tarball) into DEST (a directory). The directory must either be named `package' or `package-version'. If a working directory WORK-DIR is specified, cleaning up is the caller's responsibility. Optional EPOCH-TIME specifies time to use in generated autoloads files." (unless (file-exists-p (expand-file-name (package--description-file elpa-dir) elpa-dir)) (dhelpa-generate-pkg-file elpa-dir)) (let ((desc (package-load-descriptor elpa-dir))) (if (not desc) (message "Could not compute version from directory %s" elpa-dir) (let* ((canonical-dir (package-desc-full-name desc)) (base-dir (file-name-nondirectory elpa-dir)) (parent-dir (file-name-directory elpa-dir)) (temp-dir (or work-dir (make-temp-file nil t))) (tar-file (concat (expand-file-name canonical-dir temp-dir) ".tar")) ;; this relies on GNU tar features. (transform-command (concat "--transform=s/" (regexp-quote base-dir) "/" canonical-dir "/"))) (call-process "tar" nil nil nil "--create" "-C" parent-dir transform-command "--file" tar-file base-dir) (dhelpa-install-file dest tar-file work-dir epoch-time) (unless work-dir (delete-file tar-file) (delete-directory temp-dir)))))) (defun dhelpa-generate-pkg-file (pkg-dir) "Generate PKG-DIR/foo-pkg.el by consulting PKG-DIR/foo.el." (let* ((pkg-file (expand-file-name (package--description-file pkg-dir) pkg-dir)) (root-file (replace-regexp-in-string "-pkg" "" pkg-file)) (pkg-desc (condition-case nil (with-temp-buffer (find-file root-file) (package-buffer-info)) (error (progn (message "dh_elpa: couldn't generate -pkg file; please write one") (kill-emacs -1))))) (filtered-pkg-desc (dhelpa-filter-pkg-desc pkg-desc))) ;; although the docstring for `package-generate-description-file' ;; says that it generates a description for single-file packages, ;; there is in fact no difference between the descriptions for ;; single-file and multifile packages (package-generate-description-file filtered-pkg-desc pkg-file))) ;;; dh-elpa.el ends here dh-elpa-0.0.19/elpa.pm0000644000000000000000000000024312662335055011266 0ustar #!/usr/bin/perl # debhelper sequence file for dh_elpa script use warnings; use strict; use Debian::Debhelper::Dh_Lib; insert_after("dh_install", "dh_elpa"); 1; dh-elpa-0.0.19/emacsen-common/0000755000000000000000000000000012662335055012711 5ustar dh-elpa-0.0.19/emacsen-common/install0000755000000000000000000000257512662335055014316 0ustar #!/bin/sh # /usr/lib/emacsen-common/packages/install/${PACKAGE} set -e ELPA_DIR=#ELPAPACKAGE#-#ELPAVERSION# FLAVOR=$1 case $FLAVOR in emacs) exit 0 ;; emacs2[0123]*) echo install/${ELPA_DIR}: Skipping obsolete emacs ${FLAVOR} exit 0 ;; xemacs*) echo install/${ELPA_DIR}: Skipping unsupported emacs ${FLAVOR} exit 0 ;; *) echo install/${ELPA_DIR}: Handling install of emacsen flavor ${FLAVOR} esac src_dir=/usr/share/emacs/site-lisp/elpa-src el_dir=$src_dir/${ELPA_DIR}/ elc_dir=/usr/share/${FLAVOR}/site-lisp/elpa/${ELPA_DIR}/ export EMACSLOADPATH EMACSLOADPATH="/usr/share/emacs/site-lisp:" echo install/${ELPA_DIR}: byte-compiling for ${FLAVOR} [ -d ${elc_dir} ] || mkdir -p ${elc_dir} # Create symlinks to the .el files (see section 6E in debian-emacs # polcy). This makes complation easy, and also allows find-function # and find-library to work properly. Also link all other top level # files and directories into the flavor directory (cd ${elc_dir} && ln -sf ${el_dir}/* .) # Byte compile them (cd ${elc_dir} set +e ${FLAVOR} -q -batch -l package \ --eval "(add-to-list 'package-directory-list \"$src_dir\")" \ -f package-initialize -f batch-byte-compile *.el > Install.log 2>&1 if test $? -ne 0 then cat Install.log exit 1 fi set -e gzip -9f Install.log) exit 0; dh-elpa-0.0.19/emacsen-common/compat0000644000000000000000000000000212662335055014107 0ustar 2 dh-elpa-0.0.19/emacsen-common/remove0000755000000000000000000000154412662335055014140 0ustar #!/bin/sh # /usr/lib/emacsen-common/packages/remove/foo set -e ELPA_DIR=#ELPAPACKAGE#-#ELPAVERSION# FLAVOR=$1 elpa_root="/usr/share/${FLAVOR}/site-lisp/elpa" elc_dir="${elpa_root}/${ELPA_DIR}" FLAVOR=$1 case $FLAVOR in emacs) exit 0 ;; emacs2[0123]*) echo remove/${ELPA_DIR}: Skipping obsolete emacs ${FLAVOUR} exit 0 ;; xemacs*) echo remove/${ELPA_DIR}: Skipping unsupported emacs ${FLAVOUR} ;; *) echo remove/${ELPA_DIR}: Handling removal of emacsen flavor ${FLAVOR} esac echo dh-elpa: purging flavor specific files for ${FLAVOR} rm -f ${elc_dir}/*.elc [ -d ${elc_dir} ] && find ${elc_dir} -type l -delete rm -f ${elc_dir}/Install.log* if test -e "${elc_dir}" then rmdir --ignore-fail-on-non-empty "${elc_dir}" rmdir --ignore-fail-on-non-empty "${elpa_root}" fi exit 0; dh-elpa-0.0.19/README.org0000644000000000000000000000147512662335055011465 0ustar * Intro This is a work-in progress project to generate Debian packages of Emacs Lisp extensions that integrate with the built in (since GNU Emacs 24.1) package system package.el. This means that debian packages built with this tool will show up in M-x list-packages, and that user installs of more up to date packages will override them (for that user!). Perhaps the most important improvement is that no file /etc/emacs/site-start.d is needed for such a package. * Limitations - This tool is currently not very well tested. - Currently all of the emacs lisp files are installed into one directory; this might break packages that do fancier things with load-path. - package.el gets confused if you have both a system and a user elpa package and refuses to delete the user one unless you delete the system one first. dh-elpa-0.0.19/debian/0000755000000000000000000000000012662335055011232 5ustar dh-elpa-0.0.19/debian/changelog0000644000000000000000000001074612662335055013114 0ustar dh-elpa (0.0.19) unstable; urgency=medium [ Sean Whitton ] * Fix generation of *-pkg.el file to not include dependencies on dash-el or s-el, which are currently maintained outside of the elpa-* namespace in Debian. -- David Bremner Sun, 21 Feb 2016 09:17:51 -0400 dh-elpa (0.0.18) unstable; urgency=low * Document "--with elpa" * Add --fix-autoload-date option (on by default) to take autoload dates from changelog (Closes: #799168). * Add ${elpa:Depends} substvar. Thanks to Sean Whitton for the implementation. -- David Bremner Sun, 03 Jan 2016 19:26:12 -0400 dh-elpa (0.0.17) unstable; urgency=medium * Document substvars * Add "--with elpa" sequencer option -- David Bremner Sun, 29 Nov 2015 08:28:26 -0400 dh-elpa (0.0.16) unstable; urgency=medium * Bug fix: "Add Built-Using substvars entry", thanks to Hilko Bengen (Closes: #803350). * Add depends on ${perl:Depends} -- David Bremner Wed, 28 Oct 2015 22:43:59 -0300 dh-elpa (0.0.15) unstable; urgency=medium * Also ignore emacs20 * Avoid error from find in remove script (Closes: #802963). -- David Bremner Sun, 25 Oct 2015 14:31:04 -0300 dh-elpa (0.0.14) unstable; urgency=medium * Also ignore emacs21 and emacs22 in emacsen-common helper scripts -- David Bremner Thu, 22 Oct 2015 23:05:11 -0300 dh-elpa (0.0.13) unstable; urgency=medium * remove /usr/share/${FLAVOUR}/site-lisp/elpa on last package removal. -- David Bremner Tue, 06 Oct 2015 21:21:39 -0300 dh-elpa (0.0.12) unstable; urgency=medium * Replace use of private function `autoscript_sed' from Dh_Lib -- David Bremner Fri, 25 Sep 2015 08:19:59 -0300 dh-elpa (0.0.11) unstable; urgency=medium * Fix elpa version in generated maintainer scripts (Closes: #799032) (again). -- David Bremner Tue, 22 Sep 2015 09:14:25 -0300 dh-elpa (0.0.10) unstable; urgency=medium * Take elpa version from lisp source (Closes: #799032). Thanks to Thomas Koch for the report. -- David Bremner Sat, 19 Sep 2015 10:49:28 -0300 dh-elpa (0.0.9) unstable; urgency=medium * Bug fix: "dh-elpa should provide substvar for depends field", thanks to Thomas Koch (Closes: #799208). Currently we add only an unversioned depends on emacsen-common. * Bug fix: "an elpa package cannot require a non elpa debian package", thanks to Remi Vanicat (Closes: #798576). As Remi suggests, use -q instead of -Q to byte-compile files. -- David Bremner Thu, 17 Sep 2015 07:45:15 -0300 dh-elpa (0.0.8) unstable; urgency=medium * Skip binary packages with no files in their package.elpa file and or on the command line. -- David Bremner Sat, 12 Sep 2015 20:54:05 -0300 dh-elpa (0.0.7) unstable; urgency=medium * On package uninstall remove the non-emacs-lisp symlinks as well * Add Vcs-{Git,Browser} headers -- David Bremner Tue, 08 Sep 2015 13:54:34 -0300 dh-elpa (0.0.6) unstable; urgency=medium * Bug fix: "maintainer address bounces", thanks to Ansgar Burchardt (Closes: #797940). -- David Bremner Thu, 03 Sep 2015 18:35:06 -0300 dh-elpa (0.0.5) unstable; urgency=medium * Use debian/.debhelper/elpa for temp files. This allows easier debugging. * Add a check for ${elpa_name}-pkg.el in multi-file packages * Link all top level files/directories into flavour directory, not just *.el -- David Bremner Tue, 01 Sep 2015 19:09:51 -0300 dh-elpa (0.0.4) unstable; urgency=medium * Fix postinst bug: s/mkdir/mkdir -p/ -- David Bremner Thu, 20 Aug 2015 11:24:54 +0200 dh-elpa (0.0.3) unstable; urgency=medium * Switch to team maintenance * Upload to unstable -- David Bremner Thu, 20 Aug 2015 09:47:48 +0200 dh-elpa (0.0.2) experimental; urgency=medium * Clean up temporary directory * By default install emacsen-common helper scripts to do byte compilation and removal. It's the responsibility of packages build-depending on dh-elpa to depend on emacsen-common unless they use the no-byte-compile flag. -- David Bremner Fri, 17 Jul 2015 19:03:42 +0200 dh-elpa (0.0.1) experimental; urgency=medium * Initial upload, early adopters only. -- David Bremner Sat, 11 Jul 2015 15:24:57 +0200 dh-elpa-0.0.19/debian/copyright0000644000000000000000000000167312662335055013174 0ustar Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Files: * Copyright: © 2007-2015 Free Software Foundation Inc, © 2015 David Bremner License: GPL-3+ dh-elpa is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. . dh-elpa is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. . You should have received a copy of the GNU General Public License along with dh-elpa. If not, see . . On Debian systems, the complete text of the GNU General Public License version 3 can be found in "/usr/share/common-licenses/GPL-3. dh-elpa-0.0.19/debian/install0000644000000000000000000000014512662335055012623 0ustar usr/bin emacsen-common usr/share/debhelper/dh_elpa elpa.pm usr/share/perl5/Debian/Debhelper/Sequence dh-elpa-0.0.19/debian/control0000644000000000000000000000143712662335055012642 0ustar Source: dh-elpa Section: devel Priority: optional Maintainer: Debian Emacs addons team Uploaders: David Bremner Build-Depends: debhelper (>=9), emacs24-nox | emacs24 (>=24~) | emacs24-lucid (>=24~) Standards-Version: 3.9.6 Vcs-Git: git://anonscm.debian.org/pkg-emacsen/pkg/dh-elpa.git Vcs-Browser: http://anonscm.debian.org/cgit/pkg-emacsen/pkg/dh-elpa.git/ Package: dh-elpa Architecture: all Built-Using: ${misc:Built-Using} Depends: ${misc:Depends}, ${perl:Depends}, emacs24-nox | emacs24 (>=24~) | emacs24-lucid (>=24~) Description: Debian helper tools for packaging emacs lisp extensions This package provides a helper for packaging emacs lisp extensions in a way compatible with the GNU Emacs 'elpa' package repository. dh-elpa-0.0.19/debian/docs0000644000000000000000000000001312662335055012077 0ustar README.org dh-elpa-0.0.19/debian/compat0000644000000000000000000000000212662335055012430 0ustar 9 dh-elpa-0.0.19/debian/watch0000644000000000000000000000020712662335055012262 0ustar version=4 opts="mode=git" https://anonscm.debian.org/git/pkg-emacsen/pkg/dh-elpa.git \ refs/tags/debian/([\d\.\d\.]+) debian dh-elpa-0.0.19/debian/elpa0000644000000000000000000000000512662335055012071 0ustar *.el dh-elpa-0.0.19/debian/TODO0000644000000000000000000000011712662335055011721 0ustar -*- org -*- * missing features ** info - completely untested at the moment dh-elpa-0.0.19/debian/rules0000755000000000000000000000070412662335055012313 0ustar #!/usr/bin/make -f DESTDIR=$(CURDIR)/debian/tmp VERSION=$(shell dpkg-parsechangelog | sed -n 's/^Version: //p') %: dh $@ override_dh_auto_build: pod2man -c Debhelper --section=1 dh_elpa.in > dh_elpa.1 sed s/@HELPER_VERSION@/${VERSION}/ < dh_elpa.in > dh_elpa chmod 755 dh_elpa override_dh_install: dh_install dh_installman dh_elpa.1 ./dh_elpa --no-byte-compile override_dh_auto_install: install -m 755 -D dh_elpa $(DESTDIR)/usr/bin/dh_elpa dh-elpa-0.0.19/.gitignore0000644000000000000000000000022412662335055011776 0ustar /debian/dh-elpa.debhelper.log /debian/dh-elpa.postinst.debhelper /debian/dh-elpa.prerm.debhelper /debian/dh-elpa.substvars /debian/files /dh_elpa.1