On 19.11.2019 01:32, [email protected] wrote:
On 19.11.2019 01:27, [email protected] wrote:
On 18.11.2019 22:34, [email protected] wrote:
On 18.11.2019 21:33, [email protected] wrote:
On 18.11.2019 21:28, [email protected] wrote:
On 18.11.2019 20:01, [email protected] wrote:
Hey all, the recent changes to the emacs build system result in a
few
broken packages like emacs-pdf-tools, or basically anything that
uses
a phase for emacs-set-emacs-load-path.
For example, I borrowed the technique used by emacs-pdf-tools to
package emacs-telega, resulting in both packages failing to build:
Here is the code for emacs-telega:
https://git.sr.ht/~brettgilio/cfg/tree/master/channel/non-gnu/packages/emacs-xyz.scm#L99
The issue is in this phase for both emacs-pdf-tools and my channel
package:
(add-after 'compress-documentation 'emacs-set-emacs-load-path
(assoc-ref emacs:%standard-phases
'set-emacs-load-path))
Resulting in:
starting phase `emacs-set-emacs-load-path'
Backtrace:
5 (primitive-load
"/gnu/store/5b1p1gsvfyi4fbx4s42rhab2dns…")
In ice-9/eval.scm:
191:35 4 (_ _)
In ice-9/boot-9.scm:
829:9 3 (catch _ _ #<procedure 7ffff3bbb518 at
/gnu/store/zmkg…> …)
In srfi/srfi-1.scm:
863:16 2 (every1 #<procedure 7ffff30ae160 at
/gnu/store/zmkgrvv…> …)
In
/gnu/store/zmkgrvvhmrix2b1z7id6zrg9bb7qxzdl-module-import/guix/build/gnu-build-system.scm:
839:30 1 (_ _)
In unknown file:
0 (_ #:source
"/gnu/store/qw8xbmk6ryl9a2jrp0gip3yffmsdix…" …)
ERROR: Wrong type to apply: #f
If we suspect that changes are going to be non-backwards
compatible
could we use the news system to pass along that message? Much
appreciated. Thanks.
Brett Gilio
I applied a hotfix to the package by replacing 'set-emacs-load-path
with 'add-source-to-load-path. I believe this fix would work for
all
other affected packages.
https://git.sr.ht/~brettgilio/cfg/commit/c24a6db9d25151c487e9db675bd74e4bb3912173
Ricardo, just wanted to make you aware that this emacs-build-system
change does break your guile-studio. I discovered this because I
adopted some of your ideas of autoloading in the generated emacs lisp
from guile-studio when creating my own emacs configuration dependent
on guix, which resulted in
progn: Wrong number of arguments: (lambda nil "Autoload Emacs
packages
found in EMACSLOADPATH.
'Autoload' means to load the 'autoloads' files matching
`guix-emacs-autoloads-regexp'." (interactive) (let* ((emacs-load-path
(getenv "EMACSLOADPATH")) (emacs-non-core-load-path-directories
(seq-filter (function (lambda (dir) (string-match-p
"/share/emacs/site-lisp" dir))) (split-string emacs-load-path ":")))
(autoloads (mapcan (function guix-emacs-find-autoloads)
emacs-non-core-load-path-directories))) (mapc (function (lambda (f)
(load f (quote noerror)))) autoloads))), 78
I'll let you know if I can find any fix for this when I get some
time.
But just wanted to pass the message along.
Brett
I tried removing the arguments passed to
`guix-emacs-autoload-packages' as the updated version
(http://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/aux-files/emacs/guix-emacs.el?id=47b3b4c2aa49e21f4cc32c97ff7bbbd069bb849c)
does not carry arguments anymore, instead depending on a variable
EMACSLOADPATH. However, whenever that is done it returns
split-string: Wrong type argument: stringp, nil
possibly because my system is not finding EMACSLOADPATH.
I will keep investigating.
I can confirm, when running something analogous to `guix environment
--ad-hoc emacs-dashboard` no changes are being made to the
$GUIX_ENVIRONMENT/etc/profile to resemble EMACSLOADPATH.
So I have investigated the issue with EMACSLOADPATH: Similar to
Ricardo's guile-studio,
my package enlign was using the autoload function from guix-emacs.el to
propagate a list
of packages called from inputs to be loaded with the start of emacs.
I have since revised this to just call the autoload function directly,
no longer passing any arguments, and had to modify my enlign package to
respect the EMACSLOADPATH variable. This is only possible if all of the
packages are passed as propagated-inputs though, which is less than
desirable in my opinion (though I am willing to be convinced.)
This additionally leads to having to require emacs as a propagated input
as well, as leading it native or regular input leads to an error with
emacs not recognizing simple.el or mule-util.
Overall, I am not sure if I like the recent change to guix-emacs.el. I
understand where the incentive is to do this, but ultimately it seems to
lead to more headache when creating packages around emacs.
https://git.sr.ht/~brettgilio/cfg/commit/47bc9ae544ba10c0cacef1435625dcb0114e8cf5
Anyways,
If there is no other comment, this issue really just needs to fix
emacs-pdf-tools and other affected packages from the recent string of
changes.
Best,
Brett Gilio