ison writes: > 3) How can a channel provide patch files which can be used with > "search-patches"? I attempted to look through the guix code in > gnu/packages.scm and from what I can tell it looks like search-patches > only looks in paths included from "%load-path". There is also a > comment saying that it picks up the paths from $GUIX_PACKAGE_PATH, but > I thought that variable was being deprecated in favor of channels. If > so, shouldn't search-patches also look inside the channels repository > for patch files? This should work just like it would for GUIX_PACKAGE_PATH. Are you saying that the patch files you have created in your channel are not being found? david.larsson@selfhosted.xyz writes: > On Wed, 24 Apr 2019, ison wrote: > >> Several questions about channels have been on my mind which I >> haven't been able to find any documentation on. So I figured I would >> ask them all in one place since they seem like fairly standard >> questions that could help others setting up channels in the future >> as well. >> >> 1) Is it possible to make a channel from a local git repository? (That is to say, a directory on the local machine initialized as a git repository) >> > > Yes, for example, cat ~/.config/guix/channels.scm > > (cons (channel > (name 'my-personal-packages) > (url "file:///home/myuser/src/my-guix-packages")) > %default-channels) Actually, you can also just write "/home/myuser/src/my-guix-packages". The "file://" part is fine to add, but it is not necessary. I think (but am not sure) that you can use any protocol understood by Git here. >> 2) Is it possible to use private remote repositories as channels? >> The issue here seems to be one of authentication. I'm wonder if >> there is (or should be) an "authentication" field one would add to >> the channel definition in the channels.scm file. >> > I agree it would be nice to have. The git-fetch method is defined > here: > https://github.com/guix-mirror/guix/blob/012bf5c4c03e30633f137960bd0677e204c638a7/guix/build/git.scm > and I think it can be modified without too much effort to include an > argument for the -key flag to the git command. I am not sure though > whether git-fetch will have access to the home user's directory in > case you provide let's say ~/.ssh/id_rsa as argument. Another > possibility would be to check the GIT_SSH_COMMAND env variable. I > suppose you also need to make sure ssh is available for git-fetch. It may also be possible to jump through hoops similar to how I did it for package origins in this not-yet-merged patch: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=31285 I have been thinking about this problem for a while, but I have not yet tried to solve it for channels. The patch above only works for individual packages, and it is quite a hack, so I am hesitant to merge it into master because I think maybe there is a better way. I think the better way might be to give the guix-daemon an SSH key specifically for the purpose of accessing Git repositories over authenticated SSH. In the same way that the Guix daemon has its own built in downloader for downloading files, we might be able to give it a built in "git fetcher" to fetch Git repositories over SSH, using the provided SSH key. But I haven't looked into it more at this time. Help is welcome! -- Chris