IRC channel logs
2026-04-19.log
back to list of logs
<lispmacs[work]>in my home configuration, I am using specifications->packages in the usual way. I am wondering if it possible, in the configuration, to indicate that I want to install all the build dependencies of a package, but not the package itself. I.e., what I would get if I ran "guix shell -D emacs" <ieure>lispmacs[work], You can do that, but not with specifications->packages. (home-environment (packages (append (package-inputs whatever-package) (specifications->packages ...)))) <ieure>lispmacs[work], Sorry, you actually want (map cadr (package-inputs ...)) <ieure>Actually... (filter package? (map cadr (package-inputs ...))) <ieure>Because some packages have non-package inputs which would break home-environment. <lispmacs[work]>for the part where you put the "...", what exactly would I type for the emacs package? and do I need to import something? <ieure>lispmacs[work], `emacs', and it's in (gnu packages emacs) <ieure>lispmacs[work], You could also do (package-inputs (specification->package "emacs")) <ieure>lispmacs[work], Why do you want this? <lispmacs[work]>I build and install emacs myself, in ~/local, but I always have used "guix shell -D emacs" (or emacs-next) to get the dependencies <ieure>lispmacs[work], Why are you compiling it yourself? <lispmacs[work]>I wanted to have those dependencies automatically in my profile, but not install emacs itself from guix <lispmacs[work]>ieure: I am often filing bug reports or tweaking/testing things, and nobody will help me unless I'm using the latest commit <lispmacs[work]>I just keep a branch of emacs in my home directory, and pull the last commits before I go to test or report something <ieure>lispmacs[work], Why don't you make a variant of the Guix package? <lispmacs[work]>lack of understanding of how to do that or what the benefits would be <ieure>Well, you wouldn't have to do all this stuff. <lispmacs[work]>currently, all I do is "guix shell -D emacs" then "git pull", "make distclean", "./configure ...", and "make install". is the other idea simpler? <ieure>lispmacs[work], It is overall simpler. <ieure>lispmacs[work], There's an `emacs->emacs-next' procedure in gnu/packages/emacs.scm (which is the source for (gnu packages emacs)) which does most of this for you. You just need to specify an origin for the source you want to build and a version. <ieure>Whip yourself up a guix.scm in your ~/local and `guix build -f guix.scm' to build it, `guix install -f guix.scm' (I *think*, check the manual) to install it into your per-user profile. <ieure>Yes, you can give an origin with a file:/// URL. But you will have to use `guix hash' to figure out the correct hash to put in there. <ieure>lispmacs[work], Alternately, you can use direnv to automatically activate a profile containing the Emacs build deps when you cd into its source directory. See the "Guix environment via direnv" section of the Guix Cookbook. <nckx>You can use git-checkout to avoid the edit-rehash-edit-build dance.