[[!meta title="Packaging emacs packages for Debian - David Bremner"]] [[!meta copyright="Copyright © 2019 David Bremner"]] [[!template id=vid src="https://mirror.csclub.uwaterloo.ca/emacsconf/2019/emacsconf-2019-22-packaging-emacs-packages-for-debian--bremner.webm" type="video/webm"]] ### Download - [Video](https://mirror.csclub.uwaterloo.ca/emacsconf/2019/emacsconf-2019-22-packaging-emacs-packages-for-debian--bremner.webm) (1080p) ### Notes ```org #+TITLE: Packaging Emacs packages for Debian #+AUTHOR: David Bremner #+PROPERTY: header-args:sh :results output :session demo :output session * Why Debian Packages for Emacs addons? ** For users - Extra layer of curation - Integration testing - Non-emacs dependencies are easy - Co-operates with other =package.el= sources, e.g. /Melpa stable/. ** For admins - Familiar tools - Known trust model - Building VM images - Stable releases * Packaging demo ** setup #+begin_src sh :var dir=(expand-file-name default-directory) export SUDO_ASKPASS=/usr/bin/ssh-askpass export DPKG_COLORS=never export DEBIAN_FRONTEND=noninteractive cd $dir rm -rf build mkdir build cd build #+end_src ** grab the source #+begin_src sh git clone -q -o upstream https://github.com/takaxp/org-tree-slide.git #+end_src ** generate the packaging #+begin_src sh cd org-tree-slide dh-make-elpa --pkg-emacsen #+end_src ** inspecting the results #+begin_src elisp (dired "build/org-tree-slide/debian") (dired-hide-details-mode) #+end_src ** building the package #+begin_src sh dpkg-buildpackage -uc -us -b #+end_src ** install the package #+begin_src sh sudo -A env NEEDRESTART_SUSPEND=y DEBIAN_FRONTEND=noninteractive \ apt-get install --reinstall -q -y ../elpa-org-tree-slide*.deb