summaryrefslogtreecommitdiffstats
path: root/2019/transcripts/22.md
diff options
context:
space:
mode:
Diffstat (limited to '2019/transcripts/22.md')
-rw-r--r--2019/transcripts/22.md79
1 files changed, 79 insertions, 0 deletions
diff --git a/2019/transcripts/22.md b/2019/transcripts/22.md
new file mode 100644
index 00000000..3a6daa49
--- /dev/null
+++ b/2019/transcripts/22.md
@@ -0,0 +1,79 @@
+[[!meta title="Packaging Emacs packages for Debian - David Bremner"]]
+
+```
+#+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 </dev/null
+#+end_src
+
+** activate the package
+#+begin_src elisp
+(package-initialize)
+(locate-library "org-tree-slide")
+#+end_src
+
+#+begin_src sh
+dpkg -L elpa-org-tree-slide < /dev/null
+#+end_src
+
+* Cleanup this buffer
+#+begin_src elisp
+(org-babel-remove-result-one-or-many 't)
+#+end_src
+
+* Configuration
+# Local Variables:
+# org-confirm-babel-evaluate: nil
+# End:
+```