Hi David,
On 18 August 2018 at 07:17, Dirk Eddelbuettel wrote: | | On 17 August 2018 at 22:48, David Bremner wrote: | | Dirk Eddelbuettel <[email protected]> writes: | | | | > Hi debian-emacsen folks, | | > | | > I am the maintainer of the ess package (providing a rocking Emacs mode for R | | > and other stats backends). But I don't really read (or, hah, write) elisp. | | > | | > Is there another package I should look at? Any resources I should consider? | | | | There is a trivial example on the wiki | | | | https://wiki.debian.org/EmacsenTeam/elpa-hello | | | | Below I've attached a diff for a rough conversion. The resulting package | | You are awesome. Thanks so much. I will work with this and get back to you. | | | has an (unrelated I think) error about doc-base, and it needs the | | corresponding transitional package (and probably a few other details | | documented in the wiki page above). I aimed for a minimal patch, rather | | I'll work on this weekend as I get time. Ok. I added a little more polish and we now have package elpa-ess and ess (for the transition). Both are lintian clean and here: http://dirk.eddelbuettel.com/tmp/elpa-ess_17.11-4_all.deb http://dirk.eddelbuettel.com/tmp/ess_17.11-4_all.deb However, the elpa-ess package does not install. Do I need to convert to dh-elpa to the helper scripts invoked? Log below. edd@rob:/var/cache/pbuilder/result$ sudo dpkg --install *17.11-4*deb (Reading database ... 422029 files and directories currently installed.) Preparing to unpack elpa-ess_17.11-4_all.deb ... Unpacking elpa-ess (17.11-4) ... Selecting previously unselected package ess. Preparing to unpack ess_17.11-4_all.deb ... Unpacking ess (17.11-4) ... Setting up elpa-ess (17.11-4) ... Install emacsen-common for emacs25 emacsen-common: Handling install of emacsen flavor emacs25 Install elpa-ess for emacs25 install/ess-17.11: Handling install of emacsen flavor emacs25 install/ess-17.11: byte-compiling for emacs25 In toplevel form: ess-arc-d.el:36:1:Error: Cannot open load file: No such file or directory, ess-lsp-l In toplevel form: ess-bugs-d.el:26:1:Error: Cannot open load file: No such file or directory, ess-bugs-l In toplevel form: ess-bugs-l.el:29:1:Error: Cannot open load file: No such file or directory, ess-compat In toplevel form: ess-comp.el:40:7:Warning: assignment to free variable ‘ess-show-load-messages’ In ess-message: ess-comp.el:44:7:Warning: reference to free variable ‘ess-show-load-messages’ ess-comp.el:47:41:Error: Cannot open load file: No such file or directory, ess-compat In ess-sleep: ess-compat.el:38:14:Warning: reference to free variable ‘ess-sleep-for-shell’ In ess-ddeclient-p: ess-dde.el:42:9:Warning: reference to free variable ‘ess-microsoft-p’ ess-dde.el:45:56:Warning: reference to free variable ‘ess-local-process-name’ In ess-dde-send-region: ess-dde.el:76:10:Warning: assignment to free variable ‘inferior-ess-ddeclient’ ess-dde.el:77:10:Warning: assignment to free variable ‘inferior-ess-client-name’ ess-dde.el:77:35:Warning: assignment to free variable ‘inferior-ess-client-command’ ess-dde.el:74:10:Warning: reference to free variable ‘inferior-ess-ddeclient’ ess-dde.el:74:10:Warning: reference to free variable ‘inferior-ess-client-name’ ess-dde.el:74:10:Warning: reference to free variable ‘inferior-ess-client-command’ In ess-dde-eval-linewise: ess-dde.el:85:26:Warning: reference to free variable ‘ess-customize-alist’ ess-dde.el:91:5:Warning: reference to free variable ‘ess-eval-ddeclient-sleep’ In ess-dde-load-file: ess-dde.el:121:42:Warning: reference to free variable ‘ess-load-command’ In end of data: ess-dde.el:194:1:Warning: the following functions are not known to be defined: ess-write-to-dribble-buffer, ess-force-buffer-current, ess-get-process-variable, ess-eval-linewise-ddeclient, ess-setq-vars-local, ess-check-source, ess-get-file-or-buffer, ess-eval-linewise In toplevel form: ess-debug.el:75:1:Error: Cannot open load file: No such file or directory, ess-site In toplevel form: ess-gretl.el:40:1:Error: Cannot open load file: No such file or directory, ess-r-mode In toplevel form: ess-help.el:43:13:Error: Cannot open load file: No such file or directory, ess-inf In toplevel form: ess-inf.el:39:1:Error: Cannot open load file: No such file or directory, ess-generics In end of data: ess-install.el:229:1:Warning: the function ‘ess-replace-in-string’ is not known to be defined. In toplevel form: ess-jags-d.el:26:1:Error: Cannot open load file: No such file or directory, ess-bugs-l In toplevel form: ess-julia.el:46:1:Error: Cannot open load file: No such file or directory, ess-utils In toplevel form: ess-mode.el:37:1:Error: Cannot open load file: No such file or directory, ess-custom In toplevel form: ess-mouse.el:39:1:Error: Cannot open load file: No such file or directory, mouseme In toplevel form: ess-noweb-font-lock-mode.el:103:1:Error: Cannot open load file: No such file or directory, ess-noweb-mode In toplevel form: ess-noweb-mode.el:91:1:Error: Cannot open load file: No such file or directory, ess-compat In toplevel form: ess-noweb.el:38:1:Error: Cannot open load file: No such file or directory, ess-noweb-mode In toplevel form: ess-omg-d.el:36:1:Error: Cannot open load file: No such file or directory, ess-omg-l In toplevel form: ess-omg-l.el:224:5:Warning: reference to free variable ‘S-syntax-table’ ess-omg-l.el:227:33:Warning: assignment to free variable ‘S-syntax-table’ ess-omg-l.el:278:30:Warning: reference to free variable ‘ess-S-keywords’ ess-omg-l.el:280:30:Warning: reference to free variable ‘ess-S-assign-ops’ ess-omg-l.el:282:30:Warning: reference to free variable ‘ess-S-constants’ ess-omg-l.el:284:30:Warning: reference to free variable ‘ess-S-modifyiers’ ess-omg-l.el:287:18:Warning: reference to free variable ‘ess-S-function-name-regexp’ In end of data: ess-omg-l.el:345:1:Warning: the function ‘ess-calculate-indent’ is not known to be defined. In end of data: ess-r-a.el:165:1:Warning: the following functions are not known to be defined: do-applescript, ess-execute In toplevel form: ess-r-args.el:173:1:Error: Cannot open load file: No such file or directory, ess-custom In toplevel form: ess-r-completion.el:33:1:Warning: cl package required at runtime ess-r-completion.el:34:1:Error: Cannot open load file: No such file or directory, ess-utils In toplevel form: ess-r-gui.el:35:1:Error: Cannot open load file: No such file or directory, ess-dde In toplevel form: ess-r-mode.el:40:1:Error: Cannot open load file: No such file or directory, ess-mode In toplevel form: ess-r-package.el:33:1:Error: Cannot open load file: No such file or directory, ess-utils In toplevel form: ess-r-syntax.el:30:1:Error: Cannot open load file: No such file or directory, ess-utils In toplevel form: ess-rd.el:30:30:Error: Cannot open load file: No such file or directory, ess-help In ess-rdired-mode: ess-rdired.el:162:37:Warning: reference to free variable ‘ess-local-process-name’ In ess-rdired: ess-rdired.el:176:16:Warning: reference to free variable ‘ess-local-process-name’ ess-rdired.el:180:40:Warning: reference to free variable ‘ess-local-customize-alist’ ess-rdired.el:183:13:Warning: assignment to free variable ‘ess-local-process-name’ In end of data: ess-rdired.el:499:1:Warning: the following functions are not known to be defined: ess-command, ess-setq-vars-local, ess-execute, ess-eval-linewise, ess-switch-process In toplevel form: ess-roxy.el:65:1:Error: Cannot open load file: No such file or directory, ess-utils In toplevel form: ess-rutils.el:53:1:Error: Cannot open load file: No such file or directory, ess-site In toplevel form: ess-s-lang.el:35:1:Error: Cannot open load file: No such file or directory, ess-utils In toplevel form: ess-s3-d.el:36:1:Error: Cannot open load file: No such file or directory, ess-s-lang In toplevel form: ess-s4-d.el:39:1:Error: Cannot open load file: No such file or directory, ess-s-lang In toplevel form: ess-sas-a.el:171:12:Warning: reference to free variable ‘ess-microsoft-p’ In ess-sas-backward-delete-tab: ess-sas-a.el:350:47:Warning: reference to free variable ‘sas-indent-width’ In ess-sas-create-local-variables-alist: ess-sas-a.el:435:50:Warning: reference to free variable ‘ess-kermit-remote-directory’ In ess-sas-goto: ess-sas-a.el:621:54:Warning: reference to free variable ‘ess-kermit-remote-directory’ In ess-sas-interactive: ess-sas-a.el:788:29:Warning: reference to free variable ‘SAS-customize-alist’ ess-sas-a.el:796:26:Warning: assignment to free variable ‘ess-customize-alist’ ess-sas-a.el:796:6:Warning: reference to free variable ‘ess-customize-alist’ ess-sas-a.el:804:11:Warning: assignment to free variable ‘ess-eval-visibly-p’ In ess-sas-submit-sh: ess-sas-a.el:1049:70:Warning: reference to free variable ‘ess-kermit-prefix’ In ess-sas-versions-create: ess-sas-a.el:1218:17:Warning: Use ‘with-current-buffer’ rather than save-excursion+set-buffer In ess-sas-edit-keys-set: ess-sas-a.el:1247:21:Warning: reference to free variable ‘sas-mode-local-map’ In ess-sas-global-pc-keys: ess-sas-a.el:1298:9:Warning: assignment to free variable ‘ess-sas-global-unix-keys’ ess-sas-a.el:1299:9:Warning: assignment to free variable ‘ess-sas-local-pc-keys’ ess-sas-a.el:1300:9:Warning: assignment to free variable ‘ess-sas-local-unix-keys’ In ess-sas-global-unix-keys: ess-sas-a.el:1332:9:Warning: assignment to free variable ‘ess-sas-local-pc-keys’ ess-sas-a.el:1333:9:Warning: assignment to free variable ‘ess-sas-local-unix-keys’ In ess-sas-local-pc-keys: ess-sas-a.el:1343:15:Warning: reference to free variable ‘sas-mode-local-map’ ess-sas-a.el:1366:9:Warning: assignment to free variable ‘ess-sas-local-unix-keys’ In ess-sas-local-unix-keys: ess-sas-a.el:1376:15:Warning: reference to free variable ‘sas-mode-local-map’ In end of data: ess-sas-a.el:1422:1:Warning: the following functions are not known to be defined: w32-shell-dos-semantics, ess-get-file-or-buffer, ess-change-alist, ess-save-and-set-local-variables, ess-search-except, ess-kermit-get, ess-num-or-zero, ess-revert-wisely, ess-sleep, ess-add-ess-process, ess-setq-vars-local, inferior-ess-mode, ess-eval-linewise, ess-force-buffer-current, do-applescript, unix-filename-to-mac, ess-kermit-send, ess-listing-minor-mode, ess-uniq-list, ess-write-to-dribble-buffer In toplevel form: ess-sas-d.el:45:1:Error: Cannot open load file: No such file or directory, ess-sas-l In toplevel form: ess-sas-l.el:53:1:Error: Cannot open load file: No such file or directory, ess In toplevel form: ess-send.el:22:13:Warning: reference to free variable ‘ess-mode-map’ In end of data: ess-send.el:75:1:Warning: the following functions are not known to be defined: word-at-point, ess-command In toplevel form: ess-send2.el:28:13:Warning: reference to free variable ‘ess-mode-map’ In end of data: ess-send2.el:55:1:Warning: the following functions are not known to be defined: word-at-point, ess-command In toplevel form: ess-site.el:84:1:Error: Cannot open load file: No such file or directory, ess-utils In toplevel form: ess-sp3-d.el:36:1:Error: Cannot open load file: No such file or directory, ess-s-lang In toplevel form: ess-sp4-d.el:37:1:Error: Cannot open load file: No such file or directory, ess-mode In toplevel form: ess-sp5-d.el:42:1:Error: Cannot open load file: No such file or directory, ess-s-lang In toplevel form: ess-sp6-d.el:39:1:Error: Cannot open load file: No such file or directory, ess-mode In toplevel form: ess-sp6w-d.el:39:1:Error: Cannot open load file: No such file or directory, ess-s-lang In toplevel form: ess-stata-lang.el:50:1:Error: Cannot open load file: No such file or directory, make-regexp In toplevel form: ess-stata-mode.el:38:1:Error: Cannot open load file: No such file or directory, ess-mode In toplevel form: ess-swv.el:84:13:Error: Cannot open load file: No such file or directory, ess-custom In toplevel form: ess-toolbar.el:112:29:Warning: reference to free variable ‘ess-etc-directory’ In ess-add-icon: ess-toolbar.el:147:49:Warning: reference to free variable ‘ess-mode-map’ In end of data: ess-toolbar.el:186:1:Warning: the function ‘ess-write-to-dribble-buffer’ is not known to be defined. In toplevel form: ess-tracebug.el:59:1:Error: Cannot open load file: No such file or directory, ess-utils In toplevel form: ess-trns.el:36:1:Error: Cannot open load file: No such file or directory, ess In ess-kermit-get: ess-utils.el:263:23:Warning: reference to free variable ‘ess-kermit-prefix’ ess-utils.el:274:35:Warning: assignment to free variable ‘ess-kermit-remote-directory’ ess-utils.el:275:23:Warning: reference to free variable ‘ess-kermit-remote-directory’ ess-utils.el:281:61:Warning: reference to free variable ‘ess-kermit-command’ In ess-kermit-send: ess-utils.el:309:23:Warning: reference to free variable ‘ess-kermit-prefix’ ess-utils.el:318:21:Warning: reference to free variable ‘ess-kermit-remote-directory’ ess-utils.el:321:48:Warning: assignment to free variable ‘ess-kermit-remote-directory’ ess-utils.el:325:61:Warning: reference to free variable ‘ess-kermit-command’ In ess--inject-code-from-file: ess-utils.el:488:20:Warning: reference to free variable ‘ess-dialect’ In ess-font-lock-toggle-keyword: ess-utils.el:553:41:Warning: reference to free variable ‘ess-font-lock-keywords’ ess-utils.el:557:32:Warning: reference to free variable ‘inferior-ess-font-lock-keywords’ ess-utils.el:570:32:Warning: reference to free variable ‘ess-dialect’ In ess--generate-font-lock-submenu: ess-utils.el:585:40:Warning: reference to free variable ‘ess-font-lock-keywords’ ess-utils.el:587:40:Warning: reference to free variable ‘inferior-ess-font-lock-keywords’ In ess-completing-read: ess-utils.el:608:23:Warning: reference to free variable ‘ess-use-ido’ ess-utils.el:619:41:Warning: reference to free variable ‘ess-ido-flex-matching’ In ess-load-extras: ess-utils.el:645:33:Warning: reference to free variable ‘ess-dialect’ ess-utils.el:651:18:Warning: reference to free variable ‘ess-use-auto-complete’ ess-utils.el:652:21:Warning: reference to free variable ‘ac-modes’ ess-utils.el:652:21:Warning: assignment to free variable ‘ac-modes’ ess-utils.el:654:13:Warning: reference to free variable ‘ess-ac-sources’ ess-utils.el:665:18:Warning: reference to free variable ‘ess-use-company’ ess-utils.el:666:13:Warning: reference to free variable ‘ess-company-backends’ ess-utils.el:668:54:Warning: function ‘copy-list’ from cl package called at runtime ess-utils.el:673:16:Warning: reference to free variable ‘ess-eldoc-function’ ess-utils.el:675:38:Warning: reference to free variable ‘ess-use-eldoc’ ess-utils.el:678:64:Warning: ‘turn-on-eldoc-mode’ is an obsolete function (as of 24.4); use ‘eldoc-mode’ instead. ess-utils.el:682:16:Warning: reference to free variable ‘ess-use-tracebug’ In ess-build-tags-for-directory: ess-utils.el:794:42:Warning: reference to free variable ‘ess-imenu-generic-expression’ In ess-get-ps-viewer: ess-utils.el:822:13:Warning: reference to free variable ‘ess-ps-viewer-pref’ In ess-get-pdf-viewer: ess-utils.el:833:21:Warning: reference to free variable ‘ess-pdf-viewer-pref’ In ess-blink-region: ess-utils.el:860:9:Warning: reference to free variable ‘ess-blink-region’ ess-utils.el:862:21:Warning: reference to free variable ‘ess-blink-delay’ In ess-deactivate-mark: ess-utils.el:867:32:Warning: reference to free variable ‘evil-mode’ In ess--funname.start: ess-utils.el:1187:13:Warning: reference to free variable ‘ess-noweb-mode’ ess-utils.el:1201:56:Warning: reference to free variable ‘ess-S-non-functions’ In ess-function-arguments: ess-utils.el:1229:40:Warning: reference to free variable ‘ess-local-process-name’ ess-utils.el:1243:54:Warning: reference to free variable ‘ess-funargs-command’ In ess-symbol-at-point: ess-utils.el:1259:26:Warning: reference to free variable ‘ess-mode-completion-syntax-table’ ess-utils.el:1260:26:Warning: reference to free variable ‘ess-mode-syntax-table’ In ess-symbol-start: ess-utils.el:1268:42:Warning: reference to free variable ‘ess-mode-completion-syntax-table’ ess-utils.el:1269:42:Warning: reference to free variable ‘ess-mode-syntax-table’ In ess-write-to-dribble-buffer: ess-utils.el:1520:26:Warning: reference to free variable ‘ess-dribble-buffer’ ess-utils.el:1524:26:Warning: assignment to free variable ‘ess-dribble-buffer’ In ess-if-verbose-write: ess-utils.el:1531:7:Warning: reference to free variable ‘ess-verbose’ In end of data: ess-utils.el:1608:1:Warning: the following functions are not known to be defined: ess-sas-create-local-variables-alist, ess-sas-goto-shell, ess-command, ido-init-completion-maps, ido-read-internal, ess-tracebug, ess-transcript-clean-region, ess-eval-linewise, ess-get-words-from-vector, evil-visual-state-p, evil-normal-state, w32-focus-frame, ess-noweb-narrow-to-chunk, ess-process-live-p, ess-mode, color-lighten-name In toplevel form: ess-vst-d.el:36:1:Error: Cannot open load file: No such file or directory, ess-lsp-l In toplevel form: ess-xls-d.el:39:1:Error: Cannot open load file: No such file or directory, ess-lsp-l In ess-write-to-dribble-buffer: ess.el:105:26:Warning: reference to free variable ‘ess-dribble-buffer’ ess.el:109:26:Warning: assignment to free variable ‘ess-dribble-buffer’ In ess-if-verbose-write: ess.el:116:7:Warning: reference to free variable ‘ess-verbose’ ess.el:125:1:Error: Cannot open load file: No such file or directory, ess-compat In toplevel form: essd-els.el:35:1:Error: Cannot open load file: No such file or directory, ess-s-lang In julia-mode: julia-mode.el:680:10:Warning: reference to free variable ‘julia-syntax-propertize-function’ In mouse-me: mouseme.el:149:90:Warning: reference to free variable ‘name’ ERROR: install script from elpa-ess package failed dpkg: error processing package elpa-ess (--install): installed elpa-ess package post-installation script subprocess returned error exit status 1 dpkg: dependency problems prevent configuration of ess: ess depends on elpa-ess; however: Package elpa-ess is not configured yet. dpkg: error processing package ess (--install): dependency problems - leaving unconfigured Processing triggers for install-info (6.5.0.dfsg.1-2) ... Errors were encountered while processing: elpa-ess ess edd@rob:/var/cache/pbuilder/result$ Thoughts? Dirk | | | than the nicest possible package (i.e. no conversion to dh). | | | | A couple of notes | | | | - the file lisp/ess-package.el is used by dh_elpa / package.el to | | extract metadata from the package. This means | | + I had to change the version number from 0 (this is a newly | | discovered bug in dh_elpa). It's nicer, but not mandatory for that | | version to track the upstream version. | | + I removed the dependency on julia-mode, since your sources include | | julia-mode, and elpa-julia-mode doesn't (yet) exist in debian. | | Removing that is a pending change upstream. (I lurk on their GitHub project.) | May get reversed / altered now that Julia had 1.0. We'll see. For now removal | is fine. | | Dirk | | | - The package still uses sed, but now seds the source in place. | | | | | | diff --git a/debian/changelog b/debian/changelog | | index c8692dd..46b56a6 100644 | | --- a/debian/changelog | | +++ b/debian/changelog | | @@ -1,3 +1,9 @@ | | +ess (17.11-3) UNRELEASED; urgency=medium | | + | | + * experimental conversion to dh_elpa | | + | | + -- David Bremner <[email protected]> Fri, 17 Aug 2018 21:42:24 -0300 | | + | | ess (17.11-2) unstable; urgency=medium | | | | * lisp/ess-utils.el: Synced with updated upstream per issue #465 | | diff --git a/debian/control b/debian/control | | index dd1484f..9a76864 100644 | | --- a/debian/control | | +++ b/debian/control | | @@ -7,7 +7,7 @@ Build-Depends: debhelper (>= 7.0.0) | | Build-Depends-Indep: texlive-base, texlive-latex-base, texlive-latex-recommended, texlive-latex-extra, texlive-generic-recommended, texlive-extra-utils, texlive-fonts-recommended, texinfo, autotools-dev | | Homepage: http://ess.r-project.org | | | | -Package: ess | | +Package: elpa-ess | | Architecture: all | | Depends: ${misc:Depends}, emacsen-common (>= 2.0.8), dpkg (>= 1.15.4) | install-info | | Recommends: r-base-core | | diff --git a/debian/elpa b/debian/elpa | | new file mode 100644 | | index 0000000..43a8a61 | | --- /dev/null | | +++ b/debian/elpa | | @@ -0,0 +1,2 @@ | | +ess-autoloads.el | | +lisp/*.el | | diff --git a/debian/emacsen-install b/debian/emacsen-install | | deleted file mode 100644 | | index 55aa662..0000000 | | diff --git a/debian/emacsen-remove b/debian/emacsen-remove | | deleted file mode 100644 | | index 81b6171..0000000 | | diff --git a/debian/emacsen-startup b/debian/emacsen-startup | | deleted file mode 100644 | | index 19c8720..0000000 | | diff --git a/debian/rules b/debian/rules | | index ad09d51..d7c89c5 100755 | | --- a/debian/rules | | +++ b/debian/rules | | @@ -64,13 +64,12 @@ install-stamp: build-stamp | | dh_installdirs | | | | # cd doc ; $(MAKE) install PREFIX=`pwd`/debian/ess | | - cp lisp/*.el debian/ess/usr/share/emacs/site-lisp/ess | | - ! [ -e debian/ess/usr/share/emacs/site-lisp/ess/ess-site.el ] || \ | | - chmod u+w debian/ess/usr/share/emacs/site-lisp/ess/ess-site.el | | - cat lisp/ess-site.el | \ | | - sed -e 's,(defvar ess-etc-directory nil,(defvar ess-etc-directory "/usr/share/ess/etc/",1'\ | | - -e 's,(while (and (listp ess-etc,(while (and (not ess-etc-directory) (listp ess-etc,1' \ | | - > debian/ess/usr/share/emacs/site-lisp/ess/ess-site.el | | + # ! [ -e debian/ess/usr/share/emacs/site-lisp/ess/ess-site.el ] || \ | | + # chmod u+w debian/ess/usr/share/emacs/site-lisp/ess/ess-site.el | | + sed -i -e 's,(defvar ess-etc-directory nil,(defvar ess-etc-directory "/usr/share/ess/etc/",1'\ | | + -e 's,(while (and (listp ess-etc,(while (and (not ess-etc-directory) (listp ess-etc,1' \ | | + lisp/ess-site.el | | + dh_elpa | | mkdir -p debian/ess/usr/share/ess | | cp -a etc debian/ess/usr/share/ess/ | | rm -f debian/ess/usr/share/ess/etc/BACKBUGS.BAT | | diff --git a/lisp/ess-pkg.el b/lisp/ess-pkg.el | | index 660378c..62f674d 100644 | | --- a/lisp/ess-pkg.el | | +++ b/lisp/ess-pkg.el | | @@ -1,2 +1,2 @@ | | -(define-package "ess" "0" "Emacs Speaks Statistics" '((julia-mode "0.3")) | | +(define-package "ess" "17.11" "Emacs Speaks Statistics" nil | | :url "http://ess.r-project.org" :keywords nil) | | -- | http://dirk.eddelbuettel.com | @eddelbuettel | [email protected] -- http://dirk.eddelbuettel.com | @eddelbuettel | [email protected]

